第五周任务二

/* (程序头部注释开始)
* 程序的版权和版本声明部分
* Copyright (c) 2011, 烟台大学计算机学院学生
* All rights reserved.
* 文件名称:                             
* 作    者: 李超                            
* 完成日期:     2012    年  3     月  22      日
* 版 本 号:        01.05.02 

* 对任务及求解方法的描述部分
* 输入描述:输入分数
* 问题描述:将分数化简或将分子、分母同时扩大n倍

* 程序输出: 按要求输出分子的不同形态
* 程序头部的注释结束
*/头文件head.h:

#include<iostream>

using namespace std;

class CFraction
{private:
	int nume;  // 分子
	int deno;  // 分母
	int yue;   //最大公约数
 public:
	CFraction(int nu=0,int de=1);   //构造函数,初始化用
	void Set(int nu,int de);    //置值,改变值时用
	void input();				//按照"nu/de"的格式,如"5/2"的形式输入
	void Simplify();			//化简(使分子分母没有公因子)
	void amplify(int n);			//放大n倍,如2/3放大5倍为10/3
	void output(int style);		//输出:以8/6为例,style为0时,输出8/6;
							//style为1时,输出4/3;
							//style为2时,输出1(1/3),表示一又三分之一;
							//不给出参数和非1、2,认为是方式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()	//按照"nu/de"的格式,如"5/2"的形式输入
{
	char a;

	int nu, de;

	cout <<"按照nu/de的格式,如5/2的形式输入" <<endl;

	cin >>nu >>a >>de;

	nume = nu;
	deno = de;
}

void CFraction::Simplify()			//化简(使分子分母没有公因子)
{
	int nu = nume, de = deno,temp, a;

	if(nu > de)
	{
		temp = nu;
		nu = de;
		de= temp;
	}

	while(nu != 0)
	{
		a = de % nu;
		de = nu;
		nu = a;
	}

	yue = de;
	deno = deno / de;
	nume = nume / de; 
}

	
void CFraction::amplify(int n)			//放大n倍,如2/3放大5倍为10/3
{
	deno *= n;
	nume *= n;
	cout <<nume <<'/' <<deno <<endl;
}

void CFraction::output(int style=0)		
{	
	switch(style)                           //不给出参数和非1、2,认为是方式0
	{
	case 0:                                //输出:以8/6为例,style为0时,输出8/6;
		cout <<nume * yue <<'/' <<deno * yue <<endl;
        break;

	case 1:                                      //style为1时,输出4/3;
		cout <<nume <<'/' <<deno <<endl;
		break; 

	case 2:
		cout <<nume / deno <<'(' <<nume % deno <<')' <<deno <<endl; //style为2时,输出1(1/3),表示一又三分之一;
		break;
	}
	
	                                       
}		                                    


主函数main.cpp:

#include"head.h"
#include<iostream>

using namespace std;

void main()
{
	CFraction C1(9, 6);
	C1.Simplify ();
	C1.output (0);
	C1.output (1);
	C1.output (2);
    C1.amplify (4);

	CFraction C2;
	C2.input ();
	C2.Simplify ();
	C2.output (0);
	C2.output (1);
	C2.output (2);
    C2.amplify (3);

	CFraction C3;
	C3.Set (8, 2);
	C3.Simplify ();
	C3.output (0);
	C3.output (1);
	C3.output (2);
    C3.amplify (4);


	system("PAUSE");
}


switch语句不常用,都快忘了

有不足的地方,欢迎大家批评

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值