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

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

课程:《程序设计与数据结构》

班级: 1723

姓名: 方艺雯

学号:20172314

实验教师:王志强

实验日期:2018年4月18日

必修/选修: 必修

1、实验内容

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

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

  3. 初步掌握UML建模

  4. 熟悉S.O.L.I.D原则

  5. 了解设计模式

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

2、实验要求

1.没有Linux基础的同学建议先学习《Linux基础入门(新版)》《Vim编辑器》 课程

2.完成实验、撰写实验报告,实验报告以博客方式发表在博客园,注意实验报告重点是运行结果,遇到的问题(工具查找,安装,使用,程序的编辑,调试,运行等)、解决办法(空洞的方法如“查网络”、“问同学”、“看书”等一律得0分)以及分析(从中可以得到什么启示,有什么收获,教训等)。报告可以参考范飞龙老师的指导

3、 严禁抄袭,有该行为者实验成绩归零,并附加其他惩罚措施。

3、实验过程及结果

  • 准备:
    • 下载WhiteStarUML
    • IDEA中安装使用Junit的插件。

实验一、二

  • 课上完成前两个实验,知道了伪代码、产品代码和测试代码;TDD。伪代码与具体的编程语言无关,用来表明自己的编程思路。产品代码用Java语言编写,测试代码用来证明自己的代码是正确的。此外,程序员对类实现的测试叫单元测试。TDD是指先写测试代码,再写产品代码,测试驱动开发,防止无用代码的产生。
  • 测试成功截图:

实验三

  • 对设计模式示例进行扩充,体会OCP原则和DIP原则的应用,初步理解设计模式
    用自己的学号%6进行取余运算,根据结果进行代码扩充,我的学号取余为2,顾为Boolean型。OCP的内容是类函数等应该对扩充开放,对修改封闭。
  • 这个实验仿照Integer增添了boolean的;并仿照IntFactory增添了BooleanFactory。
  • 测试成功截图:

实验四

  • 以TDD的方式开发一个复数类Complex,要求如下: 定义属性并生成getter,setter ;double RealPart; double ImagePart;要求为:

    // 定义属性并生成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)
  • 按照所给要求,将其完善,测试成功截图:

实验五

  • 使用WhiteStarUML对实验二中的代码进行建模。
  • 完成结果如图:

4、实验中遇到的问题和解决过程

  • 问题一:课上在做实验一的时候,明明代码是对的,可是结果总是出错,显示一串“不可映射字符”。
  • 问题一解决:在询问了王老师之后,他说是汉化包的问题,有汉语出现时容易出错,没有解决办法,所以我就把汉语全部更改成英文,就解决了。之后,王老师给出了解决办法,就是在IDEA右下角显示UTF-8的地方换成GBK就可以了。
  • 问题二:在安装插件Junit时,根据博客教程,但显示错误

  • 问题二解决:使用另一种方法,选择图中的Manage repositories 处,由于当时大部分人都出错,当时根据王老师的讲解做好了。
  • 问题三:在实验二中,StringBufferDemo里的代码中有个“assertequals”,不知道是什么意思。
  • 问题三解决:在查找相关资料后得知,他的意思是‘’assertEquals([String message],expected,actual)如果预期值与真实值相等,则运行success,反之Failure。提示预期值是xxx,而实际值是xxx。容易调式。 参考

5、其他

感觉这次的任务要学习的很多,按照博客一步一步来是可以完成,但是并不代表我已经全部掌握,如果全部自己做在限定时间内有点难以实现。

6、参考资料

猜你喜欢

转载自www.cnblogs.com/YiYiYi/p/8934246.html
今日推荐