一、題目要求 1、能夠自動生成四則運算練習題 2、可以定製題目數量 3、用戶可以選擇運算符 4、用戶設置最大數(如十以內、百以內等) 5、用戶選擇是否有括弧、是否有小數 6、用戶選擇輸出方式 二、編譯工具 CodeBlocks 三、結對伙伴 |姓名|班級|代碼地址| |: :|: :|: :| |牛 ...
一、題目要求
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、成功錄入文件提示更清晰。
解決前:
解決後:
五、結對感受
在這一次結對編程作業中
我主要充當領航員的作用,我的同伴充當著駕駛員的作用。
我的同伴主要是對程式進行編碼,然後由我來後期調試。
在結對編程中我發現我們能夠更加專註,並提高解決問題的效率
而且減少了錯誤的發生,要知道錯誤發現的越早,修複成本越低
更不用提無形中促進了個人知識的提高與傳遞
友誼也在不知不覺中鞏固