作業要求來源:https://edu.cnblogs.com/campus/gzcc/GZCC-16SE1/homework/2166
github倉庫位址:https://github.com/tianshizhao/tianshizhao/commits?author=tianshizhao
一、題目要求:
像《建構之法》的人物阿超那樣,寫一個能自動生成國小四則運算題目的指令行 “軟體”。
具體要求:任何程式設計語言都可以,指令行程式接受一個數字輸入,然後輸出相應數目的四則運算題目和答案。例如輸入數字是 30, 那就輸出 30 道題目和答案。 運算式子必須至少有兩個運算符,運算數字是在 100 之内的正整數,答案不能是負數。 如:
23 - 3 * 4 = 11
擴充要求:
1) 要求能出和真分數 (二分之一, 十二分之五,等)相關的練習題。
2) 并且要求能處理使用者的輸入,并判斷對錯,打分統計。 要求能處理使用者輸入的真分數, 如 1/2, 5/12 等。
二.設計
1.用了C語言來設計這個程式
2.主要設計了六個函數,分别是加、減、乘、除、運算符和操作這四個函數
3.答案精确到0.1,主要用了兩個if來加以判斷
4.用了五個随機,從何實作自動生成随機數和随機符号
a=rand()%100;
b=rand()%100;
c=rand()%100;
j=rand()%4;
k=rand()%4;
5.累計所有答對的題目,最後算出最後得分,這裡用了一個全局函數g作媒體實作
f=100/n*g;
printf("\n總共答對%d道題\n",g);
printf("最後得分為%d分\n",f);
三.問題及建構思想
剛開始做的時候,以為隻有一個運算符,導緻前面設計的建構思維全部白費,然後想了很久也沒有找到連接配接兩個式子的混合運算模式,
最後在百度上查了相關資料,才漸漸明白連接配接兩個運算符号。這個運算式子主要由五大部分組成,(數子、運算符、數、運算符、數)
我把他們全部拆除了,全部随機,然後一個一個組出來,最後就實作了一個式子。
p1=fuhao(j);
p2=fuhao(k);
printf("%d %c %d %c %d = ",a,p1,b,p2,c);
scanf("%f",&answer);
四。實驗截圖

PSP2.1 | Personal Software Process Stages | Time Senior Student(h) | Time(h) |
Planning | 計劃 | 1 | |
· Estimate | 估計這個任務需要多少時間 | 20 | 30 |
Development | 開發 | ||
· Analysis | 需求分析 (包括學習新技術) | ||
· Design Spec | 生成設計文檔 | ||
· Design Review | 設計複審 | 2 | |
· Coding Standard | 代碼規範 | 5 | |
· Design | 具體設計 | ||
· Coding | 具體編碼 | 8 | |
· Code Review | 代碼複審 | 3 | |
· Test | 測試(自我測試,修改代碼,送出修改) | 4 | 6 |
Reporting | 報告 | ||
· | 測試報告 | 0.5 | |
計算工作量 | |||
并提出過程改進計劃 |