文档章节

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

o
 osc_z1hvg4cu
发布于 2018/04/25 00:36
字数 2138
阅读 10
收藏 0

精选30+云产品,助力企业轻松上云!>>>

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

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

##1.实验内容

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

##2. 实验过程及结果

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

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

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

第一个实验因为是第一次接触到TDD测试,一切都显的那么陌生,感觉需要下载的东西很多; 1、准备阶段:首先,使用IDEA在自己的根目录下建立了一个test的测试文件夹,并且将它定义为了源目录,

这个目录是为了可以将自己已经编好的程序可以进一步进行测试所对应的测试文件夹。 之后,紧接着下载了一个叫做JUnit的插件,<span style="color:red">如果想要完成测试,这个插件必不可少,掌握核心科技!!</span> 我们的准备工作也就到此结束了,接下来就要开始我们的实验了; 2、实验开始: 首先将自己想要测试的类编写好,在第一行的位置左右,会出现一个形似下图的<span style="color:red">“小灯泡”</span>并且会出现字样:创建测试。

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

在测试通过以后,再加上自己的学号水印,也就算是第一个实验结束了。

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

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

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

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

<span style="color:red">注:在编写测试类的时候,要记得写清楚测试代码是什么,就是图中“@test”后面的代码,@test不能丢。</span>

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

参考实验二 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类不能做出改变,所以就需要用到设计模式了,也就引入了”设计工厂“这个概念。借用老师的图说明一下

感觉这个图还是很明细的; <span style="color:red">ps:老师截图里明明是实现int类,误导我们这些小朋友.....</span>

这是我实现Double类的实验图

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

提交:单元测试代码和运行成功截图及码云上代码链接,截图要加上学号水印 任务:以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中表达 通过软件

进行UML图制作;

##3. 实验过程中遇到的问题和解决过程 -问题1:在编写复数类并且进行测试的时候,虽然内容相同,但是总是显示不通过?

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

##其他(感悟、思考等) 感觉时间越来越少,有时候自己在敲代码的时候,很茫然,不知道为何敲,其目的是什么,真的现在在班里呈现一种虚假的繁荣的感觉。 ##参考资料 蓝墨云班课 积极主动敲代码,使用JUnit学习Java 实验二 Java面向对象程序设计 String、String.valueOf、toString 它们三者的区别总结 实验二《Java面向对象程序设计》的一点说明

o
粉丝 0
博文 500
码字总数 0
作品 0
私信 提问
加载中
请先登录后再评论。
20165218 2017-2018-2 《Java程序设计》课程总结

20165218 2017-2018-2 《Java程序设计》课程总结 一、每周作业链接汇总 20165218 我期望的师生关系 20165218 学习基础和C语言基础调查 20165218 预备作业3 Linux安装及学习 20165218 2017-20...

osc_apej9ed1
2018/06/10
9
0
2017-2018-2 1723《程序设计与数据结构》每周成绩 (更新完毕)

<span id="jump">目录</span> 第 00 周 - 成绩(预备作业03、Linux命令测试) 第 01 周 - 成绩(第一周博客、云班课测试) 第 02 周 - 成绩(第二周博客、云班课测试、课堂表现) 第 03 周 ...

osc_cidzbjes
2018/03/12
2
0
20165303 2017-2017-2《Java程序设计》课程总结

1、我期待的师生关系20165303我期望的师生关系2、学习基础和C语言基础调查20165303学习基础和C语言基础调查3、linux安装及学习20165303 预备作业3 Linux安装及学习4、git入门教学20165303魏煜...

osc_apej9ed1
2018/06/10
5
0
20172312 实验一《Java开发环境的熟悉》实验报告

20172312 2017-2018-2 《程序设计与数据结构》实验1报告 课程:《程序设计与数据结构》 班级: 1723 姓名:彭霖 学号:20172312 实验教师:王志强 实验日期:2018年3月21日 必修/选修: 必修...

osc_fph3t0qa
2018/03/21
2
0
20172310 《程序设计与数据结构》实验二报告

20172310 2017-2018-2 《程序设计与数据结构》实验二报告 课程:《程序设计与数据结构》班级: 1723姓名: 仇夏学号:20172310实验教师:王志强实验日期:2018年4月21日必修/选修:必修 实验...

osc_x4rg8g6r
2018/04/25
10
0

没有更多内容

加载失败,请刷新页面

加载更多

MongoDB入门系列——3.可视化工具篇

点击上方,轻松关注!! 前面我们已经介绍了MongoDB怎么安装,接下来要安装他的可视化工具——Studio 3T。 先到这下载一个压缩包,百度网盘,https://pan.baidu.com/s/1M8mlWo334KE8I1_UA2Da...

学习Java的小姐姐
2018/11/08
17
0
分层图的绘制 python(来自国外课程)

Exercise 10: Hierarchical clustering of the grain data In the video, you learnt that the SciPy linkage() function performs hierarchical clustering on an array of samples. Use th......

齐勇cn
41分钟前
13
0
微信小程序超简单的双向绑定(类似vue的v-model)

<input model:value="{{value}}" />

祖达
41分钟前
9
0
为什么AngularJS在select中包含一个空选项? - Why does AngularJS include an empty option in select?

问题: I've been working with AngularJS for the last few weeks, and the one thing which is really bothering me is that even after trying all permutations or the configuration de......

技术盛宴
44分钟前
13
0
centos宝塔面板安装及常见错误处理(超级详细)

原文连接:https://www.wjcms.net/archives/centos%E5%AE%9D%E5%A1%94%E9%9D%A2%E6%9D%BF%E5%AE%89%E8%A3%85%E5%8F%8A%E5%B8%B8%E8%A7%81%E9%94%99%E8%AF%AF%E5%A4%84%E7%90%86%E8%B6%85%E7%......

神兵小将
今天
17
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部