#include<iostream>
using namespace std;
#define random()(rand()%100)
class shuzi         //shuzi类的功能是产生随机数
{
public:
    int display()    //调用display产生随机整数
    {
        int num=random();
        cout<<num<<"  ";
        return 0;
    }
    int display1()  //调用display1产生随机真分数
    {
        int num1=random();
        int num2=random();
        for(;;)
        {        
            if((num1 <= num2) && (num2 != 0))        //判断分子小于分母,且分母不为0    
            {
                cout<<num1<<"/"<<num2<<"  ";      
                break;
            }
            if((num2 <= num1) && (num1 != 0))            
            {
                cout<<num2<<"/"<<num1<<"  ";
                break;
            }
        }
        return 0;
    }
};
void main()
{
    char add='+';
    char sec='-';
    char min='*';
    char div='/';
    int i;
    shuzi x;
    for( i=0;i<10;i++)   //产生10个纯整数四则运算
    {
        cout<<"("<<i+1<<") ";
        x.display();
        cout<<add;    
        x.display();
        cout<<sec;
        x.display();
        cout<<min;
        x.display();
        cout<<div;
       for(;;)       //判断除数是否为0
       {
           int t=random();
             if(t != 0)
           {        
               cout<<t;        
               break;
           }
       }
       cout<<"="<<endl;
    }
    for(i=0;i<10;i++)  //产生10个纯分数四则运算
    {
        cout<<"("<<i+11<<")";
        x.display1();
        cout<<add<<"  ";    
        x.display1();
        cout<<sec<<"  ";
        x.display1();
        cout<<min<<"  ";
        x.display1();
        cout<<div<<"  ";
        x.display1();
       cout<<"="<<endl;
    }
    for(i=0;i<10;i++)      //输出10个整数和分数混合的四则运算
    {
        cout<<"("<<i+21<<")";
        x.display();
        cout<<add<<"  ";    
        x.display1();
        cout<<sec<<"  ";
        x.display();
        cout<<min<<"  ";
        x.display1();
        cout<<div<<"  ";
        x.display1();
       cout<<"="<<endl;
    }
}

这是我编写的30道四则运算题,一开始很懵,后来按照老师所教的拆分法,理清思路,最后做出来了。但是运算符的顺序是固定的+ -  *  /不知道该怎么改