第八周上机任务项目三
2013-04-24 19:54
274 查看
/* * 程序的版权和版本声明部分 * Copyright (c)2013, 烟台大学计算机学院学生 * All rightsreserved. * 作 者: 耿娜 * 完成日期: 2013 年 4 月 24日 * 版本号: v1.0 * 输入描述: * 问题描述: * 输出: */ #include<iostream> using namespace std; int gcd(int m, int n); class CFraction {private: int nume; // 分子 int deno; // 分母 public: CFraction(int nu=0,int de=1); //构造函数,初始化用 void set(int nu=0,int de=1); //置值,改变值时用 void simplify(); void display(); CFraction operator+(CFraction &c); CFraction operator-(CFraction &c); CFraction operator*(CFraction &c); CFraction operator/(CFraction &c); CFraction operator-(); //求反 bool operator>(CFraction &c); bool operator<(CFraction &c); bool operator==(CFraction &c); }; CFraction::CFraction(int nu,int de) { nume=nu; deno=de; } void CFraction::set(int nu,int de) { nume=nu; deno=de; } void CFraction::simplify() { int m=gcd(nume,deno); deno/=m; nume/=m; } void CFraction::display() { cout<<nume<<"/"<<deno<<endl; } // 求m,n的最大公约数 int gcd(int m, int n) { int min; if(m<n) { for(min=m;min>0;--min) { if(m%min==0&&n%min==0) return min; } } else { for(min=n;min>0;--min) { if(m%min==0&&n%min==0) return min; } } } 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 CFraction(deno,nume); } bool CFraction::operator>(CFraction &c) { if(nume*c.deno>deno*c.nume) return true; else return false; } bool CFraction::operator<(CFraction &c) { if(nume*c.deno<deno*c.nume) return true; else return false; } bool CFraction::operator==(CFraction &c) { if(nume*c.deno==deno*c.nume) return true; else return false; } int main() { CFraction c1(1,2),c2(2,3),c3; cout<<"c1= "; c1.display(); c1.simplify(); cout<<"c2= "; c2.display(); c2.simplify(); c3=c1+c2; c3.simplify(); cout<<"c1+c2= "; c3.display(); c3=c1-c2; cout<<"c1-c2= "; c3.display(); c3=c1*c2; c3.simplify(); cout<<"c1*c2= "; c3.display(); c3=c1/c2; c3.simplify(); cout<<"c1/c2= "; c3.display(); c3=-c1; cout<<"c1求反为:"; c3.display(); cout<<"下面比较两个分数大小:\n"; if(c1>c2) cout<<"c1>c2"<<endl; if(c1<c2) cout<<"c1<c2"<<endl; if(c1==c2) cout<<"c1=c2"<<endl; return 0; }
相关文章推荐
- 2013第八周上机任务【项目1 实现复数类中的运算符重载(友元函数)】
- 第八周上机任务项目3-分数类中运算符重载
- 2013第八周上机任务【项目2-Time类中的运算符重载】
- 第八周上机任务项目1-1用类的成员函数完成运算符重载
- 2013第八周上机任务【项目1 实现复数类中的运算符重载】
- 第八周上机任务项目1-2用类的友元函数完成运算符的重载
- 第八周上机任务项目1-3扩展运算符的功能
- 2013第八周上机任务【项目3-分数类中的运算符重载】
- 2013第八周上机任务【项目2-Time类中的运算符重载】
- 第八周C++上机报告(项目2__任务三)
- 第八周上机任务项目四
- 分子运算2013第八周上机任务【项目3-分数类中的运算符重载】
- 第八周C++上机报告(项目一任务2)
- 上机任务 项目2指来指去
- 第一周上机任务项目1-递归算法设计函数
- 第十二周上机任务项目-5特殊三位数
- 2013第二周上机任务项目三(用结构体数组做计算)
- 第二周上机任务项目2-读取数据到结构体数组
- 第十三周上机任务项目5任务1
- 第十二周上机任务——项目5——特殊三位数