一、需求分析 現在的小學生算數能力需要經常鍛煉,但是出題成了家長們的一大難題,因為人工出題需要自己計算,但是利用程式出題可以很快速,準確的出題。 二、功能設計 1、基本功能 (1)自動生成10道100以內的2個操作數的四則運算算式(+ - * /),要求運算結果也在100以內 (2)剔除重覆算式。 ...
一、需求分析
現在的小學生算數能力需要經常鍛煉,但是出題成了家長們的一大難題,因為人工出題需要自己計算,但是利用程式出題可以很快速,準確的出題。
二、功能設計
1、基本功能
(1)自動生成10道100以內的2個操作數的四則運算算式(+ - * /),要求運算結果也在100以內
(2)剔除重覆算式。 2 + 3 = 和 2 + 3 = 是重覆算式 2 + 3 = 和 3 + 2 = 不屬於重覆算式
(3)題目數量可定製
(4)相關參數可控制
是否包含乘法和除法
操作數數值範圍可控(如操作數 在100以內 還是1000以內)
操作數是否含負數
(5)生成的運算題存儲到外部文件result.txt中
2、拓展功能
(1)可選擇是否生成答案
三、設計實現
因為我用的是c語言編寫的程式,沒有用到類,我也沒有寫函數。
四、測試運行
五、代碼片段
1、判斷算式是否重覆,若重覆便跳過次算式
1 for(j=0;j<i;j++) 2 if(b1[i][0]==b1[j][0]&&b1[i][1]==b1[j][1]&&b1[i][2]==b1[j][2]){ 3 flag=1; 4 break; 5 } 6 if(flag==1||(e==2&&c==0)){ 7 i--; 8 continue; 9 }
2、是否生成帶答案的算式
1 if(t4==1) 2 fprintf(fp,"%5.0f%5.c%5.0f =%5.0f\n", a,b[e],c,sum); 3 else 4 fprintf(fp,"%5.0f%5.c%5.0f =\n", a,b[e],c);
六、總結
改進思路:可把每段關鍵演算法寫成單獨的函數,這樣每次進行修改時可直接修改函數部分不需要到程式中進行修改,把可變的參數全部用變數代替,這樣可實現更多功能,使程式更加人性化。
七、PSP
PSP2.1 |
任務內容 |
計劃共完成需要的時間(min) |
實際完成需要的時間(min) |
Planning |
計劃 |
60 |
120 |
· Estimate |
· 估計這個任務需要多少時間,並規劃大致工作步驟 |
60 |
120 |
Development |
開發 |
30 |
60 |
·· Analysis |
需求分析 (包括學習新技術) |
3 |
5 |
· Design Spec |
· 生成設計文檔 |
2 |
5 |
· Design Review |
· 設計覆審 (和同事審核設計文檔) |
2 |
5 |
· Coding Standard |
代碼規範 (為目前的開發制定合適的規範) |
1 |
1 |
· Design |
具體設計 |
5 |
5 |
· Coding |
具體編碼 |
20 |
15 |
· Code Review |
· 代碼覆審 |
5 |
20 |
· Test |
· 測試(自我測試,修改代碼,提交修改) |
1 |
4 |
Reporting |
報告 |
30 |
60 |
·· Test Report |
· 測試報告 |
10 |
20 |
· Size Measurement |
計算工作量 |
10 |
20 |
· Postmortem & Process Improvement Plan |
· 事後總結 ,並提出過程改進計劃 |
10 |
20 |