第五周任务二

原创 2012年03月22日 20:09:18

/* (程序头部注释开始)
* 程序的版权和版本声明部分
* 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语句不常用,都快忘了

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

相关文章推荐

第五周任务二(分数类)

* (程序头部注释开始) * 程序的版权和版本声明部分 * Copyright (c) 2011, 烟台大学计算机学院学生 * All rights reserved. * 文件名称: 分数...

第五周任务二 分数

/* (程序头部注释开始) * 程序的版权和版本声明部分 * Copyright (c) 2011, 烟台大学计算机学院学生 * All rights reserved. * 文件名称:  ...

C++程序设计实验报告(四十)---第五周任务二

/* (程序头部注释开始) * 程序的版权和版本声明部分 * Copyright (c) 2012, 烟台大学计算机学院学生  * All rights reserved. * 文件名称:  ...

第五周任务二之分数类

源程序: /* (程序头部注释开始) * 程序的版权和版本声明部分 * Copyright (c) 2011, 烟台大学计算机学院学生 * All rights reserved. * 文件名称:...

第五周 任务二扩展一(枚举类型)

//【任务2】C++中提供了多种基本的数据类型。实际上,这些远不能满足我们的需求,如复数(第10章的例子大多是处理虚数的),再如分数。本任务将设计一个简单的分数类,完成对分数的几个运算。一则巩固基于对...

《第五周任务二》设计分数类,完成对分数的运算

实验报告模板1. 本学期的报告均发到csdn博客。周一上机,周四前要完成本周上机任务并发布博文。 2. 本学期起程序头部的注释请自行加入,从本学期起不再统一给出。这是一个程序员良好习惯中的一部分,养...

第五周任务(二)修改

#include #include using namespace std; int gcd(int x,int y ); class CFraction {pr...
  • cailwen
  • cailwen
  • 2012年03月23日 14:17
  • 322

第五周任务(二)

* (程序头部注释开始) * 程序的版权和版本声明部分 * Copyright (c) 2011, 烟台大学计算机学院学生 *文件名称: 简单的分数类 * 作 者: 齐艳红 * 完成日期:...
  • cailwen
  • cailwen
  • 2012年03月20日 17:56
  • 590

第五周上机任务--任务二--在main()函数中自行定义对象,调用各成员函数,完成基本的测试

/* (程序头部注释开始) * 程序的版权和版本声明部分 * Copyright (c) 2011, 烟台大学计算机学院学生 * All rights reserved. * 文件名称:设计...

第五周实验报告 任务一

源代码: //默认构造函数 #include #include using namespace std; class Triangle { public: Tria...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:第五周任务二
举报原因:
原因补充:

(最多只允许输入30个字)