分数类中的运算符重载(第八周任务三)
来源:互联网 发布:android 启动优化 编辑:程序博客网 时间:2024/06/04 19:38
/* (程序头部注释开始)
* 程序的版权和版本声明部分
* Copyright (c) 2011, 烟台大学计算机学院学生
* All rights reserved.
* 文件名称:
* 作 者: 李超
* 完成日期: 2012 年 4 月 10 日
* 版 本 号: 01.08.03
* 对任务及求解方法的描述部分
* 问题描述: 实现分数类中的运算符重载,在分数类中可以完成分数的加减乘除(运算后再化简)、求反、比较(6种关系)的运算。
* 程序头部的注释结束
主函数CFraction.cpp
编出来一个,全都出来了,感觉好爽!
* 程序的版权和版本声明部分
* Copyright (c) 2011, 烟台大学计算机学院学生
* All rights reserved.
* 文件名称:
* 作 者: 李超
* 完成日期: 2012 年 4 月 10 日
* 版 本 号: 01.08.03
* 对任务及求解方法的描述部分
* 问题描述: 实现分数类中的运算符重载,在分数类中可以完成分数的加减乘除(运算后再化简)、求反、比较(6种关系)的运算。
* 程序头部的注释结束
*/
头文件CFraction.h
#include <iostream>using namespace std;class CFraction{private:int nume; // 分子int deno; // 分母public://构造函数,初始化用CFraction(int nu=0,int de=1): nume(nu), deno(de) {};//加减乘除四则运算 CFraction operator + (CFraction &c);CFraction operator - (CFraction &c);CFraction operator * (CFraction &c);CFraction operator / (CFraction &c);//取正反CFraction operator + ();//取正CFraction operator - ();//取反//判断bool operator > (CFraction &c);bool operator < (CFraction &c);bool operator >= (CFraction &c);bool operator <= (CFraction &c);bool operator == (CFraction &c);bool operator !=(CFraction &c);void display();//化简、输出};//加减乘除四则运算CFraction CFraction::operator + (CFraction &c){return CFraction (nume * c.deno + deno * c.nume , deno * c.deno);}CFraction CFraction::operator - (CFraction &c){return CFraction (nume * c.deno - deno * c.nume , deno * c.deno);}CFraction CFraction::operator * (CFraction &c){return CFraction (nume * c.nume , deno * c.deno);}CFraction CFraction::operator / (CFraction &c){return CFraction (nume * c.deno , deno * c.nume);}//取正反CFraction CFraction::operator + ()//取正{return *this;}CFraction CFraction::operator - ()//取反{CFraction c;c.nume = -nume;c.deno = deno;return c;}//判断bool CFraction::operator > (CFraction &c){if (nume * c.deno > c.nume * deno)return true;elsereturn false;}bool CFraction::operator < (CFraction &c){if (nume * c.deno < c.nume * deno)return true;elsereturn false;}bool CFraction::operator >= (CFraction &c){if (nume * c.deno >= c.nume * deno)return true;elsereturn false;}bool CFraction::operator <= (CFraction &c){if (nume * c.deno <= c.nume * deno)return true;elsereturn false;}bool CFraction::operator == (CFraction &c){if (nume * c.deno == c.nume * deno)return true;elsereturn false;}bool CFraction::operator !=(CFraction &c){if (nume * c.deno != c.nume * deno)return true;elsereturn false;}void CFraction::display()//化简(使分子分母没有公因子){int nu = nume, de = deno,temp, a;if(nu > de){temp = nu;nu = de;de= temp;}while(nu != 0){a = de % nu;de = nu;nu = a;}deno = deno / de;nume = nume / de; cout <<nume <<'/' <<deno <<endl;}
主函数CFraction.cpp
#include <iostream>#include "CFraction.h"using namespace std;void main() { CFraction x(5, 9), y(-4, 7), z; cout <<"分数x=5/9" <<'\t' <<"y=-4/7" <<endl; z = +x + y; cout <<"+x+y="; z.display (); cout <<"-x-y=";z = -x - y;z.display (); z = x - y; cout <<"x-y="; z.display (); z = x * y; cout <<"x*y="; z.display (); z = x / y; cout <<"x/y="; z.display (); z = -x + y; cout <<"-x+y="; z.display (); x.display(); if (x > y) cout <<"大于"<<endl; if (x<y) cout<<"小于"<<endl; if (x==y) cout<<"等于"<<endl; y.display (); cout<<endl; system("PAUSE"); }
编出来一个,全都出来了,感觉好爽!
欢迎大家多给评语
- 第八周任务三:分数中的运算符重载
- 分数类中的运算符重载(第八周任务三)
- 第八周任务三(实现分数类中的运算符重载)
- 第八周任务三:实现分数类中的运算符重载
- 第八周项目三----分数类中的运算符重载
- 第八周 项目三:分数类中的运算符重载
- 第八周项目三 分数类中的运算符重载
- 第八周项目三--分数类中的运算符重载
- 第八周项目三-分数类中的运算符重载
- 第八周项目三 分数类中的运算符重载-(1)分数的加减乘除
- 第八周项目三 分数类中的运算符重载-(2)分数与分数、分数与整数的四则运算
- 第八周任务三 运算符重载 分数
- 第八周任务三实现分数类中的运算符重载,在分数类中可以完成分数的加减乘除(运算后再化简)、求反、比较(6种关系)的运算。
- 第八周(项目三1)——分数类中的运算符重载.
- 第八周(项目三2)——分数类中的运算符重载。
- 第八周 项目三-分数类中的运算符重载(1)
- 第八周 项目三-分数类中的运算符重载(2)
- 第八周 项目三(1):分数类中的运算符重载
- ORA-12547经典错误处理
- 第八周任务三:实现分数类中的运算符重载
- HTML5 postMessage和跨域通信
- zoj 3212
- 问题杂集
- 分数类中的运算符重载(第八周任务三)
- 关于计算机如何做加法
- Shell脚本语法 条件测试:test
- manifest导致XP SP2崩溃问题跟踪说明
- 聊斋志异的夜叉国很有时代色彩
- 炮兵阵地(acm.pku1185)解法
- 结构体定义 typedef struct 用法详解和用法小结
- C++基于TCP和UDP的socket通信
- (oracle数据库基础)第五章 PL/SQL基础