在Java编写同一个功能的应用程序,实现下列功能: 输入20名同学的学号、姓名、三门课程成绩; 计算每位同学的总分与平均分; 输出成绩表、显示总分最高分与最低分学生的成绩信息。
时间: 2024-10-25 12:03:22 浏览: 60
在Java中,你可以通过创建一个`Student`类来存储学号、姓名和三门课程的成绩,并定义相关的getter和setter方法。然后,可以创建一个`ScoreCalculator`类负责处理数据的录入、计算以及结果显示。以下是一个简单的示例:
```java
// 定义学生类 Student
class Student {
private int id;
private String name;
private double[] scores = new double[3]; // 学生三门课的成绩
public Student(int id, String name) {
this.id = id;
this.name = name;
}
// getter and setter methods for id, name, and scores
// ...
// 计算总分和平均分
public double getTotalScore() {
return scores[0] + scores[1] + scores[2];
}
public double getAverageScore() {
if (scores[0] + scores[1] + scores[2] != 0)
return getTotalScore() / 3;
else
return 0; // 防止除以零的情况
}
}
// 创建 ScoreCalculator 类
class ScoreCalculator {
List<Student> students = new ArrayList<>();
void inputStudents() {
Scanner scanner = new Scanner(System.in);
for (int i = 0; i < 20; i++) {
System.out.println("请输入第" + (i+1) + "位同学的信息:");
int id = scanner.nextInt();
String name = scanner.next();
double score1 = scanner.nextDouble();
double score2 = scanner.nextDouble();
double score3 = scanner.nextDouble();
students.add(new Student(id, name, new double[]{score1, score2, score3}));
}
}
void calculateAndDisplay() {
System.out.println("\n成绩表:");
for (Student student : students) {
System.out.printf("学生ID: %d, 姓名: %s, 总分: %.2f, 平均分: %.2f%n",
student.getId(), student.getName(), student.getTotalScore(), student.getAverageScore());
}
// 找出最高分和最低分的学生
Student maxScoreStudent = students.stream().max(Comparator.comparing(Student::getTotalScore)).orElse(null);
Student minScoreStudent = students.stream().min(Comparator.comparing(Student::getTotalScore)).orElse(null);
System.out.println("\n最高分学生信息: ID - " + (maxScoreStudent == null ? "未知" : maxScoreStudent.getId()) +
", 成绩: " + Arrays.toString(maxScoreStudent.scores));
System.out.println("最低分学生信息: ID - " + (minScoreStudent == null ? "未知" : minScoreStudent.getId()) +
", 成绩: " + Arrays.toString(minScoreStudent.scores));
}
public static void main(String[] args) {
ScoreCalculator calculator = new ScoreCalculator();
calculator.inputStudents();
calculator.calculateAndDisplay();
}
}
```
在这个示例中,我们首先创建了学生对象并输入他们的信息,然后计算每个学生的总分和平均分,并找出最高分和最低分的学生。
阅读全文
相关推荐


















