您的位置:首页 > 编程语言 > C语言/C++

C++程序设计(第2版)课后习题答案--第11章

2013-03-18 11:32 323 查看
11.9 定义分数类Rational......

View Code

#include<iostream.h>
#include<stdlib.h>
class Rational{
private:
int fm,fz;
int getZdgys(int a,int b);
public:
Rational(){
fm=1;fz=0;
}
Rational(int a,int b);
friend Rational Add(Rational r1,Rational r2);
friend Rational Sub(Rational r1,Rational r2);
void Print1();
void Print2();
};

Rational::Rational(int fm1,int fz1)
{
int t=getZdgys(fm1,fz1);
fm=fm1/t;
fz=fz1/t;
}

void Rational::Print1()
{
cout<<fz<<"/"<<fm<<endl;
}

void Rational::Print2()
{
cout<<(double(fz)/fm)<<endl;
}

int Rational::getZdgys(int a,int b)
{
int t;
while(t=a%b)
{
a=b;
b=t;
}
return b;
}

Rational Add(Rational r1,Rational r2)
{
int m= r1.fm*r2.fm;
int n= r1.fz*r2.fm+r1.fm*r2.fz;
Rational result(m,n);
return result;
}
Rational Sub(Rational r1,Rational r2)
{
int m= r1.fm*r2.fm;
int n= r1.fz*r2.fm-r1.fm*r2.fz;
Rational result(m,n);
return result;
}
void main()
{
Rational a(24,12);
Rational b(6,1);
Rational result;
result=Add(a,b);
result.Print1();

result=Sub(a,b);
result.Print1();
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: