20172322 2017-2018-2 《程序设计与数据结构》4月11日课上习题增补提交
- 课程:《程序设计与数据结构》
- 班级: 1723
- 姓名: 张昊然
- 学号: 20172322
- 实验教师:王志强老师
- 测试日期:2018年4月11日
- 必修/选修: 必修
增补的习题原题
- 编译运行PP7.4
- PP7.4具体内容:
- 修改RationalNumbeR类,使其实现Comparable接口。为了实现比较,首先计算两个RationalNumber对象(分子和分母)的浮点数等价值,然后以0.0001为误差精度进行比较。编写一个main驱动方法,测试你的修改结果。
课上提交的代码所存在的问题及原因
- 问题:缺少缺少精度比较的方法。
- 原因:没有认真审题导致直接使用了大小于符号进行比较大小,没有使用书上规定的精度值。
原本代码及改正方案
-
原本代码:如图。
-
改正方案:按照书上要求以0.0001为精度来比较两个数值的大小,具体代码以及运行结果如图所示。
分析思路
- 在课上提交的代码中问题只是出在没有使用0.0001的误差精度来进行比较,利用0.0001的误差精度来进行比较后就可以完成问题。
关键代码
System.out.println("First rational number: " + r1);
System.out.println("Second rational number: " + r2);
if (r1.compareTo(r2) < 0.0001)
System.out.println("r1 < r2");
else if (r1.compareTo(r2) > 0.0001)
System.out.println("r1 > r2");
else
System.out.println("r1 = r2");
感想
- 审题一定要仔细,不然造成的后果很严重