鱼C论坛

 找回密码
 立即注册
查看: 312|回复: 1

java

[复制链接]
发表于 2024-11-7 08:02:45 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
1、编写一个程序,输入某个班某门课程成绩,统计及格人数、不及格人数及课程平均分。设计一个异常类,当输入的成绩小于0或者大于100时抛出异常,程序将捕获这个异常,并作出相应处理。

源代码:

实验运行截图:



2、车站检查危险品的设备,如果发现危险品会发出警告。编程模拟设备发现危险品。编写一个 Exception 的子类 DangerException,该子类可以创建异常对象,该异常对象调用 toShow()方法输出“属于危险品”。编写一个 Machine 类,该类的方法 checkBag(Goods goods)当发现参数 goods 是危险品时(goods 的 isDanger 属性是 true)将抛出 DangerException 异常。程序在主类的 main()方法中的 try-catch 语句的 try 部分让 Machine 类的实例调用checkBag (Goods goods)方法,如果发现危险品就在 try-catch 语句的 catch 部分处理危险品。
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2024-11-7 08:09:08 | 显示全部楼层
### 问题1:统计某门课程成绩,处理成绩异常

以下是解决方案,包括自定义异常类和主程序:

  1. import java.util.ArrayList;
  2. import java.util.Scanner;

  3. // 自定义异常类
  4. class InvalidScoreException extends Exception {
  5.     public InvalidScoreException(String message) {
  6.         super(message);
  7.     }
  8. }

  9. public class ScoreStatistics {

  10.     public static void main(String[] args) {
  11.         Scanner scanner = new Scanner(System.in);
  12.         ArrayList<Integer> scores = new ArrayList<>();
  13.         int passCount = 0;
  14.         int failCount = 0;
  15.         double totalScore = 0.0;

  16.         System.out.println("请输入成绩,输入负数结束:");

  17.         while (true) {
  18.             int score;
  19.             try {
  20.                 score = scanner.nextInt();
  21.                
  22.                 if (score < 0) {
  23.                     break; // 输入负数时结束输入
  24.                 }
  25.                
  26.                 // 检查成绩是否有效
  27.                 if (score < 0 || score > 100) {
  28.                     throw new InvalidScoreException("无效的成绩: " + score);
  29.                 }
  30.                
  31.                 scores.add(score);
  32.                 totalScore += score;

  33.                 if (score >= 60) {
  34.                     passCount++;
  35.                 } else {
  36.                     failCount++;
  37.                 }
  38.                
  39.             } catch (InvalidScoreException e) {
  40.                 System.out.println(e.getMessage());
  41.             }
  42.         }

  43.         int totalStudents = scores.size();
  44.         double averageScore = totalStudents > 0 ? totalScore / totalStudents : 0;

  45.         System.out.println("及格人数: " + passCount);
  46.         System.out.println("不及格人数: " + failCount);
  47.         System.out.println("平均分: " + averageScore);

  48.         scanner.close();
  49.     }
  50. }
复制代码


### 问题2:模拟设备发现危险品

以下是异常类和模拟检查危险品程序的代码:

  1. // 定义异常类
  2. class DangerException extends Exception {
  3.     public DangerException() {
  4.         super();
  5.     }

  6.     public void toShow() {
  7.         System.out.println("属于危险品");
  8.     }
  9. }

  10. // 定义 Goods 类
  11. class Goods {
  12.     private boolean isDanger;

  13.     public Goods(boolean isDanger) {
  14.         this.isDanger = isDanger;
  15.     }

  16.     public boolean isDanger() {
  17.         return isDanger;
  18.     }
  19. }

  20. // 定义 Machine 类
  21. class Machine {
  22.     public void checkBag(Goods goods) throws DangerException {
  23.         if (goods.isDanger()) {
  24.             throw new DangerException();
  25.         } else {
  26.             System.out.println("物品安全");
  27.         }
  28.     }
  29. }

  30. // 主类
  31. public class DangerousGoodsChecker {

  32.     public static void main(String[] args) {
  33.         Machine machine = new Machine();
  34.         Goods safeGoods = new Goods(false);
  35.         Goods dangerousGoods = new Goods(true);

  36.         try {
  37.             machine.checkBag(safeGoods);
  38.             machine.checkBag(dangerousGoods);
  39.         } catch (DangerException e) {
  40.             e.toShow();
  41.         }
  42.     }
  43. }
复制代码


这两个程序通过捕获并处理自定义异常,为程序的健壮性和可读性提供了良好的实践示例。在第一个问题中,程序可以检测输入成绩的有效性,而在第二个问题中,程序能识别并响应危险品检测。

以上回复来自 FishC AI 小助理,如未能正确解答您的问题,请继续追问。
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2025-5-12 14:01

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表