成绩管理系统java
时间: 2023-12-03 15:40:04 浏览: 26
以下是一个简单的Java成绩管理系统的实现,包括录入学生成绩、查询学生成绩、输出学生按成绩的排名、输出学科的分数四个功能:
```java
import java.util.*;
public class ScoreManagementSystem {
private Map<String, Map<String, Integer>> scoreMap; // 用Map存储学生成绩信息
public ScoreManagementSystem() {
scoreMap = new HashMap<>();
}
// 录入成绩
public void inputScore() {
Scanner scanner = new Scanner(System.in);
System.out.print("请输入学生学号:");
String id = scanner.next();
System.out.print("请输入学生姓名:");
String name = scanner.next();
System.out.print("请输入应用数学成绩:");
int mathScore = scanner.nextInt(); System.out.print("请输入大学英语成绩:");
int englishScore = scanner.nextInt();
System.out.print("请输入Java程序设计成绩:");
int javaScore = scanner.nextInt();
System.out.print("请输入计算机应用基础成绩:");
int computerScore = scanner.nextInt();
Map<String, Integer> studentScoreMap = new HashMap<>();
studentScoreMap.put("应用数学", mathScore);
studentScoreMap.put("大学英语", englishScore);
studentScoreMap.put("Java程序设计", javaScore);
studentScoreMap.put("计算机应用基础", computerScore);
scoreMap.put(id + " " + name, studentScoreMap);
System.out.println("学生成绩录入成功!");
}
// 查询学生成绩
public void queryScore() {
Scanner scanner = new Scanner(System.in);
System.out.print("请输入要查询的学生学号:");
String id = scanner.next();
System.out.print("请输入要查询的学生姓名:");
String name = scanner.next();
Map<String, Integer> studentScoreMap = scoreMap.get(id + " " + name);
if (studentScoreMap == null) {
System.out.println("未找到该学生的成绩信息!");
} else {
System.out.println("学生" + name + "的成绩如下:");
for (Map.Entry<String, Integer> entry : studentScoreMap.entrySet()) {
System.out.println(entry.getKey() + ":" + entry.getValue());
}
}
}
// 输出学生按成绩的排名
public void outputRank() {
List<Map.Entry<String, Map<String, Integer>>> list = new ArrayList<>(scoreMap.entrySet());
Collections.sort(list, new Comparator<Map.Entry<String, Map<String, Integer>>>() {
@Override
public int compare(Map.Entry<String, Map<String, Integer>> o1, Map.Entry<String, Map<String, Integer>> o2) {
int sum1 = 0, sum2 = 0;
for (int score : o1.getValue().values()) {
sum1 += score;
}
for (int score : o2.getValue().values()) {
sum2 += score;
}
return sum2 - sum1;
}
});
System.out.println("学生成绩排名如下:");
for (int i = 0; i < list.size(); i++) {
System.out.println("第" + (i + 1) + "名:" + list.get(i).getKey());
}
}
// 输出学科的分数
public void outputSubjectScore() {
Scanner scanner = new Scanner(System.in);
System.out.print("请输入要查询的学科名称:");
String subject = scanner.next();
System.out.println(subject + "的成绩如下:");
for (Map<String, Integer> studentScoreMap : scoreMap.values()) {
System.out.println(studentScoreMap.get(subject));
}
}
public static void main(String[] args) {
ScoreManagementSystem system = new ScoreManagementSystem();
Scanner scanner = new Scanner(System.in);
while (true) {
System.out.println("请选择要进行的操作:");
System.out.println("1. 录入成绩");
System.out.println("2. 查询学生成绩");
System.out.println("3. 输出学生按成绩的排名");
System.out.println("4. 输出学科的分数");
System.out.println("5. 退出系统");
int choice = scanner.nextInt();
switch (choice) {
case 1:
system.inputScore();
break;
case 2:
system.queryScore();
break;
case 3:
system.outputRank();
break;
case 4:
system.outputSubjectScore();
break;
case 5:
System.exit(0);
default:
System.out.println("输入有误,请重新输入!");
}
}
}
}
```