結對編程項目-四則運算(第二周總結)
結對對象
- 學號:20162318
- 姓名:張泰毓
- 擔當角色:駕駛員之一,客戶端的編寫,支持多語言功能的實現。
需求分析
題目生成
- 整數和分數混合運算
- 多運算符(可設計層級)
- 包含括號(可單獨使用)
- 無重復題目(可單獨使用)
- 生成有意義的題目(例如:5x(5x5)等等)
設計思路
計算部分
- 中綴表達式轉成后綴表達式
- 后綴表達式計算
題目部分
- 使用for循環生成題目
- 去重(將題目從中綴轉成后綴,將其排序,判斷是否有重復)(存在bug)
- 括號的生成(使用兩個隨機數代表括號的位置)(存在bug)
- 有意義的題目(使用list類中的subList)
實現過程中的關鍵代碼解釋
我們想實現支持雙語的程序,開始的時候想用if語句,但是想到if語句它的實用性不夠廣泛,這次使用以后,沒法為以后的代碼使用,於是我查閱了大量資料以后找到了一個方法java.lang.Locale
通過這個類,我們可以達到實現國際化的目的。
其中我們還用到了一個在線的轉換器。
測試方法
運行過程截圖
代碼托管地址
遇到的困難及解決方法
- 當我們生成混合運算的時候,如何讓隨機生成括號的問題困擾了我們很久,就是考慮到如果生成了左括號如何讓它一定生成右括號,不使代碼算式出錯的問題。
- 構思很久以后我們只想到了如何沒有錯誤的生成一組括號。
- 但是怎樣實現多組,如果用循環一個一個比較的話,在題的數目多的時候會出現代碼運行速度較慢的缺點。
- 這次我們遇到的主要問題就是國際化這方面,雖然到最后我們也只實現了英語和漢語,但是找到了這種方法,只要我們建立了足夠大的屬性文件庫,就可以隨時調用了,也可以使用現成的。
結對伙伴評價
泰毓同學的學習積極性很高,自主學習能力也比較強,和他一起編程讓我成長了不少,即便有的時候因為懶惰不想學習,但是因為不想坑泰毓同學,還是會堅持學下去,希望我們可以共同成長。
PSP
PSP2.1 | Personal Software Process Stages | 預估耗時(小時) | 實際耗時(小時) |
---|---|---|---|
Planning | 計划 | 0.5 | 0.5 |
· Estimate | · 估計這個任務需要多少時間 | 0.5 | 0.5 |
Development | 開發 | 14.5 | 21 |
· Analysis | · 需求分析 (包括學習新技術) | 2 | 3 |
· Design Spec | · 生成設計文檔 | 0.5 | 0.5 |
· Design Review | · 設計復審 (和同事審核設計文檔) | 0.5 | 1 |
· Coding Standard | · 代碼規范 (為目前的開發制定合適的規范) | 0.5 | 0.5 |
· Design | · 具體設計 | 2 | 3 |
· Coding | · 具體編碼 | 2 | 4 |
· Code Review | · 代碼復審 | 2 | 2 |
· Test | · 測試(自我測試,修改代碼,提交修改) | 5 | 8 |
Reporting | 報告 | 2.5 | 2.5 |
· Test Report | · 測試報告 | 2 | 1 |
· Size Measurement | · 計算工作量 | 0.5 | 0.5 |
· Postmortem & Process Improvement Plan | · 事后總結, 並提出過程改進計划 | 1 | 1 |
總計 | 18.5 | 24 |