用Java实现具有选课功能,且可按班级输出学生成绩平均分,输出课程平均分的代码
时间: 2024-02-21 21:56:49 浏览: 13
好的,以下是一个简单的 Java 代码实现,实现了选课功能,并且可以按班级输出学生成绩平均分和输出课程平均分:
```java
import java.util.*;
public class CourseSelection {
public static void main(String[] args) {
// 定义班级和课程
String[] classes = {"ClassA", "ClassB", "ClassC"};
String[] courses = {"Math", "English", "Computer"};
// 初始化学生成绩
Map<String, Map<String, Integer>> scores = new HashMap<>();
for (String clazz : classes) {
Map<String, Integer> classScores = new HashMap<>();
for (String course : courses) {
classScores.put(course, 0);
}
scores.put(clazz, classScores);
}
// 开始选课
Scanner scanner = new Scanner(System.in);
while (true) {
System.out.println("请输入学生姓名和班级(以空格分隔),输入 q 结束选课:");
String input = scanner.nextLine().trim();
if (input.equals("q")) {
break;
}
String[] parts = input.split(" ");
String name = parts[0];
String clazz = parts[1];
if (!Arrays.asList(classes).contains(clazz)) {
System.out.println("班级输入错误,请重新输入!");
continue;
}
System.out.println("请选择课程编号(1. Math,2. English,3. Computer):");
int courseIndex = scanner.nextInt();
scanner.nextLine(); // 读取换行符
if (courseIndex < 1 || courseIndex > 3) {
System.out.println("课程编号输入错误,请重新输入!");
continue;
}
String course = courses[courseIndex - 1];
System.out.println("请输入成绩:");
int score = scanner.nextInt();
scanner.nextLine(); // 读取换行符
if (score < 0 || score > 100) {
System.out.println("成绩输入错误,请重新输入!");
continue;
}
scores.get(clazz).put(course, scores.get(clazz).get(course) + score);
System.out.println("选课成功!");
}
// 输出学生成绩平均分
System.out.println("按班级输出学生成绩平均分:");
for (String clazz : classes) {
Map<String, Integer> classScores = scores.get(clazz);
int sum = 0;
for (String course : courses) {
sum += classScores.get(course);
}
double average = (double) sum / courses.length;
System.out.println(clazz + " 平均分:" + average);
}
// 输出课程平均分
System.out.println("输出课程平均分:");
for (String course : courses) {
int sum = 0;
for (String clazz : classes) {
sum += scores.get(clazz).get(course);
}
double average = (double) sum / classes.length;
System.out.println(course + " 平均分:" + average);
}
}
}
```
这个代码实现了一个简单的选课功能,可以按班级输出学生成绩平均分和输出课程平均分。当然,这只是一个简单的实现,实际应用中可能需要更加完善的功能和更加严格的代码实现。