172322 2018-2019-1 《程序設計與數據結構》實驗三報告

172322 2018-2019-1 《程序設計與數據結構》實驗三報告

  • 課程:《程序設計與數據結構》
  • 班級: 1723
  • 姓名: 張昊然
  • 學號:20172322
  • 實驗教師:王志強
  • 助教:張之睿/張師瑜
  • 實驗日期:2018年11月19日
  • 必修/選修: 必修

1.實驗內容

  • 此處填寫實驗的具體內容:php

  • 節點一:定義一個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程序對各類查找與排序算法進行測試,提交運行結果截圖,推送代碼到碼雲html

2.實驗過程及結果

過程:

  • 本次實驗總共五個提交點。我也分爲五個部分來寫過程。
    • 第一:由於以前已經將教材代碼放入IDEA中,因此直接複製粘貼linearSearchSelectionSort方法進實驗要求的SearchingSorting類中,而且按照要求使用Junit測試邊界、逆序、錯誤等狀況。
    • 第二:在第一個節點的基礎上將SearchingSorting類放入cn.edu.besti.cs1723.zhr2301包中後進行測試,而後在Linux虛擬機中創建cn.edu.besti.cs1723.zhr2301SearchingSorting類其中,而後在命令行中進行測試。
    • 第三:補充了二分查找、插值查找、斐波那契查找法,並用Junit進行測試。
    • 第四:補充了冒泡排序、歸併排序、插入排序、希爾排序、堆排序、快速排序方法,並利用Junit進行測試。
    • 第五:打開AndroidStudio並設計界面,將SortingSearching類放入其中,運行app對固定數組的查找與排序進行測試。

結果:

1.


java

2.






web

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的使用等等。

參考資料

相關文章
相關標籤/搜索