20182316胡泊 实验3报告

20182316胡泊 2019-2020-1 《数据结构与面向对象程序设计》实验3报告

课程:《程序设计与数据结构》
班级: 1823
姓名: 胡泊
学号:20182316
实验教师:王志强
实验日期:2019年[9月27日]
必修/选修: 必修

1.实验内容

  1. 初步掌握单元测试和TDD

  2. 理解并掌握面向对象三要素:封装、继承、多态(自己去学!)

  3. 初步掌握UML建模

  4. 完成蓝墨云上 (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开头,然后再打上想要的字符,否则会报错
  • 问题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后,发现它各有利弊,优点数不胜数,比如可以用鼠标操作,有各种缩写,文件更加整齐,功能更强大。但相较于命令行,出现的错误种类与数量更多,而且很多都看不懂。
  • 在自学的过程中,按照博客一步步操作,到最终完成,虽然过程艰难,但让我有了很强的成就感,在帮助别人以及向别人请教的时候,都收获很大。
  • 感谢学长学姐的指导,给了我们很大的帮助,十分感谢。 (⊙ω⊙)

参考资料

原文地址:https://www.cnblogs.com/hp12138/p/11600702.html