/*
02. *Copyright (c) 2016,烟台大学计算机学院
03. *All rights reserved.
04. *文件名称:cpp
05. *作 者:孙亚茹
06. *完成日期:2016年4月10日
07. *版 本 号:v1.0
08. *
09. *问题描述:输出分数的各种形式。
*/
#include <iostream>
using namespace std;
class CFraction
{
private:
int nume;
int deno;
int nume2;
int nume1;
int deno1;
public:
CFraction(int nu=0,int de=1);
void set(int nu=0,int de=1);
void input();
void simplify();
void amplify();
void output(int style=0);
};
CFraction::CFraction(int nu,int de):nume(nu),deno(de){}
void CFraction::input()
{
char temp;
cin>>nume>>temp>>deno;
}
void CFraction::simplify()
{
int r,num,deo,yueshu;
num=nume;
deo=deno;
while(deo!=0)
{
r=num%deo;
num=deo;
deo=r;
}
yueshu=num;
nume1=nume/yueshu;
deno1=deno/yueshu;
}
void CFraction::amplify()
{
int n;
cout<<"请输入要扩大的倍数"<<endl;
cin>>n;
nume2=nume*n;
cout<<"扩大后的分数为:"<<endl;
cout<<nume2<<'/'<<deno<<endl;
}
void CFraction::output(int style)
{
int t,c;
float d;
if(style==0)
{
cout<<"原分数为:"<<endl;
cout<<nume<<'/'<<deno<<endl;
}
if(style==1)
{
cout<<"化简后分数为:"<<endl;
cout<<nume1<<'/'<<deno1<<endl;
}
if(style==2)
{
t=nume/deno;
c=nume1%deno1;
cout<<"假分数形式为:"<<endl;
cout<<t<<'('<<c<<'/'<<deno1<<')'<<endl;
}
if(style==3)
{
d=(float)nume/(float)deno;
cout<<"小数形式为:"<<endl;
cout<<d<<endl;
}
}
int main()
{
CFraction cf1;
cf1.input();
cf1.simplify();
cf1.amplify();
cf1.output(0);
cf1.output(1);
cf1.output(2);
cf1.output(3);
return 0;
}
学习心得: 在程序输入的时候如果要输入一个非数字的符号,要先定义一个字符变量,直接输入那个字符变量即可,但在键盘输入时要输入相应的符号。