第六周项目一 分数类的雏形
2016-04-02 15:18
387 查看
/* *Copyright (c)2016,烟台大学计算机与控制工程学院 *All rights reserved. *文件名称:main.cpp *作 者:舒文超 *完成日期:2016年4月2日 *版 本 号:v1.0 * *问题描述:设计一个简单的分数类,完成对分数的几个运算。 */ #include <iostream> using namespace std; class CFraction { private: int nume;//分子 int deno;//分母 int simplify_nume;//化简后的分子 int simplify_deno;//化简后分母 public: CFraction(int nu = 0,int de = 1)//构造函数 { nume=nu; deno=de; } void set(int nu = 0,int de = 1)//改变分子,分母 { nume=nu; deno=de; } void input();//输入 void simplify();//化简 void amplify(int n);//扩大n倍 void output(int style = 0); //输出:以8/6为例,style = 0,原样输出8/6; //style = 1,输出化简后的形式4/3;s //tyle = 2,输出带分数形式1(1/3); //style = 3,输出小数1.3333。 }; void CFraction::simplify() { int t,a,b; if(nume>deno) { a=nume; b=deno; } else { a=deno; b=nume; } while(b!=0) { t=a%b; a=b; b=t; } simplify_nume=nume/a; simplify_deno=deno/a; } void CFraction::output(int style) { double s; int a,b; if(style==0) cout<<nume<<"/"<<deno<<endl; else if(style==1) { CFraction::simplify(); if(simplify_deno!=1) cout<<simplify_nume<<"/"<<simplify_deno<<endl; else cout<<simplify_nume<<endl; } else if(style==2) { if(nume>deno) { a=nume/deno; b=nume%deno; cout<<a<<"("<<b<<"/"<<deno<<")"<<endl; } else if(nume<deno) { cout<<"这是一个真函数"<<endl; cout<<nume<<"/"<<deno<<endl; } else cout<<"1"<<endl; } else { s=(double)nume/deno*1.0; cout<<s<<endl; } } void CFraction::amplify(int n) { nume=nume*n; } void CFraction::input() { cout<<"请输入分数分子分母的值"<<endl; cin>>nume>>deno; } int main() { int n,a,b; CFraction fen(8,6);//初始化 //fen.simplify();//化简 cout<<"请输入输出方式"<<endl<<"原样输出 0 输出化简后的形式 1 输出带分数形式 2 输出小数 3"<<endl; cin>>n; fen.output(n); cout<<"请输入分数需要扩大的倍数"<<endl; cin>>n; fen.amplify(n);//扩大n倍 cout<<"请输入输出方式"<<endl<<"原样输出 0 输出化简后的形式 1 输出带分数形式 2 输出小数 3"<<endl; cin>>n; fen.output(n); fen.set(5,2);//置值 cout<<"请输入输出方式"<<endl<<"原样输出 0 输出化简后的形式 1 输出带分数形式 2 输出小数 3"<<endl; cin>>n; fen.output(n); fen.input();//输入 cout<<"请输入输出方式"<<endl<<"原样输出 0 输出化简后的形式 1 输出带分数形式 2 输出小数 3"<<endl; cin>>n; fen.output(n); return 0; }
相关文章推荐
- Git常用命令
- 芯片说明
- XAudio2学习之调节音调
- Session原理和Tomcat实现分析
- 结构体---职工信息结构体(oj)
- 海量数据处理
- MFC ListControl使用方法
- 05-树8 File Transfer (25分)
- 今天漫展,好想放假。但是这个图做不好我没心思玩
- Android多国语言的value文件夹命名方式
- bzoj 3594 [Scoi2014]方伯伯的玉米田(DP+二维BIT)
- js笔记(6)
- 剑指offer:扑克牌顺子
- delphi7 手动安装 indy10.2.3
- JavaScript的捕获和冒泡
- ECharts使用小笔记
- jquery(dom操作方法)
- mac上mysql乱码问题解决
- 【图像处理】FFmpeg解码H264及swscale缩放详解
- 【bzoj2653】【middle】【主席树+二分答案】