zoukankan      html  css  js  c++  java
  • 四则运算自动生成

    一、题目要求#

    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的博客
  • 相关阅读:
    dotnet 控制台读写 Sqlite 提示 no such table 找不到文件
    dotnet 控制台读写 Sqlite 提示 no such table 找不到文件
    dotnet 控制台 Hangfire 后台定时任务
    dotnet 控制台 Hangfire 后台定时任务
    dotnet 获取指定进程的输入命令行
    dotnet 获取指定进程的输入命令行
    PHP sqrt() 函数
    PHP sinh() 函数
    PHP sin() 函数
    PHP round() 函数
  • 原文地址:https://www.cnblogs.com/nbsdbk/p/10787254.html
Copyright © 2011-2022 走看看