请定义并实现一个有理数类,能实现以下功能
请定义并实现一个有理数类,能实现以下功能1有理数的加法运算2一个优化函数,它的作用是使有理数约去公分母,也即是使保存的有理数分子和分母之间没有公约数(除去1以外)3一个将...
请定义并实现一个有理数类,能实现以下功能1 有理数的加法运算2 一个优化函数,它的作用是使有理数约去公分母,也即是使保存的有理数分子和分母之间没有公约数(除去1以外)3 一个将有理数转换为实数的函数4 构造函数5 有理数输出函数
编写主函数测试类的功能1 输入若干个有理数,输出每个有理数对应的实数2 求有理数平均值,并以有理数、实数两种形式输出 展开
编写主函数测试类的功能1 输入若干个有理数,输出每个有理数对应的实数2 求有理数平均值,并以有理数、实数两种形式输出 展开
1个回答
展开全部
你需要运算符重载么?还是用函数实现加减运算?我下面的程序没有用到运算符重载
rational.h //头文件
#ifndef _rational_h
#define _rational_h
#include <iostream>
using namespace std;
class Rational {
private:
int num;
int den;
void ReductFraction(); //将有理数化简成最简形式
public:
Rational(int a = 0, int b = 1) : num(a), den(b) { if (b == 0) cout << "分母为0!\n" ; }
void add(const Rational &r1, const Rational &r2);
void multi(const Rational &r1, const Rational &r2);
void display() { cout << num << '/' << den;}
};
#endif
rational.cpp //实现
#include "Rational.h“
//add函数将r1和r2相加,结果存于当前对象
void Rational::add(const Rational &r1, const Rational &r2) {
num = r1.num * r2.den + r2.num * r1.den;
den = r1.den * r2.den;
ReductFraction();
}
void Rational::multi(const Rational &r1, const Rational &r2)
{
rational.h //头文件
#ifndef _rational_h
#define _rational_h
#include <iostream>
using namespace std;
class Rational {
private:
int num;
int den;
void ReductFraction(); //将有理数化简成最简形式
public:
Rational(int a = 0, int b = 1) : num(a), den(b) { if (b == 0) cout << "分母为0!\n" ; }
void add(const Rational &r1, const Rational &r2);
void multi(const Rational &r1, const Rational &r2);
void display() { cout << num << '/' << den;}
};
#endif
rational.cpp //实现
#include "Rational.h“
//add函数将r1和r2相加,结果存于当前对象
void Rational::add(const Rational &r1, const Rational &r2) {
num = r1.num * r2.den + r2.num * r1.den;
den = r1.den * r2.den;
ReductFraction();
}
void Rational::multi(const Rational &r1, const Rational &r2)
{
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询