输出分数的多种形式

问题及代码:

/*
*Copyright (c) 2016,烟台大学计算机学院
*All rights reserved.
*文件名称:main.cpp
*作    者:李磊涛
*完成时间:2016年4月10日
*版 本 号: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 amplife(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<<nume<<"/"<<deno<<endl;
}
void CFraction::simplify()
{
	int t,a,b,c;
	a=nume;
	b=deno;

	while(deno!=0)
	{
		t=nume%deno;
		nume=deno;
		deno=t;		
	}
	c=nume;
	nume=a/c;
	deno=b/c;
	cout<<nume<<"/"<<deno<<endl;
}
void CFraction::amplife(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)
	{
		cout<<nume<<"/"<<deno<<endl;
	}
	else if(style==2)
	{
		int a,zi;
		a=nume/deno;
		zi=nume-a*deno;
		cout<<a<<"("<<zi<<"/"<<deno<<")"<<endl;
	}
	else
	{
		float a;
		a=nume*1.0/deno;
		cout<<a<<endl;
	}
}
int main()
{
	
	int a,b,n;
	cin>>a>>b;
   CFraction cf(a,b);
   
	cf.set(a,b);
	cf.input();
	cf.simplify();
	cin>>n;
	cf.amplife(n);
	int style;
	cin>>style;
	cf.output(style);
}


运行结果:

输出分数的多种形式_第1张图片

知识点总结:
通过该程序,强化了我对类的组合的认识。
学习心得:
期间出现了很多错误通过单步运行得以纠正,加强了对类的认识。

你可能感兴趣的:(C++,计算机)