提升小學生運算神器

# 隔壁村小學的小朋友都羨慕哭了

1、預估與實際

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

2、需求分析

我經過網上查閱和詢問擔任擔任小學老師的姑姑瞭解到,小學一年級數學有以下的幾個特色:編程

  • 特色1:20之內的加減計算
  • 特色2:會100之內加減乘除法

通過分析,我認爲,這個程序應當:加減數目不超過20,而且能夠隨機生成數字和加減法,減小出現相同題目的機率數組

3、設計

1. 設計思路

說明你如何設計這個程序dom

  • 首先,我先分析了小學生題目的難度,確認了生成隨機數的大小
  • 而後就先考慮任務一的需求,生成隨機加減法運算
  • 而後思考如何將循環裏的數放在另外一個循環裏使用
  • 最後測試,而後任務二相似

2. 實現方案

寫出具體實現的步驟學習

任務一

  • 首先,我先分析了小學生題目的難度,確認了生成隨機數的大小
  • 而後就先考慮任務一的需求,生成隨機加減法運算
  • 而後思考如何將循環裏的數放在另外一個循環裏使用
  • 最後測試任務一測試

    任務二

  • 首先,模仿任務一,生成乘除的題目,考慮餘數問題
  • 而後思考如何選擇年級生成題目
  • 最後思考如何生成文本編碼

4、編碼

  • 查到math.random()是生成隨機數的方法
  • 運用判別法斷定加減法(乘除法)

1. 調試日誌

  • 在數組中存入數據,調用時發生越界
  • 循環中創數

2. 關鍵代碼

for(int a=0; a<n;a++)
        {
            int i=(int) Math.floor(Math.random()*20+1); //生成隨機數,並確保不爲0
            int j=(int) Math.floor(Math.random()*20+1);//生成隨機數,並確保不爲0
            int x=(int) Math.floor(Math.random()*2+1);//生成隨機數,並確保不爲0
            ai[a]=i;
            aj[a]=j;
            ax[a]=x;
            ax[a]=x;
            if(x%2==1) { //判別加或減
            System.out.println("(" + m1 + ") "+ i +" + " + j + "="); //輸出
            }else {
            System.out.println("(" + m1 + ") "+ i + " - "+j+"= ");
            }
            m1++; //左邊序號的增長
            }

3. 代碼規範

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

  • 第一條:避免相似的名字,或者僅僅是大小寫不一樣的名字
  • 第二條:左小括號和字符之間不出現空格;一樣的,右小括號和字符之間也不出現空格
  • 第三條:題目與標準答案之間空一格

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

5、測試

請輸入年級與題目數日誌

  • 題目數輸入100000000,程序會出現故障
  • 年級輸入3,程序會出現故障
  • 輸入1 10 輸出正常
  • 輸入2 10 輸出正常

6、總結

  • 從剛看到題目時的不知所措,第一想法就是「我不會」,到後來的冷靜分析,而後尋找解題的方法,經過上網尋找不會的問題,而後逐漸思路清晰,一個問題一個問題的攻克,讓我對軟件工程產生了一丟丟小小的成就感,本身編程好久而後測試成功時的喜悅是很難忘的,雖說此次的程序還有不少毛病,可是這也是我經歷1個星期時間所完成的,但願下次能夠更加出色的作完任務,Fighting!
相關文章
相關標籤/搜索