c++定义一个分数类,实现加减乘除运算,计算结果要化为最简分数。

 我来答
eyan422
推荐于2016-12-01 · 超过32用户采纳过TA的回答
知道答主
回答量:212
采纳率:0%
帮助的人:0
展开全部
#include <iostream>

using namespace std;

class FenShu
{
public:
FenShu(int Fen_Zi = 1, int Fen_Mu = 1);
void add(const FenShu & a);
void show();
int Fenzi(){return FenZi;}
int Fenmu(){return FenMu;}
int GCD(int FenZi,int FenMu);

friend FenShu operator+(FenShu & a,const FenShu & b);
friend FenShu operator-(FenShu & a,const FenShu & b);
friend FenShu operator*(FenShu & a,const FenShu & b);
friend FenShu operator/(FenShu & a,const FenShu & b);
private:
int FenZi;
int FenMu;
};

FenShu::FenShu(int Fen_Zi, int Fen_Mu):FenZi(Fen_Zi),FenMu(Fen_Mu){}

void FenShu::add(const FenShu & a)
{
FenZi += a.FenZi;
FenMu += a.FenMu;
}

FenShu operator+(FenShu & a,const FenShu & b)
{
a.FenZi += b.FenZi;
a.FenMu += b.FenMu;
return a;
}

FenShu operator-(FenShu & a,const FenShu & b)
{
a.FenZi -= b.FenZi;
a.FenMu -= b.FenMu;
return a;
}

FenShu operator*(FenShu & a,const FenShu & b)
{
a.FenZi *= b.FenZi;
a.FenMu *= b.FenMu;
return a;
}

FenShu operator/(FenShu & a,const FenShu & b)
{
a.FenZi /= b.FenZi;
a.FenMu /= b.FenMu;
return a;
}
int FenShu::GCD(int FenZi,int FenMu)
{
while(FenMu != 0)
{
int temp = FenZi % FenMu;
FenZi = FenMu;
FenMu = temp;
}
return FenZi;
}

void FenShu::show()
{
int Zire = FenZi / GCD(FenZi,FenMu);
int Mure = FenMu / GCD(FenZi,FenMu);
cout << "the result is : " << Zire << " / " << Mure << "\n";
}

int main()
{
FenShu a(6,2);
a.show();

FenShu b;
b.show();

a.add(b);
a.show();

a + b;
a.show();

}
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式