《数据结构与面向对象程序设计》实验3报告

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

  • 课程:《程序设计与数据结构》
  • 班级: 1823
  • 姓名: 李一卓
  • 学号:20182329
  • 实验教师:王志强
  • 实验日期:2019年9月30日
  • 必修/选修: 必修

1.实验内容

  • 提交最后三个JUnit测试用例(正常情况,错误情况,边界情况)都通过的截图,截图上要有画图加水印,输入自己的学号( http://www.cnblogs.com/rocedu/p/6371315.html#SECUNITTEST)
  • 以 TDD的方式研究学习StringBuffer。提交你的单元测试用例和测试通过的截图,截图要加上学号水印
  • 对设计模式示例进行扩充,体会OCP原则和DIP原则的应用,初步理解设计模式
  • 以TDD的方式开发一个复数类Complex
  • 使用StarUML对实验二中的代码进行建模,发类图的截图,加上学号水印,类图中只少两个类
    类,继承,接口实现,组合在UML中表达

2. 实验过程及结果

  • 首先在老师所给的网址上学习单元测试,先从伪代码开始编写,再到产品代码,然后是单元测试代码,产品代码相当于测试代码的子函数,测试代码将数输入产品代码运行
    下面是三个测试代码1779960-20190930160445527-1386019918.jpg
    1779960-20190930160512747-584249348.jpg

1779960-20190930160541979-422823715.jpg

  • Java中有单元测试工具JUnit来辅助进行TDD,我们用TDD的方式把前面百分制转五分制的例子重写一次,体会一下有测试工具支持的开发的好处。IDEA中使用JUnit要安装插件,选择File->Setting打开设置对话框:下载插件JUnit。然后在产品代码上选择产生Test代码。进行TDD编写,运用@选择测试方法,如图:1779960-20190930160607935-447395353.png

1779960-20190930160638706-1154474013.png
1779960-20190930160739279-1791256723.png

  • 编写一个复数类的函数,用get、set、toString设定方法实现传参数,实现加减乘除的运算,然后再写一个TDD测试代码进行测试,代码如图所示:1779960-20190930160800574-903910991.png
    1779960-20190930160819683-141288688.png

  • 首先自己在网上查找staruml软件的使用方法,在IDEA中先快捷键ctrl+alt+shift+u显示自己代码的类于方法,再在UML上绘制图谱,如下图:1779960-20190930160842273-1943099060.png

1779960-20190930160915509-1883715475.png

3. 实验过程中遇到的问题和解决过程

  • 问题1:在进行编写complex函数的复数运算时,使用alt+insert自动生成toString输出复数RealPart和ImagePart发现出现无法输出1779960-20190930160958901-964657130.png

  • 问题1解决方案:后来自己编写toString,用条件运算卡住return数值。
  • 问题2:在使用UML时,设置变量时没有设置好变量类型,同样在连接源代码和测试代码时,没有改清楚其中的关系,数据调用错误,逻辑混乱了。
  • 问题2解决方案:用newform template设置一个新文件,其中类于类的关系第五第八章的类的关系,继承,聚合,关联等等,还有改变类名、属性、方法。如图:

其他(感悟、思考等)

首先我在学习测试代码中,感觉就像是主函数子函数之间的传递参数,其实适逢简单。之后的TDD测试也是十分简单,只要注意函数之间的返回值就行。最为重要的是Java的精髓是类的编写调用,各个类的关系和调用,让针对对象的运算更加方便。

参考资料