國小一二年級數學題随機生成
一、預估與實際
PSP2.1 | Personal Software Process Stages | 預估耗時(分鐘) | 實際耗時(分鐘) |
---|---|---|---|
Planning | 計劃 | 600 | 720 |
• Estimate | • 估計這個任務需要多少時間 | ||
Development | 開發 | ||
• Analysis | • 需求分析 (包括學習新技術) | 30 | 40 |
• Design Spec | • 生成設計文檔 | ||
• Design Review | • 設計複審 | ||
• Coding Standard | • 代碼規範 (為目前的開發制定合适的規範) | ||
• Design | • 具體設計 | 60 | |
• Coding | • 具體編碼 | 300 | 370 |
• Code Review | • 代碼複審 | 20 | |
• Test | • 測試(自我測試,修改代碼,送出修改) | 10 | |
Reporting | 報告 | ||
• Test Repor | • 測試報告 | ||
• Size Measurement | • 計算工作量 | ||
• Postmortem & Process Improvement Plan | • 事後總結, 并提出過程改進計劃 | ||
合計 |
二、需求分析
我通過百度的方式了解到,國小一年級數學有如下的幾個特點:
- 特點一:在規定範圍。
-
特點二:學生要有進行整數四則計算的能力。
經過分析,我認為,這個程式應當:
- 一年級所有數字不超過20;二年級所有數字不超過100。
- 所有數字為非負整數。
三、設計
1. 設計思路
- 在指令行輸入
- 確定輸入的參數不能過大,必須是正整數
- 根據輸入的參數随機生成式子
- 運用随機數
- 将題目和答案存入out.txt檔案
個人作業1
2. 實作方案
-
準備
1.下載下傳Git管理倉庫,并在GitHub上fork亓老師首頁的MathExam2018倉庫,并clone到本地。
2.建立源檔案MathExam6371.java
-
技術關鍵點
1.random函數的運用。
2.輸出題目與答案到指定檔案。
3.年級的選擇及題庫的選擇。
四、編碼
1.調試日志
-
在程式設計時遇到很多問題,比如
1.沒有考慮到使用者輸入時會輸入非數字的情況,編譯出現異常。再請教同學與網上查詢的方式了解到運用catch (NumberFormatException e)的方式解決。
2.不會将結果寫入檔案,在查找上學期作業時找到了解決辦法。
2. 關鍵代碼
3. 代碼規範
1.不變的值,盡量寫個常量類
2.盡量使用if{}else,不要一直if去判斷
3.是否給單個的循環、條件語句也加了{ }
4.對象初始化為null的對象被調用前必須被重新指派,如果指派語句在try塊中,調用操作必須在try塊中
五、測試
測試輸入:java MathExam 3 測試結果:生成3道一年級題目和答案 預期結果:符合
測試輸入:java MathExam 5 2 測試結果:輸入有誤,請重新輸入 預期結果:符合
測試輸入:java MathExam abc 測試結果:輸入有誤,請重新輸入 預期結果:符合
測試輸入:java MathExam -1 測試結果:輸入有誤,請重新輸入 預期結果:符合
六、總結
請總結過程中的教訓和經驗,思考
-
是否使用了“軟體開發的基本政策:分而治之”,是否需要重構
是,需要。
- “高品質的設計、規範的編碼以及有效的測試是保證軟體産品品質的三個重要方面”,你是否采用了相關的手段,是否需要重構