第8周项目--分数类
来源:互联网 发布:zara抄袭知乎 编辑:程序博客网 时间:2024/05/16 06:21
#include <iostream>using namespace std;int gac(int x,int y);class CFraction{private: int nume; // 分子 int deno; // 分母public: CFraction(int nu=0,int de=1); //构造函数,初始化用 void set(int nu,int de); //置值,改变值时用 void input();//按照"nu/de"的格式,如"5/2"的形式输入 CFraction operator+(CFraction &c); CFraction operator-(CFraction &c); CFraction operator*(CFraction &c); CFraction operator/(CFraction &c); bool operator>(const CFraction &c); bool operator<(const CFraction &c); bool operator==(const CFraction &c); bool operator!=(const CFraction &c); bool operator>=(const CFraction &c); bool operator<=(const CFraction &c); void simplify();//化简(使分子分母没有公因子) void display();};CFraction:: CFraction(int nu,int de){ nume=nu; deno=de;}void CFraction::set(int nu,int de){ if(de!=0) { nume=nu; deno=de; cout<<"变为:"<<nume<<"/"<<deno<<endl; } else cout<<"赋值格式错误!!"<<endl;}void CFraction::input(){ char c; cin>>nume>>c>>deno;}void CFraction::display(){ cout<<nume<<"/"<<deno<<endl;}CFraction CFraction::operator+(CFraction &c){ int d=deno*c.deno; return CFraction(c.deno*nume+c.nume*deno,d);}CFraction CFraction::operator-(CFraction &c){ return CFraction(c.deno*nume-c.nume*deno,deno*c.deno);}CFraction CFraction::operator*(CFraction &c){ return CFraction(nume*c.nume,deno*c.deno);}CFraction CFraction::operator/(CFraction &c){ CFraction t; if (!c.nume) return *this; //除法无效时,这种情况需要考虑,但这种处理仍不算合理 t.nume=nume*c.deno; t.deno=deno*c.nume; t.simplify(); return t;}bool CFraction::CFraction::operator>(const CFraction &c){ if(nume*c.deno>deno*c.nume) return 1; else return 0;}bool CFraction::operator<(const CFraction &c){ if(nume*c.deno<deno*c.nume) return 1; else return 0;}bool CFraction::operator==(const CFraction &c){ if(nume*c.deno==deno*c.nume) return 1; else return 0;}bool CFraction::operator!=(const CFraction &c){ if(!(*this<c)||(*this>c)) return 1; else return 0;}bool CFraction::operator>=(const CFraction &c){ if((*this)<c) return 0; else return 1;}bool CFraction::operator<=(const CFraction &c){ if(*this>c) return 1; else return 0;}void CFraction::simplify(){ int n; n=gac(nume,deno); nume/=n; deno/=n; cout<<"化简后: "<<nume<<"/"<<deno<<endl;}int main(){ CFraction x(1,3),y(-5,10),s; cout<<"分数x=1/3 y=-5/10"<<endl; s=x+y; cout<<"x+y="; s.simplify(); s.display(); s=x-y; cout<<"x-y="; s.simplify(); s.display(); s=x*y; cout<<"x*y="; s.simplify(); s.display(); s=x/y; cout<<"x/y="; s.display(); x.display(); if (x>y) cout<<"大于"<<endl; if (x<y) cout<<"小于"<<endl; if (x==y) cout<<"等于"<<endl; s.simplify(); y.display(); cout<<endl; return 0;}int gac(int x,int y){ int t; if(x>y) { t=x; x=y; y=t; } while((t=y%x)!=0) { y=x; x=t; } return x;}
0 0
- 第8周项目--分数类
- 第5周项目2:分数类
- 第8周项目3分数运算符重载
- 第8周OJ项目2 分数序列
- C++第5周项目2 - 分数类
- C++第9周(春)项目3 - 分数类
- C++第9周(春)项目3 - 分数类
- C++第9周(春)项目3 - 分数类
- 第3周-项目2-分数类的雏形
- 第3周项目2-分数类的雏形
- 第4周项目2-分数类的雏形
- 第4周项目2--分数类的雏形
- 2015-第4周项目2-分数类的雏形
- 第4周项目2分数类的雏形
- 第3周项目-分数类的雏形
- 第4周项目2-分数类的雏形
- 第4周项目2-分数类的雏形
- 第4周项目2-分数类的雏形
- 第8周项目4 String类的构造
- Andoroid高效率之ThinkAndroid配置详解
- 大一第二学期第8周【程序阅读(4)】
- [Rx86OS-XVI] 实现多任务
- 设计模式学习笔记---备忘录模式memento pattern(Java版)
- 第8周项目--分数类
- 关于 android 中 postDelayed方法的讲解
- 欢迎使用CSDN-markdown编辑器
- 一个叫GUN的有趣的APP源码
- 分数类中的运算符重载
- Android实现形形色色的进度条 很简单的实现
- 15款值得学习的小型开源项目,带你快速步入开源世界
- 【网络课】VB.NET程序设计 作业答案
- Modelsim