Java定义数组,存放5个学生的成绩(成绩值自己设定),将成绩从大到小排序,计算并显示输出成绩总和,平均成绩,最小成绩,最大成绩。代码并注释
时间: 2024-10-29 16:12:17 浏览: 22
在Java中,你可以使用`ArrayList`来定义数组(因为数组长度固定,这里我们选择ArrayList方便插入元素),然后添加学生成绩、排序并计算相应的统计信息。以下是完整的代码及注释:
```java
import java.util.ArrayList;
import java.util.Collections; // 导入Collections库,用于排序
public class StudentGrades {
// 定义一个ArrayList来存储学生的成绩
private ArrayList<Integer> scores = new ArrayList<>();
// 添加学生分数的方法
public void addScore(int score) {
scores.add(score); // 将成绩添加到列表中
}
// 打印学生成绩的方法
public void displayScores() {
System.out.println("学生成绩:");
for (int score : scores) {
System.out.print(score + " ");
}
System.out.println(); // 换行
}
// 对成绩进行降序排序
public void sortScoresDesc() {
Collections.sort(scores, Collections.reverseOrder()); // 使用Collections.sort方法,传入reverseOrder()进行降序排列
}
// 计算成绩总和、平均分、最小分和最大分
public void calculateStats() {
int total = 0;
double average = scores.stream().mapToInt(Integer::intValue).average().orElse(Double.NaN); // 使用Stream API计算平均分
int min = Collections.min(scores); // 使用Collections.min找到最小分
int max = Collections.max(scores); // 使用Collections.max找到最大分
System.out.println("成绩总和:" + total);
System.out.println("平均成绩:" + average);
System.out.println("最小成绩:" + min);
System.out.println("最大成绩:" + max);
}
public static void main(String[] args) {
StudentGrades studentGrades = new StudentGrades();
// 设置5个学生的成绩,例如随机生成
studentGrades.addScore(95);
studentGrades.addScore(88);
studentGrades.addScore(90);
studentGrades.addScore(97);
studentGrades.addScore(85);
// 排序并显示原始成绩
studentGrades.displayScores();
studentGrades.sortScoresDesc();
studentGrades.displayScores();
// 计算并显示统计信息
studentGrades.calculateStats();
}
}
阅读全文