用Java编写一个程序,输入某个班某门课程成绩,统计及格人数、不及格人数及课程平均分。设计一个异常类,当输入的成绩小于0或者大于100时抛出异常,程序将捕获这个异常,并作出相应处理。
时间: 2023-06-01 21:06:49 浏览: 140
好的,这是一个编程问题。以下是Java编写的程序:
```
import java.util.Scanner;
class GradeException extends Exception {
public GradeException(String message) {
super(message);
}
}
public class GradeAnalyzer {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
int passCount = 0;
int failCount = 0;
int sum = 0;
int count = 0;
while (true) {
try {
System.out.print("请输入成绩:");
int score = Integer.parseInt(scanner.next());
if (score < 0 || score > 100) {
throw new GradeException("成绩应该在 0 到 100 之间!");
}
sum += score;
count++;
if (score >= 60) {
passCount++;
} else {
failCount++;
}
} catch (NumberFormatException e) {
System.out.println("请输入整数!");
} catch (GradeException e) {
System.out.println(e.getMessage());
} finally {
System.out.print("是否继续输入成绩?(Y/N)");
String choice = scanner.next();
if (choice.equals("N") || choice.equals("n")) {
break;
}
}
}
System.out.println("及格人数:" + passCount);
System.out.println("不及格人数:" + failCount);
System.out.println("课程平均分:" + (double) sum / count);
}
}
```
如上所示,程序会循环读入输入的成绩,如果输入的成绩小于0或大于100,则会抛出自定义异常类 `GradeException`,程序会捕获这个异常并显示提示信息。如果输入的是整数,则会进行统计,计算及格人数、不及格人数及课程平均分。程序还提供了一个选择是否继续输入的功能。尝试运行这个程序并进行测试吧!
相关推荐
![text/x-java](https://img-home.csdnimg.cn/images/20210720083646.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![java](https://img-home.csdnimg.cn/images/20210720083646.png)
![text/plain](https://img-home.csdnimg.cn/images/20210720083646.png)
![7z](https://img-home.csdnimg.cn/images/20210720083312.png)