課程:《程序設計與數據結構》
班級: 1723
姓名: 周亞傑
學號:20172308
實驗教師:王志強
實驗日期:2018年4月17日
必修/選修: 必修html
實驗1:認識編程中三種碼:僞代碼、產品代碼、測試代碼;對編寫的類進行測試,這個實驗實驗中咱們共完成了三種測試:測試正常、測試異常、測試邊界
實驗結果:
(實驗1代碼連接)java
實驗2:以 TDD的方式研究學習StringBuffer:學習使用StringBuffer類,用API查閱StringBuffer類方法,並測試(
實驗2代碼連接)
實驗結果:
git
實驗3:對設計模式示例進行擴充,體會OCP原則和DIP原則的應用,初步理解設計模式,用本身的學號%6進行取餘,讓系統支持Boolean類,並在MyDoc類中添加測試代碼代表添加正確:(實驗3代碼連接)
實驗結果:編程
實驗4:以TDD的方式開發一個複數類Complex:主要難點體如今複數類的編寫上(實驗4代碼連接)
實驗結果:
設計模式
實驗5:用UML代碼進行建模:主要難點體如今畫圖軟件的使用上,不太好上手。經過百度和屢次嘗試,畫圖如圖:
數據結構
問題1:在作前兩個實驗的時候,最大的阻撓是在TDD測試的時候,彈出來一個紅色框框,如圖:
而後手賤點開了,後來致使全部的程序中有漢字的都不能運行,出現了亂碼。單元測試
問題1解決過程:這個問題的出現徹底是個意外。後來問了學長,老師,沒解決。學長讓我從新建個項目,而後我就發現了問題所在,就是如圖所示:
後來老師也找到了緣由(。。。我是蒙的),字符集選錯了。。學習
問題2:在TDD測試的時候,發現import一個類以後,其中的方法仍是不能用,如圖:
測試
問題2解決方案:很明顯是個人import寫錯了,應該是直接寫包名及其下的類,即import experiment.MyUtil;
。這是個很小的問題,但問題是以往所寫的要不就是把類都放在一個包下面不用import的,要不就是在包名前面寫了Java的,而後自動認爲import的時候都得寫java,若是不是用的IDEA能夠直接生成聲明,在Linux裏寫的話,我可能會瘋掉。設計
問題3:還有一個很神奇的現象,如圖:
問題3解決方案:固然一眼就能看出來我把package的名字寫錯了,沒有具體寫到程序所在的文件夾名,因而就出現了上面的狀況:自動又給我生成了一個test文件夾,而後把個人代碼程序放在了TTD測試代碼下面了。這個問題雖然是一個簡單的錯誤產生的,可是若是直接看到這種狀況的話,我可能一會兒想不到解決方法,因此在這裏記錄一下。修正後的代碼如圖:
問題4:在編寫Complex類的時候,出現瞭如圖錯誤:
能夠考到assertEquals,自動被畫上了橫線,很顯然是括號裏的內容寫錯了
問題4解決方案:一開始在編寫類的時候,是考慮到寫兩個方法,分別獲得數的實部和虛部,而後分別計算,再經過toString把結果加上「i」,但存在一個問題就是,由於toString把最後獲得的結果變成了字符串類型,導致assertEquals的時候,不能正確測試。後來換了一種思路,代碼如圖:
直接調用寫好的add方法,將兩個數進行計算,但因爲對象a和b都是Complex類聲明的,因此須要用String.valueOf
把他們的結果變成String類,再把預測結果寫成String類,就能夠經過測試了。