c++分数加减乘除

来源:互联网 发布:java复制对象 编辑:程序博客网 时间:2024/05/21 10:08

</pre><p style="margin-top:0px; margin-bottom:0px; padding-top:0px; padding-bottom:0px; color:rgb(51,51,51); font-family:arial,宋体,sans-serif,tahoma,'Microsoft YaHei'; font-size:14px; line-height:24px; background-color:rgb(243,255,236)"><pre name="code" class="cpp">#include<iostream>using namespace std;int fn(int a,int b);class  fraction//分数类声明{public://外部接口fraction(int FZ=0,int FM=0)//构造函数{  fz=FZ ; fm=FM ; }friend  fraction operator + ( fraction c1, fraction c2)//运算符 + 重载成员函数{return  fraction(c1.fz*c2.fm+c2.fz*c1.fm,c1.fm*c2.fm);}friend  fraction operator - ( fraction c1, fraction c2)//运算符 - 重载成员函数{return  fraction(c1.fz*c2.fm-c2.fz*c1.fm,c1.fm*c2.fm);}friend  fraction operator * ( fraction c1, fraction c2)//运算符 * 重载成员函数{return  fraction(c1.fz*c2.fz,c1.fm*c2.fm);}friend  fraction operator / ( fraction c1, fraction c2)//运算符 / 重载成员函数{return  fraction(c1.fz*c2.fm,c1.fm*c2.fz);}void input();//输入分数void output();//输出分数private://私有数据成员int fz;//分子int fm;//分母};void  fraction::input()//输入函数类外实现{cout<<"请输入复数的分子和分母:";cin>>fz>>fm;}void  fraction::output()//输出函数类外实现{int c;c=fn(fz,fm);fz/=c;fm/=c;cout<<"( "<<fz<<"/"<<fm<<" )"<<endl;}int fn(int a,int b)//求分子分母的公约数{int d; for(d=(a<b?a:b);d>=1;d--)if(a%d==0&&b%d==0) {   break;  } return d;}int main(){fraction c1,c2,c3;c1.input();    c2.input();cout<<"输入的两个分数为:"<<endl;cout<<"c1="; c1.output();cout<<"c2="; c2.output();cout<<"两个分数之间能进行所有运算有:"<<endl;c3=c2+c1;cout<<"c3=c2+c1="; c3.output();c3=c2-c1;cout<<"c3=c2-c1="; c3.output();c3=c2*c1;cout<<"c3=c2*c1="; c3.output();c3=c2/c1;cout<<"c3=c2/c1="; c3.output();getchar();getchar();}


0 0
原创粉丝点击