用顺序表实现学生信息的管理,包括学生信息的存取、插入、删除、查找等操作,学生信息包括:学号、姓名、成绩。提示:定义学生类Student,重写equals方法,将顺序表实现代码中的泛型T替换成Student。 1.提供程序源码 2.提供程序输出截图
时间: 2024-09-25 19:09:27 浏览: 53
在Java中,我们可以使用数组列表(ArrayList)作为顺序表来存储学生信息,因为ArrayList支持动态扩容和方便的遍历。首先,我们需要创建一个名为`Student`的类,包含学号、姓名和成绩属性,并重写`equals()`方法以便于比较学生的等效性。然后我们创建一个`StudentManager`类来进行相关操作。
```java
import java.util.ArrayList;
class Student {
private int id;
private String name;
private double score;
public Student(int id, String name, double score) {
this.id = id;
this.name = name;
this.score = score;
}
// 重写equals()方法
@Override
public boolean equals(Object obj) {
if (this == obj) return true;
if (obj == null || getClass() != obj.getClass()) return false;
Student student = (Student) obj;
return id == student.id && Double.compare(student.score, score) == 0 && name.equals(student.name);
}
// getters and setters
}
public class StudentManager {
private ArrayList<Student> students;
public StudentManager() {
students = new ArrayList<>();
}
// 存储学生
public void addStudent(Student student) {
students.add(student);
}
// 删除学生
public boolean removeStudent(int id) {
for (int i = 0; i < students.size(); i++) {
if (students.get(i).getId() == id) {
students.remove(i);
return true;
}
}
return false;
}
// 查找学生
public Student findStudent(int id) {
for (Student student : students) {
if (student.getId() == id) return student;
}
return null;
}
// 打印所有学生信息
public void printStudents() {
for (Student student : students) {
System.out.println("学号: " + student.getId() + ", 姓名: " + student.getName() + ", 成绩: " + student.getScore());
}
}
}
```
为了演示如何使用这个`StudentManager`,你可以按照以下步骤:
1. 创建并添加学生到列表:
```java
StudentManager manager = new StudentManager();
manager.addStudent(new Student(1, "张三", 90));
// 更多添加...
```
2. 打印学生列表:
```java
manager.printStudents();
```
3. 插入、查找或删除学生:
```java
// 插入学生
manager.addStudent(new Student(2, "李四", 85));
// 查找学生
Student foundStudent = manager.findStudent(1);
if (foundStudent != null) {
System.out.println("找到的学生: " + foundStudent.getName());
} else {
System.out.println("未找到该学生");
}
// 删除学生
if (manager.removeStudent(1)) {
System.out.println("学生已从列表中移除");
} else {
System.out.println("找不到该学生");
}
```
注意:由于这里是一个文本环境,无法提供实际的输出截图,你需要在Java环境中运行上述代码才能看到效果。如果你需要进一步的帮助或者有其他疑问,随时提问。
阅读全文