分数类的锥形
来源:互联网 发布:java后端开发书籍 编辑:程序博客网 时间:2024/05/16 18:55
输入代码:
/* *Copyright (c)2015,烟台大学计算机与控制工程学院 *All rights reserved. *文件名称:sum123.cpp *作 者:林海云 *完成日期:2015年3月29日 *版 本 号:v2.0 * *问题描述:设计一个简单的分数类,完成对分数的几个运算*程序输入:*程序输出: */ #include<iostream>#include<Cmath>#include<cstdlib>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);};CFraction::CFraction(int nu,int de){ if(de==0) { cout<<"程序初始化错误,请求退出!"<<endl; exit(0) ; } else { nume=nu; deno=de; }}void CFraction::set(int nu,int de){ if(de!=0) { nume=nu; deno=de; }}void CFraction::input(){ int nu,de; char c; while(1) { cout<<"请输入正确的分数输入形式(a/b)"; cin>>nu>>c>>de; if(c!='/') { cout<<"输入格式错误,请重新输入"<<endl; continue; } else if(de==0) { cout<<"输入错误,请重新输入!"<<endl; continue ; } else { nume=nu; deno=de; break; } }}int gcd(int m, int n){ int r; while (n!=0) { r=m%n; m=n; n=r; } return m;}void CFraction::simplify(){ int n; n=gcd(nume,deno); nume=nume/n; deno=deno/n;}void CFraction::amplify(int n){ nume=nume*n;}void CFraction::output(int style){ int m,n; switch(style) { case 0: cout<<"原样输出:"<<nume<<"/"<<deno<<endl; break; case 1: n=gcd(nume,deno); cout<<"化简输出:"<<nume/n<<"/"<<deno/n<<endl; case 2: m=nume/deno; n=nume%deno; if(m==0) { cout<<"真分数形式为:"<<nume<<"/"<<deno<<endl; break; } else { cout<<"对应的假分数形式为:"<<m<<"("<<n<<"/"<<deno<<")"<<endl; break; } case 3: cout<<"输出对应的小数形式为:"<<nume/(double)deno<<endl; break; }//style为1时,输出化简后形式4/3;//style为2时,输出1(1/3)形式,表示一又三分之一;//style为3时,用小数形式输出,如1.3333;//默认方式0}int main(){ CFraction a,b(8,6); cout<<"对于a:"; a.output(); cout<<"改变a:"; a.set(10,6); a.output(); a.output(2); cout<<"放大a:"; a.amplify(5); a.output(); cout<<"输入a:"; a.input(); a.output(); a.output(3); cout<<endl; cout<<"对于b: "; b.output(0); b.output(1); b.output(2); b.output(3); b.output(); cout<<"化简b:"; b.simplify(); b.output(); cout<<"放大b:"; b.amplify(2); b.output(); return 0;}
运行结果:
总结:
学会了几种元算符的重载
0 0
- 分数类的锥形
- 分数类的锥形
- 第六周项目1-分数类的锥形
- 三角形类锥形
- 三角形类锥形
- 三角类锥形
- 锥形螺旋曲线的绘制
- 锥形物体的稳定和平衡
- unity3d 敌人锥形视角实现的想法
- 分数类的加减乘除
- 我的分数类
- 分数类的雏形
- 分数类的雏形
- 分数类的雏形
- 分数类的雏形
- 分数类的雏形
- 分数类的雏形
- 分数类的雏形
- SHELL小总结
- 嵌入式通讯中串口接收出错
- Cocos2d-X 最新离线API文档下载
- Java判断数据库结果集ResultSet 中是否存在指定列名
- JAVA IO :使用带缓冲的字节流读写数据
- 分数类的锥形
- QT与JAVA的比较二
- ROW_NUMBER()
- GridView控件增删改查(查)
- 浮动和清除浮动 float clear
- mysql优化技巧
- Tips003 - Could not initialize OpenglES emulation, using software renderer
- Openfire3.9.3源代码导入eclipse中开发配置指南
- 匈牙利算法模板+KM算法模板