您的位置:首页 > 其它

第六周项目1 分数类的设计

2016-04-07 08:55 169 查看
/*
*Copyright(c) 2016,烟台大学计算机学院
*All rights reserved.
*文件名称:test2.cpp
*作    者:刘金石
*完成日期:2016年4月7日
*版本  号: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)
{
//cout<<nume<<" "<<deno<<endl;
}
void CFraction::set(int nu,int de)
{
cout<<"Please input nume and deno:"<<endl;
cin>>nu>>de;
nume=nu;
deno=de;

}
void CFraction::input()
{
char ch;
cout<<"请输入分子和分母(分子/分母)"<<endl;
cin>>nume>>ch>>deno;
}
void CFraction::simplify()
{
int x,y,t;
x=nume;
y=deno;
if(x<y)
{
t=x;
x=y;
y=t;
}

while(y>0)
{
t=x%y;
x=y;
y=t;
}
nume=nume/x;
deno=deno/x;
cout<<"化简后的分数为:"<<endl;
cout<<nume<<"/"<<deno<<endl;
}
void CFraction::amplify(int n)
{

nume=nume*n;

cout <<"放大"<<n<<"倍后的分数为:"<<endl;
cout<<nume<<"/"<<deno<<endl;
}
void CFraction::output(int style)
{

if(style==0)
{
cout<<nume<<"/"<<deno<<endl;
}
else if(style==1)
{
simplify();
}
else if(style==2)
{
cout<<nume/deno<<"("<<nume%deno<<"/"<<deno<<")"<<endl;
}
else if(style==3)
{
float fl;
fl=(float)nume/deno;
cout<<fl<<endl;
}
}
int main()
{
CFraction num;

num.input();
num.simplify();
num.amplify(2);
num.output(1);
num.output(2);
num.output(3);
return 0;
}

运行结果:

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: