第八周 项目3-分数类中的运算符重载(1)加减乘除和6种比较关系
来源:互联网 发布:传智播客php就业班 编辑:程序博客网 时间:2024/06/05 19:14
/* *Copyright (c) 2015,烟台大学计算机学院 *All rights reserved. *文件名称:time.cpp *作者:刘天恩 *完成时间:2015年5月13号 *版本号:v1.0 *问题描述:实现分数类中的运算符重载,在分数类中可以完成分数的加减乘除(运算后再化简)、比较(6种关系)的运算 *输入描述:无 *程序输出:输出两个分数加减乘除的结果,比较运算的结果 */#include <iostream>#include<cmath>using namespace std;class CFraction{private: int nume; // 分子 int deno; // 分母public: //构造函数及运算符重载的函数声明 CFraction(int n=0,int d=1):nume(n),deno(d){} 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);};//重载函数的实现及用于测试的main()函数void CFraction::simplify(){ int m,n,r; m=fabs(deno); n=fabs(nume); while(r=m%n) { m=n; n=r; } deno/=n; nume/=n; if(deno<0) { deno=-deno; nume=-nume; }}void CFraction::display(){ cout<<"("<<nume<<"/"<<deno<<")"<<endl;}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.deno=deno*c.deno; t.nume=nume*c.nume; t.simplify(); return t;}CFraction CFraction::operator/(const CFraction &c){ CFraction t; if (!c.nume) return *this; t.nume=nume*c.deno; t.deno=deno*c.nume; t.simplify(); return t;}bool CFraction::operator>(const CFraction &c){ int this_nume,c_nume,common_deno; this_nume=nume*c.deno; c_nume=c.nume*deno; common_deno=deno*c.deno; if((this_nume>c_nume&&common_deno>0)||(this_nume<c_nume&&common_deno<0)) return true; return false;}bool CFraction::operator<(const CFraction &c){ int this_nume,c_nume,common_deno; this_nume=nume*c.deno; c_nume=c.nume*deno; common_deno=deno*c.deno; if ((this_nume-c_nume)*common_deno<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||*this<c) 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;}int main(){ CFraction x(1,3),y(-5,10),s; cout<<"分数 x=1/3,y=-5/10"<<endl; s=x+y; cout<<"x+y="; s.display(); cout<<"x-y="; s=x-y; s.display(); cout<<"x*y="; s=x*y; s.display(); cout<<"x/y="; s=x/y; s.display(); if(x>y) cout<<"大于"<<endl; if(x<y) cout<<"小于"<<endl; if(x==y) cout<<"等于"<<endl; return 0;}
运算结果:
0 0
- 第八周 项目3-分数类中的运算符重载(1)加减乘除和6种比较关系
- 《C++第八周实验报告3-1》---实现分数类中的运算符重载,在分数类中可以完成分数的加减乘除(运算后再化简)、求反、比较(6种关系)的运算
- 第八周 项目3-分数类中的运算符重载(1)加减乘除
- 第八周项目三 分数类中的运算符重载-(1)分数的加减乘除
- c++第八周【任务3】实现分数类中的运算符重载,在分数类中可以完成分数的加减乘除(运算后再化简)、求反、比较(6种关系)的运算。
- 第八周任务三实现分数类中的运算符重载,在分数类中可以完成分数的加减乘除(运算后再化简)、求反、比较(6种关系)的运算。
- 第八周实验报告任务3 实现分数类中的运算符重载,在分数类中可以完成分数的加减乘除,求反,比较6种关系的运算。
- 实现分数类中的运算符重载,在分数类中可以完成分数的加减乘除(运算后再化简)、比较(6种关系)的运算
- 实现分数类中的运算符重载,在分数类中可以完成分数的加减乘除(运算后再化简)、比较(6种关系)的运算
- 第八周-运算符重载-分数类的运算符重载(1)-加减乘除以及大小比较
- 2015年大一下第6周项目3-分数类中的运算符重载(1)分数类的加减乘除
- 第八周项目3-2:分数类中的运算符重载(涉及分数和整数的运算)
- 第7周-项目3-分数类中的运算符重载-拓展分数的加减乘除(分数与整型 )
- 第八周 项目3 分数类中的运算符重载
- 第八周【项目3-分数类中的运算符重载】
- 第八周项目3-分数类中的运算符重载
- 第八周 项目3 分数类中的运算符重载
- 第八周项目3-分数类中的运算符重载
- 项目中用js隐藏身份证信息
- Operation not permitted解决方法
- 电商行业数据运营建设实践
- vsftpd建立虚拟用户登录
- 【数据库复习_基本查询】
- 第八周 项目3-分数类中的运算符重载(1)加减乘除和6种比较关系
- GOF设计模式解析
- build.prop优化项目
- 未加载mfc120ud.i386.pdb:VS2013调试MFC程序解决方法
- 关于系统激活的问题
- Java String和Date的转换
- android开发之使用Android Studio进行单元测试
- Java 中类和方法修饰符
- IOS 定义UIToolbar里的UIBarButtonItem两种方式,从Button创建和从Title创建