项目18--分数类的雏形
来源:互联网 发布:工程进度表制作软件 编辑:程序博客网 时间:2024/06/03 21:51
#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 input(); //按照"nu/de"的格式,如"5/2"的形式输入 void simplify(); //化简(使分子分母没有公因子) void amplify(int n); //放大n倍,如2/3放大5倍为10/3 void output(int style=0); //输出:以8/6为例,style为0时,原样输出8/6; //style为1时,输出化简后形式4/3; //style为2时,输出1(1/3)形式,表示一又三分之一; //style为3时,用小数形式输出,如1.3333; //默认方式0};CFraction::CFraction(int nu,int de){ if(de!=0) { nume=nu; deno=de; }}void CFraction::set(int nu,int de){ nume=nu; deno=de;}void CFraction::input(){ int nu,de; char c; cout<<"请输入分数,格式:分子/分母"<<endl; cin>>nu>>c>>de; if(c!='/') cout<<"格式错误!"; else if(de==0) cout<<"分母不能为0"; nume=nu; deno=de;}void CFraction::simplify(){ int gMax; gMax=gcd(deno,nume); deno/=gMax; nume/=gMax;}int gcd(int m,int n){ int i; if(m==0) return n; while(i=m%n) { m=n; n=i; } return n;}void CFraction::amplify(int n){ nume*=n;}void CFraction::output(int style){ int n=gcd(nume,deno); switch(style) { case 0: cout<<"原样:" <<nume<<'/'<<deno<<endl; break; case 1: cout<<"化简形式: "<<nume/n<<'/'<<deno/n<<endl; break; case 2: cout<<"带分数形式:" <<nume/deno<<'('<<(nume/n)%(deno/n)<<'/'<<deno/n<<')'<<endl; break; case 3: cout<<"近似值:" <<nume/double(deno)<<endl; break; default: cout<<"放大形式:" <<nume<<'/'<<deno<<endl; }}int main(){ CFraction c1; c1.set(10,6); c1.output(0); c1.output(1); c1.output(2); c1.output(3); c1.amplify(2); c1.output(6); return 0;}
运行结果:
0 0
- 项目18--分数类的雏形
- 2014-项目二-分数类的雏形
- 第六周项目-分数类的雏形
- 分数类的雏形
- 分数类的雏形
- 分数类的雏形
- 分数类的雏形
- 分数类的雏形
- 分数类的雏形
- 分数类的雏形
- 分数类的雏形
- 分数类的雏形
- 分数类的雏形
- 分数类的雏形
- 分数类的雏形
- 分数类的雏形
- 分数类的雏形
- 分数类的雏形
- leetcode 94. Binary Tree Inorder Traversal
- 使用JLink烧写u-boot(基于JZ2440v2的ARM板子)
- Flex布局
- 开始
- 第四周 20 时间类
- 项目18--分数类的雏形
- 游戏中的角色类1
- SQL tuning 类 的面试题
- Android简化获取控件
- 第五周第四项目——长方柱类
- 关于前端开发的思考
- 第五周 静态成员应用 23
- 前端开发学习笔记01(大杂烩)
- jquery 1.11 attr("disabled" 无效