文档章节

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

o
 osc_z1hvg4cu
发布于 2018/04/24 22:52
字数 1186
阅读 7
收藏 0

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

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;要求为:
    	// 定义属性:复数有实部和虚部
    	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)除法
        public String toString()返回这个复数
    
  • 按照所给要求,将其完善,测试成功截图:

实验五

  • 使用WhiteStarUML对实验二中的代码进行建模。
  • UML图简介:AnimalTest类依赖Dog类和Cat类,两者有公有方法color,shout。Document抽象类为父类,MyDoc类和Data类继承父类,父类依赖Factory类实现整型和布尔型。
  • 完成结果如图:

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

  • 问题一:课上在做实验一的时候,明明代码是对的,可是结果总是出错,显示一串“不可映射字符”。

  • 问题一解决:在询问了王老师之后,他说是汉化包的问题,有汉语出现时容易出错,没有解决办法,所以我就把汉语全部更改成英文,就解决了。之后,王老师给出了解决办法,就是在IDEA右下角显示UTF-8的地方换成GBK就可以了。

  • 问题二:在安装插件Junit时,根据博客教程,但显示错误

  • 问题二解决:使用另一种方法,选择图中的Manage repositories 处,由于当时大部分人都出错,当时根据王老师的讲解做好了。

  • 问题三:在实验二中,StringBufferDemo里的代码中有个“assertequals”,不知道是什么意思。

  • 问题三解决:在查找相关资料后得知,他的意思是‘’assertEquals([String message],expected,actual)如果预期值与真实值相等,则运行success,反之Failure。提示预期值是xxx,而实际值是xxx。容易调式。 参考

5、其他

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

6、参考资料

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
20172314 2017-2018-2 《程序设计与数据结构》实验报告三

课程:《程序设计与数据结构》班级: 1723姓名: 方艺雯学号:20172314实验教师:王志强实验日期:2018年5月16日必修/选修: 必修 1、实验内容 (1)代码规范 http://www.cnblogs.com/roced...

osc_0zs17uxd
2018/05/29
2
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
3
0
20172312 实验一《Java开发环境的熟悉》实验报告

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

osc_fph3t0qa
2018/03/21
2
0

没有更多内容

加载失败,请刷新页面

加载更多

LINUX_VERSION_CODE与KERNEL_VERSION

由于Linux版本的在不断更新,当设备驱动去兼容不同版本的内核时,需要知道当前使用的内核源码版本,以此来调用对应版本的内核API,这两个宏定义在文件 /usr/include/linux/version.h#defin...

osc_5g68egoj
14分钟前
16
0
JVM09-类加载过程

这一篇我们来学习一下JVM中的类加载过程。说到类的加载过程,我们需要先了解一下JVM中类的生命周期。在JVM中类的生命周期有七个阶段。分别是: 加载(Loading):加载是通过类加载器从不同的...

osc_zai0dt9q
15分钟前
17
0
###豪豪豪豪######2020 推荐系统技术演进趋势了解

读知乎文章《推荐系统技术演进趋势:从召回到排序再到重排》笔记: 《推荐系统技术演进趋势:从召回到排序再到重排》这篇文章主要说了下最近两年,推荐系统技术的一些比较明显的技术发展趋势...

osc_lhmderwy
17分钟前
9
0
SpringBoot入门实现RESTFUL API以及用Postman测试

Model @Data@Builderpublic class Article { private Long id; private String author; private String title; private String content; private Date createTime;}......

osc_7ludm6s2
17分钟前
4
0
Leetcode 83 删除排序链表中的重复元素-链表双指针

维护两个指针,第一个指针指向链表没有重复元素的最后一个位置,第二个指针向后扫描,直到末尾。严格来说,在C++中需要手动释放内存。但在算法题或者Java中不需要这么做。 class Solution {...

osc_n1x6m26g
19分钟前
12
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部