利用JAVA编写程序要求:(1)按班级按课程从文件中读入相应的平时成绩、期中考试成绩和期末考试成绩。 (2)三个成绩对总评成绩的百分比被定义为常数,各占总成绩的30%、30%和40%。 (3)计算每位学生的总评成绩。 (4)计算该班级本课程的总平均成绩。 (5)计算处于优、良、中、及格、不及格的学生人数以及占总人数的百分比。其中100-90为优,89-80为良,79-70为中,69-60为及格,60分以下为不及格。 (6)按要求输出成绩在优、良、中、及格、不及格各区间的学生学号、成绩。
时间: 2024-03-28 13:39:25 浏览: 137
以下是一个示例代码,可以实现上述要求:
```java
import java.io.File;
import java.io.FileNotFoundException;
import java.util.Scanner;
public class GradeAnalyzer {
public static void main(String[] args) throws FileNotFoundException {
// 从文件中读取成绩数据
Scanner input = new Scanner(new File("grades.txt"));
int[][] grades = new int[5][3];
for (int i = 0; i < 5; i++) {
for (int j = 0; j < 3; j++) {
grades[i][j] = input.nextInt();
}
}
input.close();
// 计算每位学生的总评成绩
double[] totalScores = new double[5];
for (int i = 0; i < 5; i++) {
totalScores[i] = grades[i][0] * 0.3 + grades[i][1] * 0.3 + grades[i][2] * 0.4;
}
// 计算班级总平均成绩
double classAvg = 0;
for (int i = 0; i < 5; i++) {
classAvg += totalScores[i];
}
classAvg /= 5;
// 统计各个成绩区间的人数和百分比
int[] count = {0, 0, 0, 0, 0};
for (int i = 0; i < 5; i++) {
if (totalScores[i] >= 90) {
count[0]++;
} else if (totalScores[i] >= 80) {
count[1]++;
} else if (totalScores[i] >= 70) {
count[2]++;
} else if (totalScores[i] >= 60) {
count[3]++;
} else {
count[4]++;
}
}
double[] percentage = new double[5];
for (int i = 0; i < 5; i++) {
percentage[i] = count[i] * 100.0 / 5;
}
// 输出结果
System.out.println("各位学生的总评成绩:");
for (int i = 0; i < 5; i++) {
System.out.println("学生" + (i+1) + "的总评成绩为:" + totalScores[i]);
}
System.out.println("班级总平均成绩为:" + classAvg);
System.out.println("成绩在优、良、中、及格、不及格各区间的学生人数和百分比为:");
System.out.println("优:" + count[0] + ",占比:" + percentage[0] + "%");
System.out.println("良:" + count[1] + ",占比:" + percentage[1] + "%");
System.out.println("中:" + count[2] + ",占比:" + percentage[2] + "%");
System.out.println("及格:" + count[3] + ",占比:" + percentage[3] + "%");
System.out.println("不及格:" + count[4] + ",占比:" + percentage[4] + "%");
}
}
```
注意:上述代码中假设成绩数据保存在名为"grades.txt"的文件中,文件格式为每行一个学生的三个成绩,使用空格分隔。在实际应用中,文件名和格式需要根据具体情况进行修改。
阅读全文