编写一个程序进行一个班某门课程成绩的录入,能够控制录入成绩总人数,对录入成绩统计其及格人数和不及格人数。设计一个异常类,当输入的成绩小0分或大于100分时,抛出该异常类对象,程序将捕捉这个异常对象,并调用执行该异常类对象的toString()方法,该方法获取当前无效分数值,并返回一个此分数无效的字符串。 输入格式: 从键盘中输入学生人数n 从键盘中输入第1个学生的成绩 从键盘中输入第2个学生的成绩 ... 从键盘中输入第n个学生的成绩 (注:当输入的成绩无效时(即分数为小于0或大于100)可重新输入,且输出端会输出此分数无效的提醒。) 输出格式: 显示及格总人数 显示不及格总人数。Java
时间: 2024-02-13 16:06:24 浏览: 52
好的,以下是Java代码实现:
```java
import java.util.Scanner;
class InvalidScoreException extends Exception {
private int score;
public InvalidScoreException(int score) {
this.score = score;
}
public String toString() {
return "Invalid score: " + score;
}
}
public class ScoreRecorder {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
System.out.print("请输入学生人数:");
int n = sc.nextInt();
int pass = 0, fail = 0;
for (int i = 1; i <= n; i++) {
int score = -1;
while (score < 0 || score > 100) {
try {
System.out.print("请输入第" + i + "个学生的成绩:");
score = sc.nextInt();
if (score < 0 || score > 100) {
throw new InvalidScoreException(score);
}
} catch (InvalidScoreException e) {
System.out.println(e.toString());
}
}
if (score >= 60) {
pass++;
} else {
fail++;
}
}
System.out.println("及格人数:" + pass);
System.out.println("不及格人数:" + fail);
}
}
```
程序中定义了一个自定义异常类 `InvalidScoreException`,并在输入过程中捕获该异常,输出无效分数的提醒。
运行程序,输入学生人数及各个学生的成绩,程序将统计及格人数和不及格人数并输出。
阅读全文