第八周项目三----分数类中的运算符重载
来源:互联网 发布:日本围棋软件 编辑:程序博客网 时间:2024/06/08 08:38
/** 程序的版权和版本声明部分* Copyright (c)2013, 烟台大学计算机学院学生* All rightsreserved.* 文件名称: object.cpp* 作者:赵晓晨* 完成日期: 2013年04月20日* 版本号: v1.0* 输入描述:无* 问题描述:无* 程序输出:无*/#include<iostream>using namespace std;class CFraction{private: int nume; int deno;public: CFraction(int n=1,int d=1):nume(n),deno(d){}; CFraction operator+(CFraction &c); CFraction operator-(CFraction &c); CFraction operator*(CFraction &c); CFraction operator/(CFraction &c); CFraction operator-(); bool operator>(CFraction &c); CFraction simply(CFraction &c); friend int divisor(CFraction &c); friend int multiple(CFraction &c); void display();};//定义重载运算符+的函数CFraction CFraction::operator+(CFraction &c){ CFraction a; a.deno=deno*c.deno; a.nume=nume*c.deno+c.nume*deno; a=simply(a); return a; }CFraction CFraction::operator-(CFraction &c){ CFraction a; a.deno=deno*c.deno; a.nume=nume*c.deno-c.nume*deno; a=simply(a); return a;}CFraction CFraction::operator*(CFraction &c){ CFraction a; a.deno=deno*c.deno; a.nume=nume*c.nume; a=simply(a); return a;}CFraction CFraction::operator/(CFraction &c){ CFraction a; a.nume=nume*c.deno; a.deno=deno*c.nume; a=simply(a); return a;}CFraction CFraction::operator-(){ CFraction a; a.deno=nume; a.nume=deno; a=simply(a); return a;}bool CFraction::operator>(CFraction &c){ if(nume/deno>c.nume/c.deno) return true; else return false;}CFraction CFraction::simply(CFraction &c){ CFraction a; int b=divisor(c); a.nume=c.nume/b; a.deno=c.deno/b; return a;}int divisor(CFraction &c){ int n=min(c.deno,c.nume); for(int i=n;i>=0;i--) { if(c.deno%i==0 && c.nume%i==0) { return i; break; } }}void CFraction::display(){cout<<nume<<"/"<<deno<<endl;}//用main函数进行调试int main(){ CFraction t1(1,2),t2(3,4),t3,t4,t5; cout<<"t1+t2="; t3=t1+t2; t3.display(); cout<<"t2-t1="; t3=t2-t1; t3.display(); cout<<"t1*t2="; t3=t1*t2; t3.display(); cout<<"t1/t2="; t3=t1/t2; t3.display(); cout<<"去倒数"; t3=-t1; t3.display(); if(t1>t2){ cout<<"t1>t2"<<endl; }else{ cout<<"t1<t2"<<endl; } return 0;}
结果:
- 第八周项目三----分数类中的运算符重载
- 第八周 项目三:分数类中的运算符重载
- 第八周项目三 分数类中的运算符重载
- 第八周项目三--分数类中的运算符重载
- 第八周项目三-分数类中的运算符重载
- 第八周项目三 分数类中的运算符重载-(1)分数的加减乘除
- 第八周项目三 分数类中的运算符重载-(2)分数与分数、分数与整数的四则运算
- 第八周 项目3 分数类中的运算符重载
- 第八周【项目3-分数类中的运算符重载】
- 第八周项目3-分数类中的运算符重载
- 第八周 项目3 分数类中的运算符重载
- 第八周项目3-分数类中的运算符重载
- 第八周【项目3-分数类中的运算符重载】
- 第八周【项目3-分数类中的运算符重载】
- 第八周项目3 分数类中的运算符重载
- 第八周项目3-分数类中的运算符重载
- 第八周项目3-分数类中的运算符重载
- 第八周项目3-分数类中的运算符重载
- mysql order 隨記
- OK6410 Linux下LED驱动程序
- RPG 游戏主角与地图移动关系封装类
- [linux 内核]kmalloc/kfree,vmalloc/vfree函数用法和区别
- hdu1075Phone List(字典树)
- 第八周项目三----分数类中的运算符重载
- ListView学习实例二
- 使用jmap做java进程dump
- JQuery Mobile入门
- 往ORACLE数据库表里装载数据
- 《移情与投射》读书笔记
- Android 学习 笔记_03. SQLite的使用
- BMP文件结构
- JVM监测&工具