分数类的雏形

问题及描述;

/*  
 *Copyright (c) 2016,烟台大学计算机学院  
 *All rights reserved.  
 *文件名称;test.cpp  
 *作者;邱凯  
 *完成日期;2016年4月10号  
 *版本号;v6.0  
 *问题描述;   分数类的雏形  
 *输入描述;  无  
 *输出描述; 输出答案  
  
*/    
#include <iostream>
#include <cstdlib>
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)
{
	if(de!=0)
	{
      nume=nu;
	  deno=de;
	}
	else
	{
		cout<<"数字不对,请再次输入"<<endl;
	}
}
void cfraction::set(int num,int de)
{
	if(de!=0)
	{
    nume=num;
	deno=de;
	}

}
void cfraction::input()
{
	int nu,de;
	char ch;
	cin>>nu>>ch>>de;
	if(de!=0)
	{
		nume=nu;
		deno=de;
	}

}
void cfraction::simplify()
{
	int i=nume;
   if(deno<nume)
	   i=deno;
   for(;nume%i!=0||deno%i!=0;i--);
 nume=nume/i;
 deno=deno/i;
 cout<<"简化之后的数为"<<nume<<"/"<<deno<<endl;
}
void cfraction::amplify(int n)
{
	nume=nume*n;

	cout<<"放大后的数为"<<nume<<"/"<<deno<<endl;
}

void cfraction::output(int style)
{
	if(style==0)
		cout<<nume<<"/"<<deno<<endl;
	else if(style==1)
	{
		simplify();
		cout<<nume<<"/"<<endl;
	}
	else if(style==2)
	{
		cout<<"带分数形式:"<<nume/deno<<"("<<nume-(nume/deno)<<"/"<<deno<<")"<<endl;

	}
	else if(style==3)
	{
		cout<<double(nume)/double(deno)<<endl;
	}
}
//主函数
int main()
{
 cfraction c1(6,8);
 cfraction c2(4,7);
 c1.output(0);
 c1.simplify();
 c1.amplify(5);
 c2.output(0);
 c2.simplify();
 c2.amplify(5);
 return 0;
}

分数类的雏形_第1张图片

总结;

更深刻的意识到了运算符的重载!

你可能感兴趣的:(分数类的雏形)