判断三角形java代码_java基础编程题之异常处理

bc362889058b96e76ae6166520954571.gif 以下是刚开始学习java的基础编程题,每天持续更新java每个知识点的题目,持续练习,不断提高java基本功,培养编程能力。 今天的练习的十八题是java的异常处理的使用。

51040cc32b90e4c1ed3958e785202369.png

1、检测年龄不能为负数和大于200岁,如果不符合抛出自定义异常

2、编写一个计算N个整数平均值的程序。程序应该提示用户输入N的值,

如何必须输入所有N个数。如果用户输入的值是一个负数,

则应该抛出一个异常并捕获,提示“N必须是正数或者0”。

并提示用户再次输入该数

3、编写代码,在main()方法中调用类CCircle中的方法,计算圆的面积。

并且自己定义一个异常类,如果半径为负值,抛出自己定义的异常。

(在类CCircle中判断并抛出异常)

4、模拟ATM的存取款操作。

定义一个ATM机类, 该类有私有属性金额banlance和有存款方法void deposit()、

取款方法void withdraw()、显示余额double showBalance()

和显示主页面show()方法---显示一些提示操作

如选择1,存款业务

选择2,取款业务

选择3,查询余额业务

选择4,退出

注意:存钱与取钱金额均由键盘输入。

(1)考虑输入的存款金额小于0的

异常处理NotNegativeNumber---这是一个自定义异常类,

(2)考虑输入的存款金额为非数值型的数据 如 “abc”的异常处理

(3)考虑取钱大于余额的异常处理InsufficientFundsException------

这是一个自定义异常类),

(4)考虑输入的取款金额小于0的异常处理NotNegativeNumber,

考虑输入的取款金额为非数值型的数据 如 “abc”的异常处理。

若取钱数大于余额则作为异常处理InsufficientFundsException------

这是一个自定义异常类),要定义好自己的异常类,

并写一个测试类BankTest 测试上面的ATM的功能

5.1)、建立一个Java抽象类Drink 应当

a、声明一个抽象方法taste() 该方法负责输出饮料的味道 

b、声明int型常量来代表不同的饮料类型 咖啡、啤酒、牛奶

c、声明静态工厂方法getDrink(int drinkType) 根据传入的参数创建不同的饮料对象 

并返回该对象 建议使用switch语句。

该方法要求声明DrinkNotFoundException 当没有相对应的饮料类型时 抛出该异常。

2、建立Drink的具体子类
a、分别建立Drink的子类 Coffee 代表咖啡 Beer 代表啤酒 Milk 代表牛奶 ;
b、实现taste()方法 要求在控制台打印各自的味道特征。
3、建立异常类DrinkNotFoundException
a、继承Exception
b、在Drink的 方 法getDrink(int drinkType)中 声 明 引 发DrinkNotFoundException异常
 当传入的参数没有相对应的饮料类型时 抛出异常。
c、在使用getDrink方法的类中捕捉该异常。
4、建立Test测试类 测试以上内容的正确性
a、编写main方法 通过命令行传参的方式传入某种饮料的类型。
b、在main方法中 调用Drink类的getDrink方法 获得相应的饮料对象。
注意捕获DrinkNotFoundException。
c、然后调用该饮料对象的taste()方法 输出该饮料的味道。
5、编译程序 并运行。

6、编写程序CustomException,在期中同时给出两个不同大小的

数字型数组:{4,8,15,32,64,127,256,512}和{2,1,2,4,4,4,8}。
利用循环,将第一个数组包含的数字作为除数,
第二个数组包含的数字作为被除数。
用第一个数组中的数字除以第二个数组中相应位置的元素。
当结果不是偶数或结果是除数本身,此程序要抛出自定义异常,并捕获和处理相关的异常。

提示:自定义异常类,并使用throw抛出异常进行相应处理;多重Catch异常

7、需求说明

在setAge(int age)中对年龄进行判断,如果年龄介于1到100直接赋值,

否则抛出异常

在测试类中创建对象并调用setAge(int age)方法,

使用try-catch捕获并处理异常

7c783c03d0c5fccd2f403f83e0c33bb8.png

8、从命令行得到5个整数,放入一整型数组,然后打印输出,

要求:如果输入数据不为整数,要捕获Integer.parseInt()产生的异常,

