20172305 結對編程項目-四則運算 第一週 階段總結編程
結對編程的好麗友
- 20172323 王禹涵:中綴轉後綴
- 20172314 方藝雯:後綴表達式的計算
- 20172305 譚鑫:中綴表達式的輸出
需求分析
1.能隨機生成由使用者肯定的任意多道四則運算題目函數
2.題目的難度等級能夠選擇,也能夠選擇不作混合運算。學習
3.題目運算實現中綴表達式轉爲後綴表達式並計算。測試
4.能夠判斷正誤,並計算正確率。編碼
5.支持真分數的運算。spa
設計思路
無棧(方藝雯)
- 首先要肯定生成題目的數量,能夠用一個循環,使用Scanner,循環次數由用戶輸入的數肯定。
- 算式的產生
- 寫一個類實現整數的四則運算:定義兩個整數numerator和denominator,利用 int nextInt(4) 方法隨機輸出0123四個整數,分別表明進行加減乘除運算,而後根據隨機輸出實現的的運算符進行numerator和denominator的加減乘除運算。
- 再寫一個類實現分數的四則運算:利用書上的第七章RationalNumber和RationalTester類能夠實現。
- 還須要判斷正誤的操做,並輸出成績和正確率。再寫一個類,將運算結果與用戶輸入的值比較,用if-else語句輸出「正確」或「錯誤」並利用「x++」統計正確題目個數,與題目總數相除即得正確率。
- 這種方法只是最開始的簡單構思,並無實現要求的全部功能,好比「實現中綴表達式轉爲後綴表達式並計算」,在老師講完有關棧的知識後進一步構思。
有棧(方藝雯)
- 產生式子:首先,讓用戶選擇題目的難度等級,分別對應不一樣數量的數字進行運算,肯定隨機產生的整數的個數,定義兩個整數numerator和denominator表明分子和分母。分數的產生利用書上第七章RationalNumber類和RationalTest類(也能夠單獨調用該方法只進行分式的計算),而後調用函數StringTokenizer將分數做爲一個String型的,而後同時調用產生分數和整數混合,而後用一個hasMoreTokens方法遍歷全部的數,遇到String型的提出,遇到整數型的則將其做爲分子,分母爲1,而後將這些數存入設立的棧1中(全爲分數),而後另外設立一個棧2,利用 int nextInt(4) 方法隨機輸出0123四個整數(產生的數量爲棧1 中數字數量減一),分別表明加減乘除運算符,將數存入棧中,而後先讀取棧1的一個數字,而後讀取棧2的一個運算符,而後繼續讀取棧1的,直到讀取完全部的數。而後再將這些數輸出,此時這些數都是String型的分數,返回出來字符串再用next循環,一個一個分開,分數在中綴轉後綴時,2/3爲一個總體,轉成後綴,聲稱出來又是一串,分開後next出來一個分數,建立一個對象自定義以/爲分隔符分開。得出結果,利用RationalNumber類的reduce和gcd方法化簡,結果爲真分數的話會保留分數形式,假分數的話結果爲整數。
- 判斷正誤:將用戶輸入的數字與計算機的結果比較,輸出正誤。若是答案是分數,分別比較分子分母來判斷。
- 統計正確率:用一個循環,當判斷正誤時爲正確時,正確題數加一,最後總數與題目數相除可得。
UML類圖(譚鑫)
遇到的困難及解決辦法
UML類圖的編寫
解決辦法:UML類圖算是編寫程序的一個藍圖吧,這部分是你們商討後,有我進行實現的,最開始沒有用到棧的問題很好想,因此UML類圖的編寫也很簡單,產生出咱們組的UML類圖1.0版,可是經過分析和用到棧的問題,咱們又產生出一個UML類圖2.0版,很不成熟,在編寫產生算數式子的類的同時,進行了第三次的修改,產生出UML類圖3.0版
設計
輸出式子的問題
- 解決辦法:咱們最早討論的以問題是進行運算符和數字的交替進行,經過輸入題目量進行在發那個發裏面自動生成題目,可是在編寫的過程當中,咱們以爲能夠是題目量在產品代碼中進行重複,每一個題目等級下面進行產生一個式子的循環便可。經過對一個算數式子的分析,一個式子裏面扣除等號,數字始終要比運算符多一個,因此,咱們能夠經過一個數配一個字符的方式進行循環,最後添加一個數以及等號就完成式子的整串輸出了。
分式的問題
解決辦法:對於分式,我剛開始的想法如今想一想,若是那樣作的話,最後確定會被扣分的,我想分式的表示形式和兩個整數的除法同樣,因此在輸出式子的時候,咱們徹底能夠忽略分式的問題了。在偷偷看到別的組作的問題的時候,他們的除號用「÷」表示,因此分式的問題還得考慮。這樣的話就能夠很清晰的分出是整數的運算和分式的運算,同時能夠進行二者的混合運算了。代碼規範
結對評價
- 王禹涵:王禹涵負責的是PSP表格的制定、代碼的規範性、以及最重要的對我提出的想法進行邊界性的分析,算是找不足吧!因爲他負責編寫的是中綴轉後綴的問題,感受比較難,因此在以前就沒有有太大的任務,可以轉換爲後綴的大問題解決就行。
- 方藝雯:方藝雯負責的是需求分析,就是把咱們腦中想法進行編寫輸出,同時也負責運算後綴表達式的計算,對咱們的不成條理的問題進行串接,感受也比較難。
- 兩位同窗都很給力,一直熬夜進行程序的構思,以及理解我先編出的輸出式子的代碼,和兩位同窗進行合做編寫,是本身的榮幸,一塊兒找出問題,一塊兒解決問題。
PSP(王禹涵)
Planning |
計劃 |
1 |
1 |
Estimate |
估計這個任務須要多少時間 |
20 |
|
Development |
開發 |
2 |
10 |
Analysis |
需求分析 (包括學習新技術) |
2 |
2 |
Design Spec |
生成設計文檔 |
1 |
1 |
Design Review |
設計複審 (和同事審覈設計文檔) |
0.5 |
2 |
Coding Standard |
代碼規範 (爲目前的開發制定合適的規範) |
0.5 |
0.5 |
Design |
具體設計 |
2 |
|
Coding |
具體編碼 |
2 |
|
Code Review |
代碼複審 |
1 |
|
Test |
測試(自我測試,修改代碼,提交修改) |
1 |
|
Reporting |
報告 |
2 |
|
Test Report |
測試報告 |
2 |
|
Size Measurement |
計算工做量 |
1 |
|
Postmortem & Process Improvement Plan |
過後總結, 並提出過程改進計劃 |
1 |