四則運算自動生成
阿新 • • 發佈:2019-04-29
一次 std max img 獲得 int flush amp 修復
一、題目要求
1、能夠自動生成四則運算練習題
2、可以定制題目數量
3、用戶可以選擇運算符
4、用戶設置最大數(如十以內、百以內等)
5、用戶選擇是否有括號、是否有小數
6、用戶選擇輸出方式
二、編譯工具
CodeBlocks
三、結對夥伴
姓名 | 班級 | 代碼地址 |
---|---|---|
牛斌帥 | 1605班 | https://git.dev.tencent.com/INBSI/sizeyunsuanti.git |
房旭 | 1604班 | https://git.dev.tencent.com/dtid_85494e5bcaedfaa6/jieduibianchengsizeyunsuan.git |
四、編程過程
在編程過程中我們也遇到了種種問題並進行解決
1、將括號判斷語句的位置進行了移動,解決了混合運算需要每次進行判斷括號的bug;
解決前:
解決後:
2,解決隨機數小數只是0.xx而無法生成x.xx的形式問題。
解決前:
解決後:
3、解決最大值只能為10/100的不夠靈活問題。
解決前:
printf("設置最大數(若為0,最大數為10,若不是,最大數為100):"); scanf("%d",&max); printf("是否含有小數(0不是,其他數是):"); scanf("%d",¢); printf("選擇練習運算的運算符(1為加,2為減,3為乘,4為除,5為混合運算(含括號或不含括號)):"); scanf("%d",&symbol); printf("是否輸出到文件中:(0為不輸出到文件中,否則為輸出到文件中)"); scanf("%d",&file); for(int i=0;i<practice_num;i++) { fflush(stdin); //清除文件緩沖區,文件以寫方式打開時將緩沖區內容寫入文件 if(cent==0) { if(max==0) { a=rand()%10; //獲得0~9的一個隨機數 b=rand()%10+1; c=rand()%10; d=rand()%10+1; } if(max!=0) { a=rand()%100; b=rand()%100+1; c=rand()%100; d=rand()%100+1; } } else { if(max==0) { a=rand()%10*0.01; b=rand()%10+1; c=rand()%10*0.01; d=rand()%10*0.01; } if(max!=0) { a=rand()%100*0.01; b=rand()%100+1; c=rand()%100*0.01; d=rand()%100*0.01; } }
解決後:
if(cent==0) //判定為整數 { a=rand()%max; b=rand()%max; c=rand()%max; d=rand()%max; } else //小數 { a=rand()/(double)(RAND_MAX/max); b=rand()/(double)(RAND_MAX/max); c=rand()/(double)(RAND_MAX/max); d=rand()/(double)(RAND_MAX/max); }
4、解決隨機數生成種子不變問題。
#include<time.h>
srand(time(NULL));
5、解決輸入無效運算符提示問題。
解決前:
解決後:
6、成功錄入文件提示更清晰。
解決前:
解決後:
五、結對感受
在這一次結對編程作業中
我主要充當領航員的作用,我的同伴充當著駕駛員的作用。
我的同伴主要是對程序進行編碼,然後由我來後期調試。
在結對編程中我發現我們能夠更加專註,並提高解決問題的效率
而且減少了錯誤的發生,要知道錯誤發現的越早,修復成本越低
更不用提無形中促進了個人知識的提高與傳遞
友誼也在不知不覺中鞏固
四則運算自動生成