四则运算自动生成
程序员文章站
2022-06-28 20:26:55
一、题目要求 1、能够自动生成四则运算练习题 2、可以定制题目数量 3、用户可以选择运算符 4、用户设置最大数(如十以内、百以内等) 5、用户选择是否有括号、是否有小数 6、用户选择输出方式 二、编译工具 CodeBlocks 三、结对伙伴 |姓名|班级|代码地址| |: :|: :|: :| |牛 ......
一、题目要求
1、能够自动生成四则运算练习题
2、可以定制题目数量
3、用户可以选择运算符
4、用户设置最大数(如十以内、百以内等)
5、用户选择是否有括号、是否有小数
6、用户选择输出方式
二、编译工具
codeblocks
三、结对伙伴
姓名 | 班级 | 代码地址 |
---|---|---|
牛斌帅 | 1605班 | https://git.dev.tencent.com/inbsi/sizeyunsuanti.git |
房旭 | 1604班 |
四、编程过程
在编程过程中我们也遇到了种种问题并进行解决
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、成功录入文件提示更清晰。
解决前:
解决后:
五、结对感受
在这一次结对编程作业中
我主要充当领航员的作用,我的同伴充当着驾驶员的作用。
我的同伴主要是对程序进行编码,然后由我来后期调试。
在结对编程中我发现我们能够更加专注,并提高解决问题的效率
而且减少了错误的发生,要知道错误发现的越早,修复成本越低
更不用提无形中促进了个人知识的提高与传递
友谊也在不知不觉中巩固