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

软件工程个人作业02

时间:2016-03-20 14:30:06      阅读:199      评论:0      收藏:0      [点我收藏+]

标签:

设计思路:

1、避免重复:输出时,确定了运算符号,两个运算数都相同时,重新随机产生操作数,再循环重新产生式子。
2、是否有乘除法:选择了有乘除法,则无需修改;无乘除法,则随机产生的运算符号中就去除产生乘除的数字的可能。
3、数值范围:在菜单中可选择100以内的选项,可在产生随机数中确定两个运算数的范围。
4、加减有无负数:若选择有负数,则无需修改;若选择无负数,则当运算符号为减号时,要判断第一个运算数是否比第二个大,是,则可以,否则,交换两个数。
5、除法有无余数:可以有余数,则无需修改;要求无余数,则进行除法时,计算结果,若有余数,重新产生,用循环进行。
源代码:

 

#include<iostream>

#include<ctime>

#define N 1000 using namespace std;

void main()

{

   int a,b,x,y,z,n,m,u,t,l,d;  int j[N],c[N],k[N];

    srand((unsigned)time(0));

   d=rand()%30+1;  n=rand()%d+1;

    z=rand()%4;  cout<<"添加乘除法请输入0,反之输入1 :"<<endl;

    cin>>m;

    cout<<"请输入取值范围最大值:"<<endl;  cin>>u;  cout<<"加减有负数请输入0,反之输入1 :"<<endl;

    cin>>t;

    cout<<"除法有余数请输入0,反之输入1 :"<<endl;  

    cin>>l;

    cout<<"请输入定制题目数量 :"<<endl;

     cin>>d;
    cout<<"题目:"<<endl;  

        for(int i=1;i<=n;i++)  

    {

            a=rand()%u+1;

             b=rand()%u+1;   

            z=rand()%4;

           j[i]=a;   

          c[i]=b;

         k[i]=z;   

         for(int h=i-1;h>0;h--)

     {   

           if(j[h]==j[i]&&c[h]==c[i]&&k[h]==k[i])    

          {     a=rand()%u+1;   

                  b=rand()%u+1;     

                   z=rand()%4;

                 }

                   }  

              if(m==1)  

        {

                if(z==0)

                cout<<a<<"+"<<b<<"="<<endl;

               else if(z==1)   

          {

                 if(t==0)  

                  cout<<a<<"-"<<b<<"="<<endl;

              else  

              {     

                    int o;  

                  if(a>b)   

                 cout<<a<<"-"<<b<<"="<<endl;

                 else   

               {     

                      o=a; 

                     a=b;

                     b=o;     

                    cout<<a<<"-"<<b<<"="<<endl;   

                 }

             }

  }

 }

     else if(m==0)

          {

              if(z==0)

               cout<<a<<"+"<<b<<"="<<endl;  

              else if(z==1)   

              {    

                   if(t==0)

                   cout<<a<<"-"<<b<<"="<<endl;

                else    

                    {

                     if(a>b)

                     cout<<a<<"-"<<b<<"="<<endl;     

                    else   

                     {  

                            int o;  

                              if(a>b)

                               cout<<a<<"-"<<b<<"="<<endl;    

                   else

                    {     

                            o=a;

                            a=b;

                            b=o;

                           cout<<a<<"-"<<b<<"="<<endl;     

                       }

                       }    

         }   

  }  

         else if(z==2)    

        cout<<a<<"*"<<b<<"="<<endl;   

        else if(z==3)   

     {    

           if(b==0)    

          {     

                    b=rand()%u+1;   

                 if(l==1)    

               {

                    if(a%b!=0)    

                  cout<<a-a%b+b<<"/"<<b<<"="<<endl;  

                          else

                       cout<<a<<"/"<<b<<"="<<endl;

                  }

                 }    

             else

               cout<<a<<"/"<<b<<"="<<endl;

 

  }  

 }

   }

                      for(int i=1;i<=d-n;i++)

                    {

                        a=rand()%u;  

                         b=rand()%u+2;  

                          x=rand()%u;

                          y=rand()%u+2;

                           z=rand()%4;   

                 if(a<b)  

               {

                      int q;

                     q=a;  

                    a=b;  

                       b=q;

                   }

                   for(int w=b;w>=1;w--)   

           {    

                 if(a%w==0&&b%w==0)    

          {     a=a/w;  

               b=b/w;    

                break;    

         }

                }   

          if(x<y)   

           {

                    int q;    q=x;    x=y;    y=q;   

           }

               for(int e=y;e>=1;e--)

                {  

                           if(x%e==0&&y%e==0)

                     {  

                               x=x/e;   

                               y=y/e;

                                break;   

                         }

                      }

                 if(m==1)   

             {

                     if(z==0)  

                 cout<<"("<<a<<"/"<<b<<")"<<"+"<<"("<<x<<"/"<<y<<")"<<"="<<endl;  

                       else if(z==1)

                 cout<<"("<<a<<"/"<<b<<")"<<"-"<<"("<<x<<"/"<<y<<")"<<"="<<endl;  

              }   if(m==0)   

           {    

                 if(z==0)   

                  cout<<"("<<a<<"/"<<b<<")"<<"+"<<"("<<x<<"/"<<y<<")"<<"="<<endl;  

               else if(z==1)

               cout<<"("<<a<<"/"<<b<<")"<<"-"<<"("<<x<<"/"<<y<<")"<<"="<<endl;   

            else if(z==2)   

                cout<<"("<<a<<"/"<<b<<")"<<"*"<<"("<<x<<"/"<<y<<")"<<"="<<endl;  

            else if(z==3)  

               {    

                              if(x==0)  

                         {    

                             x=rand()%u+1;   

                            cout<<"("<<a<<"/"<<b<<")"<<"/"<<"("<<x<<"/"<<y<<")"<<"="<<endl;   

                         }

                            else     

                            cout<<"("<<a<<"/"<<b<<")"<<"/"<<"("<<x<<"/"<<y<<")"<<"="<<endl;

                             }

                     }

            }

        }

技术分享

技术分享

 

 

 

 

周活动总结表姓名:杨国力  日期:19/3/2016

日期/任务 听课 编程 阅读课本 准备考试     日总计
周日 0 0 0 0     0
周一 120 60 30 0     210
周二 0 60 30 0     90
周三 0

60

0 0     60
周四 0 0 0 0     0
周五 0 0 0 0     0
周六 0 60 0 0     60
周总计 120 240 60 0    

420

 

 

 

 

 

 

 

 

 

 

 

 

 

 

学生:杨国力    日期:2016.3.19教师:王建明     课程:软件工程概论

日期 开始时间 结束时间 中断时间 净时间 活动 备注 C U
3.14 8:00 9:50 10 100 听课 休息    
  14:00 14:20 0 20 阅读      
3.15 15:00 16:25 25 60 编程 上厕所.休息    
  17:00 17:30 0 30 阅读      
3.16 15:00 16:10 10 60 编程      
3.19 15:00 15:40 10 30 编程 上厕所    
  17:00 17:30   30 编程      
3.14 14:30 15:30 0 60 编程      
  16:00 16:30 0 30 阅读      
                 
                 
                 
                 
                 

软件工程个人作业02

标签:

原文地址:http://www.cnblogs.com/ygl888/p/5296617.html

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