/*
*Copyright(c) 2016, 烟台大学计算机与控制工程学院
*All rights reserved.
*文件名称:main.cpp
*作 者:李德坤
*完成日期:2016年4月6日
*版本号:v1.0
*
*问题描述:设计游戏角色
*输入描述:无
*输出描述:简单游戏设计
*/
#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();
void simplify();//化简
void amplify(int n);//放大
void output(int style=0);//输出
};
CFraction::CFraction(int nu,int de)
{
nume=nu;
deno=de;
}
void CFraction::set(int nu,int de)
{
nume=nu;
deno=de;
}
void CFraction::input()
{
cout<<"输出的分数为:"<<endl;
cout<<nume<<"/"<<deno<<endl;
}
void CFraction::simplify()
{
int a,b,c,t;
a=nume;
b=deno;
if(a<b)
{
t=a;
a=b;
b=t;
}
c=a%b;
while(c!=0)
{
a=b;
b=c;
c=a%b;
}
cout<<"化简后的分数为:"<<endl;
cout<<nume/b<<"/"<<deno/b<<endl;
}
void CFraction::amplify(int n)
{
cout<<nume*n<<"/"<<deno*n<<endl;
}
void CFraction::output(int style)
{
if(style==0)
cout<<nume<<"/"<<deno<<endl;
else if(style==1)
simplify();
else if(style==2)
{
int a,b,c,t,d,e,f,g;
a=nume;
b=deno;
if(a<b)
{
t=a;
a=b;
b=t;
}
c=a%b;
while(c!=0)
{
a=b;
b=c;
c=a%b;
}
d=nume/b;
e=deno/b;
f=d%e;//1
g=d/e;//1
cout<<g<<"("<<f<<"/"<<e<<")"<<endl;
}
else
cout<<static_cast<float>(nume/deno)<<endl;
}
int main()
{
int m,n;
CFraction fenshu(8,6);
fenshu.input();
fenshu.simplify();
cout<<"请输入放大的倍数:"<<endl;
cin>>m;
fenshu.amplify(m);
cout<<"请输入以何种形式输出:0.原样输出 1.化简输出 2.带分数形式输出 3.小数输出"<<endl;
cin>>n;
fenshu.output(n);
return 0;
}