关闭

第五周任务二

203人阅读 评论(0) 收藏 举报

/* (程序头部注释开始)
* 程序的版权和版本声明部分
* 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

查看评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
    个人资料
    • 访问:38706次
    • 积分:1027
    • 等级:
    • 排名:千里之外
    • 原创:66篇
    • 转载:0篇
    • 译文:0篇
    • 评论:19条
    文章分类
    最新评论