请帮我写一个JAVA代码: 1、某宿舍有6名学生,近期进行了Java和数据结构两门课的测试。请编写Java程序计算并输出该宿舍学生两门课各自的平均成绩和每门课各自的最高成绩。 要求:两门课的成绩通过一个二维数组保存,成绩通过键盘录入。
时间: 2024-09-22 15:02:00 浏览: 67
以下是帮助你完成这个Java程序的一个示例:
import java.util.Scanner;
public class DormitoryScoreCalculator {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
int studentsCount = 6;
double[][] scores = new double[studentsCount][2]; // 两门课的成绩,0代表Java,1代表数据结构
System.out.println("请输入每位学生的两门课程成绩(Java,数据结构):");
for (int i = 0; i < studentsCount; i++) {
for (int j = 0; j < 2; j++) {
System.out.printf("学生%d的第%scourse成绩: ", i + 1, (j == 0) ? "Java" : "数据结构");
scores[i][j] = scanner.nextDouble();
}
}
// 计算平均成绩
double javaAverage = calculateAverage(scores, 0);
double dataStructureAverage = calculateAverage(scores, 1);
// 计算最高分
double javaMax = findMax(scores, 0);
double dataStructureMax = findMax(scores, 1);
System.out.println("\n宿舍学生的成绩统计:");
System.out.printf("Java平均成绩: %.2f\n", javaAverage);
System.out.printf("数据结构平均成绩: %.2f\n", dataStructureAverage);
System.out.printf("Java最高分: %.2f\n", javaMax);
System.out.printf("数据结构最高分: %.2f\n", dataStructureMax);
}
private static double calculateAverage(double[][] scores, int courseIndex) {
double sum = 0;
for (double score : scores) {
sum += score[courseIndex];
}
return sum / scores.length;
}
private static double findMax(double[][] scores, int courseIndex) {
double max = scores[0][courseIndex];
for (double[] studentScores : scores) {
if (studentScores[courseIndex] > max) {
max = studentScores[courseIndex];
}
}
return max;
}
}
在这个程序中,我们首先创建了一个二维数组来存储每个学生的两门课程成绩。然后,通过calculateAverage
方法计算平均成绩,并通过findMax
方法找出每门课程的最高分。最后,将结果输出到控制台。