20172322 2017-2018-2 《程序設計與數據結構》實驗二報告

20172322 2017-2018-2 《程序設計與數據結構》實驗二報告

  • 課程:《程序設計與數據結構》
  • 班級: 1723
  • 姓名: 張昊然
  • 學號:20172322
  • 實驗教師:王志強
  • 助教:張旭升/劉偉康
  • 實驗日期:2018年4月17日
  • 必修/選修: 必修

1.實驗內容

  • 此處填寫實驗的具體內容:
  1. 初步掌握單元測試和TDD
  2. 理解並掌握面向對象三要素:封裝、繼承、多態
  3. 初步掌握UML建模
  4. 熟悉S.O.L.I.D原則
  5. 瞭解設計模式
  6. 完成藍墨雲上 (1)-(5)實驗。

2.實驗過程及結果

過程:

  • 本次實驗老師一共設置了5個提交節點分別是:
1.
  • 參考 http://www.cnblogs.com/rocedu/p/6371315.html#SECUNITTEST 完成單元測試的學習
  • 提交最後三個JUnit測試用例(正常狀況,錯誤狀況,邊界狀況)都經過的截圖,截圖上要有畫圖加水印,輸入本身的學號
  • 本提交點考查JUnit會不會使用,測試用例至少要包含正常狀況,錯誤狀況,邊界狀況的測試
    • 在王老師的指導下安裝了JUnit,最初搜索不到這個插件,最後陰差陽錯找了出來。
2.
  • 參考 積極主動敲代碼,使用JUnit學習Java (http://www.cnblogs.com/rocedu/p/4837092.html)
    以 TDD的方式研究學習StringBuffer
  • 提交你的單元測試用例和測試經過的截圖,截圖要加上學號水印
  • 測試本身會不會寫JUnit測試用例
    • 學會了使用JUnit來測試,能夠檢測不少邊界的問題
3.
  • 參考實驗二 Java面向對象程序設計
  • 對設計模式示例進行擴充,體會OCP原則和DIP原則的應用,初步理解設計模式

用本身的學號%6進行取餘運算,根據結果進行代碼擴充:html

  • 0:讓系統支持Byte類,並在MyDoc類中添加測試代碼代表添加正確,提交測試代碼和運行結的截圖,加上學號水印
  • 1:讓系統支持Short類,並在MyDoc類中添加測試代碼代表添加正確,提交測試代碼和運行結的截圖,加上學號水印
  • 2:讓系統支持Boolean類,並在MyDoc類中添加測試代碼代表添加正確,提交測試代碼和運行結的截圖,加上學號水印
  • 3:讓系統支持Long類,並在MyDoc類中添加測試代碼代表添加正確,提交測試代碼和運行結的截圖,加上學號水印
  • 4:讓系統支持Float類,並在MyDoc類中添加測試代碼代表添加正確,提交測試代碼和運行結的截圖,加上學號水印
  • 5:讓系統支持Double類,並在MyDoc類中添加測試代碼代表添加正確,提交測試代碼和運行結的截圖,加上學號水印
    • 這一步在作的過程最初沒有理解到提交點的意思,向王老師訊問後才瞭解,而且在作的時候參考了所給博客的優秀提交進行了修改。
4.
  • 提交:單元測試代碼和運行成功截圖及碼雲上代碼連接,截圖要加上學號水印
  • 任務:以TDD的方式開發一個複數類Complex,要求以下:
// 定義屬性並生成getter,setter
double RealPart;
double ImagePart;
// 定義構造函數
public Complex()
public Complex(double R,double I)

//Override Object
public boolean equals(Object obj)
public String toString()

// 定義公有方法:加減乘除
Complex ComplexAdd(Complex a)
Complex ComplexSub(Complex a)
Complex ComplexMulti(Complex a)
Complex ComplexDiv(Complex a)
- 實數與虛數加減乘除法,在編寫過程當中還參考了[虛數的四則運算方法](https://wenku.baidu.com/view/964bbbe1f12d2af90342e6a0.html)進行了一次學習。
5.
  • 使用StarUML對實驗二中的代碼進行建模,發類圖的截圖,加上學號水印
  • 類圖中只少兩個類
  • 類,繼承,接口實現,組合在UML中表達
    • 最初只會寫出類名,最後經過實踐發現點那個相似橡皮擦的符號能夠寫構造方法那個設置符號寫具體的方法

結果:

1.編程

2.

設計模式

3.數據結構

4.ide

5.函數

3.實驗過程當中遇到的問題和解決過程

  • 問題1:因爲第一二三個提交點都很是簡單,致使我覺得第四個也很簡單(其實也不難),可是我也學着像第一二三個提交點同樣直接複製了老師所給代碼匡中的內容,結果發現是要求 💩 💩 💩 單元測試

  • 問題1解決方案:發現是要求的時候就開始按照要求來編寫代碼以實現要求,難度不大,只是虛數的乘除法還去學習了一波 💩 💩
  • 問題2:第五個提交點須要畫出UML圖。雖然在好久以前我就已經下好了畫UML圖的軟件,可是我並不會用 T T剛打開時的時候簡直滿臉矇蔽的好吧學習

  • 問題2解決方案:像王志強老師請教,發現UML圖軟件的使用並不困難,在通過王老師引進門之後我也漸漸發現瞭如何在UML的三個框框中填入內容。那個相似橡皮擦的符號能夠寫構造方法那個設置符號寫具體的方法測試

其餘(感悟、思考等)

感悟

  • TDD的使用能夠大量減小本身所編程序中的錯誤,特別是邊界的錯誤。
  • 在編程前畫出UML圖可讓咱們在編程時思路清晰,UML圖的存在爲咱們指明瞭編程的方向,在之後作大型項目的過程當中必定要畫出UML圖。

參考資料

相關文章
相關標籤/搜索