Fork me on GitHub

四则运算自动生成

一、题目要求#

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",&cent);
   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、成功录入文件提示更清晰。

解决前:

解决后:

五、结对感受

在这一次结对编程作业中
我主要充当领航员的作用,我的同伴充当着驾驶员的作用。
我的同伴主要是对程序进行编码,然后由我来后期调试。
在结对编程中我发现我们能够更加专注,并提高解决问题的效率
而且减少了错误的发生,要知道错误发现的越早,修复成本越低
更不用提无形中促进了个人知识的提高与传递
友谊也在不知不觉中巩固

posted @ 2019-04-28 22:12  月光光心慌慌  阅读(788)  评论(2编辑  收藏  举报
评论