输入多个学生的成绩信息,包括:学号、姓名、成绩。 学号是每个学生的唯一识别号,互不相同。 姓名可能会存在重复。 使用HashMap存储学生信息,并实现根据学号的检索功能
时间: 2024-03-07 07:47:17 浏览: 29
好的,我可以帮你实现这个功能。以下是示例代码:
```java
import java.util.HashMap;
import java.util.Map;
import java.util.Scanner;
public class StudentGradeSystem {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
Map<Integer, Student> studentMap = new HashMap<>();
// 输入学生信息
System.out.print("请输入学生数目:");
int n = scanner.nextInt();
for (int i = 0; i < n; i++) {
System.out.print("请输入第" + (i + 1) + "个学生的学号:");
int id = scanner.nextInt();
System.out.print("请输入第" + (i + 1) + "个学生的姓名:");
String name = scanner.next();
System.out.print("请输入第" + (i + 1) + "个学生的成绩:");
double score = scanner.nextDouble();
Student student = new Student(id, name, score);
studentMap.put(id, student);
}
// 根据学号检索学生信息
System.out.print("请输入要检索的学生的学号:");
int searchId = scanner.nextInt();
if (studentMap.containsKey(searchId)) {
Student student = studentMap.get(searchId);
System.out.println("学号:" + student.getId());
System.out.println("姓名:" + student.getName());
System.out.println("成绩:" + student.getScore());
} else {
System.out.println("未找到该学生的信息!");
}
}
}
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;
}
public int getId() {
return id;
}
public String getName() {
return name;
}
public double getScore() {
return score;
}
}
```
以上代码中,我们使用了HashMap来存储学生信息,其中学号作为key,对应的学生信息作为value。当需要检索学生信息时,我们只需要根据学号从HashMap中获取对应的学生信息即可。