# 20182304 实验七 《数据结构与面向对象程序设计》实验报告

Posted acgacg

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了# 20182304 实验七 《数据结构与面向对象程序设计》实验报告相关的知识,希望对你有一定的参考价值。

20182304 实验七 《数据结构与面向对象程序设计》实验报告

课程:《程序设计与数据结构》
班级: 1823
姓名: 张子正
学号:20182304
实验教师:王志强
实验日期:2019年9月17日
必修/选修: 必修

1.实验内容

此处填写实验的具体内容;

  • 1.定义一个Searching和Sorting类,并在类中实现linearSearch,SelectionSort方法,最后完成测试。
    要求不少于10个测试用例,提交测试用例设计情况(正常,异常,边界,正序,逆序),用例数据中要包含自己学号的后四位
    提交运行结果图。
    重构你的代码
  • 2.把Sorting.java Searching.java放入 cn.edu.besti.cs1823.(姓名首字母+四位学号) 包中(例如:cn.edu.besti.cs1823.G2301)
    把测试代码放test包中
    重新编译,运行代码,提交编译,运行的截图(IDEA,命令行两种)
  • 3.参考http://www.cnblogs.com/maybe2030/p/4715035.html ,学习各种查找算法并在Searching中补充查找算法并测试
    提交运行结果截图
  • 4.补充实现课上讲过的排序方法:希尔排序,堆排序,二叉树排序等(至少3个)
    测试实现的算法(正常,异常,边界)
    提交运行结果截图(如果编写多个排序算法,即使其中三个排序程序有瑕疵,也可以酌情得满分)

    2. 实验过程及结果

  • 1.1 单元测试还是较为基础的,编写测试代码的思路较为直观和简单。我们应该注意要同时进行多组测试,不仅要测试正常结果,还要进行错误结果测试和边界测试,这样才能较为全面发现代码的问题。
  • 1.2 在进行TDD测试时,我们需要下载插件JUnit,TDD要求先写好测试代码,再完成产品代码,测试用例表达了对产品代码的需求,只要产品代码可以通过测试就可以了。
  • 2.1封装:对象应该是封装的,封装就是将数据与相关行为包装在一起以实现信息隐藏,既可以隐藏类的实现细节,又可以避免对类中属性的直接操作。封装实际上控制用户对类的修改和访问数据的程度,只能够通过对象提供服务的那些方法与程序其它部分进行交互,接口是封装的准确描述手段。
  • 2.2 继承:继承是从已有类派生一个新类的过程,通过对某一个类的继承产生一个新的子类,子类既有从某个类中继承下来的功能,又可以自行定义自己的变量和方法,产生新的功能。继承是实现软件可重用的根基,是提高软件系统的可扩展性与可维护性的主要途径。
  • 2.3 多态:多态是引用变量在不同时刻指向不同类型的一种能力。多态是指不同的类对象调用同一个签名的成员方法时将执行不同代码的现象。多态可以实现方法的名字相同,但实现不同。即“同一接口,多个方法”。多态是面向对象程序设计的灵活性和可扩展性的基础。
  • 3.1 在UML类图中,每个类可能包含三部分内容:类名、属性、操作(方法)。UML类图有属于自己的语法,变量的类型名在变量名的后面,它们之间用冒号作为分隔符,方法的+和-表明可见性。箭头指向,表明一个类知道并以某种方法使用另一个类(调用)。但是我现在对于软件绘图的方法掌握的还不是很到位。
  • 4.实验结果已发截图至云班课。

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

  • 问题1:在进行TDD实验时,在解决了娄老师的TestCase变红问题后,@test依然是红色的
  • 问题1解决方案:只使用了import junit.framework.TestCase,没有使用importorg.junit.Test,缺少了导入路径,添加之后恢复正常
  • 问题2:TDD实验时,在点击小灯泡生成.test空文件后,并没有生成现成的绿色文件夹
  • 问题2解决方案:通过百度,从自己的主目录下,右键新建Directory命名文件名为test,再右键单击test,在make directinon as 栏中选择Test source root,该文件夹就成功变成了test文件
  • 问题3:在编写第四个作业时,如果我想使用(object obj)传参时,判断两个复数是否相等的测试程序一直错误
  • 问题三解决方案:我现在对参数为object类型的使用还没有很好的理解,只能先把可以运行的结果贴出来,有待于进一步研究学习
public boolean equals(Object obj) {
       if (this == obj)
           return true;
   else
           return false;
   } 

其他(感悟、思考等)

  • 我们敲代码时需要足够的严谨细致,只要有一点标红的地方程序都是无法正常运行的
  • 要勤于翻阅课本,熟悉课本内容,很多实验内容如UML的语法就写在课本上,我忽视了这一点导致实验五出现了问题

参考资料

以上是关于# 20182304 实验七 《数据结构与面向对象程序设计》实验报告的主要内容,如果未能解决你的问题,请参考以下文章

20182304 《数据结构与面向对象程序设计》第七八周学习总结

《数据结构与面向对象程序设计》实验六报告

20182323 2019-2020-1 《数据结构与面向对象程序设计》实验七报告

20182332 《数据结构与面向对象程序设计》实验七报告

20182306 2019-2020-1 《数据结构与面向对象程序设计》实验七报告

20182311 2019-2020-1 《数据结构与面向对象程序设计》实验七报告