第十三周项目1(2)
2016-06-18 12:18
393 查看
/* *Copyright (c) 2016,烟台大学计算机学院 *All rights reserved. *文件名称 : *作 者 : 胡昌星 *完成日期 : 2016年5月25号 *版 本 号 : v6.0 * *问题描述 : 阅读项目(虚析构函数) *输入描述 : 无 *程序输出 : */ #include<iostream> using namespace std; class CFraction { private: int nume; //分子 int deno; //分母 public: CFraction(int n=1,int d=1):nume(n),deno(d){} //类与类的加、减、乘、除运算 CFraction operator+(CFraction &c1); CFraction operator-(CFraction &c1); CFraction operator*(CFraction &c1); CFraction operator/(CFraction &c1); //类与数的加、减、乘、除运算 CFraction operator+(int a); CFraction operator-(int a); CFraction operator*(int a); CFraction operator/(int a); friend CFraction operator+(int a,CFraction &c1); friend CFraction operator-(int a,CFraction &c1); friend CFraction operator*(int a,CFraction &c1); friend CFraction operator/(int a,CFraction &c1); friend int operator>(CFraction &c1,CFraction &c2); void qualify(); void show()const; }; //类与类的加、减、乘、除运算 CFraction CFraction::operator+(CFraction &c1) { return CFraction(c1.deno*nume+c1.nume*deno,deno*c1.deno); } CFraction CFraction::operator-(CFraction &c1) { return CFraction(c1.deno*nume-c1.nume*deno,deno*c1.deno); } CFraction CFraction::operator*(CFraction &c1) { return CFraction(nume*c1.nume,deno*c1.deno); } CFraction CFraction::operator/(CFraction &c1) { return CFraction(nume*c1.deno,deno*c1.nume); } //类与数的加、减、乘、除运算 CFraction CFraction::operator+(int a) { return CFraction(a*deno+nume,deno); } CFraction CFraction::operator-(int a) { return CFraction(nume-a*deno,deno); } CFraction CFraction::operator*(int a) { return CFraction(nume*a,deno); } CFraction CFraction::operator/(int a) { return CFraction(nume,deno*a); } //类与数的加、减、乘、除运算,运算符合交换律 CFraction operator+(int a,CFraction &c1) { return CFraction(a*c1.deno+c1.nume,c1.deno); } CFraction operator-(int a,CFraction &c1) { return CFraction(a*c1.deno-c1.nume,c1.deno); } CFraction operator*(int a,CFraction &c1) { return CFraction(c1.nume*a,c1.deno); } CFraction operator/(int a,CFraction &c1) { return CFraction(c1.deno*a,c1.nume); } int operator>(CFraction &c1,CFraction &c2) { if(c1.deno!=c2.deno) { if(c1.deno>c2.deno) return 0; else return 1; } if(c1.deno==c2.deno) { if(c1.nume>c2.nume) return 1; else return 0; } } void CFraction::qualify() { int k=1,n=nume,d=deno; while(deno!=0) { k=nume%deno; nume=deno; deno=k; } n=n/nume; d=d/nume; nume=n; deno=d; } void CFraction::show()const { if(deno==1) cout<<nume<<endl; else cout<<nume<<'/'<<deno<<endl; } int main() { CFraction c1(1,2),c2(1,4),c3,a(1,3); int i=2; c3=c1+c2; c3.qualify(); cout<<"(1/2)+(1/4)="; c3.show(); c3=c1-c2; c3.qualify(); cout<<"(1/2)-(1/4)="; c3.show(); c3=c1*c2; c3.qualify(); cout<<"(1/2)*(1/4)="; c3.show(); c3=c1/c2; c3.qualify(); cout<<"(1/2)/(1/4)="; c3.show(); c3=a+i; c3.qualify(); cout<<"(1/3)+2="; c3.show(); c3=i+a; c3.qualify(); cout<<"2+(1/3)="; c3.show(); c3=45+a; c3.qualify(); cout<<"45+(1/3)="; c3.show(); c3=a*27; c3.qualify(); cout<<"(1/3)*27="; c3.show(); c3=5/a; c3.qualify(); cout<<"5/(1/3)="; c3.show(); if(c1>c2)cout<<"(1/2)>(1/4)"<<endl; else cout<<"(1/2)<(1/4)"<<endl; return 0; }
相关文章推荐
- jqPlot jQuery绘图插件的使用
- 字典树(Trie树)
- 黑洞数
- eclipse中解决65536
- RxJava
- 215. Kth Largest Element in an Array
- faster_rcnn c++版本的 caffe 封装,动态库(2)
- 3ds max 渲染清晰面片的边缘
- JQuery_Validation_plugin
- 第一个博客 属于自己的
- C程序编译过程浅析
- scikit-learn : 线性回归
- MongoDB的性能监控
- faster_rcnn c++版本的 caffe 封装(1)
- 第十三周项目1(1)
- memcache对hash一致性算法和取模算法详解
- 1018. 锤子剪刀布 (20)
- 论文阅读笔记:You Only Look Once: Unified, Real-Time Object Detection
- openwrt启动脚本分析
- html5中file对象