编写一个程序进行一个班某门课程成绩的录入,能够控制录入成绩总人数,对录入成绩统计其及格人数和不及格人数。设计一个异常类,当输入的成绩小0分或大于100分时,抛出该异常类对象,程序将捕捉这个异常对象,并调用执行该异常类对象的toString()方法,该方法获取当前无效分数值,并返回一个此分数无效的字符串。 输入格式: 从键盘中输入学生人数n 从键盘中输入第1个学生的成绩 从键盘中输入第2个学生的成绩 ... 从键盘中输入第n个学生的成绩 (注:当输入的成绩无效时(即分数为小于0或大于100)可重新输入,且输出端会输出此分数无效的提醒。) 输出格式: 显示及格总人数 显示不及格总人数 输入样例: 在这里给出一组输入。
时间: 2024-03-25 17:39:53 浏览: 83
对学生成绩统计并计算的程序
5星 · 资源好评率100%
好的,下面是我为您编写的解答:
```java
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
System.out.print("请输入学生人数:");
int count = scanner.nextInt();
int passCount = 0;
int failCount = 0;
for (int i = 0; i < count; i++) {
System.out.print("请输入第" + (i + 1) + "个学生的成绩:");
int score = scanner.nextInt();
try {
if (score < 0 || score > 100) {
throw new ScoreException(score);
}
} catch (ScoreException e) {
System.out.println(e.toString());
i--;
continue;
}
if (score >= 60) {
passCount++;
} else {
failCount++;
}
}
System.out.println("及格人数:" + passCount);
System.out.println("不及格人数:" + failCount);
}
}
class ScoreException extends Exception {
private int score;
public ScoreException(int score) {
this.score = score;
}
public String toString() {
return "输入的分数 " + score + " 无效!";
}
}
```
在这个程序中,我们首先从控制台获取学生的人数,然后使用for循环逐一输入每个学生的成绩。在输入成绩时,我们使用try-catch语句来捕获ScoreException异常。如果输入的成绩小于0或者大于100,就抛出这个异常,并在catch块中调用异常类对象的toString()方法,输出此分数无效的提示。如果输入的成绩有效,就统计及格人数和不及格人数。最后,我们输出及格人数和不及格人数。
ScoreException类继承自Exception类,它包含一个成员变量score,用来存储无效的分数值。它还包含一个toString()方法,用来返回此分数无效的提示信息。
希望这个程序能够帮助您解决问题。
阅读全文