四则运算自动生成
一、题目要求#
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、成功录入文件提示更清晰。
解决前:
解决后:
五、结对感受
在这一次结对编程作业中
我主要充当领航员的作用,我的同伴充当着驾驶员的作用。
我的同伴主要是对程序进行编码,然后由我来后期调试。
在结对编程中我发现我们能够更加专注,并提高解决问题的效率
而且减少了错误的发生,要知道错误发现的越早,修复成本越低
更不用提无形中促进了个人知识的提高与传递
友谊也在不知不觉中巩固
来自NBS的博客