日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

作业四:四则运算

發(fā)布時間:2025/5/22 编程问答 27 豆豆
生活随笔 收集整理的這篇文章主要介紹了 作业四:四则运算 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

一、需求分析

  任何編程語言都可以,命令行程序接受一個數(shù)字輸入,然后輸出相應數(shù)目的四則運算題目和答案。例如輸入數(shù)字是 30, 那就輸出 30 道題目和答案。 運算式子必須至少有兩個運算符,運算數(shù)字是在 100 之內(nèi)的正整數(shù),答案不能是負數(shù)。 如:23 - 3 * 4 = 11。

  統(tǒng)計用戶共答對多少道題。

?

二、功能設計

?  1.根據(jù)用戶要求的題目數(shù)n,循環(huán)n次輸出隨機的四則運算。

  ?2.判斷用戶輸入值是否正確,并給出正確題目數(shù)。

  ?3.運算答案不能小于0,小于0就重新在后臺出題目。

?

?

三、詳細設計

?  隨機產(chǎn)生三個100以內(nèi)的正整數(shù)和四個分別用“1”-“4”代表+,-,*,/運算符號,通過對四則運算中乘除和加減的優(yōu)先級別判斷:先乘除后加減,在計算函數(shù)中遍歷運算符數(shù)組中乘除符號后進行優(yōu)先計算,之后再對乘除計算之后的運算數(shù)進行相加減運算。

  遇到當隨機產(chǎn)生的正整數(shù)運算題計算結(jié)果為負數(shù)時,遞歸重新生成運算題,直至結(jié)果是大于零時所產(chǎn)生的題目打印在控制臺上,用戶輸入答案,答案與結(jié)果匹配正確即累加正確題數(shù),錯誤的輸出打印正確結(jié)果,當全部運算題做完后輸出統(tǒng)計結(jié)果。

代碼實現(xiàn):

int random(double start, double end)//獲取隨機數(shù)函數(shù) {return (int)(start+(end-start)*rand()/(RAND_MAX+1.0)); }char getSignala()//獲取隨機運算符函數(shù) {int a;char signal1[4]={'+','-','*','/'};srand((unsigned)time(NULL));a = rand()%4;return signal1[a]; } char getSignalb()//獲取隨機運算符函數(shù) {int b;char signal2[4]={'+','-','*','/'};srand((unsigned)time(NULL));b = rand()%4;return signal2[b]; } int getResult(int num1,int num2,int num3,char signal1,char signal2)//結(jié)果計算函數(shù) {int i=0,res;if(signal1=='+'){if(signal2=='+'){res=num1+num2+num3;}if(signal2=='-'){res=num1+num2-num3;}if(signal2=='*'){res=num2*num3+num1;}if(signal2=='/'){res=num2/num3+num1;}}if(signal1=='-'){if(signal2=='+'){res=num1-num2+num3;}if(signal2=='-'){res=num1-num2-num3;}if(signal2=='*'){res=num2*num3-num1;}if(signal2=='/'){res=num2/num3-num1;}}if(signal1=='*'){if(signal2=='+'){res=num1*num2+num3;}if(signal2=='-'){res=num1*num2-num3;}if(signal2=='*'){res=num2*num3*num1;}if(signal2=='/'){res=num2/num3*num1;}}if(signal1=='/'){if(signal2=='+'){res=num1/num2+num3;}if(signal2=='-'){res=num1/num2-num3;}if(signal2=='*'){res=num2*num3/num1;}if(signal2=='/'){res=num2/num3/num1;}}return res; }int takeTest()//題目生成函數(shù) {int get;int num1,num2,num3,a;char signal1,signal2;srand((unsigned)time(NULL));signal1=getSignala();srand((unsigned)time(NULL));signal2=getSignalb();num1=random(1,100);num2=random(0,100);num3=random(1,100); if(signal1=='-'){if(num1<num2){int temp;temp=num1;num1=num2;num2=temp;}}if(signal1=='/'){if(num2==0){int temp;temp=num1;num1=num2;num2=temp;}}printf("%d%c%d%c%d=",num1,signal1,num2,signal2,num3);scanf("%d",&get);fflush(stdin); //清空輸入緩沖區(qū)if(getResult(num1,num2,num3,signal1,signal2)==get){printf("回答正確!\n");a=1;}else{printf("I回答錯誤!\n");printf("正確答案是: %d\n",getResult(num1,num2,num3,signal1,signal2));a=0;}return a; }void main() {int n,a,right=0,i=0;double percent;printf("請選擇問題數(shù)目:");scanf("%d",&n);for(i;i<n;i++){a=takeTest();right=right+a;}printf("回答完畢!\n");printf("回答正確數(shù)量:%d\n",right);percent=((double)right*100.00)/(double)n;printf("正確率:%0.2f %%\n",percent); }

四、運行結(jié)果

五、問題及解決辦法

?  問題:不知道如何做到答案不為負數(shù)的問題。有時候會出現(xiàn)負數(shù)的情況,還有我的運算符也沒有做到不同。

六、過程耗時估計與統(tǒng)計表

PSP2.1Personal Software Process Stages預計時間(分鐘)實際時間(分鐘)
Planning計劃?20?30
· Estimate估計這個任務需要多少時間?180180
Development開發(fā)?1202000
· Analysis需求分析 (包括學習新技術)?20?20
· Design Spec生成設計文檔?10?20
· Design Review設計復審?10?10
· Coding Standard代碼規(guī)范?10?10
· Design具體設計?30?30
· Coding具體編碼?120?180
· Code Review代碼復審?30?20
· Test測試(自我測試,修改代碼,提交修改)?60?120
Reporting報告?30?30
·測試報告?10?10
·計算工作量?10?10
·并提出過程改進計劃?10?10

轉(zhuǎn)載于:https://www.cnblogs.com/hjlaaa/p/9790361.html

總結(jié)

以上是生活随笔為你收集整理的作业四:四则运算的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。