zoukankan      html  css  js  c++  java
  • 四则运算改进

    一、题目要求

         每个同学对已有的四则运算生成器进行优化,让程序能接受用户输入答案,并判断对错,最后给出总共对/错的数量。

    二、设计思想

        把结果算出来存入到一个数组中,与用户输入的答案进行比较,一样就是正确,不一样就是错误。

    三、程序源代码

    #include<iostream>
    #include<stdlib.h>
    using namespace std;
    #define  MAX 10000
    #include <ctime>
    #include <cstdlib>
    int answer(int a[],int length)  //判断正误
    {
        int answer[100];
    
        int sum=0;
        for(int i=0;i<length;i++)
        {
               cout<<"请输入第"<<i+1<<"道题结果:";
               cin>>answer[i];
               if(a[i]==answer[i])
               {
                   sum=sum+1;
               }
    
        }
        return sum;
    }
    int jisuan(char a,int op1,int op2)   //计算题目正确结果
    {
        int correct;
        switch(a)
        {
            case '+':correct=op1+op2;break;
            case '-':correct=op1-op2;break;
            case '*':correct=op1*op2;break;
            case '/':correct=op1/op2;break;
        }
        return correct;
    }
    void display()
    {
         int jieguo[100];
         char yun;
         int op1;
         int op2;
         char q[4]={'+','-','*','/'};
         int a,b,k,m,n,o,p;
         cout<<"请输入定制数量"<<endl;
         cin>>k;//定制数量
         cout<<endl;
         cout<<"请输入数值范围(如 10 50)"<<endl;
         cin>>m>>n;
         cout<<endl;//数值范围
         cout<<"0.无乘除法"<<endl;
         cout<<"1.有乘除法"<<endl;
         cin>>o;//有无乘除 0 无 1有
         if(m<n)
         {
              int temp=n;
              n=m;
              m=temp;
         }
         if(o!=0)
         {
              cout<<endl;//数值范围
              cout<<"0.无余数"<<endl;
              cout<<"1.有余数"<<endl;
              cin>>p;//有无余数 0无 1有
         }
         int d[MAX][2];
         srand(time(0));
         for(int i=0;i<k;i++)
         {
              d[i][0]=rand()%(m-n)+n;
              d[i][1]=rand()%(m-n)+n;
              a=rand()%4;
              if(o==1)
              {
                  a=rand()%4;
              }
              else
              {
                  a=rand()%2;
              }
              if(o==0)
              {
                  cout<<""<<i+1<<"道题:"<<d[i][0]<<q[a]<<d[i][1]<<"="<<endl;
                           yun=q[a];
                           op1=d[i][0];
                           op2=d[i][1];
                           jieguo[i]=jisuan(yun,op1,op2);
              }
              else if(p==0)
              {
                  if(a==3)
                  {
                      if(d[i][0]%d[i][1]==0)
                      {
                           cout<<""<<i+1<<"道题:"<<d[i][0]<<q[a]<<d[i][1]<<"="<<endl;
                           yun=q[a];
                           op1=d[i][0];
                           op2=d[i][1];
                           jieguo[i]=jisuan(yun,op1,op2);
                      }
                      else
                      {
                          i=i-1;
                      }
                  }
                  else
                  {
                      cout<<""<<i+1<<"道题:"<<d[i][0]<<q[a]<<d[i][1]<<"="<<endl;
                       yun=q[a];
                           op1=d[i][0];
                           op2=d[i][1];
                           jieguo[i]=jisuan(yun,op1,op2);
                  }
    
              }
              else
              {
                   cout<<""<<i+1<<"道题:"<<d[i][0]<<q[a]<<d[i][1]<<"="<<endl;
                    yun=q[a];
                           op1=d[i][0];
                           op2=d[i][1];
                           jieguo[i]=jisuan(yun,op1,op2);
              }
    
         }
         int s=answer(jieguo,k);
         cout<<"正确题目数量为:"<<s<<endl;
    
    
    }
    int main()
    {
         display();
         return 0;
    }

    四、截图

    五、实验总结

        本次实验运用了函数,运用一位数组。把结果算出来存入到一个数组中,与用户输入的答案进行比较,一样就是正确,不一样就是错误。实验运用了函数,本来对函数传参不是很懂,通过做这次实验,学会了函数传参。以后做程序不管题目有多难设计,多难编写,都要仔细分析,也不太犯憷。每一个大程序可能乍看起来比较多,其实他都是每一个小程序组成的,要一点一滴慢慢解决。

  • 相关阅读:
    Entity Framework Core 2.0 新特性
    asp.net core部署时自定义监听端口,提高部署的灵活性
    asp.net core使用jexus部署在linux无法正确 获取远程ip的解决办法
    使用xshell连接服务器,数字键盘无法使用解决办法
    使用Jexus 5.8.2在Centos下部署运行Asp.net core
    【DevOps】DevOps成功的八大炫酷工具
    【Network】Calico, Flannel, Weave and Docker Overlay Network 各种网络模型之间的区别
    【Network】UDP 大包怎么发? MTU怎么设置?
    【Network】高性能 UDP 应该怎么做?
    【Network】golang 容器项目 flannel/UDP相关资料
  • 原文地址:https://www.cnblogs.com/yanyafeng/p/4357600.html
Copyright © 2011-2022 走看看