实现分数类中的对象和整型数的四则运算。分数类中的对象可以和整型数进行四则运算,且运算符合交换律。例如:CFraction a(1,3),b; int i=2; 可以完成b=a+i;。同样,可以完成i+

来源:互联网 发布:zoomla 逐浪cms 编辑:程序博客网 时间:2024/05/02 05:05
/**Copyright (c) 2016,烟台大学计算机学院*All rights reserved.*文件名称:main.cpp*作    者:郭辉*完成时间:2016年6月1日*版 本 号:v1.0**问题描述:实现分数类中的对象和整型数的四则运算。分数类中的对象可以和整型数进行四则运算,且运算符合交换律。例如:CFraction a(1,3),b; int i=2; 可以完成b=a+i;。同样,可以完成i+a, 45+a, a*27, 5/a等各种运算*输入描述:无。*程序输出:分数。*/#include<iostream>using namespace std;class CFraction{private:int nume;//fenziint deno;//fenmupublic:CFraction(int a=0,int b=0);void show();CFraction operator+(double c);CFraction operator-(double c);CFraction operator*(double c);CFraction operator/(double c);bool  operator>(CFraction &c);bool  operator<(CFraction &c);bool operator==(CFraction &c);bool  operator>=(CFraction &c);bool  operator<=(CFraction &c);bool  operator!=(CFraction &c);};bool  CFraction::operator>(CFraction &c){int mu,zi1,zi2;mu=deno*c.deno;zi1=nume*c.deno;zi2=c.nume*deno;if(zi1>zi2)return true;else return false;}bool CFraction::operator<(CFraction &c){int mu,zi1,zi2;mu=deno*c.deno;zi1=nume*c.deno;zi2=c.nume*deno;if(zi1< zi2)return true;else return false;}bool CFraction::operator==(CFraction &c){int mu,zi1,zi2;mu=deno*c.deno;zi1=nume*c.deno;zi2=c.nume*deno;if(zi1==zi2)return true;else return false;}bool  CFraction::operator<=(CFraction &c){int mu,zi1,zi2;mu=deno*c.deno;zi1=nume*c.deno;zi2=c.nume*deno;if(zi1<=zi2)return true;else return false;}bool  CFraction::operator>=(CFraction &c){int mu,zi1,zi2;mu=deno*c.deno;zi1=nume*c.deno;zi2=c.nume*deno;if(zi1>=zi2)return true;else return false;}bool  CFraction::operator!=(CFraction &c){int mu,zi1,zi2;mu=deno*c.deno;zi1=nume*c.deno;zi2=c.nume*deno;if(zi1!=zi2)return true;else return false;}CFraction::CFraction(int a,int b){nume=a;deno=b;}CFraction CFraction::operator+(double c){int zi;zi=nume+c*deno;CFraction t(zi,deno);return t;}CFraction CFraction::operator-(double c){int zi;zi=nume-c*deno;CFraction t(zi,deno);return t;}CFraction CFraction::operator*(double c){int zi;zi=nume*c;CFraction t(zi,deno);return t;}CFraction CFraction::operator/(double c){int mu;mu=deno*c;CFraction t(nume,mu);return t;}void CFraction::show(){int t,m,r,n;m=deno;n=nume;if(deno<nume){t=m;m=n;n=t;}while(r=m%n)      {        m=n;        n=r;    }deno=deno/n;nume=nume/n;cout<<nume<<"/"<<deno<<endl;}int main(){CFraction  c1(1,2),c2(2,3),c3;c3=c1+2;c3.show();c3=c1-2;c3.show();c3=c1*2;c3.show();c3=c1/2;c3.show();if(c1>c2)cout<<"c1>c2"<<endl;if(c1<c2)cout<<"c1<c2"<<endl;if(c1==c2)cout<<"c1==c2"<<endl;if(c1>=c2)        cout<<"c1>=c2"<<endl;if(c1<=c2)cout<<"c1<=c2"<<endl;if(c1!=c2)cout<<"c1!=c2"<<endl;return 0;}
运行结果:
0 0
原创粉丝点击