我的第一個程式
一、預估與實際
PSP2.1 | Personal Software Process Stages | 預估耗時(分鐘) | 實際耗時(分鐘) |
---|---|---|---|
Planning | 計劃 | 15 | 10 |
• Estimate | • 估計這個任務需要多少時間 | 500 | |
Development | 開發 | 300 | |
• Analysis | • 需求分析 (包括學習新技術) | 20 | 35 |
• Design Spec | • 生成設計文檔 | 40 | |
• Design Review | • 設計複審 | 50 | |
• Coding Standard | • 代碼規範 (為目前的開發制定合适的規範) | 60 | |
• Design | • 具體設計 | 120 | 150 |
• Coding | • 具體編碼 | 180 | 200 |
• Code Review | • 代碼複審 | ||
• Test | • 測試(自我測試,修改代碼,送出修改) | ||
Reporting | 報告 | 45 | |
• Test Repor | • 測試報告 | 30 | |
• Size Measurement | • 計算工作量 | ||
• Postmortem & Process Improvement Plan | • 事後總結, 并提出過程改進計劃 | ||
合計 | 700 |
二、需求分析
我通過網絡調查方式了解到,國小一、二年級數學有如下的幾個特點:
- 特點1:主要是加減法為基礎,後引入乘除法。
- 特點2: 範圍在100以内。
- 特點3: 較為簡單,易于了解。
經過分析,我認為,這個程式應當:
- 使用計算的數字小于20
- 易于操作
三、設計
1. 設計思路
說明你如何設計這個程式

- 輸入兩個參數。第一個參數為出題數量,第二個參數為适用于學生年級。
- 數組。我設定多個數組用于存儲數字、符号、結果、餘數等。
2. 實作方案
寫出具體實作的步驟
- 準備工作:先在Github上建立倉庫,克隆到本地
- 設計大綱:設定算法分類、多次判斷、分類輸出
- 技術關鍵:年級的選擇、分類輸出
四、編碼
請說明你如何按照設計思路進行編碼,并記錄你在開發中遇到的問題,與解決過程
1. 調試日志
記錄編碼調試的日志,請記錄下開發過程中的 debug 曆程
-
除法餘數的判斷
解決方案:都做餘數判斷,分為兩類輸出,有餘數按模版輸出,無餘數省略餘數輸出。
-
參數(年級的選擇)
解決方案:在整體前做判斷。由于我先寫的算法,後進行年級選擇導緻。
2. 關鍵代碼
for (int i = 0; i < n; i++) {//加減法輸出
if (e[i] == 0) {//做加法運算
result = w[i] + h[i];
System.out.println("(" + j + ") " + w[i] + " + " + h[i] + " = " + result);
b[i] = result;
} else {//做減法運算
result = w[i] - h[i];
System.out.println("(" + j + ") " + w[i] + " - " + h[i] + " = " + result);
b[i] = result;
}
j++;
}
for (int i = 0; i < n; i++) {//乘除法輸出
if (e[i] == 0) {
result = w[i] * h[i];
System.out.println("(" + j + ") " + w[i] + " * " + h[i] + " = " + result);
b[i] = result;
} else {int y;
result = w[i] / h[i];
y=w[i] % h[i];
k[i] = y;
if(y==0) {//餘數判斷
System.out.println("(" + j + ") " + w[i] + " / " + h[i] + " = " + result);
}
else {
System.out.println("(" + j + ") " + w[i] + " / " + h[i] + " = " + result+"..."+k[i]);
}
b[i] = result;
}
j++;
}
五、測試
加減法測試
乘除法測試
越界測試
![]
六、總結
1、小白成長。之前落下了很多程式設計基礎,導緻前期進行的非常困難,在一步步的惡補,感覺追趕上了一些,可以寫出大部分的内容了。
2、堅持。我會繼續努力,堅持下去,不抛棄,不放棄。
3、鼓勵。我覺得在出現困難、bug的時候同學or室友之間互相幫助、互相鼓勵、給予支援,共同進步。