2014第八周项目三--分数类的运算符重载
2014-04-16 19:45
232 查看
/* *程序的版权和版本声明部分: *Copyright(c)2014,烟台大学计算机学院学生 *All rights reserved. *文件名称: *作者:刘晓晓 *完成日期:2014年 04月15号 *版本号:v1.0 *对任务及求解方法的描述部分: *输入描述: 无 *问题描述: *程序输出:无 *问题分析: *算法设计: */ #include <iostream> using namespace std; int gcd(int n,int m); class CFraction { private: int nume; // 分子 int deno; // 分母 public: CFraction (int a=0,int b=0) { nume=a; deno=b; } CFraction operator+(CFraction &c); CFraction operator-(CFraction &c); CFraction operator*(CFraction &c); CFraction operator/(CFraction &c); bool operator>(CFraction &c); bool operator<(CFraction &c); bool operator >=(CFraction &c); bool operator<=(CFraction &c); bool operator ==(CFraction &c); void simplay(); void display(); }; CFraction CFraction::operator+(CFraction &c) { CFraction t; t.nume=nume*c.deno+deno*c.nume; t.deno=deno*c.deno; return t; } CFraction CFraction::operator-(CFraction &c) { CFraction t; t.nume=nume*c.deno-deno*c.nume; t.deno=deno*c.deno; return t; } CFraction CFraction::operator*(CFraction &c) { CFraction t; t.nume=nume*c.nume; t.deno=deno*c.deno; return t; } CFraction CFraction::operator/(CFraction &c) { CFraction t; t.nume=nume*c.deno; t.deno=deno*c.nume; return t; } bool CFraction ::operator >(CFraction &c) { if (nume*c.deno>deno*c.nume) return true; return false ; } bool CFraction ::operator <(CFraction &c) { if (nume*c.deno<deno*c.nume) return true; return false ; } bool CFraction ::operator >=(CFraction &c) { if (!(nume*c.deno<deno*c.nume)) return true; return false ; } bool CFraction ::operator <=(CFraction &c) { if (!(nume*c.deno>deno*c.nume)) return true; return false ; } bool CFraction ::operator ==(CFraction &c) { if (nume==c.nume&&deno==c.deno) return true; return false ; } void CFraction::display() { cout<< nume<<"/"<<deno<<endl; } void CFraction::simplay() { int n=gcd(deno, nume); deno/=n; // 化简 nume/=n; } // 求m,n的最大公约数 int gcd(int m, int n) //这个函数可以定义为类的成员函数,也可以为一般函数 { int r; if (m<n) { r=m; m=n; n=r; } while(r=m%n) // 求m,n的最大公约数 { m=n; n=r; } return n; } int main() { CFraction t1(2,9),t2(4,16),t3; cout<<"t1="; t1.display(); cout<<"化简后t1="; t1.simplay(); t1.display(); cout<<"t2="; t2.display(); cout<<"化简后t2="; t2.simplay(); t2.display(); cout<<"比较两个数的大小:"<<endl; if (t1>t2)cout<<"t1>t2"<<endl; if (t1<=t2)cout<<"t1<=t2"<<endl; if (t1<t2)cout<<"t1<t2"<<endl; if (t1==t2)cout<<"t1=t2"<<endl; t3=t1+t2; t3.simplay(); cout<<"t1+t2="; t3.display(); t3=t2-t1; t3.simplay(); cout<<"t2-t1="; t3.display(); t3=t2*t1; cout<<"t1*t2="; t3.simplay(); t3.display(); t3=t1/t2; cout<<"t1/t2="; t3.simplay(); t3.display(); return 0; }
一点一点增加函数
相关文章推荐
- 第八周 项目3--实现分数类中的运算符重载
- 第八周项目三:分数类中的运算符重载(一)
- 2015年第八周项目三:分数类中的运算符重载(1)
- 第八周项目3-分数类中的运算符重载(二)
- 第八周 项目三-分数类中的运算符重载(1)
- 第八周项目3-分数类中的运算符重载
- 第八周(项目三2)——分数类中的运算符重载。
- 第八周 项目三-分数类中的运算符重载(1)
- 第八周 项目三(2):分数类中的运算符重载
- 第八周项目三 分数类中的运算符重载
- 第八周项目三 分数类中的运算符重载-(2)分数与分数、分数与整数的四则运算
- 第八周 课后实践:项目三——分数类中的运算符重载(1)
- 第八周【项目3-分数类中的运算符重载】
- 第八周 项目三-分数类中的运算符重载(2)
- 第八周【项目3-分数类中的运算符重载】
- 第八周项目3(1)-分数类的运算符重载
- 第八周 项目3-分数类中的运算符重载(1)加减乘除和6种比较关系
- 2015年第八周项目三:分数类中的运算符重载(2)
- 第八周项目3(2)-分数类的运算符重载
- 第八周上机项目3分数类中的运算符重载