第八周项目3--分数类运算符重载
来源:互联网 发布:华沙大学知乎 编辑:程序博客网 时间:2024/05/14 05:23
/**Copyright (c) 2014, 烟台大学计算机学院*All rights reserved.*文件名称:test.cpp*作者:于凯*完成日期:2015年 5月 9 日*版本号:v1.0*/#include <iostream>#include <cstdlib>using namespace std;class CFraction{private: int nume; int deno;public: CFraction(int nu=0,int de=1); void simplify(); CFraction operator+(const CFraction &f2); CFraction operator-(const CFraction &f2); CFraction operator*(const CFraction &f2); CFraction operator/(const CFraction &f2); bool operator > (const CFraction &f2); bool operator < (const CFraction &f2); bool operator >= (const CFraction &f2); bool operator <= (const CFraction &f2); bool operator == (const CFraction &f2); bool operator != (const CFraction &f2); void display();};CFraction::CFraction(int nu,int de){ if(de==0) { cout<<"初始化失败,分母不能为零。"<<endl; exit(0); } else { nume=nu; deno=de; }}void CFraction::simplify(){ int a=nume,b=deno,c; while (b!=0) { c=a%b; a=b; b=c; } nume=nume/a; deno=deno/a; if((nume>0&&deno<0)) { nume*=(-1); deno*=(-1); } if(nume<0&&deno<0) { nume*=(-1); deno*=(-1); }}void CFraction::display(){ if(deno==1) cout<<nume<<endl; else cout<<nume<<"/"<<deno<<endl;}CFraction CFraction::operator+(const CFraction &f2){ return CFraction(nume*f2.deno+f2.nume*deno,deno*f2.deno);}CFraction CFraction::operator-(const CFraction &f2){ return CFraction(nume*f2.deno-f2.nume*deno,deno*f2.deno);}CFraction CFraction::operator*(const CFraction &f2){ return CFraction(nume*f2.nume,deno*f2.deno);}CFraction CFraction::operator/(const CFraction &f2){ return CFraction(nume*f2.deno,deno*f2.nume);}bool CFraction::operator > (const CFraction &f2){ if(nume*f2.deno>f2.nume*deno) return true; else return false;}bool CFraction::operator < (const CFraction &f2){ if(nume*f2.deno<f2.nume*deno) return true; else return false;}bool CFraction::operator >= (const CFraction &f2){ if(nume*f2.deno<f2.nume*deno) return false; else return true;}bool CFraction::operator <= (const CFraction &f2){ if(nume*f2.deno>f2.nume*deno) return false; else return true;}bool CFraction::operator == (const CFraction &f2){ if(nume*f2.deno==f2.nume*deno) return true; else return false;}bool CFraction::operator != (const CFraction &f2){ if(nume*f2.deno==f2.nume*deno) return false; else return true;}int main(){ CFraction f1(5,10),f2(2,5),f3; cout<<"f1="; f1.simplify(); f1.display(); cout<<"f2="; f2.simplify(); f2.display(); if (f1>f2) cout<<"f1 > f2"<<endl; if (f1<f2) cout<<"f1 < f2"<<endl; if (f1==f2) cout<<"f1 = f2"<<endl; if (f1!=f2) cout<<"f1 ≠ f2"<<endl; if (f1>=f2) cout<<"f1 ≥ f2"<<endl; if (f1<=f2) cout<<"f1 ≤ f2"<<endl; f3=f1+f2; f3.simplify(); cout<<"f1+f2="; f3.display(); f3=f1-f2; f3.simplify(); cout<<"f1-f2="; f3.display(); f3=f1*f2; f3.simplify(); cout<<"f1*f2="; f3.display(); f3=f1/f2; f3.simplify(); cout<<"f1/f2="; f3.display(); return 0;}
运行结果:
0 0
- 第八周 项目3 分数类中的运算符重载
- 第八周【项目3-分数类中的运算符重载】
- 第八周项目3-分数类中的运算符重载
- 第八周 项目3 分数类中的运算符重载
- 第八周项目3-分数类中的运算符重载
- 第八周【项目3-分数类中的运算符重载】
- 第八周【项目3-分数类中的运算符重载】
- 第八周项目3 分数类中的运算符重载
- 第八周项目3--分数类运算符重载
- 第八周项目3-分数类中的运算符重载
- 第八周项目3-分数类中的运算符重载
- 第八周项目3-分数类中的运算符重载
- 第八周上机实践项目3-分数类中的运算符重载(分数与分数、分数与整数)
- 第八周项目三----分数类中的运算符重载
- 第八周 项目三:分数类中的运算符重载
- 第八周项目三 分数类中的运算符重载
- 第八周项目三--分数类中的运算符重载
- 第八周项目三-分数类中的运算符重载
- 分享用Java将Excel的xls和xlsx文件转换成csv文件的方法, XLS2CSV, XLSX2CSV
- HTML+CSS+JavaScript+CGI
- 自动重启挂掉的python脚本
- hibernate sql select {a.*},{b.*} 括号的作用
- 文件操作函数
- 第八周项目3--分数类运算符重载
- 题目: JM8.6中帧内帧间模式的选择
- ios unable to determine simulator device to boot
- springMvc,访问链接出现400错误
- [LeetCode]Length of Last Word
- 时尚清新治愈系厨房
- hdu 2846 字典树
- android动画分析
- LeetCode 191: Number of 1 Bits