分数类的构造
来源:互联网 发布:暴风影音怎么关闭网络 编辑:程序博客网 时间:2024/06/07 06:46
#include<iostream.h>//using namespace std;class CFraction{private:int nume; // 分子int deno; // 分母public:CFraction(int n=0,int d=0);CFraction operator +(CFraction &c);CFraction operator -(CFraction &c);CFraction operator *(CFraction &c);CFraction operator /(CFraction &c);CFraction operator +();CFraction operator -();CFraction operator ~();bool operator >(CFraction &c);bool operator <(CFraction &c);bool operator >=(CFraction &c);bool operator <=(CFraction &c);bool operator !=(CFraction &c);bool operator ==(CFraction &c);friend istream &operator>>(istream &input,CFraction &c);friend ostream &operator<<(ostream &input,CFraction &c);void display();void simplify();};CFraction::CFraction(int n,int d):nume(n),deno(d){}istream &operator >>(istream &input,CFraction &c){input>>c.nume>>c.deno;return input;}ostream &operator<<(ostream &output,CFraction &c){output<<c.nume<<"/"<<c.deno;return output;}CFraction CFraction::operator +(CFraction &c){CFraction result;result.deno=deno*c.deno;result.nume=nume*c.deno+deno*c.nume;return result;}CFraction CFraction::operator -(CFraction &c){CFraction result;result.deno=deno*c.deno;result.nume=nume*c.deno-deno*c.nume;return result;}CFraction CFraction::operator *(CFraction &c){CFraction result;result.deno=deno*c.deno;result.nume=nume*c.nume;return result;}CFraction CFraction::operator /(CFraction &c){CFraction result;result.deno=deno*c.nume;result.nume=nume*c.deno;return result;}bool CFraction::operator >(CFraction &c){double a=(double)nume/(double)deno;double b=(double)c.nume/(double)c.deno;if(a>b)return true;elsereturn false;}bool CFraction::operator <(CFraction &c){double a=(double)nume/(double)deno;double b=(double)c.nume/(double)c.deno;if(a<b)return true;elsereturn false;}bool CFraction::operator >=(CFraction &c){double a=(double)nume/(double)deno;double b=(double)c.nume/(double)c.deno;if(a>=b)return true;elsereturn false;}bool CFraction::operator <=(CFraction &c){double a=(double)nume/(double)deno;double b=(double)c.nume/(double)c.deno;if(a<=b)return true;elsereturn false;}bool CFraction::operator ==(CFraction &c){double a=(double)nume/(double)deno;double b=(double)c.nume/(double)c.deno;if(a==b)return true;elsereturn false;}bool CFraction::operator !=(CFraction &c){double a=(double)nume/(double)deno;double b=(double)c.nume/(double)c.deno;if(a!=b)return true;elsereturn false;}CFraction CFraction::operator +(){return CFraction(nume,deno);}CFraction CFraction::operator -()//相反数{return CFraction(-nume,deno);}CFraction CFraction::operator ~()//倒数{ CFraction x; x.nume=deno; x.deno=nume; if(x.deno<0) { x.deno=-x.deno; x.nume=-x.nume; } return x;}void CFraction::display(){cout<<nume<<"/"<<deno<<endl;}void CFraction::simplify(){int n;int a=nume;int b=deno;while(n=a%b)//求最大公约数{a=b;b=n;}nume/=b;deno/=b;if(deno<0)//保证符号在分子上{nume=-nume;deno=-deno;}}int main(){CFraction c1(3,2),c2(9,7),c3,c4(9,1);cout<<"c1:"<<c1<<endl;cout<<"c2:"<<c2<<endl;c3=c1+c2;cout<<"c1+c2:"<<c3<<endl;c3=c1-c2;cout<<"c1-c2:"<<c3<<endl;c3=c1*c2;c3.simplify();cout<<"c1*c2:"<<c3<<endl;c3=c1/c2;c3.simplify();cout<<"c1/c2:"<<c3<<endl;if(c1>c2)cout<<"比较:"<<c1<<">"<<c2<<endl;cout<<"-c1:"<<-c1<<endl;cout<<"+c1:"<<+c1<<endl;cout<<"~c4:"<<~c4<<endl;return 0;}
运行结果:
0 0
- 分数类的构造
- c#试验报告 构造分数类
- 第五周任务2:构造分数“类”
- 分数类的加减乘除
- 我的分数类
- 分数类的雏形
- 分数类的雏形
- 分数类的雏形
- 分数类的雏形
- 分数类的雏形
- 分数类的雏形
- 分数类的雏形
- 分数类的雏形
- 分数类的雏形
- 分数类的四则运算
- 分数类的雏形
- 分数类的四则运算
- 分数类的创建。。。
- 配置扫描@Controller注解的细节
- Android APK size压缩(瘦身)
- JS中Array方法中常用方法六:Array.prototype.reverse()
- centos opencv + python 配置
- 为C++实现类似C#的import DLL用法
- 分数类的构造
- hdoj5867 Water problem
- Codeforces 699B - One Bomb
- Html+css基础标签属性
- PHP中的反射
- 获取 request 中 json 数据
- 第3周项目4-顺序表的应用(2)
- React实战-通过ToDo源码分析Redux的数据模型设计
- Java-NowCoder-字符个数统计