设计一个学生信息管理系统,学生对象至少要包含:学号、姓名、成绩等信息。要求实现以下功能: 1、查找 2、排序
时间: 2024-12-19 18:17:42 浏览: 19
设计一个学生信息管理系统,我们可以使用面向对象的方式,创建一个名为`Student`的类来存储学生的相关信息。这个类应该包括属性如学号(`studentID`)、姓名(`name`)和成绩(`score`)。为了实现查找和排序的功能,可以添加以下方法:
```java
public class Student {
private String studentID;
private String name;
private double score;
// 构造函数
public Student(String studentID, String name, double score) {
this.studentID = studentID;
this.name = name;
this.score = score;
}
// 获取和设置方法
public String getStudentID() { return studentID; }
public void setStudentID(String studentID) { this.studentID = studentID; }
public String getName() { return name; }
public void setName(String name) { this.name = name; }
public double getScore() { return score; }
public void setScore(double score) { this.score = score; }
// 查找特定学生
public static List<Student> searchByStudentID(String targetID) {
// 这里需要实际的数据结构(如ArrayList)来存储学生列表,这里假设有个StudentsList全局变量
if (StudentsList != null) {
return StudentsList.stream()
.filter(s -> s.getStudentID().equals(targetID))
.collect(Collectors.toList());
} else {
throw new NullPointerException("No student data available.");
}
}
// 按照分数排序
public static List<Student> sortByScoreDesc() {
// 使用Collections.sort(),传入自定义比较器来按降序排列
Collections.sort(StudentsList, Comparator.comparing(Student::getScore).reversed());
return StudentsList;
}
}
// 使用示例
public static void main(String[] args) {
List<Student> students = new ArrayList<>();
students.add(new Student("001", "张三", 85));
students.add(new Student("002", "李四", 92));
// 查找学号为"001"的学生
List<Student> result = Student.searchByStudentID("001");
for (Student s : result) {
System.out.println(s.getName() + " (" + s.getScore() + ")");
}
// 按照分数降序排列所有学生
result = Student.sortByScoreDesc();
for (Student s : result) {
System.out.println(s.getName() + " (" + s.getScore() + ")");
}
}
```
阅读全文