软件工程个人作业01

代码实现随机生成30道四则运算题目:

1.生成随机数(利用rand()%100确定,使用srand((unsigned)time(NULL));避免重复。)

2.使用一个随机数来确定符号,1234对应加减乘除,使用if就可轻松判断。

3.使用另一个随机数来确定是否是分数运算,12分别代表整数和分数,分数运算时分母不为0,整数运算时除数不为0,否则,重新生成一个随机数。

4.输出就很简单了,根据符号随机数确定是什么符号就行了。

源代码:

#include<iostream>
 #include<time.h>
 using namespace std;
 float num[6];
 void random(){                      //生成随机数
    num[0]=rand()%100;
    num[1]=rand()%100;
    num[2]=rand()%100;
    num[3]=rand()%100;
    
}
void main(){               
    srand((unsigned)time(NULL));
    for(int i=0;i<30;i++){
        random();
        num[4]=rand()%4+1;
        num[5]=rand()%2+1;
        if(num[4]==1){
           if(num[5]==1)
                cout<<num[1]<<"+"<<num[2]<<"="<<endl;
           else{
               for(;;){
                  if(num[0]==0||num[1]==0)
                      random();
                  else{
                       cout<<"("<<num[2]<<"/"<<num[0]<<")"<<"+"<<"("<<num[3]<<"/"<<num[1]<<")"<<"="<<endl;
                       break;
                   }
               }
           }
       }
       else if(num[4]==2){
           if(num[5]==1)
               cout<<num[1]<<"-"<<num[2]<<"="<<endl;
           else{
               for(;;){
                   if(num[0]==0||num[1]==0)
                       random();
                   else{
                       cout<<"("<<num[2]<<"/"<<num[0]<<")"<<"-"<<"("<<num[3]<<"/"<<num[1]<<")"<<"="<<endl;
                       break;
                   }
               }
           }
       }
       else if(num[4]==3){
           if(num[5]==1)
               cout<<num[1]<<"*"<<num[2]<<"="<<endl;
           else{
               for(;;){
                   if(num[0]==0||num[1]==0)
                       random();
                   else{
                       cout<<"("<<num[2]<<"/"<<num[0]<<")"<<"*"<<"("<<num[3]<<"/"<<num[1]<<")"<<"="<<endl;
                       break;
                   }
               }
           }
       }
       else if(num[4]==4){
           if(num[5]==1){
               for(;;){
                   if(num[2]==0)
                       random();
                   else{
                       cout<<num[1]<<"/"<<num[2]<<"="<<endl;
                       break;
                   }
               }
           }
           else{
               for(;;){
                   if(num[0]==0||num[1]==0||num[3]==0)
                       random();
                   else{
                       cout<<"("<<num[2]<<"/"<<num[0]<<")"<<"/"<<"("<<num[3]<<"/"<<num[1]<<")"<<"="<<endl;
                       break;
                   }
               }
           }
       }
    }
}

结果截图:

posted @ 2016-03-07 18:01  q白月倚寒楼  阅读(156)  评论(1编辑  收藏  举报