java 编程成绩统计程序,要求运行时提示输入逗号分隔的多个成绩分数,然后对这些分数按从大到小(降序)排序,并找出最高和最低分,统计平均分
时间: 2024-09-29 16:14:34 浏览: 124
Java输入三个整数并把他们由小到大输出(x,y,z)
5星 · 资源好评率100%
在 Java 中编写一个简单的成绩统计程序,你可以创建一个 `Score` 类来表示单个成绩,然后使用 `Scanner` 类获取用户输入,存储在数组或列表中。接下来,我们可以使用 `Collections.sort()` 或者自定义比较器对成绩进行排序。最后计算最高分、最低分和平均分。以下是简化的代码示例:
```java
import java.util.*;
class Score {
int value;
public Score(int score) {
this.value = score;
}
@Override
public String toString() {
return "Score: " + value;
}
}
public class GradeStatistics {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
System.out.println("请输入逗号分隔的成绩(例如: 90,85,95):");
String input = scanner.nextLine();
String[] scores = input.split(",");
List<Score> scoreList = new ArrayList<>();
for (String scoreStr : scores) {
try {
scoreList.add(new Score(Integer.parseInt(scoreStr)));
} catch (NumberFormatException e) {
System.err.println("无效的成绩值,请输入整数!");
return;
}
}
// 对成绩进行降序排列
Collections.sort(scoreList, Collections.reverseOrder());
double sum = 0;
Score maxScore = scoreList.get(0), minScore = scoreList.get(0);
// 计算总分、最高分和最低分
for (Score s : scoreList) {
sum += s.value;
if (s.value > maxScore.value) {
maxScore = s;
}
if (s.value < minScore.value) {
minScore = s;
}
}
// 计算并打印平均分
double average = sum / scoreList.size();
System.out.printf("最高分: %d%n", maxScore.value);
System.out.printf("最低分: %d%n", minScore.value);
System.out.printf("平均分: %.2f%n", average);
scanner.close();
}
}
```
阅读全文