20182316胡泊 实验3报告

Posted hp12138

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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)。
  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后,发现它各有利弊,优点数不胜数,比如可以用鼠标操作,有各种缩写,文件更加整齐,功能更强大。但相较于命令行,出现的错误种类与数量更多,而且很多都看不懂。
  • 在自学的过程中,按照博客一步步操作,到最终完成,虽然过程艰难,但让我有了很强的成就感,在帮助别人以及向别人请教的时候,都收获很大。
  • 感谢学长学姐的指导,给了我们很大的帮助,十分感谢。 (⊙ω⊙)

参考资料

以上是关于20182316胡泊 实验3报告的主要内容,如果未能解决你的问题,请参考以下文章

20182316胡泊 第8周学习总结

20182316胡泊 第4周学习总结

20182316胡泊 第6周学习总结

20182316胡泊 第9周学习总结

第三次实验报告

第二次实验报告