172322 2018-2019-1 《程序设计与数据结构》实验三报告

172322 2018-2019-1 《程序设计与数据结构》实验三报告

  • 课程:《程序设计与数据结构》
  • 班级: 1723
  • 姓名: 张昊然
  • 学号:20172322
  • 实验教师:王志强
  • 助教:张之睿/张师瑜
  • 实验日期:2018年11月19日
  • 必修/选修: 必修

1.实验内容

  • 此处填写实验的具体内容:

  • 节点一:定义一个SearchingSorting类,并在类中实现linearSearch(教材P162 ),SelectionSort方法(P169),最后完成测试。要求不少于10个测试用例,提交测试用例设计情况(正常,异常,边界,正序,逆序),用例数据中要包含自己学号的后四位,提交运行结果图。

  • 节点二:重构你的代码
    Sorting.java Searching.java放入 cn.edu.besti.cs1723.(姓名首字母+四位学号) 包中(例如:cn.edu.besti.cs1723.G2301),把测试代码放test包中重新编译,运行代码,提交编译,运行的截图(IDEA,命令行两种)

  • 节点三:参考http://www.cnblogs.com/maybe2030/p/4715035.html 在Searching中补充查找算法并测试,提交运行结果截图

  • 节点四:补充实现课上讲过的排序方法:希尔排序,堆排序,二叉树排序等(至少3个),测试实现的算法(正常,异常,边界),提交运行结果截图

  • 节点五:编写Android程序对各种查找与排序算法进行测试,提交运行结果截图,推送代码到码云

2.实验过程及结果

过程:

  • 本次实验总共五个提交点。我也分为五个部分来写过程。
    • 第一:因为之前已经将教材代码放入IDEA中,所以直接复制粘贴linearSearchSelectionSort方法进实验要求的SearchingSorting类中,并且按照要求使用Junit测试边界、逆序、错误等情况。
    • 第二:在第一个节点的基础上将SearchingSorting类放入cn.edu.besti.cs1723.zhr2301包中后进行测试,然后在Linux虚拟机中建立cn.edu.besti.cs1723.zhr2301SearchingSorting类其中,然后在命令行中进行测试。
    • 第三:补充了二分查找、插值查找、斐波那契查找法,并用Junit进行测试。
    • 第四:补充了冒泡排序、归并排序、插入排序、希尔排序、堆排序、快速排序方法,并利用Junit进行测试。
    • 第五:打开AndroidStudio并设计界面,将SortingSearching类放入其中,运行app对固定数组的查找与排序进行测试。

结果:

1.


2.






3.

4.

5.















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

  • 问题1:在节点一中要求利用Junit进行测试,但相关的测试方法已经有些遗忘,在编写测试类初期始终无法进行正常的测试。
  • 问题1解决方案:查询资料后了解到,所有的Junit测试类都需要extends TestCase不然无法进行测试;所有的测试方法的名称都必须要以test打头,例如测试顺序查找,其Junit方法名为testSequenceSearch(),不然也无法进行测试。
  • 问题2:在做节点二时需要在命令行中对SearchingSorting类进行测试,但是在命令行的Junit测试方法自己并不熟悉。
  • 问题2解决方案:在网上搜索资料查询如何在命令行中进行Junit测试后发现自己的Linux系统并没有安装相关组件,最后询问同学他们如何进行测试,发现并没有利用Junit,所以自己也就放弃了Junit测试,写了一些main方法来进行测试。
  • 问题3:在节点五利用AndroidStudio编写app进行测试时对于部分使用方法已经忘记,也遇到了不少困难。
  • 问题3解决方案:向结对伙伴范雯琪同学询问了相关问题,并且参考之前的app,最终实现了相关要求。
  • 问题4:在对selectionSort方法进行测试时最初的Junit测试法测试时出现了一些问题,导致比较的是数组的哈希值,如图:
  • 问题4解决方案:重新令了一个数组,如图,便解决了问题。

其他(感悟、思考等)

感悟

  • 许多东西都是需要多多练习才能做到不遗忘的。例如Junit测试和AS的使用等等。

参考资料

posted @ 2018-12-03 16:48  zhangyeye233  阅读(214)  评论(0编辑  收藏  举报