- 6
- 0
- 约6.17千字
- 约 7页
- 2017-01-03 发布于江苏
- 举报
#includeiostream
#includecstdio
#includecstring
#includestdlib.h
using namespace std;
class Rational
{
private:
long den,num;
void Standardize();
// long gcd(long m,long n);
public:
Rational(){den=0,num=1;}
Rational(long q,long p){den=q,num=p;}
Rational(double x);
friend void PrintMixedNumber(Rational x);
friend istream operator(istream istr,Rational x);
friend ostream operator(ostream ostr,Rational x);
Rational operator+(Rational x);
Rational operator-(Rational x);
Rational operator*(Rational x);
Rational operator/(Rational x);
Rational operator-();
int operator(Rational x);
int operator=(Rational x);
int operator=(Rational x);
int operator(Rational x);
int operator==(Rational x);
operator double();
int GetNum(){return num;}
int Getden(){return den;}
void reduce();
};
Rational::operator double()
{
return (double) den/num;
}
int Rational::operator(Rational x)
{
return (den*x.numnum*x.den);
}
int Rational::operator=(Rational x)
{
return (den*x.num=num*x.den);
}
int Rational::operator(Rational x)
{
return (den*x.numnum*x.den);
}
int Rational::operator=(Rational x)
{
return (den*x.num=num*x.den);
}
int Rational::operator==(Rational x)
{
return (den*x.num==num*x.den);
}
Rational Rational::operator+(Rational x)
{
Rational temp=Rational(num*x.den+x.num*den,num*x.num);
temp.reduce();
return temp;
}
Rational Rational::operator-(Rational x)
{
Rational temp=Rational(den*x.num-num*x.den,num*x.num);
temp.Standardize();
temp.reduce();
return temp;
}
Rational Rational::operator*(Rational x)
{
Rational temp=Rational(den*x.den,num*x.num);
temp.Standardize();
temp.reduce();
return temp;
}
Rational Rational::operator/(Rational x)
{
Rational temp=Rational(den*x.num,num*x.den);
temp.Standardize();
temp.reduce();
return temp;
}
Rational Rational::operator-()
{
Rational temp(-den,num);
return temp;
}
Ra
原创力文档

文档评论(0)