编写一个java程序进行一个班某门课程成绩的录入,能够控制录入成绩总人数,对录入成绩统计其及格人数和不及格人数。设计一个异常类,当输入的成绩小0分或大于100分时,抛出该异常类对象,程序将捕捉这个异常对象,并调用执行该异常类对象的toString()方法,该方法获取当前无效分数值,并返回一个此分数无效的字符串。
时间: 2024-03-25 17:40:23 浏览: 181
用java语言编写统计学生成绩的程序
5星 · 资源好评率100%
好的,以下是Java代码示例实现:
```java
import java.util.Scanner;
class InvalidScoreException extends Exception {
private double score;
public InvalidScoreException(double 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();
double[] scores = new double[n];
int passCount = 0;
for (int i = 0; i < n; i++) {
try {
System.out.print("请输入第" + (i + 1) + "个学生的成绩:");
double score = scanner.nextDouble();
if (score < 0 || score > 100) {
throw new InvalidScoreException(score);
}
scores[i] = score;
if (score >= 60) {
passCount++;
}
} catch (InvalidScoreException e) {
System.out.println(e);
} catch (Exception e) {
System.out.println("输入无效,请输入数字!");
scanner.nextLine(); // 清空输入缓冲区
i--; // 重新输入
}
}
int failCount = n - passCount;
System.out.println("及格人数:" + passCount + ",不及格人数:" + failCount);
}
}
```
程序中定义了一个名为InvalidScoreException的异常类,用于表示输入无效分数的情况。在输入成绩时,如果输入的分数小于0或大于100,则抛出该异常类对象,并在程序中进行捕获和处理。
程序通过一个循环来依次输入每个学生的成绩,如果输入的是无效的数字,则会捕获Exception异常,并提示用户重新输入。否则,如果输入的分数小于0或大于100,则会抛出InvalidScoreException异常,并提示用户输入无效。如果输入的分数有效,则将其添加到scores数组中,并统计及格人数。
最后输出及格人数和不及格人数。
阅读全文