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

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

課程:《程序設計與數據結構》
班級: 1723
姓名: 王文彬
學號:20172329
實驗教師:王志強
實驗日期:2018年4月21日
必修/選修: 必修php

1.實驗內容

  1. 初步掌握單元測試和TDD
  2. 理解並掌握面向對象三要素:封裝、繼承、多態
  3. 初步掌握UML建模
  4. 熟悉S.O.L.I.D原則
  5. 瞭解設計模式
  6. 完成實驗。

2. 實驗過程及結果

1、理解內容
首先,我根據老師所給的幾篇博客中大體瞭解了什麼是TDD測試,什麼是S.O.L.I.D原則而且基於課本更加深層次的對封裝、繼承、多態的內容進行學習;以後,根據老師所給的例子和博客的相關步驟就開始了實驗。html

2、實驗第一個提交點內容及其過程web

參考實驗二 完成單元測試的學習
提交最後三個JUnit測試用例(正常狀況,錯誤狀況,邊界狀況)都經過的截圖,截圖上要有畫圖加水印,輸入本身的學號
本提交點考查JUnit會不會使用,測試用例至少要包含正常狀況,錯誤狀況,邊界狀況的測試設計模式

第一個實驗由於是第一次接觸到TDD測試,一切都顯的那麼陌生,感受須要下載的東西不少;
一、準備階段:首先,使用IDEA在本身的根目錄下創建了一個test的測試文件夾,而且將它定義爲了源目錄,
數據結構

這個目錄是爲了能夠將本身已經編好的程序能夠進一步進行測試所對應的測試文件夾。
以後,緊接着下載了一個叫作JUnit的插件,若是想要完成測試,這個插件必不可少,掌握核心科技!!
咱們的準備工做也就到此結束了,接下來就要開始咱們的實驗了;
二、實驗開始:
首先將本身想要測試的類編寫好,在第一行的位置左右,會出現一個形似下圖的「小燈泡」而且會出現字樣:建立測試。
ide

點擊一下那個「建立測試」後,test目錄中就會出現一個測試程序,以後咱們就能夠開始咱們的測試之路了,首先,我以前已經寫好的一個被測試程序在待命,爲的就是如今,測試程序須要繼承被測試類,而且編寫測試對象,在這裏咱們就須要另一個很關鍵的方法叫作assertEquals,其做用就是爲了去對比咱們所期待的值和預計的值是否相同(ps:此處的相同不只要內容相同,並且屬性也要相同),相同纔會顯示一條綠線,表示經過,如同下圖:
函數

在測試經過之後,再加上本身的學號水印,也就算是第一個實驗結束了。單元測試

3、實驗第二個提交點內容及其過程學習

參考 積極主動敲代碼,使用JUnit學習Java
以 TDD的方式研究學習StringBuffer
提交你的單元測試用例和測試經過的截圖,截圖要加上學號水印
測試本身會不會寫JUnit測試用例測試

在有了第一個實驗的基礎上,開始個人第二個實驗也變得不是很困難;
首先,繼續去看要求裏所給出的博客,根據要求開始進行對被測試代碼的編寫:

完成了以後,繼續實驗一的步驟,點擊「建立測試」,開始編寫測試類:

注:在編寫測試類的時候,要記得寫清楚測試代碼是什麼,就是圖中「@test」後面的代碼,@test不能丟。

4、實驗第三個提交點內容及其過程

參考實驗二 Java面向對象程序設計
對設計模式示例進行擴充,體會OCP原則和DIP原則的應用,初步理解設計模式
用本身的學號%6進行取餘運算,根據結果進行代碼擴充:
0:讓系統支持Byte類,並在MyDoc類中添加測試代碼代表添加正確,提交測試代碼和運行結的截圖,加上學號水印
1:讓系統支持Short類,並在MyDoc類中添加測試代碼代表添加正確,提交測試代碼和運行結的截圖,加上學號水印
2:讓系統支持Boolean類,並在MyDoc類中添加測試代碼代表添加正確,提交測試代碼和運行結的截圖,加上學號水印
3:讓系統支持Long類,並在MyDoc類中添加測試代碼代表添加正確,提交測試代碼和運行結的截圖,加上學號水印
4:讓系統支持Float類,並在MyDoc類中添加測試代碼代表添加正確,提交測試代碼和運行結的截圖,加上學號水印
5:讓系統支持Double類,並在MyDoc類中添加測試代碼代表添加正確,提交測試代碼和運行結的截圖,加上學號水印

這道題應該是對於S.O.L.I.D原則最先的引入,因此當我第一次看到這道題目的時候,稍微有點懵,感受好多啊,第一個想法就是前面兩個不是很難,這個確定就開始增長難度了,果不其然,雖然對於代碼的敲入模仿着老師的例子敲其實就能夠完成任務,但這終究須要弄懂,因此不如先看懂吧,因而就開始了對老師博客的仔細研讀;老師的博客裏進行了兩次大的改動,老師舉例「客戶須要支持Float類,由於基於S.O.L.I.D原則,Document類不能作出改變,因此就須要用到設計模式了,也就引入了」設計工廠「這個概念。借用老師的圖說明一下

感受這個圖仍是很明細的;
ps:老師截圖裏明明是實現int類,誤導咱們這些小朋友.....

這是我實現Double類的實驗圖

5、實驗第四個提交點內容及其過程

提交:單元測試代碼和運行成功截圖及碼雲上代碼連接,截圖要加上學號水印
任務:以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)

在拿到這一道實驗要求的時候,實際上是發覺須要一些套路,而且編寫複數的四則運算;
首先,按照要求編寫上面的集中方法以及定義變量,進行相關的計算,而後開始測試:

6、實驗第五個提交點內容及其過程

使用StarUML對實驗二中的代碼進行建模,發類圖的截圖,加上學號水印
類圖中只少兩個類
類,繼承,接口實現,組合在UML中表達
經過軟件

進行UML圖製做;

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

-問題1:在編寫複數類而且進行測試的時候,雖然內容相同,可是老是顯示不經過?

  • 問題1解決方法:
    第一種,在藍墨雲裏,學長說在後面加上.toString就能夠了,由於兩個返回的類型不同,試過之後的確能夠;
    第二種,我本身看了一篇別人的博客之後,關於對比String幾種類型的博客,發現用String.valueOf也是能夠的;

其餘(感悟、思考等)

感受時間愈來愈少,有時候本身在敲代碼的時候,很茫然,不知道爲什麼敲,其目的是什麼,真的如今在班裏呈現一種虛假的繁榮的感受。

參考資料

藍墨雲班課
積極主動敲代碼,使用JUnit學習Java
實驗二 Java面向對象程序設計
String、String.valueOf、toString 它們三者的區別總結
實驗二《Java面向對象程序設計》的一點說明

相關文章
相關標籤/搜索