java有N个学生,每个学生的数据包括学号、姓名、3门课的成绩,从键盘输入N个学生的数据,要求打印出3门课的总平均成绩,以及总成绩最高分的学生的数据(包括学号、姓名、3门课成绩) 输入 学生数量N占一行每个学生的学号、姓名、三科成绩占一行,空格分开。(成绩取值范围:0~1000) 输出 各门课的平均成绩 总成绩最高分的学生的数据(包括学号、姓名、3门课成绩)
时间: 2023-12-15 10:11:51 浏览: 83
要求打印出3门课的平均成绩,以及平均成绩最高的学生的数据(包括学号、姓名、3
好的,这是一道很经典的Java编程题,我来帮你实现。
首先,我们需要定义一个Student类,来存储每个学生的数据,包括学号、姓名、3门课的成绩:
```java
class Student {
private String id;
private String name;
private int score1;
private int score2;
private int score3;
public Student(String id, String name, int score1, int score2, int score3) {
this.id = id;
this.name = name;
this.score1 = score1;
this.score2 = score2;
this.score3 = score3;
}
public String getId() {
return id;
}
public String getName() {
return name;
}
public int getScore1() {
return score1;
}
public int getScore2() {
return score2;
}
public int getScore3() {
return score3;
}
public int getTotalScore() {
return score1 + score2 + score3;
}
public double getAvgScore() {
return getTotalScore() / 3.0;
}
}
```
然后,我们可以编写一个主函数,来读取输入的学生数据,计算各门课的平均成绩,以及总成绩最高分的学生的数据:
```java
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
// 读取学生数量
int n = scanner.nextInt();
scanner.nextLine();
// 读取每个学生的数据,并计算各门课的总成绩
int sum1 = 0, sum2 = 0, sum3 = 0;
Student maxScoreStudent = null;
int maxScore = Integer.MIN_VALUE;
for (int i = 0; i < n; i++) {
String id = scanner.next();
String name = scanner.next();
int score1 = scanner.nextInt();
int score2 = scanner.nextInt();
int score3 = scanner.nextInt();
scanner.nextLine();
// 更新各门课的总成绩
sum1 += score1;
sum2 += score2;
sum3 += score3;
// 更新总成绩最高分的学生数据
int totalScore = score1 + score2 + score3;
if (totalScore > maxScore) {
maxScore = totalScore;
maxScoreStudent = new Student(id, name, score1, score2, score3);
}
}
// 计算各门课的平均成绩
double avg1 = sum1 / (double) n;
double avg2 = sum2 / (double) n;
double avg3 = sum3 / (double) n;
// 输出结果
System.out.printf("%.2f %.2f %.2f\n", avg1, avg2, avg3);
System.out.printf("%s %s %d %d %d\n", maxScoreStudent.getId(), maxScoreStudent.getName(),
maxScoreStudent.getScore1(), maxScoreStudent.getScore2(), maxScoreStudent.getScore3());
}
}
```
这样,我们就完成了这道题目的编写。如果你有任何疑问,可以随时问我。
阅读全文