C++编程,定义一个有理数类,要求:为有理数定义一个类.有理数是有限的数,表示成两个相除的整数.但是除法不会真正执行,它只是用于标识,比如1/2,2/3,15/32,65/4等.你应该将有理数表示成2个int值,

来源:学生作业帮助网 编辑:六六作业网 时间:2024/05/02 12:45:10
C++编程,定义一个有理数类,要求:为有理数定义一个类.有理数是有限的数,表示成两个相除的整数.但是除法不会真正执行,它只是用于标识,比如1/2,2/3,15/32,65/4等.你应该将有理数表示成2

C++编程,定义一个有理数类,要求:为有理数定义一个类.有理数是有限的数,表示成两个相除的整数.但是除法不会真正执行,它只是用于标识,比如1/2,2/3,15/32,65/4等.你应该将有理数表示成2个int值,
C++编程,定义一个有理数类,
要求:为有理数定义一个类.有理数是有限的数,表示成两个相除的整数.但是除法不会真正执行,它只是用于标识,比如1/2,2/3,15/32,65/4等.你应该将有理数表示成2个int值,分别称为numerator(分子)和denominator(分母).
您提供的构造函数应该根据int值对来构造对象,该构造函数应获取2个int参数.由于所有int值都同时是一个有理数(比如2/1或17/1),所以还应该提供接收单个int参数的构造函数.
提供成员函数add(加),sub(减),mul(乘),div(除),它们能返回一个有理数.提供一个less(小于)函数返回一个bool值.提供一个成员函数neg,它没有参数,返回的是调用对象的相反数.例如,s+t要写成s.add(b),s

C++编程,定义一个有理数类,要求:为有理数定义一个类.有理数是有限的数,表示成两个相除的整数.但是除法不会真正执行,它只是用于标识,比如1/2,2/3,15/32,65/4等.你应该将有理数表示成2个int值,
#include "RationalTest.h"
#include
using namespace std;
class Rational
{
private:
int numerator;//分子
int denominator;//分母
public:
Rational()
{
numerator = 0;
denominator = 0;
}
~Rational()
{
}
Rational(const Rational& rat)
{
numerator = rat.numerator;
denominator = rat.denominator;
}
Rational(int _numerator,int _denominator)
{
numerator = _numerator;
denominator = _denominator;
}
public:
int GetNumerator()
{
return this->numerator;
}
void SetNumerator(int _numerator)
{
this->numerator = _numerator;
}
int GetDenominator()
{
return this->denominator;
}
void SetDenominator(int _denominator)
{
this->denominator = _denominator;
}
public:
Rational Add(const Rational& rat)
{
Rational result;
result.numerator = this->numerator * rat.denominator + this->denominator * rat.numerator ;
result.denominator = this->denominator * rat.denominator;
if(result.denominator < 0)
{
result.numerator = -result.numerator;
result.denominator = -result.denominator;
}
return result;
}
Rational Sub(const Rational& rat)
{
Rational result;
result.numerator = this->numerator * rat.denominator - this->denominator * rat.numerator ;
result.denominator = this->denominator * rat.denominator;
if(result.denominator < 0)
{
result.numerator = -result.numerator;
result.denominator = -result.denominator;
}
return result;
}
Rational Mul(const Rational& rat)
{
Rational result;
result.numerator = this->numerator * rat.numerator ;
result.denominator = this->denominator * rat.denominator;
if(result.denominator < 0)
{
result.numerator = -result.numerator;
result.denominator = -result.denominator;
}
return result;
}
Rational Div(const Rational& rat)
{
Rational result;
result.numerator = this->numerator * rat.denominator ;
result.denominator = rat.numerator * this->denominator;
if(result.denominator < 0)
{
result.numerator = -result.numerator;
result.denominator = -result.denominator;
}
return result;
}
Rational Neg()
{
Rational result;
if(this->denominator < 0 )
{
result.numerator = -this->numerator;
result.denominator = -this->denominator;
}
else
{
return *this;
}
return result;
}
bool Less(const Rational& rat)
{
return (this->numerator * rat.denominator) < (rat.numerator * this->denominator);
}
bool Greater(const Rational& rat)
{
return !Less(rat);
}
bool Equal(const Rational& rat)
{
return (this->numerator * rat.denominator) == (rat.numerator * this->denominator);
}
void Output()
{
cout

C++编程,定义一个有理数类,要求:为有理数定义一个类.有理数是有限的数,表示成两个相除的整数.但是除法不会真正执行,它只是用于标识,比如1/2,2/3,15/32,65/4等.你应该将有理数表示成2个int值, c语言 定义为从2开始的递增有序偶数,现在要求你按照顺序每m个数求出一个平均值.编程输出该平均值序列.有一个长度为n(n C++编程:定义一个圆类要求属性为半径,操作为计算圆的周长和面积. 编程输入一个华氏温度,要求输出摄氏温度.公式为c=5/9(f-32) 定义一个类,分别求圆和球体的面积?只有一个要求要用java来编程 C语言编程:输出满足“一个偶数总能表示为两个素数之和.”的数,自己定义一个范围. 输入一个N*N矩阵,求该矩阵对角线元素之和.要求N用#define 进行定义C语言的编程 1.编程程序,实现计算有一个圆环面积,大圆小圆半径键盘输入.编程定义一个circle类,含有私有变量拜托 c语言程序设计编程题目:请 :编写完成对学生相关信息的要求:1.定义一个结构体类型student,其中包括三个成关于学生信息的编程 C语言编程问题,不定义函数我看不懂,每行代码后有注释给定一个最大载重量为m的卡车和n中食品,有食盐、白糖、大米等.已知第i种食品的最多拥有W[i]公斤,其商品价值为V[i]元/公斤,编程确定一 C语言编程:输入一个华氏温度,要求输出摄氏温度,公式为:c=5(F-32)/9,本人才接触C语言,什么都不太懂, 用C++编写,1.按下列要求编写程序(使用C++):①定义一个矩形类rect,要成员函数求有计算矩形周长和矩形面积的定义.②在主函数中定义一个长为10、宽为5的矩形对象,并输出该矩形对象的周长 国二C语言编程题:定义一个长度为10的数组,完成首尾交换,即a[0]a[9],a[1]a[8] java 中 “找不到符号”的错误程序要求:定义一个类Fact表示无符号有理数(分数),成员有分子(num)和分母(den)构造函数2个一组get方法一组set方法方法:-比较两个分数的大小,结果为boolen的 C语言编程题:定义一个5╳5的矩阵,求对角线上的元素之和.要求:1)5╳5的矩阵是一个整型二维数组.2)对角线上交叉的元素只加一次. 跟类的定义有关的.按下列要求编程:(1)定义一个描述矩形的类Rectangle,包括的数据成员有宽(width)和长(length);(2)计算矩形周长;(3)计算矩形面积;(4)改变矩形大小.通过实例验证其 定义并实现一个有理数类用C++编写 C语言编程,有关逆序数的程序输入一个整数,将它的逆序输出.要求定义并调用函数reverse(number),它的功能是返回number的逆序数.例如,reverse(12345)返回值是54321.