帮你提高C++能力哦

来源:百度知道 编辑:UC知道 时间:2024/06/13 16:19:14
e1 编写一个有理数类,实现有理数的加减乘除运算。要求调试通过,交源程序(.cpp)打印文本。
要求:
(1) 输入有理数可以选择小数形式(如1.26)或分子、分母形式(如 -3,4 表示 -3/4 ),有理数类的数据成员为分子和分母。重载构造函数,分别以小数形式和分数形式建立对象。运算结果也要求以两种形式输出;
(2) 数据成员以及一些类内处理的函数(如分数约简)等,声明为私有成员,不能在外部调用;
(3) 有理数的加减乘除以及输出,声明为公有成员,作为外部接口,可在类外调用(例如在主函数调用);
(4) 调用运算函数时,对象本身是一个有理数,另一个有理数作为参数,结果保存在原对象中;(成员函数)
(5) 学习有关运算符重载的有关内容,在上述的程序基础上,增加运算符重载的程序段以及一些类型转换函数。使形如c=a+b的有理数运算式子可以执行,即可实现两个有理数的四则运算,结果保存在c中。(友员函数)

#include <iostream> //简单问题随便写写,楼主多动手,别把机会给别人

using namespace std;

class Zrf_Ratio
{
friend ostream& operator << ( ostream&, const Zrf_Ratio& );
friend istream& operator >> ( istream&, const Zrf_Ratio& );
friend bool operator == ( const Zrf_Ratio&, const Zrf_Ratio& );
friend bool operator < ( const Zrf_Ratio&, const Zrf_Ratio& );
public:
Zrf_Ratio(){}
Zrf_Ratio( int _numerator, int _denominator ) : numerator( _numerator ), denominator( _denominator ) {}
int numerator, denominator;
};
ostream& operator << ( ostream& out, const Zrf_Ratio& t )
{
out << t.numerator << "/" << t.denominator;
return out;
}
istream& operator >> ( istream& in, Zrf_Ratio& t )
{
in >> t.numerator >> t.denominator;
return in;
}

bool operator < ( const Zrf_Ratio& t1, const Zrf_Ratio& t2 )
{
return