• 四则运算自动生成


    一、题目要求#

    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、成功录入文件提示更清晰。

    解决前:

    解决后:

    五、结对感受

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

    来自NBS的博客
  • 相关阅读:
    jquery ajax 后台响应成功,返回正确json但不执行success方法,执行error的问题
    bootstrap轮播组件,大屏幕图片居中效果
    mouseover和mouseout事件在鼠标经过子元素时也会触发
    vertical-align的深入学习
    小技巧
    css字体大小设置em与rem的区别
    子元素的margin-top影响父元素原因和解决办法
    JavaScript随机打乱数组
    JavaScript 获取当月天数
    javaScript 的option触发事件
  • 原文地址:https://www.cnblogs.com/nbsdbk/p/10787254.html
Copyright © 2020-2023  润新知