第九周项目3
来源:互联网 发布:centos设置桥接模式 编辑:程序博客网 时间:2024/04/29 10:15
/** 程序的版权和版本声明部分* Copyright (c)2013, 烟台大学计算机学院学生* All rightsreserved.* 文件名称:.cpp* 作者:王英华* 完成日期: 2013年04月22日* 版本号: 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); bool operator>(CFraction &c); bool operator<(CFraction &c); bool operator>=(CFraction &c); bool operator<=(CFraction &c); bool operator==(CFraction &c); bool operator!=(CFraction &c); CFraction simply(CFraction &c); friend int divisor(CFraction &c); CFraction operator+(); CFraction operator-(); CFraction operator~(); friend ostream&operator<<(ostream&,CFraction&); friend istream&operator>>(istream&,CFraction&); 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; if(a.nume==0) { return a; } else { 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;}bool CFraction::operator > (CFraction &c){ bool g=false; double c1,c2; c1=nume/deno; c2=c.nume/c.deno; if(c1<0) { c1=-c1; } if(c2<0) { c2=-c2; } if(c1>c2) { g=true; } return g;}bool CFraction::operator < (CFraction &c){ bool g=false; double c1,c2; c1=nume/deno; c2=c.nume/c.deno; if(c1<c2) { g=true; } return g;}bool CFraction::operator >= (CFraction &c){ bool g=false; double c1,c2; c1=nume/deno; c2=c.nume/c.deno; if(c1>c2) { g=true; } return g;}bool CFraction::operator <= (CFraction &c){ bool g=false; double c1,c2; c1=nume/deno; c2=c.nume/c.deno; if(c1<c2) { g=true; } return g;}bool CFraction::operator == (CFraction &c){ bool g=false; double c1,c2; c1=nume/deno; c2=c.nume/c.deno; if(c1==c2) { g=true; } return g;}bool CFraction::operator != (CFraction &c){ bool g=false; double c1,c2; c1=nume/deno; c2=c.nume/c.deno; if(c1!=c2) { g=true; } return g;}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(){ if(nume==0) cout<<0<<endl; else cout<<nume<<"/"<<deno<<endl;}CFraction CFraction::operator+(){ CFraction t; t.nume=nume; t.deno=deno; return t;}CFraction CFraction::operator-(){ CFraction t; t.nume=-nume; t.deno=deno; return t;}CFraction CFraction::operator~(){ CFraction t; t.nume=deno; t.deno=nume; return t;}ostream & operator<<(ostream &output,CFraction &c){ output<<"="<<c.nume<<"/"<<c.deno<<endl; return output;}istream & operator>>(istream &input,CFraction &c){ cout<<"input nume and deno"; input>>c.nume>>c.deno; return input;}int main(){ CFraction t1(1,3),t2(3,9),t3; cout<<"t1为:"; t1.display(); cout<<"t2为:"; t2.display(); cout<<endl; 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(); if (t1 > t2) cout << "t1 > t2" << endl; if (t2 < t1) cout << "t2 < t1" << endl; if (t2 >= t3) cout << "t2 >= t3" << endl; if (t2 <= t3) cout << "t2 <= t3" << endl; if (t2 == t3) cout << "t2 == t3" << endl; if (t1 != t2) cout << "t1 != t2" << endl; cout<<"取相反数:"<<endl; t3=-t1; cout<<"-t1"<<t3; t3=-t2; cout<<"-t2"<<t3; cout<<"取倒数:"<<endl; t3=~t1; cout<<"~t1"<<t3; t3=~t2; cout<<"~t2"<<t3; return 0;}运行结果:
0 0
- 第九周-项目3
- 第九周 项目3
- 第九周项目3
- 第九周项目3
- 第九周项目3
- 第九周 【项目3
- 第九周 项目3
- 第九周项目3
- 第九周 项目3
- 第九周 【项目3
- 第九周项目3
- 第九周【项目3
- 第九周 【项目3
- 第九周-项目3
- 第九周 【项目3
- 第九周 【项目3
- 第九周项目3
- 第九周 【项目3
- 《黑马程序员》 GUI之action事件的定义
- 病毒家族针对Word 和 Excel 执行恶意行为
- ListView OnScrollListener回调分析
- pat 1078 quadratic probing
- 查找兄弟词
- 第九周项目3
- Asp.Net 构架(Http Handler 介绍)
- 对接口使用的疑惑 接口“实例化”分析
- 美好的一天就这样过了
- oracle常规信息查询脚本
- 使用nexus搭建maven私服、手动更新索引
- smith and Q value
- 输入框邮箱下拉提示
- 别蛮干,学学这 5 个聪明工作法