第十三周项目1(4)
来源:互联网 发布:我们的法兰西岁月 知乎 编辑:程序博客网 时间:2024/05/16 23:56
/**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); //类的取正取反运算 CFraction &operator+(); CFraction &operator-(); //定义分数类中和运算符重载,实现分数的输入输出,改造显示方式 friend ostream &operator<<(ostream &output,CFraction &c1); friend istream &operator>>(istream &input,CFraction &c1); 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); } //类的取正取反运算 CFraction &CFraction::operator+() { nume=nume; deno=deno; return *this; } CFraction &CFraction::operator-() { int n=nume; nume=deno; deno=n; return *this; } //定义分数类中和运算符重载,实现分数的输入输出,改造显示方式 ostream &operator<<(ostream &output,CFraction &c1) { output<<c1.nume<<'/'<<c1.deno<<endl; return output; } istream &operator>>(istream &input,CFraction &c1) { cout<<"请输入分数的分子、分母部分:"; input>>c1.nume>>c1.deno; return input; } 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; +c1; c1.show(); -c1; c1.show(); cin>>c3; cout<<c3; return 0; }
0 0
- 第十三周 项目1:(4)
- 第十三周 项目4:(1)
- 第十三周项目1(4)
- 第十三周项目1(4)
- 第十三周 项目1-4
- 第十三周项目1--4
- 第十三周项目4--1
- 第十三周项目4
- 第十三周项目1
- 第十三周项目1
- 第十三周项目1
- 第十三周 【项目1
- 第十三周 【项目1
- 第十三周 【项目1
- 第十三周 【项目1
- 第十三周【项目1
- 第十三周【项目1
- 第十三周【项目1
- C#设计模式—组合模式
- 【信息安全】概述
- Hibernate缓存机制
- MFC操作——右键弹出菜单事件
- php之无限极分类
- 第十三周项目1(4)
- 在Ubuntu下PHP的使用ssh2扩展开发web
- 被遗忘的连分数
- 使用Kali2搭建Tor隐藏服务
- Linux Mint 17 KDE版中ibus输入法无法光标跟随问题的解决
- WORD操作点滴
- Struts2 upload
- 根据指定字符集拆分任意字符串
- Android 6.0 新特性