20172319 2018.04.11 《Java程序设计教程》第7周课堂测验(补写博客)
20172319 2018.04.11 《Java程序设计教程》第7周课堂测验
- 课程:《程序设计与数据结构》
- 班级:1723
- 学生:唐才铭
- 学号:20172319
- 指导老师:王志强
- 日期:2018.04.11
- 必修/选修:必修
目录
- 测试内容
- 测试要求
- 实验步骤
- 前期准备
- 需求分析
- 代码实现及解释
- 程序运行结果及代码截图
- 测试过程及遇到的问题
- 代码链接
- 参考资料
测试内容
- 完成编程项目PP7.4:具体参考《java程序设计教程》(第八版)
- Compareble接口的实现
测试要求
- 编译运行项目PP7.4;并截图(类代码,测试代码,运行结果代码)发送至蓝墨云
- 托管代码至git@OSC,详情参考使用开源中国托管代码
- 返回目录
实验步骤
前期准备
- 敲好课本上的例7.3(RationalTester2.java-测试)及例7.4(RationalNumber2.java-类),编译运行看其是否有误,若有误,对照课本对两个代码一一进行排查,无误后即可开始着手编程项目。
需求分析
- 需要理解接口的基本知识
- 掌握如何实现接口
- 理解Comparable接口及其包含的compareTo方法(唯一一个方法)
代码实现及解释
- 实现接口的类要在类声明头部使用保留字implements,接着再给出接口名。在RationalNumber类的头部尾端加上
implements Comparable<RationalNumber2>
声明要实现Comparable接口。
public class RationalNumber2 implements Comparable<RationalNumber2>
- 若类声明要实现某个接口,必须提供实现这个接口中所有方法的实现代码。因此,要完整地实现接口需要在RationalNumber2类中提供实现接口中所有方法的代码。
public int compareTo(RationalNumber2 op2)
- 将RationalNumber2中的对象数值转化为浮点值,再与定义好的误差标准比较(理由:参考week5学习总结中的浮点数值比较时的较好方法
double n1, n2, difference;
n1 = (double) numerator / denominator;
n2 = (double) op2.getNumerator() / op2.getDenominator();
difference = Math.abs(n2 - n1);
if(difference < 0.0001)
return -1;
else
if (difference > 0.0001)
return 1;
else
return 0;
- 测试程序代码
public class RationalTester2
{
//----------------------------------------------------------------------
// Creates some rational number objects and performs various
// operations on them.
//----------------------------------------------------------------------
public static void main(String[] args)
{
RationalNumber2 r1 = new RationalNumber2(1, 3);
RationalNumber2 r2 = new RationalNumber2(1, 9);
RationalNumber2 r3, r4, r5, r6, r7;
System.out.println("First rational number: " + r1);
System.out.println("Second rational number: " + r2);
if (r1.isLike(r2))
System.out.println("r1 and r2 are equal.");
else
System.out.println("r1 and r2 are NOT equal.");
if (r1.compareTo(r2) == 1 )
System.out.println(" r1 > r2 ");
else
if (r1.compareTo(r2) ==-1)
System.out.println(" r1 < r2 ");
else
System.out.println("r1 = r2");
r3 = r1.reciprocal();
System.out.println("The reciprocal of r1 is: " + r3);
r4 = r1.add(r2);
r5 = r1.subtract(r2);
r6 = r1.multiply(r2);
r7 = r1.divide(r2);
System.out.println("r1 + r2: " + r4);
System.out.println("r1 - r2: " + r5);
System.out.println("r1 * r2: " + r6);
System.out.println("r1 / r2: " + r7);
}
}
程序运行结果及代码截图
测试过程及遇到的问题
- 问题1:条件语句的未知及关系运算符的错误使用导致输出错误。
- 解决:学习完条件语句,然后进行代码调试,找到不合理的地方进行修改。
- 问题2:对类编写的相关知识还存在模糊、概念不清等情况,导致初期编程工作有阻碍。
- 解决:查找资料,在编类时认真分析思考各个语句的作用,定义适合的方法名以便于调用。
- 返回目录
代码链接
参考资料
20172319 2018.04.11 《Java程序设计教程》第7周课堂测验(补写博客)的更多相关文章
- 《Java程序设计》第12周课堂实践总结
<Java程序设计>第12周课堂实践总结 实践一 教材代码检查-p98 要求 修改教材P98 Score2.java, 让执行结果数组填充是自己的学号: 提交在IDEA或命令行中运行结查截 ...
- 20175316盛茂淞 《java程序设计》第三周课堂测试错题总结
20175316盛茂淞 <java程序设计>第三周课堂测试错题总结 出现问题 错题总结 题目1 在Ubuntu中用自己的有位学号建一个文件,教材p87 Example4_15 1. 修改代 ...
- 《Java程序设计》第15周课堂实践总结
<Java程序设计>第15周课堂实践总结 实践一 教材代码检查-p242 要求 在IDEA中或命令行中运行P242 StackTraceDemo2.java 代码运行结果和教材一致吗?为什 ...
- 20155233 《Java程序设计》 第十三周课堂练习总结
20155233 <Java程序设计>第十三周课堂练习总结 测试题目 测试1 在IDEA中对P145 MathTool.java 使用JUnit进行单元测试,测试用例不少于三个,要包含正常 ...
- 20155233 《Java程序设计》 第十一周课堂练习总结
20155233 <Java程序设计> 第十一周课堂练习总结 测试题目 1.修改教材P74 一行代码 NineNineTable.java, 让执行结果是个三角形: 提交在IDEA或命令行 ...
- 最近准备把安卓和java的知识再回顾一遍,顺便会写博客上!千变万化还都是源于基础,打扎实基础
最近准备把安卓和java的知识再回顾一遍,顺便会写博客上!千变万化还都是源于基础,打扎实基础,加油吧 距离去北京还有23天
- 20172319 2018.10.19《Java程序设计教程》第7周课堂实践(补写博客)
20172319 2018.10.19 <Java程序设计教程>第7周课堂实践 课程:<程序设计与数据结构> 班级:1723 学生:唐才铭 学号:20172319 指导老师:王 ...
- 20172319 2018.10.12《Java程序设计教程》第6周课堂实践(补写博客)
20172319 2018.10.12 <Java程序设计教程>第6周课堂测验 课程:<程序设计与数据结构> 班级:1723 学生:唐才铭 学号:20172319 指导老师:王 ...
- 20145209刘一阳《JAVA程序设计》第八周课堂测试
第八周课堂测试 1.下面代码中共有(C)个线程? public class ThreadTest { public static void main(String args[]){ MyThread ...
随机推荐
- Cloud Lab: 泰晓实验云台【转】
转自:http://tinylab.org/cloud-lab/ 可快速构建的计算机课程在线实验平台 由 Wu Zhangjin 创建于 2017/10/06 评论 打赏 项目描述 泰晓实验云台 项目 ...
- 十五、springboot集成定时任务(Scheduling Tasks)(二)之(线程配置)
配置类: /** * 定时任务线程配置 * */ @Configuration public class SchedulerConfig implements SchedulingConfigurer ...
- php 的swoole 和websocket 连接wss
1. 下载证书 $serv = new swoole_server('0.0.0.0', 9501, SWOOLE_PROCESS, SWOOLE_SOCK_TCP | SWOOLE_SSL); $s ...
- Jackson jsonToBean 忽略 Bean中不存在属性的匹配。
1. jsonToBean时,json中有的字段,bean中没有 无法匹配时,忽略此字段,不抛出异常(默认是抛出异常的) 方案一(局部):在class上加 @JsonIgnoreProperties( ...
- JAVA复习笔记分布式篇:kafka
前言:第一次使用消息队列是在实在前年的时候,那时候还不了解kafka,用的是阿里的rocket_mq,当时觉得挺好用的,后来听原阿里的同事说rocket_mq是他们看来kafka的源码后自己开发了一套 ...
- plsql中做计划任务
第一步: 1. 打开PLSQL后,选择节点jobs,右键新建,弹出界面后再what值中填写需要做计划的存储名加分号结束,如门诊收入存储PH_ClinicIncome(1):其中1代表医疗机构代码 间 ...
- C#基础系列 - 抽象类及其方法的学习
在C#中使用关键字 abstract 来定义抽象类和抽象方法. 不能初始化的类被叫做抽象类,它们只提供部分实现,但是另一个类可以继承它并且能创建它们的实例. "一个包含一个或多个纯虚函数的类 ...
- 标准C++中的String类的使用
要使用标准C++中的String类,必须包含#include<string>(注意不是<string.h>带.h的是C语言中的头文件) 作者:耑新新,发布于 博客园 转载请注 ...
- 1391: [Ceoi2008]order
有N个工作,M种机器,每种机器你可以租或者买过来. 每个工作包括若干道工序,每道工序需要某种机器来完成,你可以通过购买或租用机器来完成. 现在给出这些参数,求最大利润 Input 第一行给出 N,M( ...
- CentOS7多实例安装mysq5.6二进制版本
1丶下载mysql,解压,创建用户,创建软链接 test -d /tools || mkdir /tools ;cd /tools wget http://mirrors.sohu.com/mysql ...