MathExamLv2
一、預估與實際
PSP2.1 | Personal Software Process Stages | 預估耗時(分鐘) | 實際耗時(分鐘) |
---|---|---|---|
Planning | 計劃 | 600 | 720 |
• Estimate | • 估計這個任務需要多少時間 | ||
Development | 開發 | 570 | 690 |
• Analysis | • 需求分析 (包括學習新技術) | 30 | 40 |
• Design Spec | • 生成設計文檔 | ||
• Design Review | • 設計複審 | ||
• Coding Standard | • 代碼規範 (為目前的開發制定合适的規範) | ||
• Design | • 具體設計 | 60 | |
• Coding | • 具體編碼 | 280 | 350 |
• Code Review | • 代碼複審 | 20 | |
• Test | • 測試(自我測試,修改代碼,送出修改) | ||
Reporting | 報告 | ||
• Test Repor | • 測試報告 | 10 | |
• Size Measurement | • 計算工作量 | ||
• Postmortem & Process Improvement Plan | • 事後總結, 并提出過程改進計劃 | ||
合計 |
二、需求分析
我通過網上調查的方式了解到,國小三年級數學有如下的幾個特點:
- 特點1:加減乘除四則混合運算
- 特點2:四則運算中除法不能有餘數
- 特點3:優先算帶括号的
- 特點4:乘除運算為100以内的乘除
經過分析,我認為,這個程式應當:
- 使用的數字小于100
- 排除一些超出三年級學生的結果
- 運算符與括号的優先級問題
- 三年級學生也要做一二年級的題目
三、設計
1. 設計思路
- 根據老師的提示先去學習一下逆波蘭算法
- 将逆波蘭算法運用到代碼中
- 思考運算符的優先級問題
- 分類排除異常狀況
2. 實作方案
- 準備工作:先在Github上建立倉庫,克隆到本地...
-
技術關鍵點:
1.random函數的運用
2.輸出題目與答案到指定檔案
3.年級的選擇及題庫的選擇
4.逆波蘭算法的實作(了解,外加各種空棧異常判斷)
5.随機出題目的邏輯,以及加括号時的邏輯判斷
由于代碼方面尚未與同伴讨論完畢,下面的部分将于本周之内修改送出,還請見諒。
四、編碼
請說明你如何按照設計思路進行編碼,并記錄你在開發中遇到的問題,與解決過程
1. 調試日志
記錄編碼調試的日志,請記錄下開發過程中的 debug 曆程
2. 關鍵代碼
請展示一段程式的關鍵代碼,并解釋代碼的作用
3. 代碼規範
請給出本次實驗使用的代碼規範:
- 第一條...
- 第二條...
并人工檢查代碼是否符合規範
五、測試
請思考并記錄你認為必要的測試點,并記錄測試用例與測試結果
六、總結
請總結過程中的教訓和經驗,思考
- 是否使用了“軟體開發的基本政策:分而治之”,是否需要重構
- “高品質的設計、規範的編碼以及有效的測試是保證軟體産品品質的三個重要方面”,你是否采用了相關的手段,是否需要重構