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