项目3-分数类中的运算符重载
来源:互联网 发布:java中接口的意义 编辑:程序博客网 时间:2024/05/21 18:50
/**Corpyright (c)2013,烟台大学计算机学院*All right reseved.*作者:张梦佳*完成日期:2014年4月15日*版本号:v1.0*输入描述:*问题描述:实现分数类中的运算符重载,在分数类中可以完成分数的加减乘除(运算后再化简)、比较(6种关系)的运算。!*程序输出:*问题分析:*算法设计:*/#include <iostream>#include <cmath>#include <cstdlib>using namespace std;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); void simplify(); //构造函数及运算符重载的函数声明};//重载函数的实现及用于测试的main()函数bool CFraction::operator>(CFraction &c){ if(nume*c.deno>c.nume*nume) return false; else return true;}bool CFraction::operator<=(CFraction &c){ if(!(nume*c.deno>c.nume*nume)) return false; else return true;}CFraction CFraction::operator+(CFraction &c){ CFraction s; s.nume=nume*c.deno+c.nume*deno; s.deno=deno*c.deno; return s;}CFraction CFraction::operator-(CFraction &c){ CFraction s; s.nume=nume*c.deno-c.nume*deno; s.deno=deno*c.deno; return s;}CFraction CFraction::operator*(CFraction &c){ CFraction s; s.nume=nume*c.nume; s.deno=deno*c.deno; return s;}CFraction CFraction::operator/(CFraction &c){ CFraction s; s.nume=nume*c.deno; s.deno=deno*c.nume; return s;}void CFraction::simplify(){ int s,q; if(nume>deno) { for(int i=abs(deno);i!=0;i--) { s=deno%i; q=nume%i; if(s==0&&q==0) { cout<<"("<<nume/i<<"/"<<deno/i<<")"<<endl; break; } } } else { if(nume<deno) { for(int i=abs(nume);i>0;i--) { s=deno%i; q=nume%i; if(s==0&&q==0) { cout<<"("<<nume/i<<"/"<<deno/i<<")"<<endl; break; } } } }}int main(){ CFraction t1(3,6),t2(2,3),t3; t1.simplify(); t2.simplify(); cout<<"t1+t2="; t3=t1+t2; t3.simplify(); cout<<"t1*t2="; t3=t1*t2; t3.simplify(); cout<<"t1/t2="; t3=t1/t2; t3.simplify(); cout<<"t1-t2="; t3=t1-t2; t3.simplify(); if(t1<=t2) cout<<"没有错误!调试完毕!"<<endl; else cout<<"哎呀!有错误!"<<endl; return 0;}
感悟
感觉都差不多!
0 0
- 项目3-分数类中的运算符重载
- /项目3-分数类中的运算符重载
- 项目3-分数类中的运算符重载
- 第九周--项目3-分数类中的运算符重载
- 第八周 项目3 分数类中的运算符重载
- 第八周【项目3-分数类中的运算符重载】
- 第八周项目3-分数类中的运算符重载
- 项目3-分数类中的运算符重载
- 第八周 项目3 分数类中的运算符重载
- 八周 项目3 分数类中的运算符重载
- 第八周项目3-分数类中的运算符重载
- 第八周【项目3-分数类中的运算符重载】
- 第七周项目3-分数类中的运算符重载
- 第八周【项目3-分数类中的运算符重载】
- 第八周项目3 分数类中的运算符重载
- 第八周项目3-分数类中的运算符重载
- 第八周项目3-分数类中的运算符重载
- 第八周项目3-分数类中的运算符重载
- scoket应用描述-结合c与Per两种使用方法
- JS中的setTimeout和setInterval
- js遮罩层
- linux ubuntu tomcat配置
- poj3094Quicksum
- 项目3-分数类中的运算符重载
- GridBagLayout是java里面最重要的布局管理器之一
- Ubuntu 各种环境搭建集合
- 第六周作业1——利用哈夫曼编码英文字母表
- Ctrl 组合键的ASCII码值的浅析
- 3. TCP/IP有哪几层,会画出来,知道所有层数的作用,会列举各层主要的协议名称。
- unsignal char 在cout 下的输出
- CentOS升级Python及相关改动
- Android service初学