20172321 2017-2018-2 《程序设计与数据结构》实验2报告
20172321 2017-2018-2 《程序设计与数据结构》实验2报告
课程:《程序设计与数据结构》
班级: 1723
姓名: 吴恒佚
学号:20172321
实验教师:王志强老师
实验日期:2018年4月21日
必修/选修: 必修
1.实验内容
-
初步掌握单元测试和TDD
-
理解并掌握面向对象三要素:封装、继承、多态
-
初步掌握UML建模
-
熟悉S.O.L.I.D原则
-
了解设计模式
-
完成蓝墨云上 (1)-(5)实验。
2. 实验过程及结果
- 过程
- 1)第一个提交点和第二个提交点内容接近,先IDEA中使用JUnit要安装插件,然后主要考查了JUnit会不会使用(对测试用例的正常情况、错误情况、边界情况进行测试)和测试自己会不会写JUnit测试用例。
- 2)对设计模式示例进行扩充,体会OCP原则和DIP原则的应用,初步理解设计模式。通过用自己的学号%6进行取余运算,根据结果进行代码扩充。
- 3)按要求以TDD的方式开发一个复数类Complex(用JUnit进行测试)
- 4)使用StarUML对实验二中的代码进行建模,类,继承,接口实现,组合在UML中表达。(需要下载StarUML软件)
- 结果
- 1)前两个提交点是在课堂上完成的,下载安装
JunitGenerator V2.0
和使用步骤都有老师和助教提示帮助,对JUtil的使用学习得比较容易,实验也比较顺利完成。 - 2)完成第三个提交点的时候因为审题有误,虽然是成功了,但是做了许多多余的操作。
- 3)在开发一个复数类Complex的时候,因为已经不熟悉复数的运算公式了,所以在编写运算时多有错漏,最后都一一订正并测试成功了。
- 4)用StarUML建模算是最容易的一个了,StarUML在群文件里可以找到,然后按照示例图进行操作就完成了。
- 1)前两个提交点是在课堂上完成的,下载安装
3. 实验过程中遇到的问题和解决过程
-
问题1:前两个提交点因为有学长的数次指导,所以遇到的一些不懂怎么操作的问题都很快解决了,只是最后在JUtil用测试MyUtil的时候直接把示意图上的代码照抄了过去,结果有很多错误。
-
问题1解决方案:当时因为是第一次使用JUtil,不是很清楚错误情况,自己从头把MyUtilTest仔细研究了一遍之后,找出了几个错误并修改了一些数据和字符串,解决起来其实也不是很难。
-
问题2:解决第三个提交点的时候读题不仔细,原本是
用自己的学号%6进行取余运算,根据结果进行代码扩充:
,但是我当时把六种都做了,然后把输出的数字改成了学号的余数。
-
问题2解决方案:这个我反应过来的时候已经完成,所以为了得到包含每个关键部分的代码截图,截取了好几张,而且图片包含的内容比较杂乱。
-
问题3:开发一个复数类Complex的时候不熟悉复数的运算公式,又不想再设置更多的变量,就把一整个运算放在一个式子里,就导致了许多错误。
-
问题3解决方案:不断的代入测试数据和笔算结果比较,检查式子是否有错误。
4.其他(感悟、思考等)
- 前面几个实验几乎都是完全按照博客指示做的,可以说时知其然而不知其所以然,但是实验四有了自己更多的思考,才算是理解了单元测试和TDD。
- TDD的使用可以检查并大量减少自己所编程序中的错误,特别是边界错误这种自己难以发现的错误。
- 在编程前画出UML图可以让我们在编程时思路清晰,在做编程项目之前有UML图可以免去在编程中思路不清晰导致的错误。