📄 rational.cpp
字号:
//有理数类(Rational)成员函数定义
#include <iostream>
using std::cout;
using std::endl;
//有理数类(Rational)的声明
#include "Rational.h"
//缺省构造函数
Rational::Rational(int n,int d) {
numerator=n;
denominator=d;
}
//有理数加
Rational Rational::addition(const Rational &r) {
Rational tmp;
tmp.numerator=r.denominator*numerator;
tmp.numerator+=r.numerator*denominator;
tmp.denominator=r.denominator*denominator;
tmp.reduction();
return tmp;
}
//有理数减
Rational Rational::subtraction(const Rational &r) {
Rational tmp;
tmp.numerator=r.denominator*numerator;
tmp.numerator-=r.numerator*denominator;
tmp.denominator=r.denominator*denominator;
tmp.reduction();
return tmp;
}
//有理数乘
Rational Rational::multiplication(const Rational &r) {
Rational tmp;
tmp.numerator=r.numerator*numerator;
tmp.denominator=r.denominator*denominator;
tmp.reduction();
return tmp;
}
//有理数除
Rational Rational::division(const Rational &r) {
Rational tmp;
tmp.numerator=r.denominator*numerator;
tmp.denominator=r.numerator*denominator;
tmp.reduction();
return tmp;
}
//以有理数格式输出
void Rational::printRational() {
if (denominator==0)
cout<<"\nDivision By Zero Error!!!\n";
else if (numerator==0)
cout<<0;
else
cout<<numerator<<'/'<<denominator;
}
//以双精度格式输出
void Rational::printRationalAsDouble() {
if (denominator==0)
cout<<"\nDivision By Zero Error!!!\n";
else
cout<<static_cast<double>(numerator)/denominator<<endl;
}
//化简有理数实用程序
void Rational::reduction() {
int largest;
largest=numerator>denominator?numerator:denominator;
int gcd=1; //最大公约数
for (int i=2;i<=largest;++i)
if (numerator%i==0&&denominator%i==0)
gcd=i;
numerator/=gcd;
denominator/=gcd;
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -