仔细阅读右侧编辑区内给出的代码框架及注释,在 Begin-End 间编写程序代码,接收给定的一行字符串(某学生各科成绩),当某科成绩大于 100 或者小于 0 时,抛出一个异常(Exception),提示“成绩录入异常”。最后统计该学生各科平均成绩。
时间: 2024-10-23 18:13:18 浏览: 297
```java
import java.util.Scanner;
import java.util.Arrays;
public class GradeCalculator {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
System.out.println("请输入学生各科成绩,以逗号分隔:");
// 提取输入的字符串并分割成数组
String[] scoresStr = scanner.nextLine().split(",");
int[] scores = new int[scoresStr.length];
// 将字符串转换为整数,并检查成绩是否有效
for (int i = 0; i < scoresStr.length; i++) {
try {
scores[i] = Integer.parseInt(scoresStr[i]);
// 检查成绩是否超过范围
if (scores[i] > 100 || scores[i] < 0) {
throw new Exception("成绩录入异常: " + scoresStr[i]);
}
} catch (NumberFormatException e) {
System.err.println("无效的成绩输入: " + scoresStr[i]);
return; // 结束程序处理
}
}
// 计算平均成绩并打印结果
double average = calculateAverage(scores);
System.out.printf("学生各科平均成绩为: %.2f\n", average);
scanner.close();
}
// 计算平均成绩的静态方法
private static double calculateAverage(int[] scores) {
double sum = Arrays.stream(scores).sum();
return sum / scores.length;
}
}
```
在这个程序中,我们首先通过`Scanner`接收用户输入的学生各科成绩,然后将字符串转换为整数并检查每个成绩是否在0到100的范围内。如果发现异常,我们会抛出`Exception`并显示错误信息。最后,我们计算并打印平均成绩。
阅读全文
相关推荐
















