码迷,mamicode.com
首页 > 其他好文 > 详细

四则运算(2)

时间:2015-05-26 07:59:20      阅读:176      评论:0      收藏:0      [点我收藏+]

标签:

一、设计思路
 
1. 要求中不重复先使用srand函数,生成两个做运算的随机数,再生成一个随机数,控制运算符号。
 
2. 是否有乘除法,数值范围,负数,余数,分数可以让用户选择。根据用户选择的结果,在每个函数之前根据用户的选择来执行不同的代码。
 
3. 把生成的每一个新的算式放在一起,每生成一个新的算式要验证是否与之前生成的算式重复,用字符串比如来做,如果重复就重新生成一个新的算式。
 
4. 打印只要用两个用户输入的变量就可以控制,一个控制打印的张数,一个控制打印每个式子的间距。

 

二、源代码

#include<iostream>
 
#include<time.h>
 
#include<string>
 
#define n 5
 
using namespace std;
 
void display(int a,int b,char z,int &i,int d[],int e[],char f[])    //验证算式是否重复,输出函数
 
{
 
      int j,K=1;
 
      for(j=0;j<i;j++)  
 
      if(a==d[j] && b==e[j] && z==f[j])   
 
           K=0;
 
      if(K!=0)
 
      {  
 
           d[i]=a;  
 
           e[i]=b;  
 
           f[i]=z;  
 
           if(b<0)   
 
                cout<<a<<z<<"("<<b<<")="<<endl;   
 
           else    
 
                cout<<a<<z<<b<<"="<<endl;
 
       }  
 
      else   
 
          i=i-1;
 
}
 
 
 
void suiji(int &a,int &b,int &c,string s1,string s2,string s3)      //s1 数值范围  s2 乘除法 s3 负数
 
{  
 
     if(s1=="Y")  
 
     {   
 
           a=rand()%50;  
 
           b=rand()%50;  
 
     }  
 
     else  
 
     {   
 
          a=rand();  
 
          b=rand();  
 
      }
 
 
 
      if(s2=="Y")  
 
           c=rand()%4;  
 
      else  
 
           c=rand()%2;
 
 
 
      if(s3=="Y")
 
      {   
 
             if(s1=="Y")
 
             { 
 
                 a=-rand()%76+25;   
 
                 b=-rand()%76+25;  
 
            }   
 
            else   
 
           {    
 
                a=rand()-rand();    
 
                b=rand()-rand();  
 
            }
 
      }
 
}
 
 
 
void main()                       //主程序
 
{
 
      int a,b,c,i;
       char z;
      int d[n];
      int e[n];
      char f[n];
      string s1,s2,s3,s4;
 
     srand((int)time(0));
 
      cout<<"---------------------------四则运算出题小程序-------------------------"<<endl;  cout<<endl;
 
       cout<<"是否有负数?(Y or N)"<<endl; 

       cin>>s3;
 
      cout<<"是否有乘除法?(Y or N)"<<endl;  
 
      cin>>s2;
 
      cout<<"是否有数值范围?(Y or N)"<<endl; 

      cin>>s1;
 
      cout<<"乘除法是否有余数?(Y or N)"<<endl;  
 
      cin>>s4;
 
 
 
      for(i=0;i<n;i++) 

      {   
 
           suiji(a,b,c,s1,s2,s3);
 
 
 
           if(c==0)                                                         //加法
 
          {    
 
                z=‘+‘;   
 
                if(b<0)    
 
                     display(a,b,z,i,d,e,f);    
 
                else     
 
                    display(a,b,z,i,d,e,f);  
 
            }
 
            if(c==1)                                                          //减法
 
            {   
 
                   z=‘-‘;
 
                   if(b<0)     
 
                       display(a,b,z,i,d,e,f);   
 
                   else    
 
                       display(a,b,z,i,d,e,f); 

              }
 
              if(c==2)                                                          //乘法
 
              {   
 
                     z=‘*‘;    
 
                     display(a,b,z,i,d,e,f); 

              }
 
             if(c==3)
 
             {
 
                        z=‘/‘;
 
                        if(s4=="Y")  
 
                                display(a,b,z,i,d,e,f);
 
                        else 

                       { 
 
                               int k;   
 
                               k=a%b;     
 
                               while(k!=0) 

                               {
 
                                        suiji(a,b,c,s1,s2,s3);     
 
                                        k=a%b;     
 
                                }
 
                               display(a,b,z,i,d,e,f);
 
                           } 

                } 

         }  //for循环
 
         int x; 

          cout<<"请输入打印张数:"<<endl; 

          cin>>x;
 
          cout<<"已成功提交!"<<endl; 

}

三、程序截图

  技术分享

四、实验总结

        程序中的每一个功能,都可以用很多方法去实现,虽然结果都是一样的,但是在思维方面和借助的东西上就完全不一样,我觉得找对方法这一点就直接决定了程序的效率问题。所以在以后的学习中,一定要尽量找到最简便最有效率的方法去解决编程中出现的问题,避免不必要的麻烦。

 

四则运算(2)

标签:

原文地址:http://www.cnblogs.com/licongzhuo/p/4529545.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!