分数类(雏形)
来源:互联网 发布:监测数据造假怎么举报 编辑:程序博客网 时间:2024/06/06 19:43
设计一个简单的分数类,完成对分数的几个运算。
#include<iostream>using namespace std;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); //输出:以8/6为例,style为0时,原样输出8/6; //style为1时,输出化简后形式4/3; //style为2时,输出1(1/3)形式,表示一又三分之一; //style为3时,用小数形式输出,如1.3333; //默认方式0int fac(int x,int y);};void CFraction::amplify(int n){nume*=n;}void CFraction::simplify(){int n=fac(nume,deno);nume/=n;deno/=n;}int CFraction::fac(int x,int y){int n;if(x==0){return y;}while(n=x%y){y=n;x=y;}return y;}CFraction::CFraction(int nu,int de){nume=nu;deno=de;}void CFraction::input(){int nu,de;char ch;while(1){cin>>nu>>ch>>de;if(ch!='/')cout<<"输入格式有误"<<endl;else if(!de)cout<<"分母不能为零"<<endl;else{nume=nu;deno=de;break;}}}void CFraction::set(int nu,int de){nume=nu;deno=de;}void CFraction::output(int style){if(nume>deno){int n=fac(nume,deno);if(style==0)cout<<nume<<'/'<<deno<<endl;if(style==1)cout<<nume/n<<'/'<<deno/n<<endl;if(style==2){if(nume%deno==0)cout<<nume/deno<<endl;elsecout<<nume/deno<<'('<<(nume-nume/deno*deno)<<'/'<<deno/n<<')'<<endl;}if(style==3)cout<<(double)nume/(double)deno<<endl;}else{if(style==0)cout<<nume<<'/'<<deno<<endl;if(style==1)cout<<nume<<'/'<<deno<<endl;if(style==2)cout<<nume<<'/'<<deno<<endl;if(style==3)cout<<(double)nume/(double)deno<<endl;}}void main(){CFraction f1;f1.set();f1.input();cout<<"原样输出:";f1.output(0);cout<<"化简输出:";f1.output(1);cout<<"带分数输出:";f1.output(2);cout<<"小数输出:";f1.output(3);cout<<"分子扩大五倍:"<<endl;f1.amplify(5);cout<<"原样输出:";f1.output(0);cout<<"化简输出:";f1.output(1);cout<<"带分数输出:";f1.output(2);cout<<"小数输出:";f1.output(3);}
大的标题叫做类的组合,静态存储,还是不能理解类的组合是什么,今天把自己的想法说到了群里,就问类的组合是不是类的嵌套,我的意思是说有两个类,类1的成员是类2的对象,问了之后有人告诉我那叫做多态,关于类只有继承关系。之后又百度,说类的组合就是很多个类组合到一起,但觉得还是不对。更有大神说多态主要是指virtual,还是一片茫然,之后有人告诉我说的是继承和派生,多态指的是虚函数。但不知道这些,还是把这个题目完成了,但很困难,原因归结一些算法不是太容易想到,所以代码改了好几遍。
0 0
- 分数类(雏形)
- 分数类的雏形
- 分数类的雏形
- 分数类的雏形
- 分数类的雏形
- 分数类的雏形
- 分数类的雏形
- 分数类的雏形
- 分数类的雏形
- 分数类的雏形
- 分数类的雏形
- 分数类的雏形
- 分数类的雏形
- 分数类雏形
- 分数类的雏形
- 分数类的雏形
- 分数类的雏形
- 分数类的雏形
- oracle中的tablespace的概念及创建
- 每日一linux命令(50)-------diff 命令
- 2016多校8th 1008【线段树-神题】
- cornerstone分支简单使用(三)
- CSS3动画(个人理解)
- 分数类(雏形)
- eclipse智能提示与常用快捷键
- Codeforces Round #367 (Div. 2) C. Hard problem
- Memcache 缓存
- Python函数可变参数* args及**kwargs 应用
- 一个简单的tomcat应用(HFSJ)
- Doxygen使用学习(一)------Doxygen的简单注释格式
- jQuery性能优化建议
- group by与distinct效率分析及优化措施