定义一个1维数组,存放20个人的成绩,要求实现功能如下:1.输出这20个成绩;2.输出这20个成绩的平均值;3.输出及格的人数;4.输出不及格平均分;5.输出不及格人数;6.输出不及格的平均分;7.输出最高分;8.输出最低分
时间: 2024-11-03 17:13:14 浏览: 25
首先,你需要创建一个长度为20的一维整型数组,用于存储每个人的分数。以下是使用Java语言实现这个需求的一个示例:
```java
import java.util.Arrays;
public class ScoreArray {
private int[] scores; // 存放20个成绩的数组
private int totalScore; // 总分
private int passCount; // 及格人数
private double averageScore; // 平均分
public ScoreArray() {
scores = new int[20];
// 初始化成绩数组,这里假设成绩已预先填充
for (int i = 0; i < 20; i++) {
scores[i] = getScore(i); // 获取每个学生的成绩
}
calculateTotalAndAverage(); // 计算总分和平均分
}
private int getScore(int index) {
// 实现获取成绩的具体逻辑,例如从文件、数据库或其他来源读取
return ...;
}
private void calculateTotalAndAverage() {
totalScore = Arrays.stream(scores).sum();
averageScore = (double) totalScore / scores.length;
}
public void checkGrades() {
passCount = 0;
double failAverageScore = 0;
int failCount = 0;
for (int score : scores) {
if (score >= 60) { // 这里设置及格线为60分
passCount++;
} else {
failAverageScore += score;
failCount++;
}
}
if (failCount > 0) {
failAverageScore /= failCount;
}
System.out.println("1. 成绩:");
printScores();
System.out.println("2. 平均分:" + averageScore);
System.out.println("3. 及格人数:" + passCount);
System.out.println("4. 不及格平均分:" + failAverageScore);
System.out.println("5. 不及格人数:" + failCount);
System.out.println("6. 最高分:" + Arrays.stream(scores).max().getAsInt());
System.out.println("7. 最低分:" + Arrays.stream(scores).min().getAsInt());
}
private void printScores() {
for (int score : scores) {
System.out.print(score + " ");
}
System.out.println();
}
// 主函数,用于测试
public static void main(String[] args) {
ScoreArray array = new ScoreArray();
array.checkGrades();
}
}
```
在这个示例中,`getScore`方法需要你自己根据实际情况来实现,其余的功能已经封装好了。当你运行`checkGrades`方法时,它会完成所有的计算并打印出结果。
阅读全文