《第八周实验三》实现分数类中的运算符重载。
来源:互联网 发布:青岛java培训 编辑:程序博客网 时间:2024/06/05 19:53
/*
实验内容:实现分数类中的运算符重载
* 程序的版权和版本声明部分
* Copyright (c) 2011, 烟台大学计算机学院学生
* All rights reserved.
* 文件名称: 实现分数类中的运算符重载
* 作 者: 张斌
* 完成日期: 2012 年 4 月 9 日
* 版 本号: 8-3-1
*/
//【任务3】实现分数类中的运算符重载,在分数类中可以完成分数的加减乘除(运算后再化简)、求反、比较(6种关系)的运算。
#include<iostream>using namespace std;class CFraction{private:int nume; // 分子int deno; // 分母int gcd(int nu, int de);public://构造函数及运算符重载的函数声明CFraction(int nu = 0, int de = 1):nume(nu), deno(de){}; //构造函数,初始化用 friend CFraction operator + (CFraction &c1,CFraction &c2); friend CFraction operator - (CFraction &c1,CFraction &c2);friend CFraction operator * (CFraction &c1,CFraction &c2);friend CFraction operator / (CFraction &c1,CFraction &c2); friend CFraction operator - (CFraction &c);bool operator > (CFraction &t);bool operator < (CFraction &t);bool operator >= (CFraction &t);bool operator <= (CFraction &t);bool operator == (CFraction &t);bool operator != (CFraction &t);void Simplify(); //化简(使分子分母没有公因子)void display();};//重载函数的实现及用于测试的main()函数void CFraction::Simplify() { int n ;if(nume < 0){n = gcd(-nume, deno);}else{n = gcd(nume, deno);}nume = nume / n; deno = deno / n; } int CFraction::gcd(int nu, int de) { int t, r, a, b; a = nu; b = de; if (a < b) { t = a; a = b; b = t; } while (b != 0) { r = a % b; a = b; b = r; } return a; }void CFraction::display(){cout << nume << "/" << deno << endl;}CFraction operator + (CFraction &c1,CFraction &c2){CFraction c;c.nume = c1.nume * c2.deno + c2.nume * c1.deno;c.deno = c1.deno * c2.deno;return c;}CFraction operator - (CFraction &c1,CFraction &c2){CFraction c;c.nume = c1.nume * c2.deno - c2.nume * c1.deno;c.deno = c1.deno * c2.deno;return c;}CFraction operator * (CFraction &c1,CFraction &c2){CFraction c;c.nume = c1.nume * c2.nume;c.deno = c1.deno * c2.deno;return c;}CFraction operator / (CFraction &c1,CFraction &c2){CFraction c;c.nume = c1.nume * c2.deno;c.deno = c1.deno * c2.nume;return c;}CFraction operator - (CFraction &c){c.nume = 0 - c.nume;return c;}bool CFraction::operator > (CFraction &t){if(nume * t.deno > t.nume * deno){return true;}else{return false;}}bool CFraction::operator < (CFraction &t){if(nume * t.deno < t.nume * deno){return true;}else{return false;}}bool CFraction::operator >= (CFraction &t){if(nume * t.deno >= t.nume * deno){return true;}else{return false;}}bool CFraction::operator <= (CFraction &t){if(nume * t.deno <= t.nume * deno){return true;}else{return false;}}bool CFraction::operator == (CFraction &t){if(nume * t.deno == t.nume * deno){return true;}else{return false;}}bool CFraction::operator != (CFraction &t){if(nume * t.deno != t.nume * deno){return true;}else{return false;}}void main(){CFraction c1(3, 5), c2(2, 3), c;cout << "c1 =" ;c1.Simplify();c1.display();cout << "c2 =" ;c2.Simplify();c2.display();c = c1 + c2;c.Simplify();cout << "c1 + c2 =";c.display();c = c1 - c2;c.Simplify();cout << "c1 - c2 =";c.display();c = c1 * c2;c.Simplify();cout << "c1 * c2 =";c.display();c = c1 / c2;c.Simplify();cout << "c1 / c2 =";c.display();c = - c1;cout << "-c1 =";c.display();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;}system("pause");}
- 《第八周实验三》实现分数类中的运算符重载。
- 第八周实验任务三--实现分数类中的运算符重载并可以完成分数的加减乘除、求反、比较的运算
- 第八周实验任务三--实现分数类中的运算符重载并可以完成分数的加减乘除、求反、比较的运算
- 第八周项目三----分数类中的运算符重载
- 第八周 项目三:分数类中的运算符重载
- 第八周项目三 分数类中的运算符重载
- 第八周项目三--分数类中的运算符重载
- 第八周项目三-分数类中的运算符重载
- 第八周任务三:实现分数类中的运算符重载
- 第八周任务三(实现分数类中的运算符重载)
- 第八周任务三:分数中的运算符重载
- 第八周项目三 分数类中的运算符重载-(1)分数的加减乘除
- 第八周项目三 分数类中的运算符重载-(2)分数与分数、分数与整数的四则运算
- 第八周实验报告任务4 实现分数类中的运算符重载,分数类中的对象可以和整数型进行四则运算,且运算符合交换律。
- 分数类中的运算符重载(第八周任务三)
- 第八周项目三——分数类中的运算符重载
- 第八周(项目三1)——分数类中的运算符重载.
- 第八周(项目三2)——分数类中的运算符重载。
- hdoj 2452 Navy maneuvers
- 第八周任务3
- 博客专栏--第一讲~~指针的概念
- 一封台积电离职工程师的信
- 免费应用程序的秘密“吸金术” 麻省理工《科技创业》原创文章
- 《第八周实验三》实现分数类中的运算符重载。
- 第八周上机任务1-2
- 第八周作业1
- 第8周实验报告2
- c/c++中时间函数和随机函数的总结
- 我开博客了
- 8-3
- POJ-1183反正切函数的应用 解题报告(数论) 反正切函数,一个同余问题
- POJ 2528 Mayor's posters (线段树+离散化)