Java已知班上有10名男同学,5名女同学,编写一段程序,使用集合存储学生信息,然后制作一个点名程序,每次可以点中一名学生,已经被点名的学生不能被重复点名
时间: 2024-09-20 20:04:47 浏览: 58
C语言程序设计-有一个一维数组score,内放10个学生的成绩,用一个函数来求平均成绩;
5星 · 资源好评率100%
在Java中,我们可以使用`ArrayList`或`HashSet`来存储学生信息,因为我们需要避免重复点名,所以`HashSet`更适合,它不允许有重复元素。这里是一个简单的示例:
```java
import java.util.*;
class Student {
String gender;
boolean isPicked;
public Student(String gender) {
this.gender = gender;
this.isPicked = false;
}
}
public class AttendanceManager {
private Set<Student> students; // 使用HashSet存储学生
public AttendanceManager() {
students = new HashSet<>();
// 初始化男女生人数
for (int i = 0; i < 10; i++) {
students.add(new Student("男"));
}
for (int i = 0; i < 5; i++) {
students.add(new Student("女"));
}
}
public void pointName(String gender) {
Iterator<Student> iterator = students.iterator();
while (iterator.hasNext()) {
Student student = iterator.next();
if (student.getGender().equals(gender) && !student.isPicked) {
System.out.println("点到了" + gender + "的同学");
student.isPicked = true; // 标记该学生已被点名
iterator.remove(); // 从集合中移除,防止重复点名
break;
}
}
}
}
// 使用
public static void main(String[] args) {
AttendanceManager manager = new AttendanceManager();
manager.pointName("男"); // 点名男生
manager.pointName("女"); // 点名女生
}
```
在这个例子中,我们创建了一个名为`AttendanceManager`的类,其中包含一个`HashSet`存储学生。`pointName`方法用于点名,会查找指定性别且未被点名的学生,并将其标记为已点名并从集合中移除。
阅读全文