zoukankan      html  css  js  c++  java
  • 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的使用等等。

    参考资料

  • 相关阅读:
    [Javascript] Broadcaster + Operator + Listener pattern -- 10. Define a Function to Set Common Behaviors in Operators
    [Java Spring] Aspect
    [Javascript] Broadcaster + Operator + Listener pattern -- 24. Design choice, ifElse or merge
    [Javascript] Broadcaster + Operator + Listener pattern -- 23. ifElse operator
    [Git] Revert to a old commit
    [Tools] Dendron
    [Java Spring] Spring Expression Language
    [Java Spring] @Profile
    [Java Spring] @Value & override properties by environment variables
    [Java Spring] Implementing Spring Security
  • 原文地址:https://www.cnblogs.com/zhangyeye233/p/10059388.html
Copyright © 2011-2022 走看看