20202317向岩杰 实验三 《数据结构与面向对象程序设计》实验报告

 # 20202317 2021-2022-1 《数据结构与面向对象程序设计》实验报告

课程:《程序设计与数据结构》
班级: 2023
姓名:向岩杰
学号:20202317
实验教师:王志强
实验日期:2021年9月30日
必修/选修: 必修

 

## 1.实验内容

下载安装并使用IDEA,完成下面实验(https://www.cnblogs.com/rocedu/p/6371315.html)。

1. 初步掌握单元测试和TDD

2. 理解并掌握面向对象三要素:封装、继承、多态

3. 初步掌握UML建模

4. 完成蓝墨云上 (1)-(5)实验。

 

## 2.实验过程及结果

1. 初步掌握单元测试和TDD

  见云班课实验(2),Testsubstring为扩充的代码

2. 理解并掌握面向对象三要素:封装、继承、多态

  (1)封装与继承

    封装:使用private关键字将类的某些信息隐藏在类内部,不允许外部程序直接访问,通过该类提供的getter、            setter方法访问。

    继承:子类继承父类的特征和行为。

 

 

  (2)多态 父类引用变量可以指向子类对象

 

 



3. 初步掌握UML建模

  使用STARUML对实验二的Culculator类进行建模,见下图

 

 

4. 完成蓝墨云上 (1)-(5)实验。

 

(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,提交你的单元测试用例和测试通过的截图,截图要加上学号水印。

 

 

 

(3)任务详情

实验三 Java面向对象程序设计(http://www.cnblogs.com/rocedu/p/4472842.html)

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

对设计模式示例进行扩充,体会OCP原则和DIP原则的应用,初步理解设计模式
用自己的学号%6进行取余运算,根据结果进行代码扩充:
0:让系统支持Byte类,并在MyDoc类中添加测试代码表明添加正确,提交测试代码和运行结的截图,加上学号水印
1:让系统支持Short类,并在MyDoc类中添加测试代码表明添加正确,提交测试代码和运行结的截图,加上学号水印
2:让系统支持Boolean类,并在MyDoc类中添加测试代码表明添加正确,提交测试代码和运行结的截图,加上学号水印
3:让系统支持Long类,并在MyDoc类中添加测试代码表明添加正确,提交测试代码和运行结的截图,加上学号水印
4:让系统支持Float类,并在MyDoc类中添加测试代码表明添加正确,提交测试代码和运行结的截图,加上学号水印
5:让系统支持Double类,并在MyDoc类中添加测试代码表明添加正确,提交测试代码和运行结的截图,加上学号水印

  (!)对设计模式示例扩充,Double型

 

   (!!)对学号模6运算并扩充代码

      Byte型

 

 

      Short型

 

 

      Boolean型

 

 

      Long型

 

 

      Float型

 

 

      Double型

 

 

(4)任务详情

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

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

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

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

 

 

 

 

  Complex类码云链接:https://gitee.com/A20202317-xiang-yanjie/xyj20202317/blob/master/bin/Complex.java

  测试代码码云链接:
  https://gitee.com/A20202317-xiang-yanjie/xyj20202317/blob/master/bin/ComplexTest.java

(5)任务详情

使用[WhiteStarUML](http://whitestaruml.sourceforge.net/)对实验二中的代码进行建模,发类图的截图,加上学号水印。
参考http://www.cnblogs.com/rocedu/p/6736847.html
## 3. 实验过程中遇到的问题和解决过程

- 问题1:junit的配置,junit3配置后仍然无法使用
- 问题1解决方案:重新配置路径,尝试了包括junit-4.12等许多版本,最后一股脑全部放进去才搞定
- 问题2:在(2)中test charAt时,出现预期与实际情况一样但是仍报错
- 问题2解决方案:检查代码后发现单引号用成了双引号- 问题1:junit的配置,junit3配置后仍然无法使用

- 问题3:对于设计模式的格式和具体方法不清楚,包括Byte等的包装类不熟悉
- 问题3解决方案:查阅资料

 

 


## 其他(感悟、思考等)

这次实验对于TDD和设计模式这些新的东西有了更深的体会,特别是对于产品代码和测试代码的理解,产品代码相当于一个类,测试代码通过调用这个类中的方法来验证这个类是否发挥了作用。其次是设计模式中的工厂方法模式,老师提供的示例中主要是使用这个模式,还有包括抽象工厂模式(AbstractFactory)等许多模式,通过代码扩充,对于设计模式的可重用性、可扩充性、可维护性和灵活性好等特点有了更进一步地理解。

posted @ 2021-10-11 17:02  20202317向岩杰  阅读(41)  评论(0编辑  收藏  举报