20182316胡泊 实验3报告
20182316胡泊 2019-2020-1 《数据结构与面向对象程序设计》实验3报告
课程:《程序设计与数据结构》
班级: 1823
姓名: 胡泊
学号:20182316
实验教师:王志强
实验日期:2019年[9月27日]
必修/选修: 必修
1.实验内容
- 参考《实验二 Java面向对象程序设计》:http://www.cnblogs.com/rocedu/p/6736847.html
实验内容 - 下载安装并使用IDEA,完成下面实验(https://www.cnblogs.com/rocedu/p/6371315.html)。
-
初步掌握单元测试和TDD
-
理解并掌握面向对象三要素:封装、继承、多态(自己去学!)
-
初步掌握UML建模
-
完成蓝墨云上 (1)-(5)实验。
2. 实验过程及结果
单元测试
- 书写产品代码MyUtil.java
- 书写测试代码MyUtilTest.java
- project --- new --- Directory
- test --- make directory as --- Test Source Root
- TDD的运用
- File --- settings --- plugins --- junit
- 小灯泡 --- creat test
- File --- Project Structure
- 测试结果截图
TDD(Test Driven Devlopment, 测试驱动开发)
- 手动打出被测试程序StringBuffer,
- 学习equals的方法assertEquals(),修改网页上的错误代码
- 按照上面的方法书写测试代码,分别测试三种情况:normal正常情况,exception意外情况(>100/<0),boundary边界情况(0,60,100...)
- 测试结果截图
自主编写Complex程序
- 伪代码(明确程序目的)
复数运算:
定义复数
定义构造函数
定义共有方法:加减乘除
- 产品代码
public class Complex {
private double r;
private double i;
public Complex(){
}
public Complex (double c,double d){
r=c;
i=d;
}
public static double getreal(double r)
{
return r;
}
public static double getfake(double i)
{
return i;
}
public Complex complexadd(Complex c){
return new Complex(r+c.r,i+c.i);
}
public Complex complexsub(Complex c){
return new Complex(r-c.r,i-c.i);
}
public Complex complexcheng(Complex c){
return new Complex(r*c.r-i*c.i,r*c.i+i*c.r);
}
public Complex complexchu(Complex c){
return new Complex((r*c.r+i*c.i)/(c.r*c.r+c.i*c.i),(i*c.r-r*c.i)/(c.r*c.r+c.i*c.i));
}
public String toString(){
if(i>0)
return r+"+"+i+"i";
else if(r==0)
return r+"";
else
return r+""+i+"i";
}
}
- 测试代码及结果
uml建模
上传码云
3. 实验过程中遇到的问题和解决过程
-
问题1:在编写test时出现
-
问题1解决方案:
- 在编写@Test时,下面定义的类名必须以test开头,然后再打上想要的字符,否则会报错
- 在编写@Test时,下面定义的类名必须以test开头,然后再打上想要的字符,否则会报错
-
问题2:在编写toString方法时,误解了复数实部与虚部的意义,讨论情况时,将负数的前面多打了一个“-”。
-
问题2解决方案:
-
问题3:每次在调用complex中的方法时,还要打Complex.xxxx
-
问题3解决方法:实例化后的对象比如
Complex c1 = new Complex(0, 4);
然后就可以通过实例化的对象c1,调用Complex类中的方法:
assertEquals(-1.0, c1.getreal(-1.0));
- 问题4:复数运算
- 解决方法:
感悟
- 在第一次使用了idea后,发现它各有利弊,优点数不胜数,比如可以用鼠标操作,有各种缩写,文件更加整齐,功能更强大。但相较于命令行,出现的错误种类与数量更多,而且很多都看不懂。
- 在自学的过程中,按照博客一步步操作,到最终完成,虽然过程艰难,但让我有了很强的成就感,在帮助别人以及向别人请教的时候,都收获很大。
- 感谢学长学姐的指导,给了我们很大的帮助,十分感谢。 (⊙ω⊙)