实现分数类中的对象和整型数的四则运算。分数类中的对象可以和整型数进行四则运算,且运算符合交换律。例如:CFraction a(1,3),b; int i=2; 可以完成b=a+i;。同样,可以完成i+
2016-06-01 13:51
627 查看
/* *Copyright (c) 2016,烟台大学计算机学院 *All rights reserved. *文件名称:main.cpp *作 者:郭辉 *完成时间:2016年6月1日 *版 本 号:v1.0 * *问题描述:实现分数类中的对象和整型数的四则运算。分数类中的对象可以和整型数进行四则运算,且运算符合交换律。例如:CFraction a(1,3),b; int i=2; 可以完成b=a+i;。同样,可以完成i+a, 45+a, a*27, 5/a等各种运算 *输入描述:无。 *程序输出:分数。 */ #include<iostream> using namespace std; class CFraction { private: int nume;//fenzi int deno;//fenmu public: CFraction(int a=0,int b=0); void show(); CFraction operator+(double c); CFraction operator-(double c); CFraction operator*(double c); CFraction operator/(double c); bool operator>(CFraction &c); bool operator<(CFraction &c); bool operator==(CFraction &c); bool operator>=(CFraction &c); bool operator<=(CFraction &c); bool operator!=(CFraction &c); }; bool CFraction::operator>(CFraction &c) { int mu,zi1,zi2; mu=deno*c.deno; zi1=nume*c.deno; zi2=c.nume*deno; if(zi1>zi2) return true; else return false; } bool CFraction::operator<(CFraction &c) { int mu,zi1,zi2; mu=deno*c.deno; zi1=nume*c.deno; zi2=c.nume*deno; if(zi1< zi2) return true; else return false; } bool CFraction::operator==(CFraction &c) { int mu,zi1,zi2; mu=deno*c.deno; zi1=nume*c.deno; zi2=c.nume*deno; if(zi1==zi2) return true; else return false; } bool CFraction::operator<=(CFraction &c) { int mu,zi1,zi2; mu=deno*c.deno; zi1=nume*c.deno; zi2=c.nume*deno; if(zi1<=zi2) return true; else return false; } bool CFraction::operator>=(CFraction &c) { int mu,zi1,zi2; mu=deno*c.deno; zi1=nume*c.deno; zi2=c.nume*deno; if(zi1>=zi2) return true; else return false; } bool CFraction::operator!=(CFraction &c) { int mu,zi1,zi2; mu=deno*c.deno; zi1=nume*c.deno; zi2=c.nume*deno; if(zi1!=zi2) return true; else return false; } CFraction::CFraction(int a,int b) { nume=a; deno=b; } CFraction CFraction::operator+(double c) { int zi; zi=nume+c*deno; CFraction t(zi,deno); return t; } CFraction CFraction::operator-(double c) { int zi; zi=nume-c*deno; CFraction t(zi,deno); return t; } CFraction CFraction::operator*(double c) { int zi; zi=nume*c; CFraction t(zi,deno); return t; } CFraction CFraction::operator/(double c) { int mu; mu=deno*c; CFraction t(nume,mu); return t; } void CFraction::show() {int t,m,r,n; m=deno; n=nume; if(deno<nume) { t=m; m=n; n=t; } while(r=m%n) { m=n; n=r; } deno=deno/n; nume=nume/n; cout<<nume<<"/"<<deno<<endl; } int main() { CFraction c1(1,2),c2(2,3),c3; c3=c1+2; c3.show(); c3=c1-2; c3.show(); c3=c1*2; c3.show(); c3=c1/2; c3.show(); if(c1>c2) cout<<"c1>c2"<<endl; if(c1<c2) cout<<"c1<c2"<<endl; if(c1==c2) cout<<"c1==c2"<<endl; if(c1>=c2) cout<<"c1>=c2"<<endl; if(c1<=c2) cout<<"c1<=c2"<<endl; if(c1!=c2) cout<<"c1!=c2"<<endl; return 0; }运行结果:
相关文章推荐
- Android学习笔记(十三)text 文本输入
- MYSQL的binary解决mysql数据大小写敏感问题的方法
- android 游戏 实战打飞机游戏 子弹生成与碰撞 以及爆炸效果(5)
- 文章标题
- Chp13 多线程
- linux _for循环语句
- debian8.5(jessie)安装docker
- Logstash——multiline 插件,匹配多行日志
- Migration-添加表(加外键)
- IT女性的职业困惑 (2)
- 数据结构_P6
- Linux 输入设备驱动上报按键值方法
- 关于JSONArray:JSONArray jsonArray=JSONArray.fromObject(list)不执行!
- spring-aop组件详解——ClassFilter类过滤器
- 基于nginx+lua实现防火墙动态规则请求限制
- 字符数组与字符指针
- Migration-添加表
- java中Array/List/Map/Object与Json互相转换详解
- (二) Q - Q tricky sum
- leetcode345