实验三

20182334 2019-2020-1 《数据结构与面向对象程序设计》实验三报告

课程:《程序设计与数据结构》
班级: 1823
姓名: 姬旭
学号: 20182334
实验教师:王志强
实验日期:2019年9月23日
必修/选修: 必修

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. 实验过程及结果

按照老师的教程下载并使用IDEA,用起来比Linux要方便许多。做了四个实验,每个实验都是在上一步的基础上一步步进阶的。

面向对象程序设计(1)

参考 http://www.cnblogs.com/rocedu/p/6371315.html#SECUNITTEST
参考http://www.cnblogs.com/rocedu/p/6736847.html

提交最后三个测试用例都通过的截图,截图上要有画图加水印,输入自己的学号。

在做这个实验时,还并不清楚类和方法什么的之间的关系,完全是照猫画虎,依照学长学姐的代码自己慢慢做出来的,也有的依靠同学慢慢摸索出来的。

面向对象程序设计(2)

参考 积极主动敲代码,使用JUnit学习Java (http://www.cnblogs.com/rocedu/p/4837092.html)
参考http://www.cnblogs.com/rocedu/p/6736847.html
以 TDD的方式研究学习StringBuffer,提交你的单元测试用例和测试通过的截图,截图要加上学号水印。

StringBuffer当时确实有点难道我了,因为必须要在Junit的环境下进行测试,可能是我还没有完全掌握,感觉很难懂。

面向对象程序设计(4)

提交:单元测试代码和运行成功截图及码云上代码链接,截图要加上学号水印

参考http://www.cnblogs.com/rocedu/p/6736847.html

任务:以TDD的方式开发一个复数类Complex,要求如下:

// 定义属性并生成getter,setter
double RealPart;
double ImagePart;

在做这个实验时,我感觉自己进步了!可能是老师带着做了一个类似的实验,让我有许多收获,比如在Complex里设置方法,用IDEA里的自动生成,立马就出现了很多方法,toString也是分分钟就出现了,确实省了不少事,带来了便利,也让我学到很多。

面向对象程序设计(5)

使用WhiteStarUML对实验二中的代码进行建模,发类图的截图,加上学号水印。
参考http://www.cnblogs.com/rocedu/p/6736847.html

类图中只少两个类。

在做这个实验时,老师也教了关于自动生成UML的方式,在IDEA 里用快捷键可以立刻生成类图,我用过之后发现确实带来了很多便利。

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

  • 问题1:在第一个实验里,我会产生逻辑错误,比如,我会忽略当成绩小于0时的情况,结果测试不成功,让人头大,

  • 问题1解决方案:后来才发现自己少想了一种情况,立马再次思考,发现是漏想了一种情况,

  • 问题2:在StringBuffer里我不明白charAt、indexOf分别是啥意思,于是在写测试程序时,出现多次测试不过。

  • 问题2解决方案:在看书查资料看老师发的教程后,明白charAt是指在一串字符串里面猜你想要的字符,并判断第几位是,比如下图,括号里的数字代表字符串里的第几位,单引号里面的字符是你猜测的。

那么一明白这个道理后,测试通过。

  • 问题3:不明白indexOf是啥意思,小小的脑袋,大大的疑问。

  • 问题3解决方案:同上一个问题一样,自己一遍一遍的测试,观察中间的规律,之后再听同学的讲解,明白其中的道理:所谓indexOf,如下图,在括号里的字符是你要猜它在字符串里是第几位开始,如果字符串里没有这个字符,那么就是-1。

  • 问题4:在第4个实验里,不明白复数的算法,在定义方法时,会产生很多疑问和错误。

  • 问题4解决方案:世上无难事只怕有心人,在我的不懈努力下,我终于搞懂了一些这方面的知识。在定义方法时,要在原函数的基础上,定义常量和方法。


其他(感悟、思考等)

离开Linux来到IDEA,感觉很舒服,但是又感觉之前培养的Linux逻辑又慢慢荒废了,不知是好是坏,但毕竟提供了方便。在IDEA上的学习过程中,我能感受到Java还有很多复杂的东西我们还没有接触到,我现在仍然感觉自己接触的只是皮毛,可能自己还没有完全理解Java里的类和方法,在后面的学习生活中,得要好好下功夫,对于不会的点要往里钻,不能遇到挫折就停下。这个实验做了一个星期,感到艰难,但又充实。

参考资料

原文地址:https://www.cnblogs.com/cistineup/p/11604522.html