显示“请输入整数”,捕获输入参数不足5个的异常(数组越界),

显示“请输入至少5个整数”。

9、写一个方法void sanjiao(int a,int b,int c),
判断三个参数是否能构成一个三角形,如果不能
则抛出异常IllegalArgumentException,
显示异常信息a,b,c+”不能构成三角形”,
如果可以构成则显示三角形三个边长,
在主方法中得到命令行输入的三个整数,调用此方法,并捕获异常。

10、编写一个自己定义的异常类,首先自定义一个异常类triangularException。  

再定义一个主类,包含main()方法和area()方法,在main()方法中调用area()方法,

在area()方法中通过参数得到三角形的三边长,如果三边不能构成三角形,

则用throw语句抛出自定义的异常抛出异常,最后返回三角形的面积,

在main()方法中要求测试异常,并捕捉异常,在area()方法中声明异常,

注意数据类型的转换所有数据用double类型。

11、按以下要求完成相关程序1 定义一个运动员成绩类: 

(1) 用适当的数据类型定义5个成员属性:运动员编号、姓名、

参加项目、成绩、所属单位;

(2)适当定义2个构造函数;

(3)定义不少于4个对有关属性进行适当操作的方法; 

(4)自定义1个异常,当成绩值为负数时抛出该异常; 

(5)编写一个测试程序验证该类的设计效果

12、编写一个程序,从命令行参数输入10个数作为学生成绩,

需对成绩进行有效性判断,若成绩有误则通过异常处理显示错误信息,

并将成绩按高到低排序打印输出。

提示:如果输入数据不为整数,

要捕获Integer.parseInt()产生的异常,显示“请输入成绩”,

捕获输入参数不足10个的异常,显示“请输入至少10个成绩”。

13、编写一个Division类来,来实现除法运算。

被除数和除数通过java运行命令后面添加参数传入,

例如“java Division 100 10”表示求100除以10,

程序除了实现除法运算,将结果显示出来以外,

还要对异常情况进行处理。异常情况包括:

数据格式异常(如用户本该输入数值的地方却输入了字符)、

除数为零的异常等。

14、车站检查危险品的设备,如果发现危险品会发出警告。

编程模拟设备发现危险品。

编写一个Exception的子类DangerException,该子类可以创建异常对象,

该异常对象调用toShow()方法输出“属于危险品”。

编写一个Machine类,该类的方法checkBag(Goods  goods)

当发现参数goods是危险品时(goods的isDanger属性是true)

将抛出DangerException异常。

程序在主类的main()方法中的try-catch语句的try部分

让Machine类的实例调用checkBag(Good goods)方法,

如果发现危险品就在try-catch语句的catch部分处理危险品。

15、模拟借书系统

要求:

1、定义字符串数组保存图书信息

2、提示用户输入,分别按“书名”和“图书序号”查找图书

3、根据输入信息进行适当的异常处理

a、如果输入类型错误,抛出“错误命令异常”,并提示重新输入

b、如果书名不存在,抛出“图书不存在异常”,并提示重新输入

c、如果图书序号超过字符串数组范围,抛出“图书不存在异常”,并提示重新输入

运行效果

7ded7d3863897b17ae4cd432910b31d3.png

16、老师用电脑上课。

开始思考上课中出现的问题。

比如问题是

电脑蓝屏。

电脑冒烟。

要对问题进行描述,封装成对象。

可是当冒烟发生后,出现讲课进度无法继续。

出现了老师师的问题:课时计划无法完成。

17、 对于输入的数,如果出现小数,则作为异常处理,

并舍去小数,显示结果;

如果输入的数据类型不对也作为异常处理,显示结果0。

18、模拟向货船上装载集装箱,每个集装箱有一定重量,

该重量(整数)大于100小于1000,货船总重为1000,

装载若干集装箱后,如果货船超重,那么货船认为这是一个异常,

将拒绝装载集装箱,但无论是否发生异常,货船都需要正点启航。

输入:

199

400

300

300

输出:

目前装载了199吨货物

目前装载了599吨货物

目前装载了899吨货物

超重

无法再装载重量是300吨的集装箱

货船将正点启航

44c5e554dab9d870690f9056feac15b3.png

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值