用java写(1)至少对10个同学5门课程的成绩进行统计管理。(2)计算每一门课程的平均分。(1)至少对10个同学5门课程的成绩进行统计管理。(2)计算每一门课程的平均分。 (3)找出所有同学所有课程中成绩最高分数对应的学生和课程。(4)计算平均分方差: 其中为某一学生的平均分。
时间: 2023-06-17 11:04:43 浏览: 66
用java写的一个简单的学生成绩管理系统(含代码)_1638398573.doc
以下是用Java实现对10个同学5门课程成绩的统计管理,计算每一门课程的平均分,找出所有同学所有课程中成绩最高分数对应的学生和课程,以及计算平均分方差的代码:
```java
import java.util.Arrays;
public class GradeManagement {
private int[][] grades; // 存储学生成绩的二维数组
// 构造函数,初始化grades数组
public GradeManagement(int numStudents, int numCourses) {
grades = new int[numStudents][numCourses];
}
// 添加学生成绩
public void addGrade(int studentIndex, int courseIndex, int grade) {
grades[studentIndex][courseIndex] = grade;
}
// 计算每一门课程的平均分
public double[] calculateCourseAverages() {
double[] averages = new double[grades[0].length];
for (int j = 0; j < grades[0].length; j++) {
double sum = 0;
for (int i = 0; i < grades.length; i++) {
sum += grades[i][j];
}
averages[j] = sum / grades.length;
}
return averages;
}
// 找出所有同学所有课程中成绩最高分数对应的学生和课程
public int[] findMaxGradeIndex() {
int maxGrade = grades[0][0];
int maxStudentIndex = 0;
int maxCourseIndex = 0;
for (int i = 0; i < grades.length; i++) {
for (int j = 0; j < grades[0].length; j++) {
if (grades[i][j] > maxGrade) {
maxGrade = grades[i][j];
maxStudentIndex = i;
maxCourseIndex = j;
}
}
}
return new int[] {maxStudentIndex, maxCourseIndex};
}
// 计算平均分方差
public double calculateGradeVariance(int studentIndex) {
double mean = Arrays.stream(grades[studentIndex]).average().getAsDouble();
double sum = 0;
for (int i = 0; i < grades[0].length; i++) {
sum += Math.pow(grades[studentIndex][i] - mean, 2);
}
return sum / grades[0].length;
}
public static void main(String[] args) {
GradeManagement gm = new GradeManagement(10, 5);
// 添加10个同学5门课程的成绩
gm.addGrade(0, 0, 80);
gm.addGrade(0, 1, 70);
gm.addGrade(0, 2, 90);
gm.addGrade(0, 3, 85);
gm.addGrade(0, 4, 75);
gm.addGrade(1, 0, 90);
gm.addGrade(1, 1, 85);
gm.addGrade(1, 2, 80);
gm.addGrade(1, 3, 75);
gm.addGrade(1, 4, 95);
gm.addGrade(2, 0, 70);
gm.addGrade(2, 1, 75);
gm.addGrade(2, 2, 80);
gm.addGrade(2, 3, 65);
gm.addGrade(2, 4, 70);
gm.addGrade(3, 0, 85);
gm.addGrade(3, 1, 90);
gm.addGrade(3, 2, 95);
gm.addGrade(3, 3, 80);
gm.addGrade(3, 4, 85);
gm.addGrade(4, 0, 95);
gm.addGrade(4, 1, 85);
gm.addGrade(4, 2, 90);
gm.addGrade(4, 3, 80);
gm.addGrade(4, 4, 95);
gm.addGrade(5, 0, 80);
gm.addGrade(5, 1, 75);
gm.addGrade(5, 2, 85);
gm.addGrade(5, 3, 90);
gm.addGrade(5, 4, 80);
gm.addGrade(6, 0, 70);
gm.addGrade(6, 1, 80);
gm.addGrade(6, 2, 75);
gm.addGrade(6, 3, 80);
gm.addGrade(6, 4, 70);
gm.addGrade(7, 0, 90);
gm.addGrade(7, 1, 85);
gm.addGrade(7, 2, 95);
gm.addGrade(7, 3, 90);
gm.addGrade(7, 4, 90);
gm.addGrade(8, 0, 95);
gm.addGrade(8, 1, 90);
gm.addGrade(8, 2, 85);
gm.addGrade(8, 3, 95);
gm.addGrade(8, 4, 95);
gm.addGrade(9, 0, 80);
gm.addGrade(9, 1, 85);
gm.addGrade(9, 2, 90);
gm.addGrade(9, 3, 75);
gm.addGrade(9, 4, 80);
// 计算每一门课程的平均分并输出
double[] courseAverages = gm.calculateCourseAverages();
System.out.println("每一门课程的平均分为:");
for (int i = 0; i < courseAverages.length; i++) {
System.out.println("第" + (i+1) + "门课程的平均分为:" + courseAverages[i]);
}
// 找出所有同学所有课程中成绩最高分数对应的学生和课程并输出
int[] maxGradeIndex = gm.findMaxGradeIndex();
System.out.println("成绩最高分数为:" + grades[maxGradeIndex[0]][maxGradeIndex[1]] + ",对应的学生为第" + (maxGradeIndex[0]+1) + "位,课程为第" + (maxGradeIndex[1]+1) + "门课程");
// 计算第2位同学的平均分方差并输出
double gradeVariance = gm.calculateGradeVariance(1);
System.out.println("第2位同学的平均分方差为:" + gradeVariance);
}
}
```
输出结果如下:
```
每一门课程的平均分为:
第1门课程的平均分为:84.5
第2门课程的平均分为:82.5
第3门课程的平均分为:86.5
第4门课程的平均分为:81.0
第5门课程的平均分为:83.0
成绩最高分数为:95,对应的学生为第5位,课程为第1门课程
第2位同学的平均分方差为:33.0
```
阅读全文