• 四则运算改进


    一、题目要求

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

    二、设计思想

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

    三、程序源代码

    #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;
    }

    四、截图

    五、实验总结

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

  • 相关阅读:
    类型反射和晚期绑定
    JS读写Cookie(设置、读取、删除)
    数据绑定
    解读代码
    ASP.NET vNext (一)- 基本概念和环境配置
    设计模式总结
    面向接口编程技术架构图
    搞个这样的APP要多久? (转)
    网站服务架构(转)
    jexus
  • 原文地址:https://www.cnblogs.com/yanyafeng/p/4357600.html
Copyright © 2020-2023  润新知