2013第五周上机任务【项目二 分数类】

2013第五周上机任务【项目2 分数类】
/* 
* Copyright (c) 2013, 烟台大学计算机学院                     
* All rights reserved.                     
* 文件名称:test.cpp                     
* 作者:樊露露                    
* 完成日期:2013 年 4 月 3 日                     
* 版本号: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();               //按照“nu/de”的格式
	void simplify();            //化简
	void amplify(int n);         //放大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::amplify(int n){
	cout<<nume<<"/"<<deno;
	nume=nume*n;
	cout<<"放大"<<n<<"倍后为:"<<nume<<"/"<<deno<<endl;
}
void CFraction::input(){
	cout<<"以此输入分数的分子和分母:"<<endl;
	cin>>nume>>deno;
}
void CFraction::simplify(){
	int i;
	for(i=1;i<=nume&&i<=deno;i++){
		if(nume%i==0&&deno%i==0){
			nume=nume/i;
			deno=deno/i;
		}
	}
}
void CFraction::output(int style){
	switch(style){
	case 0:
		cout<<"原样输出:"<<endl;
		cout<<nume<<"/"<<deno<<endl;
		break;
	case 1:
		simplify();
		cout<<"化简后输出:"<<endl;
		cout<<nume<<"/"<<deno<<endl;
		break;
	case 2:
		cout<<"小数形式输出:"<<endl;
		cout<<(float)nume/deno<<endl;
		break;
	}
}
int main(){
	CFraction Num;
	Num.set(66,99);
	Num.amplify(3);
	Num.input(); 
	Num.output(0);
	Num.output(1);
	Num.output(2);
	return 0;
}

2013第五周上机任务【项目二 分数类】