1. 程式人生 > >小學生就應該學習 別打排位

小學生就應該學習 別打排位

小學 乘法 需求分析 bre 如何 進行 計劃 java 總結

MathExam

一、預估與實際

PSP2.1 Personal Software Process Stages 預估耗時(分鐘) 實際耗時(分鐘)
Planning 計劃
? Estimate ? 估計這個任務需要多少時間 10 30
Development 開發
? Analysis ? 需求分析 (包括學習新技術) 150 50
? Design Spec ? 生成設計文檔 10 30
? Design Review ? 設計復審 20 30
? Coding Standard ? 代碼規範 (為目前的開發制定合適的規範) 20 35
? Design ? 具體設計 20 40
? Coding ? 具體編碼 150 360
? Code Review ? 代碼復審 10 20
? Test ? 測試(自我測試,修改代碼,提交修改) 45 120
Reporting 報告
? Test Repor ? 測試報告 20 30
? Size Measurement ? 計算工作量 10 10
? Postmortem & Process Improvement Plan ? 事後總結, 並提出過程改進計劃 20 30
合計 685

二、需求分析

我通過度娘的方式了解到,小學一年級數學有如下的幾個特點:

  • 1)100以內的所有整數
  • 2)100以內的乘除法(可參考99乘法表)
  • 3)沒有負數和小數

經過分析,我認為,這個程序應當:

  • 使用的數字應在0到100之間,且為整數,即int類型
    -不能使用負數和產生負數
    -不能使用小數
    -輸入的數要符合要求

    三、設計

1. 設計思路

  • 先創建一個輸入框
  • 對輸入的數做判斷,看是否符合要求,如果不符合,則報錯
  • 之後隨機生成兩個數字運算
  • 最後將結果放到355.txt中

2. 實現方案

  • 準備工作:先在Github上創建倉庫,克隆到本地,創建新的文件夾
  • 技術關鍵點:梳理一下設計思路,可能遇到哪些技術關鍵點
  • 把握好範圍,避免不必要的失誤
    -將結果放到355.txt中

四、編碼

請說明你如何按照設計思路進行編碼,並記錄你在開發中遇到的問題,與解決過程
-一開始覺得輸出是整數就行,沒考慮輸入的情況
-JAVA基本忘光了,問了同學才明白

1. 調試日誌

修改了關於小數的結果
檢查文本是否存在,對生成文本的目錄如果創建失敗的情況

2. 關鍵代碼

while(p)
{
k=r.nextInt(100);
m=r.nextInt(100);
f=r.nextInt(10);
if (f%2==0) { //加法
if(k+m<=100)
{
first[i]=k;
second[i]=m;
fuhao[i]="+";
pass[i]=k+m;
i++;

            }
        }
        else    //減法
        {
            if(k-m>=0)
            {
                //System.out.println("("+(i+1)+") "+k+" - "+m+" = ");
                first[i]=k;
                second[i]=m;
                fuhao[i]="-";
                pass[i]=k-m;
                i++;
            }
        }
        if(i==n)
            break;
    }

3. 代碼規範

請給出本次實驗使用的代碼規範:

  • 類名首字母應該大寫。每個單詞的首字母大寫。
  • 避免異常
  • 人工檢查代碼是否存在錯誤
  • 包名必須小寫等等

並人工檢查代碼是否符合規範

五、測試

1.mathexam1.0.測試結果:生成符合數目的幾道一年級題目和答案 結果: 符合
2.mathexam2.0測試結果:輸入有誤,請重新輸入 結果:符合

六、總結

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

  • 是否使用了“軟件開發的基本策略:分而治之”,是否需要重構
  • “高質量的設計、規範的編碼以及有效的測試是保證軟件產品質量的三個重要方面”,你是否采用了相關的手段,是否需要重構

小學生就應該學習 別打排位