個人專案-小學四則運算初版
阿新 • • 發佈:2018-11-12
作業要求來源:https://edu.cnblogs.com/campus/gzcc/GZCC-16SE2/homework/2186
github地址:https://github.com/sizhanhe/-
一、題目要求
像《構建之法》的人物阿超那樣,寫一個能自動生成小學四則運算題目的命令列 “軟體”。具體要求:任何程式語言都可以,命令列程式接受一個數字輸入,然後輸出相應數目的四則運算題目和答案。例如輸入數字是 30, 那就輸出 30 道題目和答案。 運算式子必須至少有兩個運算子,運算數字是在 100 之內的正整數,答案不能是負數。 如:23 - 3 * 4 = 11
擴充套件要求:
1) 要求能出和真分數 (二分之一, 十二分之五,等)相關的練習題。
2) 並且要求能處理使用者的輸入,並判斷對錯,打分統計。 要求能處理使用者輸入的真分數, 如 1/2, 5/12 等。
二、設計思路
程式語言:c語言
工具:
設計思路:主函式讓使用者輸入要練習的題目數量;而後隨機產生隨機數和隨即運算子併產生運算式;判別使用者輸入的結果是否與正確答案一致,提示輸入值是否正確,答題繼續。答題完畢後,統計錯對情況給出判別資料。
類。
四、主要程式碼
srand((unsigned int)time(NULL)); for(i=1;i<=n;i++){ lab1: //隨機生成三個數 oneNum = rand()%100; twoNum = rand()%100; threeNum = rand()%100; //隨機生成運算子 firstSymbol = rand()%4; secondSymbol = rand()%4; //判斷運算子優先順序 if(firstSymbol < secondSymbol ){ sum = operation(twoNum,threeNum,secondSymbol); sum = operation(oneNum,sum,firstSymbol); }else{ sum = operation(oneNum,twoNum,secondSymbol); sum = operation(sum,threeNum,firstSymbol); } //看結果是否為負數,負數重新生成 if(sum <= 0) goto lab1; //打印出題目 printf("%d %c %d %c %d = ",oneNum,Symbol(firstSymbol),twoNum,Symbol(secondSymbol),threeNum,sum); //比對答案是否正確 scanf("%f",&answer); if((int)(100*sum+0.5)/100 == (int)(100*answer+0.5)/100){ printf("回答正確!!!\n"); right++; }else{ printf("回答錯誤!!!正確答案是%.2f\n",((100*sum+0.5)/100)); } } /* 函式名:opreation 函式功能:進行+、-、*、/運算 引數:a,b運算數,symbol運算子號 返回值:運算結果 sum */ float operation(int a,int b,int symbol){ float sum; if(symbol == 0) sum = a+b; else if(symbol == 1) sum = a-b; else if(symbol == 2) sum = a*b; else sum = (float)a/(float)b; return (sum); } /* 函式名:Symbol 功能:將隨機數轉換為對應得運算子號 引數:numSymbol 返回值:symbol */ char Symbol(int numSymbol){ char symbol; if(numSymbol == 0) symbol = '+'; else if (numSymbol == 1) symbol = '-'; else if (numSymbol == 2) symbol = '*'; else symbol = '/'; return symbol; }
五、執行結果
六、個人軟體過程耗時估計與統計表
PSP2.1 | Personal Software Process Stages | Time Senior Student | Time |
Planning | 計劃 | 5 | 15 |
Estimate | 估計這個任務需要多少時間 | 10 | 12 |
Development | 開發 | 25 | 30 |
Analysis | 需求分析 (包括學習新技術) | 2 | 50 |
Design Spec | 生成設計文件 | 4 | 5 |
Design Review | 設計複審 | 3 | 3 |
Coding Standard | 程式碼規範 | 1 | 1 |
Design | 具體設計 | 10 | 12 |
Coding | 具體編碼 | 10 | 50 |
Code Review | 程式碼複審 | 2 | 2 |
Test | 測試(自我測試,修改程式碼,提交修改) | 1 | 1 |
Reporting | 報告 | 3 | 3 |
測試報告 | 1 | 1 | |
計算工作量 | 2 | 3 | |
並提出過程改進計劃 | 1 | 1 |