見結對編程項目-四則運算(第一週)html
add
,substract
,multiply
,divide
四個方法中,首先要進行是整數仍是真分數的判斷。對於真分數,首先利用split()
方法,將用戶輸入的計算符號去掉,即經過+
、-
、*
、÷
將輸入的式子,把數字分隔出來。再利用indexOf()
來判斷是不是個分數。隨後,利用公式來進行分數的四則運算。以加法爲例:加法是通分來進行計算的。好比1/2+1/3
,分子是1*3+1*2
,分母是2*3
,如下是代碼實現:result=simplefraction(((Integer.parseInt(str1[0])*Integer.parseInt(str2[1])) +(Integer.parseInt(str2[0])*Integer.parseInt(str1[1]))) ,(Integer.parseInt(str1[1])*Integer.parseInt(str2[1])));
5
和6
。上面程序中的simplefraction()
就是給計算出的兩個數進行約分與添加/
的方法。約分的思想是先求出兩個數的最大公因子,如果1,就直接添加/
;若不是1,則給每一個數都除以得出的最大公因子。public void add(String s)//加法 { String[] str=s.split("\\+"); if(str[0].indexOf("/")>-1 || str[1].indexOf("/")>-1)//分數 { String[] str1=str[0].split("[/]"); String[] str2=str[1].split("[/]"); if(Integer.parseInt(str1[1]) != 0 && Integer.parseInt(str2[1]) != 0)//分母不爲零 { result =simplefraction(((Integer.parseInt(str1[0])*Integer.parseInt(str2[1])) +(Integer.parseInt(str2[0])*Integer.parseInt(str1[1]))) ,(Integer.parseInt(str1[1])*Integer.parseInt(str2[1]))); }else{ throw new IllegalArgumentException("Divisor cannot be zero!");//除數爲零時拋出異常 } } else{//整數 if( Integer.parseInt(str[0])<1000&&Integer.parseInt(str[1])<1000&&Integer.parseInt(str[0])>-1000&&Integer.parseInt(str[1])>-1000) { result = Integer.parseInt(str[0])+Integer.parseInt(str[1])+""; } else{ throw new IllegalArgumentException("overrun!");}//數值範圍超出時拋出異常 } }
此程序有如下幾個缺陷:git
- 沒有考慮整數除以整數會得出真分數的狀況。 - 沒有考慮整數與真分數進行運算的狀況。 - 沒有考慮兩個以上的數進行運算的狀況。 - 沒有考慮添加小括號後運算的優先級的狀況。
JUnit測試編程
/
,並如何將數字提取出來進行運算,因此借鑑了碼雲上一位大神的代碼。先將算式中的符號與真分數分隔,在經過indexOf
把數字提取出來進行通分之類的運算,約分後再將/
放回兩數之間,這樣的代碼實現使我和個人小夥伴收穫頗多,又掌握了一門新的技能。PSP | Personal Software Process Stages | 預估耗時(分鐘) | 實際耗時(分鐘) |
Planning | 計劃 | 30 | 25 |
Estimate | 估計這個任務須要多少時間 | 120 | 120 |
Development | 開發 | 50 | 60 |
Analysis | 需求分析(包括學習新技術) | 50 | 30 |
Design Spec | 生成設計文檔 | 60 | 60 |
Design Review | 設計複審(和同事審覈設計文檔) | 30 | 20 |
Coding Standard | 代碼規範 (爲目前的開發制定合適的規範) | 20 | 40 |
Design | 具體設計 | 60 | 60 |
Coding | 具體編碼 | 35 | 30 |
Code Review | 代碼複審 | 15 | 15 |
Reporting | 報告 | 60 | 60 |
Test Report | 測試報告 | 30 | 45 |
Size Measurement | 計算工做量 | 20 | 25 |
Postmortem & Process Improvement Plan | 過後總結, 並提出過程改進計劃 | 10 | 15 |
合計 | 620 | 630 |