20172303 2017-2018-2 《程序设计与数据结构》实验二报告
- 课程:《程序设计与数据结构》
- 班级: 1723
- 姓名: 范雯琪
- 学号:20172303
- 实验教师:王志强
- 助教:张旭升/刘伟康
- 实验日期:2018年4月17日
- 必修/选修: 必修
1.实验内容
- 初步掌握单元测试和TDD
- 理解并掌握面向对象三要素:封装、继承、多态
- 初步掌握UML建模
- 熟悉S.O.L.I.D原则
- 了解设计模式
- 完成蓝墨云上 (1)-(5)实验。
2.实验过程及结果
过程:
- 本次实验老师一共设置了5个提交节点分别是:
节点一
- 参考IDEA 简易教程完成单元测试的学习
- 提交最后三个JUnit测试用例(正常情况,错误情况,边界情况)都通过的截图,截图上要有画图加水印,输入自己的学号
- 本提交点考查JUnit会不会使用,测试用例至少要包含正常情况,错误情况,边界情况的测试
节点二
- 参考积极主动敲代码,使用JUnit学习Java
以 TDD的方式研究学习StringBuffer - 提交你的单元测试用例和测试通过的截图,截图要加上学号水印
- 测试自己会不会写JUnit测试用例
节点三
- 参考实验二 Java面向对象程序设计
对设计模式示例进行扩充,体会OCP原则和DIP原则的应用,初步理解设计模式 - 用自己的学号%6进行取余运算,根据结果进行代码扩充:
- 0:让系统支持Byte类,并在MyDoc类中添加测试代码表明添加正确,提交测试代码和运行结的截图,加上学号水印
- 1:让系统支持Short类,并在MyDoc类中添加测试代码表明添加正确,提交测试代码和运行结的截图,加上学号水印
- 2:让系统支持Boolean类,并在MyDoc类中添加测试代码表明添加正确,提交测试代码和运行结的截图,加上学号水印
- 3:让系统支持Long类,并在MyDoc类中添加测试代码表明添加正确,提交测试代码和运行结的截图,加上学号水印
- 4:让系统支持Float类,并在MyDoc类中添加测试代码表明添加正确,提交测试代码和运行结的截图,加上学号水印
- 5:让系统支持Double类,并在MyDoc类中添加测试代码表明添加正确,提交测试代码和运行结的截图,加上学号水印
节点四
- 提交:单元测试代码和运行成功截图及码云上代码链接,截图要加上学号水印
- 任务:以TDD的方式开发一个复数类Complex,要求如下:
// 定义属性并生成getter,setter
double RealPart;
double ImagePart;
// 定义构造函数
public Complex()
public Complex(double R,double I)
//Override Object
public boolean equals(Object obj)
public String toString()
// 定义公有方法:加减乘除
Complex ComplexAdd(Complex a)
Complex ComplexSub(Complex a)
Complex ComplexMulti(Complex a)
Complex ComplexDiv(Complex a)
节点五
- 使用StarUML对实验二中的代码进行建模,发类图的截图,加上学号水印
- 类图中至少两个类
- 类,继承,接口实现,组合在UML中表达
结果:
节点一
节点二
节点三
节点四
节点五
3.实验过程中遇到的问题和解决过程
- 问题1:做实验二时,所写的容量显示错误
- 问题1解决方案:通过测试显示结果修改了容量,但不清楚为什么要这么改。询问张旭升学长后知道了是根据输入的字符数量规定好的。
- 问题2:UML类图的使用
- 问题2解决方案:当时做的时候特别匆忙做的特别特别烂...我都不好意思拿节点五的分了。后来又重新写了一遍:为了巩固依照PP9.3的程序写了它的UML类图。
旧图:
新图:
PP9.3:
其他(感悟、思考等)
感悟
- 本周的实验其实很简单,只要照着博客一步一步踏实地做下去就好,但做完发现自己学会了很多东西。首先使用JUnit真的能节省很多时间,然后学会使用UML类图让自己对每个程度的整体结构有了一个非常明晰的认识。