• 自动生成四则运算题目


    • 主要功能:本程序可生成使用者想要完成的题目数量的题目,程序内生成的题目中包含整数计算和真分数计算两种。程序的设计对象是小学一年级到三年级学生,通过程序生成的题目来检验整数和真分数的四则运算。
    • 设计思想:通过“#include <time.h>”和“srand((unsigned)time(NULL));”这两段代码可以让系统自动生成数字;在设计的时候,希望能让程序简化,就让程序在生成题目的时候自己随机产生运算符号(代码部分略)”n=rand()%4;“ ”if(n==0){i='+';} “;”a=rand()%10+1;“ ”b=rand()%10+1;“等代码来随机生成10以内的数字;在看了网上的一些程序和同学完成的程序后,发现他们的程序都很繁琐,通过判断a和b的大小来完成不同符号的运算,同时还要考虑整数和分数的运算,所以我就把这2部分分开,”m=rand()%2;“第一部分为整数部分”if(m==0){printf("%d%c%d= ",a,i,b);}“,之后是分数部分(代码部分略)”else if(m==1){if(a<=b&&c<=d)printf("%d/%d%c%d/%d= ",a,b,i,c,d);  else if(a>b&&c>d) printf("%d/%d%c%d/%d= ",b,a,i,d,c);“
    • 源代码:
      #include <stdio.h>
      #include <stdlib.h>
      #include <time.h>
      main(){
          char i;
          int a,b,c,d,e,f,g,n,m;
          printf("*********欢迎使用四则运算自动生成软件*********
      ");
          printf("1.开始
      ");
          printf("2.退出软件
      ") ;
          printf("请选择:
      ");
          scanf("%d",&e);
          if(e==1){
          printf("请选择生成题目的数量:
      ");
          scanf("%d",&f);    
          srand((unsigned)time(NULL));
          for(int g=0;g<f;g++)
          {
          n=rand()%4;
          if(n==0){i='+';}
          if(n==1){i='-';}
          if(n==2){i='*';}
          if(n==3){i='/';}
          a=rand()%10+1;
          b=rand()%10+1;
          c=rand()%10+1;
          d=rand()%10+1;
          m=rand()%2;
          if(m==0){printf("%d%c%d=
      ",a,i,b);}
          else if(m==1){
              if(a<=b&&c<=d)printf("%d/%d%c%d/%d=
      ",a,b,i,c,d);
              else if(a>b&&c>d) printf("%d/%d%c%d/%d=
      ",b,a,i,d,c);
              else if(a<=b&&c>d) printf("%d/%d%c%d/%d=
      ",a,b,i,d,c);
              else if(a>b&&c<=d) printf("%d/%d%c%d/%d=
      ",b,a,i,c,d);
          }
          }
      }
       if(e==2){
              exit(0);
              return 0;
                  }
      }
      • 程序运行截图:
    • 总结:因为很久没有编过程序,所以刚刚开始做的时候就会做整数部分的计算,分数部分还在思考分子和分母的问题,后来在网上找了类似的四则运算的代码看了看别人做好的程序想从中借鉴一下,就发现了我所做的原版,程序很简洁,而且功能也都和网上其他的四则运用程序一样能。所以就按着人家的格式修改我的程序,并且在其中加入了分数的计算过程。通过做这个程序,让我解决了以前所忽略的问题,希望在日后的程序中能有所改善。
  • 相关阅读:
    BZOJ1251: 序列终结者
    BZOJ1014 [JSOI2008]火星人prefix
    NOI模拟赛Day6
    NOI模拟赛Day5
    BZOJ2329: [HNOI2011]括号修复
    NOI模拟赛Day4
    状压dp题目总结
    BZOJ2097[Usaco2010 Dec] 奶牛健美操
    BZOJ4027: [HEOI2015]兔子与樱花 贪心
    BZOJ1443: [JSOI2009]游戏Game
  • 原文地址:https://www.cnblogs.com/Anaheim-Electronics/p/5281536.html
Copyright © 2020-2023  润新知