分数的四则运算

来源:互联网 发布:软件开发模型有哪些 编辑:程序博客网 时间:2024/05/16 00:50
问题及代码:
/*。*Copyright(c)2014,烟台大学计算机学院*All right reserved,*文件名:test.cpp*作者:liu_feng_zi_*完成日期:2015年6月23日*版本号:v1.0*问题描述:分数类的四则运算*输入描述:*程序输出:*/#include <iostream>using namespace std;class Fraction{private:    int z,m;public:    Fraction():z(0),m(0) {}    friend Fraction operator -(Fraction&,Fraction&);    bool operator ==(int d);    friend Fraction operator /(Fraction&,Fraction&);    friend istream& operator>>(istream&input,Fraction&f);    friend int simple(int x,int y);    void output();};Fraction operator -(Fraction&ff1,Fraction&ff2){    Fraction f;    int a;    int simple(int x,int y);    f.z=ff1.z*ff2.m-ff1.m*ff2.z;    f.m=ff1.m*ff2.m;    a=simple(f.z,f.m);    f.z/=a;    f.m/=a;    return f;}Fraction operator /(Fraction&ff1,Fraction&ff2){    Fraction f;    int simple(int x,int y);    f.z=ff1.z*ff2.m;    f.m=ff1.m*ff2.z;    int  a=simple(f.z,f.m);    f.z/=a;    f.m/=a;    return f;}bool Fraction::operator ==(int d){    if(z==d||m==d)        return true;    else        return false;}int simple(int x,int y){    int r;    while(y!=0)    {        r=x%y;        x=y;        y=r;    }    return x;}istream&operator >>(istream&input,Fraction&f){    input>>f.z>>f.m;    return input;}void Fraction::output(){    if(m!=1)    {        if(m<0)           cout<<-z<<"/"<<-m;           else              cout<<z<<"/"<<m;    }    else        cout<<z;}int main(){    Fraction f1,f2,f3;    while(cin>>f1>>f2)    {        if(f1==0&&f2==0)            break;        f3=f1-f2;        f3.output();        cout<<" ";        f3=f1/f2;        f3.output();        cout<<endl;    }    return 0;}

运行结果:
0 0