void Fraction_expression::oper(){                       //栈顶运算
    int v0,v1,v2,v3;
    QChar ch;
    Fraction Frac;
    ch=c.top();
    c.pop();
    v3=s.top();
    s.pop();
    v2=s.top();
    s.pop();
    v1=s.top();
    s.pop();
    v0=s.top();
    s.pop();
    switch(ch.unicode()){
    case 43:Frac.Add(v0,v1,v2,v3);
        break;
    case 45:Frac.Sub(v0,v1,v2,v3);
        break;
    case 42:Frac.Mul(v0,v1,v2,v3);
        break;
    case 47:Frac.Div(v0,v1,v2,v3);
        break;
    }
    s.push(Frac.getnumer());
    s.push(Frac.getdenom());

}
Example #2
0
int main()
{
    Fraction fra;
    fra.Sim(2,-108);
    fra.Pri();
    fra.Add(6,5,2,9);
     fra.Pri();
	 cout<<fra.Swi()<<endl;
    fra.Sub(2,5,-1,5);
     fra.Pri();
    fra.Mul(6,2,0,5);
     fra.Pri();
    fra.Rec(3,-2);
    fra.Pri();
	fra.Div(3,6,0,4);
    return 0;

}