天天看點

MathExam6378

我的第一個程式

一、預估與實際

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. 設計思路

說明你如何設計這個程式

MathExam6378
  • 輸入兩個參數。第一個參數為出題數量,第二個參數為适用于學生年級。
  • 數組。我設定多個數組用于存儲數字、符号、結果、餘數等。

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++;
			}
           

五、測試

加減法測試

MathExam6378

乘除法測試

MathExam6378

越界測試

MathExam6378

![]

六、總結

1、小白成長。之前落下了很多程式設計基礎,導緻前期進行的非常困難,在一步步的惡補,感覺追趕上了一些,可以寫出大部分的内容了。

2、堅持。我會繼續努力,堅持下去,不抛棄,不放棄。

3、鼓勵。我覺得在出現困難、bug的時候同學or室友之間互相幫助、互相鼓勵、給予支援,共同進步。