20172301 2017-2018-2 《程序设计与数据结构》课堂测试修改报告

20172301 2017-2018-2 《程序设计与数据结构》课堂测试修改报告

课程:《程序设计与数据结构》
班级: 1723
姓名: 郭恺
学号: 20172301
实验教师:王志强老师
测试日期:2018年4月11日
必修/选修: 必修

测试内容

书P241 PP7.4

  • 首先,修改RationalNumber类, 实现 Comparable接口。
  • 然后以0.0001为误差精度进行比较。
  • 编写main驱动方法进行测试。

测试过程及结果

设计思路:我们要想实现Comparable接口,必须要进行compareTo方法的编写。而根据浮点数比较的原则,我们需要定义一个误差精度0.0001。

  1. 实现接口Comparable
    根据题目,首先我们需要实现接口:
  2. 编写compareTo方法
    • 第一步,因为compareTo对象是obj,所以首先我们需要进行类型转换,把其变为RationalNumber类型。
    • 第二步,因为我们比较的是两个分数,所以求差我们就可以调用RationalNumber类中的subtract方法,把两个分数进行相减
    • 第三步,因为我们相减得出的是分数,如何和0.0001比较,就需要把分数转换为小数。我们可以通过调用RationalNumber类中的getNumerator()和getDenominator()方法相除得出结果。
      • 这里要注意的是,getNumerator()和getDenominator()方法都是int型的,而我们最后需要得出的结果是double型的,所以我们需要进行数据强制转换。
    • 第四步,我们需要把结果取绝对值
      • 书P145:

        判断两个浮点数相等的一个较好的方法是:计算两个数差的 绝对值并将差和 某个误差标准相比较。

      • 这里调用Math.abs()
    • 第五步,结果和0.0001进行比较
      • 比较就需要我们用到条件语句if。
      • 我们会有两种结果:
        if (a<0.0001 && a >= 0)
         return 0;    // 等于
           else
         return -1;   // 不等于

        那么这样compareTo就编写完成了。截图:

  3. 编写main驱动方法,测试 :
  4. 结果:

测试过程中遇到的问题和解决过程

  • 问题1:重写了compareTo方法,没有实现接口,程序依然能够运行,没有提示错误。
  • 问题1解决方案: 实现接口,必须要重写compareTo 方法;但是重写方法,不一定要实现接口。 所以,我就忘记实现接口。尽管,接口似乎没有作用是我理解不了,但是我们应该养成习惯。实现接口,重写方法。
  • 问题2:浮点数比较。
  • 问题2解决方案:浮点数比较,是比较其是否相等,而不是比较他们的大小。不然直接相减不就好了。我这道题在题意理解上就存在问题,这与程序编写错误有很大关系。
    我们在编写程序,首先要明确我们需要完成什么,要让程序执行什么错误,不要一上来就弄错了方向。合适确定软件的需求,有一个好的开端,实际上就是成功了一半。

其他(感悟、思考等)

?? 实际上,这次程序的编写并不完美。首先,我在开始的时候就犯下了错误,没有明确程序需要执行的任务,导致方法编写错误,main驱动方法编写错误。然后,虽然重写了compareTo方法,却没有实现接口,也是没有理解题意的缘故。所以,这次之后,我认为给我印象最深刻的就应该是细心。 同时,这是老师布置的作业,一方面,我对自己的程序理解不清,另一方面,是对教材的掌握不过全面。希望自己可以谨记这次教训,再接再厉

参考资料:

  • 《Java程序设计与数据结构教程(第二版)》
  • 《Java程序设计与数据结构教程(第二版)》学习指导

原文地址:https://www.cnblogs.com/gk0625/p/8798322.html

时间: 2024-09-30 15:11:22

20172301 2017-2018-2 《程序设计与数据结构》课堂测试修改报告的相关文章

20172301 2017-2018-2 《程序设计与数据结构》第7周课堂测试修改报告

20172326 <程序设计与数据结构>课堂测试修改报告 课程:<程序设计与数据结构> 班级: 1723 姓名: 康皓越 学号: 20172326 实验教师:王志强老师 测试日期:2018年4月11日 必修/选修: 必修 测试内容 命令行参数测试 要求: 从命令行传入 学号.课程的成绩,计算平均成绩,并输出. 例如:输入 java computeAverage 20172301 98 99 100 输出:2017 2301' average score is :99 测试过程 分析

20172301 2017-2018-2 《程序设计与数据结构》实验三报告

