用Java写一个成绩查询的类,在构造方法中map,单独写一个成绩初始化的方法,另写一个成绩查询的方法:当从键盘输入学生名称,即返回课程成绩。当输入exit时退出。
时间: 2024-05-12 21:19:17 浏览: 62
以下是一个可能的实现:
```java
import java.util.HashMap;
import java.util.Map;
import java.util.Scanner;
public class GradeQuery {
private Map<String, Integer> grades;
public GradeQuery() {
grades = new HashMap<>();
initGrades();
}
private void initGrades() {
grades.put("Alice", 85);
grades.put("Bob", 92);
grades.put("Charlie", 78);
grades.put("David", 90);
grades.put("Eve", 88);
}
public void queryGrades() {
Scanner scanner = new Scanner(System.in);
while (true) {
System.out.print("Please enter student name (or exit to quit): ");
String name = scanner.nextLine();
if (name.equalsIgnoreCase("exit")) {
break;
}
Integer grade = grades.get(name);
if (grade != null) {
System.out.println(name + "'s grade is " + grade);
} else {
System.out.println("No record found for " + name);
}
}
scanner.close();
}
}
```
在构造方法中,我们初始化了一个HashMap实例来存储学生的成绩。在初始化方法中,我们手动添加了一些数据作为示例。
成绩查询方法中,我们使用了Scanner类来从键盘读取输入。在每次循环中,我们提示用户输入学生姓名,并读取用户的输入。如果用户输入了exit,我们就退出循环。
如果用户输入了一个合法的学生姓名,我们就从HashMap中查找对应的成绩,并打印出来。如果没有找到对应的记录,我们就告诉用户没有找到。
注意到在这个实现中,我们假设用户输入的姓名是唯一的,即每个姓名只对应一个成绩。如果实际情况不是这样,我们可能需要调整代码来支持多个成绩的查询。
阅读全文