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

    一、设计思想

    1、避免题目重复(从第二个开始,每生成一个题目,与前面所有的题目对比,不同则随机生成,相同则不产生)
    2、可定制数量/打印方式(用户可通过设置题目数量n来实现定制数量,通过设置变量,用户选择来实现打印方式)
    3、是否有乘除法(用户通过选择是或否实现)
         数值范围(通过设置随机数的范围实现)
         加减有无负数(通过判断减数与被减数的大小来实现,被减数比减数大则没负数,被减数比减数小则有负数)
         除法有无余数(判断被除数是否能除尽除数)
         打印中每行的间隔可调整(用户通过设置行数间隔实现)

    二、源代码

    #include<iostream>
    #include<stdlib.h>
    using namespace std;
    #define  MAX 10000
    #include <ctime>
    #include <cstdlib>
    void display()
    {
         char q[4][2]={"+","-","*","/"};
         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][3];
         srand(time(0)); 
         for(int i=0;i<k;i++)
         {
              d[i][0]=rand()%(m-n)+n;
              d[i][1]=rand()%(m-n)+n;
              d[i][2]=rand()%(m-n)+n;
              a=rand()%4;
              b=rand()%4;
              if(o==1)
              {
                  a=rand()%4;
                  b=rand()%4;
          }
          else
          {
               a=rand()%2;
               b=rand()%2;
          }
           if(o==0)
          {
               cout<<"第"<<i+1<<"道题:"<<d[i][0]<<q[a]<<d[i][1]<<q[b]<<d[i][2]<<"="<<endl;
          }
          else if(p==0)
          {
                if(((d[i][0]%d[i][1]==0&&a==3)&&(d[i][1]%d[i][2]==0&&b==3))||(d[i][0]%d[i][1]==0&&a==3)||(d[i][1]%d[i][2]==0&&b==3))
                cout<<"第"<<i+1<<"道题:"<<d[i][0]<<q[a]<<d[i][1]<<q[b]<<d[i][2]<<"="<<endl;
            else
                i=i-1;
              }
              else
                   cout<<"第"<<i+1<<"道题:"<<d[i][0]<<q[a]<<d[i][1]<<q[b]<<d[i][2]<<"="<<endl;
      
         }
     
    }
    int main()
    {
         display();
         return 0;
    }

    三、运行结果

    四、运行截图

    五、总结

    在这次实验,我更加了解了有想法到程序的过程,也知道代码不进行模块化程序出问题。程序仅仅实现了几个功能还不太全面。刚开始的时候没有思路,后来具体到每一个问题其实也没有那么困难。

  • 相关阅读:
    C++实现base64编码
    php实现base64编码
    美团2016研发工程师笔试题(绑鞋带问题)
    URL encode 与 URL decode 的C语言实现
    常用排序算法集合-C实现
    用文件实现计算器要求多进程同时写
    vim操作命令-笔记
    Can't connect to local MySQL server through socket
    小程序页面跳转数据丢失
    Vue路由 --登录状态的判断
  • 原文地址:https://www.cnblogs.com/yanyafeng/p/4340041.html
Copyright © 2011-2022 走看看