作业帮 > 综合 > 作业

C++编程,定义一个有理数类,

来源:学生作业帮 编辑:作业帮 分类:综合作业 时间:2024/05/28 16:57:29
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
#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:\program files\microsoft visual studio\myprojects\yu\wei\cheng.cpp(1) : fatal error C1083: Cannot open include file: 'RationalTest.h': No such file or directory 执行 cl.exe 时出错.