课程:《程序设计与数据结构》
班级: 1723
姓名: 周亚杰
学号:20172308
实验教师:王志强
实验日期:2018年4月17日
必修/选修: 必修html
实验1:认识编程中三种码:伪代码、产品代码、测试代码;对编写的类进行测试,这个实验实验中咱们共完成了三种测试:测试正常、测试异常、测试边界
实验结果:
(实验1代码连接)java
实验2:以 TDD的方式研究学习StringBuffer:学习使用StringBuffer类,用API查阅StringBuffer类方法,并测试(
实验2代码连接)
实验结果:
git
实验3:对设计模式示例进行扩充,体会OCP原则和DIP原则的应用,初步理解设计模式,用本身的学号%6进行取余,让系统支持Boolean类,并在MyDoc类中添加测试代码代表添加正确:(实验3代码连接)
实验结果:编程
实验4:以TDD的方式开发一个复数类Complex:主要难点体如今复数类的编写上(实验4代码连接)
实验结果:
设计模式
实验5:用UML代码进行建模:主要难点体如今画图软件的使用上,不太好上手。经过百度和屡次尝试,画图如图:
数据结构
问题1:在作前两个实验的时候,最大的阻挠是在TDD测试的时候,弹出来一个红色框框,如图:
而后手贱点开了,后来致使全部的程序中有汉字的都不能运行,出现了乱码。单元测试
问题1解决过程:这个问题的出现彻底是个意外。后来问了学长,老师,没解决。学长让我从新建个项目,而后我就发现了问题所在,就是如图所示:
后来老师也找到了缘由(。。。我是蒙的),字符集选错了。。学习
问题2:在TDD测试的时候,发现import一个类以后,其中的方法仍是不能用,如图:
测试
问题2解决方案:很明显是个人import写错了,应该是直接写包名及其下的类,即import experiment.MyUtil;
。这是个很小的问题,但问题是以往所写的要不就是把类都放在一个包下面不用import的,要不就是在包名前面写了Java的,而后自动认为import的时候都得写java,若是不是用的IDEA能够直接生成声明,在Linux里写的话,我可能会疯掉。设计
问题3:还有一个很神奇的现象,如图:
问题3解决方案:固然一眼就能看出来我把package的名字写错了,没有具体写到程序所在的文件夹名,因而就出现了上面的状况:自动又给我生成了一个test文件夹,而后把个人代码程序放在了TTD测试代码下面了。这个问题虽然是一个简单的错误产生的,可是若是直接看到这种状况的话,我可能一会儿想不到解决方法,因此在这里记录一下。修正后的代码如图:
问题4:在编写Complex类的时候,出现了如图错误:
能够考到assertEquals,自动被画上了横线,很显然是括号里的内容写错了
问题4解决方案:一开始在编写类的时候,是考虑到写两个方法,分别获得数的实部和虚部,而后分别计算,再经过toString把结果加上“i”,但存在一个问题就是,由于toString把最后获得的结果变成了字符串类型,导致assertEquals的时候,不能正确测试。后来换了一种思路,代码如图:
直接调用写好的add方法,将两个数进行计算,但因为对象a和b都是Complex类声明的,因此须要用String.valueOf
把他们的结果变成String类,再把预测结果写成String类,就能够经过测试了。