第五周 22 分数类的雏形
2016-04-05 18:48
302 查看
/*
*Copyright (c) 2015,烟台大学计算机学院
*All rights reserved.
*文件名称:text.cpp
*作者:李德彪
*完成日期:2015年4月2日
*版本号:v1.0
*
*问题描述:设计一个简单的分数类,完成对分数的几个运算
*输入描述:两个整数和一个字符
*程序输出:输出三个分数
*/
#include <iostream>
#include<string>
#include<iomanip>
using namespace std;
int GCD(int n,int m);
class CFraction
{
public:
CFraction(int nu=1,int de=1);
void set(int nu=1,int de=1);
void input();
void simplify();
void amplify(int n);
void output(int style=0);
private:
int nume;
int deno;
};
CFraction::CFraction(int nu,int de):nume(nu),deno(de)
{
}
void CFraction::set(int nu,int de)
{
nume=nu;
deno=de;
}
void CFraction::input()
{
char n;
cin>>nume;
cin>>n;
cin>>deno;
}
void CFraction::simplify()
{
int t;
t=GCD(nume,deno);
cout<<nume/t<<"/";
cout<<deno/t<<endl;
}
void CFraction::amplify(int n)
{
int m;
m=GCD(nume,deno);
cout<<(nume/m)*n<<"/"<<deno/m<<endl;
}
void CFraction::output(int style)
{
int m;
m=GCD(nume,deno);
if(style==0)
{
cout<<nume<<"/"<<deno<<endl;
}
else if(style==1)
{
cout<<nume/m<<"/"<<deno/m<<endl;
}
else if(style==2)
{
if(nume/deno==0)
cout<<nume<<"/"<<deno<<endl;
else
cout<<nume/deno<<"("<<nume%deno<<"/"<<deno<<")"<<endl;
}
else if(style==3)
{
cout<<setprecision(4)<<setiosflags(ios::fixed)<<static_cast<double>(nume)/static_cast<double>(deno)<<endl;
}
}
int GCD(int n,int m)
{
if(m<=n)
{
if(n%m==0)
return(m);
else
return (GCD(m,n%m));
}
else
return(GCD(m,n));
}
int main()
{
CFraction fenshu;
fenshu.amplify(3);
fenshu.set(18,8);
fenshu.simplify();
fenshu.input();
fenshu.output(3);
return 0;
}
*Copyright (c) 2015,烟台大学计算机学院
*All rights reserved.
*文件名称:text.cpp
*作者:李德彪
*完成日期:2015年4月2日
*版本号:v1.0
*
*问题描述:设计一个简单的分数类,完成对分数的几个运算
*输入描述:两个整数和一个字符
*程序输出:输出三个分数
*/
#include <iostream>
#include<string>
#include<iomanip>
using namespace std;
int GCD(int n,int m);
class CFraction
{
public:
CFraction(int nu=1,int de=1);
void set(int nu=1,int de=1);
void input();
void simplify();
void amplify(int n);
void output(int style=0);
private:
int nume;
int deno;
};
CFraction::CFraction(int nu,int de):nume(nu),deno(de)
{
}
void CFraction::set(int nu,int de)
{
nume=nu;
deno=de;
}
void CFraction::input()
{
char n;
cin>>nume;
cin>>n;
cin>>deno;
}
void CFraction::simplify()
{
int t;
t=GCD(nume,deno);
cout<<nume/t<<"/";
cout<<deno/t<<endl;
}
void CFraction::amplify(int n)
{
int m;
m=GCD(nume,deno);
cout<<(nume/m)*n<<"/"<<deno/m<<endl;
}
void CFraction::output(int style)
{
int m;
m=GCD(nume,deno);
if(style==0)
{
cout<<nume<<"/"<<deno<<endl;
}
else if(style==1)
{
cout<<nume/m<<"/"<<deno/m<<endl;
}
else if(style==2)
{
if(nume/deno==0)
cout<<nume<<"/"<<deno<<endl;
else
cout<<nume/deno<<"("<<nume%deno<<"/"<<deno<<")"<<endl;
}
else if(style==3)
{
cout<<setprecision(4)<<setiosflags(ios::fixed)<<static_cast<double>(nume)/static_cast<double>(deno)<<endl;
}
}
int GCD(int n,int m)
{
if(m<=n)
{
if(n%m==0)
return(m);
else
return (GCD(m,n%m));
}
else
return(GCD(m,n));
}
int main()
{
CFraction fenshu;
fenshu.amplify(3);
fenshu.set(18,8);
fenshu.simplify();
fenshu.input();
fenshu.output(3);
return 0;
}
相关文章推荐
- 游戏中的角色类2
- 线性表的应用2(删除顺序表中的元素)
- 118. Pascal's Triangle
- Coverity代码静态检测工具介绍
- 项目2-带武器的游戏角色
- rk3288的SDK修复cm3218光敏驱动bug
- 获取屏幕的高和宽度
- [BZOJ1070][SCOI2007]修车(费用流)
- 前端开发学习笔记01(大杂烩)
- 第五周 静态成员应用 23
- Linux文件重点概念
- 老男孩运维网络班一期入学试题
- Android简化获取控件
- 第五周第四项目——长方柱类
- 代码静态分析工具PC-LINT安装配置
- <构建之法> 第四章 结对 读后感
- Unity+百度推送+IOS版
- 游戏中的角色类1
- Xcode localization failed to read a strings file问题原因
- 第四周 20 时间类