20172329 2017-2018-2 《程序设计与数据结构》实验二报告

20172329 2017-2018-2 《程序设计与数据结构》实验二报告

课程:《程序设计与数据结构》
班级: 1723
姓名: 王文彬
学号:20172329
实验教师:王志强
实验日期:2018年4月21日
必修/选修: 必修php

1.实验内容

  1. 初步掌握单元测试和TDD
  2. 理解并掌握面向对象三要素:封装、继承、多态
  3. 初步掌握UML建模
  4. 熟悉S.O.L.I.D原则
  5. 了解设计模式
  6. 完成实验。

2. 实验过程及结果

1、理解内容
首先,我根据老师所给的几篇博客中大体了解了什么是TDD测试,什么是S.O.L.I.D原则而且基于课本更加深层次的对封装、继承、多态的内容进行学习;以后,根据老师所给的例子和博客的相关步骤就开始了实验。html

2、实验第一个提交点内容及其过程web

参考实验二 完成单元测试的学习
提交最后三个JUnit测试用例(正常状况,错误状况,边界状况)都经过的截图,截图上要有画图加水印,输入本身的学号
本提交点考查JUnit会不会使用,测试用例至少要包含正常状况,错误状况,边界状况的测试设计模式

第一个实验由于是第一次接触到TDD测试,一切都显的那么陌生,感受须要下载的东西不少;
一、准备阶段:首先,使用IDEA在本身的根目录下创建了一个test的测试文件夹,而且将它定义为了源目录,
数据结构

这个目录是为了能够将本身已经编好的程序能够进一步进行测试所对应的测试文件夹。
以后,紧接着下载了一个叫作JUnit的插件,若是想要完成测试,这个插件必不可少,掌握核心科技!!
咱们的准备工做也就到此结束了,接下来就要开始咱们的实验了;
二、实验开始:
首先将本身想要测试的类编写好,在第一行的位置左右,会出现一个形似下图的“小灯泡”而且会出现字样:建立测试。
ide

点击一下那个“建立测试”后,test目录中就会出现一个测试程序,以后咱们就能够开始咱们的测试之路了,首先,我以前已经写好的一个被测试程序在待命,为的就是如今,测试程序须要继承被测试类,而且编写测试对象,在这里咱们就须要另一个很关键的方法叫作assertEquals,其做用就是为了去对比咱们所期待的值和预计的值是否相同(ps:此处的相同不只要内容相同,并且属性也要相同),相同才会显示一条绿线,表示经过,如同下图:
函数

在测试经过之后,再加上本身的学号水印,也就算是第一个实验结束了。单元测试

3、实验第二个提交点内容及其过程学习

参考 积极主动敲代码,使用JUnit学习Java
以 TDD的方式研究学习StringBuffer
提交你的单元测试用例和测试经过的截图,截图要加上学号水印
测试本身会不会写JUnit测试用例测试

在有了第一个实验的基础上,开始个人第二个实验也变得不是很困难;
首先,继续去看要求里所给出的博客,根据要求开始进行对被测试代码的编写:

完成了以后,继续实验一的步骤,点击“建立测试”,开始编写测试类:

注:在编写测试类的时候,要记得写清楚测试代码是什么,就是图中“@test”后面的代码,@test不能丢。

4、实验第三个提交点内容及其过程

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

这道题应该是对于S.O.L.I.D原则最先的引入,因此当我第一次看到这道题目的时候,稍微有点懵,感受好多啊,第一个想法就是前面两个不是很难,这个确定就开始增长难度了,果不其然,虽然对于代码的敲入模仿着老师的例子敲其实就能够完成任务,但这终究须要弄懂,因此不如先看懂吧,因而就开始了对老师博客的仔细研读;老师的博客里进行了两次大的改动,老师举例“客户须要支持Float类,由于基于S.O.L.I.D原则,Document类不能作出改变,因此就须要用到设计模式了,也就引入了”设计工厂“这个概念。借用老师的图说明一下

感受这个图仍是很明细的;
ps:老师截图里明明是实现int类,误导咱们这些小朋友.....

这是我实现Double类的实验图

5、实验第四个提交点内容及其过程

提交:单元测试代码和运行成功截图及码云上代码连接,截图要加上学号水印
任务:以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)

在拿到这一道实验要求的时候,实际上是发觉须要一些套路,而且编写复数的四则运算;
首先,按照要求编写上面的集中方法以及定义变量,进行相关的计算,而后开始测试:

6、实验第五个提交点内容及其过程

使用StarUML对实验二中的代码进行建模,发类图的截图,加上学号水印
类图中只少两个类
类,继承,接口实现,组合在UML中表达
经过软件

进行UML图制做;

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

-问题1:在编写复数类而且进行测试的时候,虽然内容相同,可是老是显示不经过?

  • 问题1解决方法:
    第一种,在蓝墨云里,学长说在后面加上.toString就能够了,由于两个返回的类型不同,试过之后的确能够;
    第二种,我本身看了一篇别人的博客之后,关于对比String几种类型的博客,发现用String.valueOf也是能够的;

其余(感悟、思考等)

感受时间愈来愈少,有时候本身在敲代码的时候,很茫然,不知道为什么敲,其目的是什么,真的如今在班里呈现一种虚假的繁荣的感受。

参考资料

蓝墨云班课
积极主动敲代码,使用JUnit学习Java
实验二 Java面向对象程序设计
String、String.valueOf、toString 它们三者的区别总结
实验二《Java面向对象程序设计》的一点说明

相关文章
相关标签/搜索