⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 rational.cpp

📁 实数类 实数类 实数类 实数类 实数类 实数类 实数类 实数类 实数类 实数类 实数类 实数类 实数类 实数类 实数类 实数类 实数类 实数类
💻 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 + -