第五周任务二分数类

原创 2012年03月24日 16:54:55
/* (程序头部注释开始)
* 程序的版权和版本声明部分
* Copyright (c) 2011, 烟台大学计算机学院学生 
* All rights reserved.
* 文件名称: 分数类                          
* 作    者: 刘杨                           
* 完成日期: 2012 年 3 月 21 日
* 版 本 号:         
* 对任务及求解方法的描述部分
* 输入描述:
* 问题描述:
* 程序输出:
* 程序头部的注释结束
*/
#include<iostream>
using namespace std;
int gcd(int a,int b);
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 amplify(int n);		
	void output(int style=0);		
};
int main()
{
	CFraction cfrac1;
	cfrac1.output(0);
    cfrac1.Set(2,3);
	cfrac1.output(0);
	CFraction cfrac2;
	cfrac2.input();
	cfrac2.Simplify();
	cfrac2.output(0);
	cfrac2.amplify(2);
	cfrac2.output(0);
	cfrac2.output(1);
	cfrac2.output(2);
	system("pause");
	return 0;
}
//构造函数
CFraction::CFraction(int nu, int de)
{
	nume = nu;
	deno = de;
}
//改变分数的值
void CFraction::Set(int nu, int de)
{
	nume = nu;
	deno = de;
	return ;
}
//输出分数
void CFraction::input()
{
	char c1;
	cout << "请输入分数(格式 nu/de):";
	while(1)
	{
		cin >> nume >> c1 >> deno;
		if(c1 != '/')
		{
			cout << "格式不正确,请重新输入" << endl;
		}
		else if(deno == 0)
		{
			cout << "分母不能为零,请重新输入" << endl;
		}
		else break;
	}
	return ;
}
//化简,使分子分母没有公因子
void CFraction::Simplify()
{
	int i;
    i=gcd(nume,deno);
    nume = nume / i;
	deno = deno / i;
    return;
}
void CFraction::amplify(int n)
{
	nume = nume * n;
	return ;
}
//输出分数
void CFraction::output(int style)
{
	int n,c1,nu,de;
	switch(style)
	{
	case '0':
		cout << nume << "/" << deno << endl;
		break;
	case 1:
		c1 = gcd(nume,deno);
		nu = nume / c1;
		de = deno / c1;
		cout << nu << "/" << de << endl;
		break;
	case 2:
		c1 = gcd(nume,deno);
		nu = nume / c1;
		de = deno / c1;
		n = nu / de;
		nu = nu % de;
		cout << n << "(" << nu << "/" << de << ")" << endl;
		break;
	default:
		cout << nume << "/" << deno << endl;
		break;
	}
	return ;
}
int gcd(int x,int y)
{
	int t;
	while(y > 0)
	{
		t = x % y;
		x = y;
		y = t;
	}
	return x;
}

运行结果:

第五周任务二(分数类)

* (程序头部注释开始) * 程序的版权和版本声明部分 * Copyright (c) 2011, 烟台大学计算机学院学生 * All rights reserved. * 文件名称: 分数...
  • fengzhenq
  • fengzhenq
  • 2012年03月25日 14:58
  • 375

第五周任务二之分数类

源程序: /* (程序头部注释开始) * 程序的版权和版本声明部分 * Copyright (c) 2011, 烟台大学计算机学院学生 * All rights reserved. * 文件名称:...
  • zongjia618
  • zongjia618
  • 2012年03月20日 21:53
  • 274

第五周任务二 分数

/* (程序头部注释开始) * 程序的版权和版本声明部分 * Copyright (c) 2011, 烟台大学计算机学院学生 * All rights reserved. * 文件名称:  ...
  • kamiming
  • kamiming
  • 2012年03月19日 18:43
  • 255

machine-learning第五周 上机作业

毫无疑问,难度越来越大了,首先我们得复习相关概念: 1、导数(变化率)与微分 (变化量) 2、数学里的 e 为什么叫做自然底数? 3、女神的文章必不可少 剩下的必须慢慢啃了。总之,本章要完全理解我觉得...
  • dialoal
  • dialoal
  • 2016年01月22日 15:32
  • 1677

第五周——分数类

#include #include using namespace std; class CFraction { private: int nume; // 分子...
  • u012313437
  • u012313437
  • 2014年03月27日 13:24
  • 522

第五周任务2:构造分数“类”

#include using namespace std; int gcd(int,int); class CFraction {private: int nume; // 分子 ...
  • yangjianhe1210
  • yangjianhe1210
  • 2012年03月21日 18:10
  • 243

Coursera—machine learning(Andrew Ng)第五周编程作业

sigmoidGradient.m function g = sigmoidGradient(z) %SIGMOIDGRADIENT returns the gradient of the si...
  • ccblogger
  • ccblogger
  • 2017年11月13日 16:25
  • 499

第五周 分数类

/* * 程序的版权和版本声明部分 * Copyright (c)2012, 烟台大学计算机学院学生 * All rightsreserved. * 文件名称: object.cpp * 作...
  • jingshichen2012
  • jingshichen2012
  • 2013年04月12日 18:13
  • 861

机器学习第5周!

教辅说这周的作业是史上最难
  • Clifnich
  • Clifnich
  • 2016年09月05日 17:47
  • 765

coursera机器学习课程第五周——课程笔记

第五周课程学习结束,一直都是边上课边做笔记,没有想过在这里再梳理一遍然后将笔记整理出来,考虑之后觉得这一步很重要,可以借此对学过的这一周所有知识做一个梳理,方便自己更好的理解这些知识,而且这些笔记放在...
  • ccblogger
  • ccblogger
  • 2017年11月13日 18:29
  • 200
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:第五周任务二分数类
举报原因:
原因补充:

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