13.实现一个程序,使用HashMap存储学生姓名和对应的分数,并能够根据姓名查询分数。
下面是一个简单的Java程序,使用HashMap存储学生姓名和对应的分数,并能够根据姓名查询分数。
java复制代码
import java.util.HashMap; | |
import java.util.Scanner; | |
public class StudentScores { | |
private HashMap<String, Integer> scores; | |
public StudentScores() { | |
scores = new HashMap<>(); | |
} | |
// 添加学生分数 | |
public void addScore(String name, int score) { | |
scores.put(name, score); | |
} | |
// 查询学生分数 | |
public Integer getScore(String name) { | |
return scores.get(name); | |
} | |
// 主程序,用于交互 | |
public static void main(String[] args) { | |
StudentScores studentScores = new StudentScores(); | |
Scanner scanner = new Scanner(System.in); | |
// 添加学生分数 | |
System.out.println("请输入学生姓名和分数(输入 q 退出):"); | |
while (true) { | |
String name = scanner.nextLine(); | |
if (name.equals("q")) { | |
break; | |
} | |
int score; | |
try { | |
score = scanner.nextInt(); | |
} catch (Exception e) { | |
System.out.println("输入错误,请输入一个整数作为分数。"); | |
continue; | |
} | |
studentScores.addScore(name, score); | |
System.out.println("已添加学生:" + name + ",分数:" + score); | |
} | |
// 查询学生分数 | |
System.out.println("请输入要查询的学生姓名(输入 q 退出):"); | |
while (true) { | |
String name = scanner.nextLine(); | |
if (name.equals("q")) { | |
break; | |
} | |
Integer score = studentScores.getScore(name); | |
if (score != null) { | |
System.out.println("学生:" + name + ",分数:" + score); | |
} else { | |
System.out.println("未找到学生:" + name); | |
} | |
} | |
scanner.close(); | |
} | |
} |
这个程序首先创建了一个StudentScores类,该类内部使用一个HashMap来存储学生姓名和分数。该类有两个方法:addScore用于添加学生分数,getScore用于查询学生分数。
在main方法中,我们创建了一个StudentScores对象,并使用Scanner来从控制台读取用户输入。用户可以通过输入学生姓名和分数来添加学生分数,也可以输入学生姓名来查询分数。当用户输入"q"时,程序会退出当前的输入循环。
注意:这个程序没有进行详细的错误处理,例如检查输入的学生姓名是否已存在等。在实际使用中,你可能需要增加更多的错误处理逻辑。