分数类的雏形
来源:互联网 发布:飞机晚点查询软件 编辑:程序博客网 时间:2024/06/05 01:56
/*
Copyright(c)2016,烟台大学计算机与控制工程学院
All rights reserced
文件名称:test.cpp
作 者:高玉杰
完成日期:2016年5月25日
版 本 号:v1.0
问题描述:编写基于对象的程序,对分数进行一些简单的操作
输入描述:输入一个分数
程序输出:
感想:
Copyright(c)2016,烟台大学计算机与控制工程学院
All rights reserced
文件名称:test.cpp
作 者:高玉杰
完成日期:2016年5月25日
版 本 号:v1.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) { nume=nu; deno=de; } else { cerr<<"初始化中发生错误,程序退出\n"; }}void CFraction::set(int nu,int de){ if (de!=0) { nume=nu; deno=de; }}void CFraction::input() //按照"nu/de"的格式,如"5/2"的形式输入{ int nu,de; char c; while(1) { cout<<"输入分数(nu/de): "; cin>>nu>>c>>de; if(c!='/') cout<<"输入格式错误!\n "; else if (de==0) cout<<"分母不能为零!\n "; else break; } nume=nu; deno=de;}// 分数化简,使分子分母没有公因子void CFraction::simplify(){ int n=gcd(deno, nume); deno/=n; // 化简 nume/=n;}// 求m,n的最大公约数int gcd(int m, int n){ int r; if (m==0) { return n; } while(r=m%n) // 求m,n的最大公约数 { m=n; n=r; } return n;}void CFraction::amplify(int n) //放大n倍,如2/3放大5倍为10/3{ 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,c2(8,6); cout<<"关于c1: "<<endl; c1.output(0); cout<<"改变c1: "<<endl; //测试set函数 c1.set(2,7); c1.output(); cout<<"输入c1: "<<endl;//测试input函数 c1.input(); c1.output(0); cout<<"关于c2: "<<endl;//测试output函数 c2.output(0); c2.output(1); c2.output(2); c2.output(3); c2.output(); cout<<"将c2化简: "<<endl;//测试simplify函数 c2.simplify(); c2.output(0); cout<<"将c2放大倍: "<<endl;//测试amplify函数 c2.amplify(5); c2.output(0); c2.output(1); return 0;}
感想:
自己在做的时候,有很多东西感觉自己会,但就是写不出来,得参考老师的答案做出来。
0 0
- 分数类的雏形
- 分数类的雏形
- 分数类的雏形
- 分数类的雏形
- 分数类的雏形
- 分数类的雏形
- 分数类的雏形
- 分数类的雏形
- 分数类的雏形
- 分数类的雏形
- 分数类的雏形
- 分数类的雏形
- 分数类的雏形
- 分数类的雏形
- 分数类的雏形
- 分数类的雏形
- 分数类的雏形
- 分数类的雏形
- 用fasterjson需要注意的地方
- poj 3616 Milking Time
- java排序算法简介
- Java基础学习
- 指针与引用
- 分数类的雏形
- ztree详细资料
- WARNING: Your password has expired. Password change required but no TTY available.
- 杨辉三角
- SpringMVC中使用@RequestBody,@ResponseBody注解实现Java对象和XML/JSON数据自动转换(上)
- hdu 2822 Dogs【优先队列+Bfs】
- vr的延迟和渲染效率优化与Nvidia VRWorks
- Android学习笔记四大组件之Activity
- Java多态 转型