1. 程式人生 > 其它 >20202320 2021-2022-1 實驗七《查詢與排序》實驗報告

20202320 2021-2022-1 實驗七《查詢與排序》實驗報告

課程:《程式設計與資料結構》
班級: 2023
姓名: 陳歡
學號:20202320
實驗教師:王志強
實驗日期:2021年11月4日
必修/選修: 必修

## 1.實驗內容

  1. 定義一個Searching和Sorting類,並在類中實現linearSearch,SelectionSort方法,最後完成測試。
    要求不少於10個測試用例,提交測試用例設計情況(正常,異常,邊界,正序,逆序),用例資料中要包含自己學號的後四位
    提交執行結果圖。

  2. 重構你的程式碼
    把Sorting.java Searching.java放入 cn.edu.besti.cs2023.(姓名首字母+四位學號) 包中(例如:cn.edu.besti.cs1823.G2301)
    把測試程式碼放test包中
    重新編譯,執行程式碼,提交編譯,執行的截圖(IDEA,命令列兩種)

  3. 參考http://www.cnblogs.com/maybe2030/p/4715035.html ,學習各種查詢演算法並在Searching中補充查詢演算法並測試
    提交執行結果截圖

  4. 實現排序方法等(至少3個)
    測試實現的演算法(正常,異常,邊界)
    提交執行結果截圖(如果編寫多個排序演算法,即使其中三個排序程式有瑕疵,也可以酌情得滿分)

  5. 編寫Android程式對實現各種查詢與排序演算法進行測試
    提交執行結果截圖
    推送程式碼到碼雲(選做,額外加分)

##2.實驗過程與結果

  1.定義一個Searching和Sorting類,並在類中實現linearSearch,SelectionSort方法,最後完成測試。

   要求不少於10個測試用例,提交測試用例設計情況(正常,異常,邊界,正序,逆序),用例資料中要包含自己學號的後四位

   提交執行結果圖。

   2.重構你的程式碼

   把Sorting.java Searching.java放入 cn.edu.besti.cs2023.(姓名首字母+四位學號) 包中(例如:cn.edu.besti.cs1823.G2301)

    把測試程式碼放test包中重新編譯,執行程式碼,提交編譯,執行的截圖(IDEA,命令列兩種)

    3. 參考http://www.cnblogs.com/maybe2030/p/4715035.html ,

     學習各種查詢演算法並在Searching中補充查詢演算法並測試

     提交執行結果截圖

    4.實現排序方法等(至少3個)

     測試實現的演算法(正常,異常,邊界)

     提交執行結果截圖(如果編寫多個排序演算法,即使其中三個排序程式有瑕疵,也可以酌情得滿分)

         5.編寫Android程式對實現各種查詢與排序演算法進行測試     提交執行結果截圖     推送程式碼到碼雲(選做,額外加分) (暫未完成) ##3.實驗過程中遇到的問題和解決方案 --問題1:返回的actual與expected的值不同。 --問題1解決方法:首先expected是String類的,所以方法返回值也應該是String類,但陣列要怎麼輸出,當時是我沒有想到的,我最後用迴圈設String類的str,最後就可以實現。 --問題2:在整體執行SearchingTest.java時出現查詢相同數字不同位置的情況。 --問題2的解決方法:由於折半查詢時需要排好序,所以我設定了a的陣列作為c的排好序的陣列,但是好像程式執行沒有先後,有時線性查詢會查詢到a的陣列,從而出錯,所以我將a的陣列寫在折半查詢測試程式的內部。 ##4.實驗心得與體會   說起來,線性查詢和氣泡排序我都是參考了C語言程式設計的教材,因為方法原理都一樣。還有就是編寫程式是需要耐心的,有時很長時間寫不出一個程式雖然很讓人有挫敗感,特別是第二天測試又發現有問題,還得改。所以做實驗需要調整心態,有一顆鋼鐵一樣的心!!唉!