分数的各种运算
来源:互联网 发布:嵌入式算不算人工智能 编辑:程序博客网 时间:2024/04/29 07:36
/** 程序的版权和版本声明部分* Copyright (c)2012, 烟台大学计算机学院学生* All rightsreserved.* 文件名称: object.cpp* 作者:隋 鑫* 完成日期: 2013 年 3 月 29 日* 版本号: v1.0* 输入描述:无* 问题描述:* 程序输出:*/#include<iostream>#include <Cmath>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/3void output(int style=0);//输出:以8/6为例,style为0时,原样输出8/6;//style为0时,输出化简后形式4/3;//style为1时,输出1(1/3)形式,表示一又三分之一; //style为2时,用小数形式输出,如1.3333 //不给出参数和非1、2,认为是方式0};CFraction::CFraction(int nu, int de){nume=nu;deno=de;}void CFraction::input(){ char c;cout<<"请输入分数(格式nume/deno):";while(1){cin>>nume>>c>>deno;if(c!='/')cout<<"格式不正确,请重新输入:"<<endl;elsebreak;}}void CFraction::simplify(){ int t,r,x,y,n,d; x=nume; y=deno; if (y>x) {t=x;x=y;y=t; } while((r=x%y)!=0) {x=y;y=r; }n=nume/y;d=deno/y;cout<<"化简为最简形式为:"<<n<<"/"<<d<<endl;}void CFraction::amplify(int n){int x,y;x=nume;y=deno;x*=n;cout<<"放大"<<n<<"倍后为:"<<x<<"/"<<y<<endl;}void CFraction::output(int style){double m;int x,y,z=0;x=nume;y=deno;if(style==0||style>2) cout<<"原样输出为:"<<x<<'/'<<y<<endl; else if(style==1){while(x>=y){x-=y;z++;}if(x==0)cout<<z<<endl;elsecout<<"输出"<<z<<"("<<x<<"/"<<y<<")"<<endl;}else { m=double(x)/double(y);cout<<"输出小数形式为:"<<m<<endl;}}int main(){CFraction num1;num1.input();num1.simplify();num1.amplify(3);num1.output(0);num1.output(1);num1.output(2);return 0;}
运行结果:
- 分数的各种运算
- 分数的各种运算
- 分数的各种运算
- 分数的各种运算
- 5_2分数的各种运算
- 第五周上机任务项目1 分数的各种运算
- 分数的运算
- 分数的运算表达
- 分数的加减乘除运算
- c++一个实现分数大小比较和各种运算的类
- 第八周任务四——关于分数与整数运算一各种运算符的重载
- 分数运算符的重载
- 分数的运算符重载
- java 10.23 (分数的运算)
- 分数加减的简单运算
- 分数的运算符重载
- 分数运算
- 分数运算
- 计算机程序设计艺术
- 欧拉图+dfs
- 医学书籍电子版下载
- Android里的常见异常
- 数据库连接字符串大全
- 分数的各种运算
- 几种简单常用的镜头边缘检测算法(matlab实现)
- qt编译错误汇总
- Linq 学习笔记(二)
- 【转】虚拟串口以及在Proteus中的使用
- Linux下tar.xz结尾的文件的解压方法
- 获取从当年当月起往前推12个月的某年某月的下拉框(JS+JQUERY)
- Java开发中容易被忽视的东西
- C++的输出精度控制(转)