20172301 2017-2018-2 <程序设计与数据结构>实验三报告 课程:<程序设计与数据结构> 班级: 1723 姓名: 郭恺 学号: 20172301 实验教师:王志强老师 助教:张旭升/刘伟康 实验日期:2018年5月16日 必修/选修: 必修 1.实验内容 实验1:代码规范,安装alibaba插件,解决代码中的规范问题. 在IDEA中使用工具(Code->Reformate Code)把下面代码重新格式化,再研究一下Code菜单,找出一项让自己感觉最好用的功能

20172301 2017-2018-2 《程序设计与数据结构》实验五报告

20172301 2017-2018-2 <程序设计与数据结构>实验五报告 课程:<程序设计与数据结构> 班级: 1723 姓名: 郭恺 学号: 20172301 实验教师:王志强老师 助教:张旭升/刘伟康 实验日期:2018年6月18日 必修/选修: 必修 1.实验内容 实验1: 结对实现中缀表达式转后缀表达式的功能 Convert.java(我们小组的中缀转后缀的类名) 结对实现从上面功能中获取的表达式中实现后缀表达式求值的功能,调用Comparision.java 上传测试代

20172303 2018-2019-1 《程序设计与数据结构》第2周课堂实践修改报告

20172303 2018-2019-1 <程序设计与数据结构>第2周课堂实践修改报告 测试内容 写出链表中结点插入的操作代码: public static void InsertNode(Student Head, Student node){ } 需求分析:该题要求的是在一个链表的结尾插入一个新的结点 测试过程 设计思路: 创建一个临时的指针temp用于遍历整个链表直至找到结尾 将temp指向新创建的指针node 测试过程 首先,需要编写Student类.在这个类中定义构造函数(包括姓名.

# 学号 2017-2018-20172309 《程序设计与数据结构》实验三报告

学号 2017-2018-20172309 <程序设计与数据结构>实验三报告 课程:<程序设计与数据结构> 班级: 1723 姓名: 王志伟 学号:20172309 实验教师:王志强老师 实验日期:2018年4月18日 必修/选修: 必修 1.实验内容 实验三 敏捷开发与XP实践 (1)代码规范:安装alibaba 插件,解决代码中的规范问题. 在IDEA中使用工具(Code->Reformate Code)把下面代码重新格式化,再研究一下Code菜单,找出一项让自己感觉最好

20172329 2017-2018-2 《程序设计与数据结构》实验五报告

这是这学期最后一次实验了,也是学到了很多东西,希望自己可以可以善始善终,加油! 让我们开始这一篇博客吧! 20172329 2017-2018-2 <程序设计与数据结构>实验五报告 课程:<程序设计与数据结构> 班级: 1723 姓名: 王文彬 学号:20172329 实验教师:王志强 实验日期:2018年6月11日 必修/选修: 必修 一.实验内容 1.网络编程与安全-1 两人一组结对编程: a. 参考http://www.cnblogs.com/rocedu/p/6766748

20172318 2018-2019-1 《程序设计与数据结构》实验1报告

20172318 2017-2018-2 <程序设计与数据结构>实验4报告 课程:<程序设计与数据结构> 班级: 1723 姓名: 陆大岳 学号:20172318 实验教师:王志强 实验日期:2018年9月30日 必修/选修: 必修 1.实验内容 链表练习,要求实现下列功能: (1)通过键盘输入一些整数,建立一个链表(1分): 这些数是你学号中依次取出的两位数. 再加上今天的时间. 例如你的学号是 20172301 今天时间是 2018/10/1, 16:23:49秒 数字就是 2

20172325 2017-2018-2 《程序设计与数据结构》实验三报告

20172325 2017-2018-2 <程序设计与数据结构>实验三报告 课程:<程序设计与数据结构> 班级: 1723 姓名: 邓煜坤 学号:20172325 实验教师:王志强 实验日期:2018年11月19日 必修/选修: 必修 1.实验内容 实验三-查找与排序-1 定义一个Searching和Sorting类,并在类中实现linearSearch(教材P162 ),SelectionSort方法(P169),最后完成测试. 要求不少于10个测试用例,提交测试用例设计情况(正

20172311 2017-2018-2 《程序设计与数据结构》实验一报告

20172311 2017-2018-2 <程序设计与数据结构>实验一报告 课程:<程序设计与数据结构> 班级: 1723 姓名: 赵晓海 学号:20172311 实验教师:王志强 实验日期:2018年3月21日 必修/选修: 必修 1.实验内容 (1).学会使用IEDA简单地调试程序. (2).使用jdb编译.运行简单的Java程序: (3).学会在IEDA中以及在使用JDK时设置断点并单步执行. (4).验收pp2.5,pp3.3,pp3.5,pp3.8. 2.实验过程及结果