关闭

第五周任务2(分数的化简)

818人阅读 评论(1) 收藏 举报
/* (程序头部注释开始)
* 程序的版权和版本声明部分
* Copyright (c) 2011, 烟台大学计算机学院学生 
* All rights reserved.
* 文件名称:                              
* 作    者:   臧鹏               
* 完成日期:   2012   年  3 月   22  日
* 版 本 号:          

* 对任务及求解方法的描述部分
* 输入描述: 
* 问题描述: 
* 程序输出: 
* 程序头部的注释结束
*/


//CFriction.h



#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"的格式,如"5/2"的形式输入  
  
    void Simplify(int n);            //化简(使分子分母没有公因子)  
  
    void amplify(int n);            //放大n倍,如2/3放大5倍为10/3 

	int gcd(int x,int y);
  
    void output(int style=0);        //输出:以8/6为例,style为0时,输出8/6;CFraction(int nu=0,int de=1); //构造函数,初始

化用  
  
};  



//CFraction.cpp


#include"CFraction.h"
CFraction::CFraction(int nu,int de)  

{  

	nume = nu;  

	deno = de;  

}  

void CFraction::Set(int nu,int de) //置值,改变值时用  

{  
	if(de !=0)
	{
		nume = nu;
		deno = de;
	}
	else
	{
		cout<<"分母不能为零"<<endl;
		exit(0);
	}

	nume = nu;  

	deno = de;  

}  

void CFraction::input()                //按照"nu/de"的格式,如"5/2"的形式输入  

{  

	char c1;  

	cout<<"请按照“nu/de”的格式输入一个分数:";  

	while(1)   

	{   

		cin>>nume>>c1>>deno;   



		if(c1!='/')    
		{  

			cout<<"格式不正确,请重新输入"<<endl;   
		}  

		else  
		{  

			break;  
		}  

	}  





}  

void CFraction::Simplify(int n)        //化简(使分子分母没有公因子)  

{  

	n = gcd(nume,deno);

	nume = nume/n;
	deno = deno/n;

}  

int CFraction::gcd(int x,int y)
{
	int r;
	while( y!= 0)
	{
		r = x%y;
		x = y;
		y = r;
	}
	return x;
}

void CFraction::amplify(int n)        //放大n倍,如2/3放大5倍为10/3  

{  



	cout<<"请输入您想放大的倍数n:";  

	cin>>n;  

	nume*=n;  



}  

void CFraction::output(int style)        //输出:以8/6为例,style为0时,输出8/6;CFraction(int nu=0,int de=1); //构造函数,

初始化用  

{  
	switch(style)
	{

	case 0:
		{
			cout<<nume<<'/'<<deno<<endl;
			break;
		}
	case 1:
		{
			int m = gcd(nume,deno);
			cout<<(nume/m)<<'/'<<(deno/m)<<endl;
			break;
		}
	case 2:
		{
			int nu,de,g;
			g = gcd(nume,deno);
			nu = nume/g;
			de = deno/g;
			cout<<(nu/de)<<"("<<(nu%de)<<'/'<<deno<<")"<<endl;
			break;
		}
	default:
		{
			cout<<nume<<'/'<<deno<<endl;
		}
	}

}  



//main.cpp




#include"CFraction.h"
int main ()  
  
{  
  
    CFraction t1;  
  
   t1.Set(3,4); //置值,改变值时用  

	t1.output(1);

	t1.amplify(2);            //放大n倍,如2/3放大5倍为10/3 

	t1.output(0);
  
    t1.input();                //按照"nu/de"的格式,如"5/2"的形式输入  

	t1.output(2);

	t1.input();                //按照"nu/de"的格式,如"5/2"的形式输入  
  
    t1.Simplify(1);            //化简(使分子分母没有公因子)  
   
  
    t1.output(0);  
  
    cout<<endl;  
  
    system("PAUSE");  
  
    return 0; //输出:以8/6为例,style为0时,输出8/6;CFraction(int nu=0,int de=1); //构造函数,初始化用  
  
}  
  

0
0
查看评论
发表评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场

第五周 项目2 分数的表示以及化简

我的程序: /* * 程序的版权和版本声明部分: * Copyright (c) 2013, 烟台大学计算机学院 * All rights reserved. * 文件名称:test.cpp * ...
  • u012369072
  • u012369072
  • 2014-03-25 21:30
  • 374

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

第五周课程学习结束,一直都是边上课边做笔记,没有想过在这里再梳理一遍然后将笔记整理出来,考虑之后觉得这一步很重要,可以借此对学过的这一周所有知识做一个梳理,方便自己更好的理解这些知识,而且这些笔记放在...
  • ccblogger
  • ccblogger
  • 2017-11-13 18:29
  • 105

机器学习第5周!

教辅说这周的作业是史上最难
  • Clifnich
  • Clifnich
  • 2016-09-05 17:47
  • 625

machine-learning第五周 上机作业

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

第五周工作总结

本周已完成工作内容及总结 1.对于这周呢,其实主要就是完成关于javascript的内容,在开始两天就是对两道考核进行实现; 2.接着就是导师对两道考核题进行评判,然后就是对之前的...
  • Do_Wanted
  • Do_Wanted
  • 2015-08-23 09:12
  • 131

吴恩达机器学习笔记_第五周

神经网络——模型学习   Cost Function:从逻辑回归推广过来 计算最小值,无论用什么方法,都需要计算代价和偏导。   网络结构的前向传播和可向量化的特点:   BP算...
  • hunterlew
  • hunterlew
  • 2016-05-15 11:43
  • 2231

poj1930(无限循环小数化成分数)

/* translation: 给出一个无限循环小数,把该小数改写成以最简分数表示的形式 solution: 如果能够求出分数的表示形式的话,那么利用gcd就可以化简。但是想了好久没有想出怎么化成...
  • qq_29169749
  • qq_29169749
  • 2016-10-31 22:07
  • 492

Objective-C学习笔记八:类的定义二

我们继续来扩展分数类Fraction,两个分数相加,再不考虑它们是不是最简分数的情况下,有下面的公式成立:a/b+c/d=(ad+bc)/bd,那么我们在Fraction类中添加一个add方法,代码如...
  • gaowenhui2008
  • gaowenhui2008
  • 2015-09-01 15:53
  • 246

普林斯顿算法课第五周作业

Programming Assignment 5: Kd-Trees Write a data type to represent a set of points in the unit squar...
  • tumaolin94
  • tumaolin94
  • 2014-10-19 11:15
  • 1497

机器学习-学习笔记 学习总结归纳(第五周)

基本形式例如绪论中的判断好瓜的算法,就可以用一个线性的模型来表示,好瓜 = 色泽 * 0.3 + 0.2 * 根 + 0.2 * 响声 == 1, 例如这样的线性模型来进行表示。线性回归 我的理解就...
  • linglian0522
  • linglian0522
  • 2017-07-14 19:32
  • 182
    个人资料
    • 访问:309543次
    • 积分:4459
    • 等级:
    • 排名:第7780名
    • 原创:138篇
    • 转载:7篇
    • 译文:0篇
    • 评论:30条
    文章分类
    最新评论