天天看點

個人作業1

國小一二年級數學題随機生成

一、預估與實際

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. 關鍵代碼

個人作業1

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 測試結果:輸入有誤,請重新輸入 預期結果:符合

六、總結

請總結過程中的教訓和經驗,思考

  • 是否使用了“軟體開發的基本政策:分而治之”,是否需要重構

    是,需要。

  • “高品質的設計、規範的編碼以及有效的測試是保證軟體産品品質的三個重要方面”,你是否采用了相關的手段,是否需要重構
上一篇: 結對作業1
下一篇: 作業2