第十三周项目1.1—分数中的运算符的重载
来源:互联网 发布:网络棋牌作弊器下载 编辑:程序博客网 时间:2024/05/29 17:47
/**Copyright(c) 2016.烟台大学计算机与控制工程学院*ALL rights reserved.*文件名称:test.cpp*作者:杨驰*完成日期:2016年5月25*问题描述:实现分数类中的运算符重载,在分数类中可以完成分数的加减乘除(运算后再化简)、比较(6种关系)的运算*/#include <iostream>#include <Cmath>using namespace std;class CFraction{private: int nume; // 分子 int deno; // 分母public: CFraction(int nu=1,int de=1):nume(nu),deno(de){} void simplify(); void display(); CFraction operator+(const CFraction &c);//两个分数相加,结果要化简 CFraction operator-(const CFraction &c);//两个分数相减,结果要化简 CFraction operator*(const CFraction &c);//两个分数相乘,结果要化简 CFraction operator/(const CFraction &c);//两个分数相除,结果要化简 bool operator>(const CFraction &c); bool operator<(const CFraction &c); bool operator==(const CFraction &c); bool operator!=(const CFraction &c); bool operator>=(const CFraction &c); bool operator<=(const CFraction &c);};void CFraction::display(){ cout<<nume<<"/"<<deno<<endl;}//分数简化void CFraction::simplify(){ int m,n,t; n=fabs(deno); m=fabs(nume); while(t=m%n)// 求m,n的最大公约数 { m=n; n=t; } deno/=n; nume/=n; if(deno<0) { deno=-deno; nume=-nume; }}CFraction CFraction::operator+(const CFraction &c){ CFraction t; t.nume=nume*c.deno+c.nume*deno; t.deno=deno*c.deno; t.simplify(); return t;}CFraction CFraction::operator-(const CFraction &c){ CFraction t; t.nume=nume*c.deno-c.nume*deno; t.deno=deno*c.deno; t.simplify(); return t;}CFraction CFraction::operator*(const CFraction &c){ CFraction t; t.nume=nume*c.nume; t.deno=deno*c.deno; t.simplify(); return t;}CFraction CFraction::operator/(const CFraction &c){ CFraction t; t.nume=nume*c.deno; t.deno=deno*c.nume; t.simplify(); return t;}bool CFraction::operator>(const CFraction &c){ int n1,d1; n1=nume*c.deno-c.nume*deno; d1=deno*c.deno; if(n1*d1>0) return true; return false;}bool CFraction::operator<(const CFraction &c){ int n1,d1; n1=nume*c.deno-c.nume*deno; d1=deno*c.deno; if(n1*d1<0) return true; return false;}bool CFraction::operator==(const CFraction &c){ if(*this!=c) return false; return true;}bool CFraction::operator!=(const CFraction &c){ if(*this==c) return false; return true;} bool CFraction::operator>=(const CFraction &c){ if(*this<c) return false; return true;} bool CFraction::operator<=(const CFraction &c){ if(*this>c) return false; return true;}int main(){ char c; int n,d; cout<<"输入分数的样例:x/y"<<endl; cin>>n>>c>>d; CFraction x(n,d); x.display(); cin>>n>>c>>d; CFraction y(n,d); y.display(); CFraction s; s=x+y; cout<<"x+y="; s.display(); cout<<endl; s=x-y; cout<<"x-y="; s.display(); cout<<endl; s=x*y; cout<<"x*y="; s.display(); cout<<endl; s=x/y; cout<<"x/y="; s.display(); cout<<endl; if(x>y) cout<<"大于!"<<endl; if(x<y) cout<<"小于! "<<endl; if(x==y) cout<<"等于!"<<endl; return 0;}
0 0
- 第十三周项目1.2—分数中的运算符重载
- 第十三周项目1.3—分数中的运算符重载
- 第十三周项目1.2—分数中的运算符重载
- 第十三周项目1.3—分数中的运算符重载
- 第十三周项目1.1—分数中的运算符的重载
- 第十三周项目1.1—分数中的运算符的重载
- 第十三周项目 1分数类中的运算符重载
- 第十三周项目58-分数类中的运算符重载
- 第十三周项目一-分数类中的运算符重载
- 第十三周【项目 1分数类中的运算符重载】
- 第十三周项目一-分数类中的运算符重载
- 第十三周项目:分数类中的运算符重载
- 第十三周上机时间项目——项目1-分数类中的运算符重载
- 第十三周项目1-分数类中的运算符重载——1
- 第十三周项目1-分数类中的运算符重载——2
- 第十三周项目1——分数类中的运算符重载
- 第十三周上机实践——项目1-分数类中的运算符重载
- 第十三周项目1.4—分数类中的运算符重载
- 可用性设计,选你所爱,爱你所选
- Interface的两种使用方式
- HTML5第十次作业
- Handler
- 比特币区块链学习
- 第十三周项目1.1—分数中的运算符的重载
- 第十三周项目-交通工具类程序
- LeetCode:Different Ways to Add Parentheses
- BZOJ 1070 费用流
- JavaScript学习--Item8 函数,方法,构造函数调用 标签: javascript构造函数面向对象函数call
- Android微信分享学习笔记
- LeetCode题解——Shortest Palindrome
- 最长下降子序列
- 第13周阅读程序(2)虚析构函数