小學生福利
一、預估與實際
| PSP2.1 | Personal Software Process Stages | 預估耗時(分鍾) | 實際耗時(分鍾) |
|---|---|---|---|
| Planning | 計划 | 600 | 630 |
| • Estimate | • 估計這個任務需要多少時間 | 500 | 630 |
| Development | 開發 | 340 | 330 |
| • Analysis | • 需求分析 (包括學習新技術) | 50 | 50 |
| • Design Spec | • 生成設計文檔 | 50 | 80 |
| • Design Review | • 設計復審 | 50 | 50 |
| • Coding Standard | • 代碼規范 (為目前的開發制定合適的規范) | 10 | 20 |
| • Design | • 具體設計 | 50 | 50 |
| • Coding | • 具體編碼 | 80 | 50 |
| • Code Review | • 代碼復審 | 40 | 20 |
| • Test | • 測試(自我測試,修改代碼,提交修改) | 20 | 10 |
| Reporting | 報告 | 200 | 300 |
| • Test Repor • 測試報告 | 100 | 80 | |
| • Size Measurement | • 計算工作量 | 50 | 40 |
| • Postmortem & Process Improvement Plan | • 事后總結, 並提出過程改進計划 | 100 | 180 |
| 合計 | 630 |
二、需求分析
我通過百度的方式了解到,小學一年級數學有如下的幾個特點:
- 特點1
1.算式得出的結果不超過100。
2.運算結果不能為負數。
3.沒有乘除運算。
經過分析,我認為,這個程序應當:
- 使用的數字小於50
- 減法結果小於0的重新取值
- 不加入乘除運算
三、設計
1. 設計思路
- 這個程序有一個類,3個函數,分別為main(主函數),print(寫了文件),CreateFile(創建out.txt文件)
- 算法的關鍵在於判斷控制台的輸入數據
2. 實現方案
寫出具體實現的步驟
- 准備工作:先在Github上創建倉庫,克隆到本地
- 技術關鍵點:判斷控制台輸入數據
四、編碼
請說明你如何按照設計思路進行編碼,並記錄你在開發中遇到的問題,與解決過程
按照大腦中的構思進行編寫代碼。先進行createFile
要隨機出題就需要隨機數,百度查看大神們如何解決隨機數。
判斷輸入的數據是否符合要求,百度查看大佬如何解決。
1. 調試日志
記錄編碼調試的日志,請記錄下開發過程中的 debug 歷程
- 在除法時無法整除后改完用積來代替隨機被除數
2. 關鍵代碼
if(args[0]!= null && args[0].matches("0*[0-9]{0,3}"))
3. 代碼規范
- 第一條:保留了原有規范的4空格縮進
- 第二條:放松了對import語句的組織方式要求。只要有一定邏輯性即可,不做嚴格限制。
- 第三條:但要求未使用的import語句必須刪除
五、測試
| 測試內容 | 輸入 | 預期 | 實際 |
|---|---|---|---|
| ------ | 5 | 運行正確 | 運行正確 |
| ------ | 00000000000004 | 運行正確 | 運行正確 |
| ------ | 10000000000000 | 請輸入合法參數(范圍在1~999的整數) | 請輸入合法參數(范圍在1~999的整數) |
| ------ | 請輸入合法參數 | 請輸入合法參數(范圍在1~999的整數) | 請輸入合法參數(范圍在1~999的整數) |
| ------ | -1 | 請輸入合法參數(范圍在1~999的整數) | 請輸入合法參數(范圍在1~999的整數) |
| ------ | 0.12 | 請輸入合法參數(范圍在1~999的整數) | 請輸入合法參數(范圍在1~999的整數) |
六、總結
請總結過程中的教訓和經驗,思考
- 是否使用了“軟件開發的基本策略:分而治之”,是否需要重構
- “高質量的設計、規范的編碼以及有效的測試是保證軟件產品質量的三個重要方面”,你是否采用了相關的手段,是否需要重構
