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

📄 rational_number.cpp

📁 设计有理数类rational_number &#61656 数据成员: int numerator(分子) int denominator(分母) &#61656 成员函数 (
💻 CPP
字号:
//程序:rational_number.cpp
//功能:有理数类rational_number的类实现
#include"rational_number.hpp"
#include<assert.h>   
#include<iostream.h>
//最大公约数函数   
int gcd(int m,int n)
{   
  int r;   
  if(m==0&&n==0)return 0;   
  if(m<0)m=-m;   
  if(n<0)n=-n;   
  if(m==0)return n;   
  if(n==0)return m;   
  r=m%n;   
  while(r!=0){   
  m=n;   
  n=r;   
  r=m%n;}   
  return n;
}   
rational_number::rational_number()
{
	numerator=0;
    denominator=1;
}
rational_number::rational_number(int x,int y)
{
	numerator=x;
    denominator=y;
}
rational_number::rational_number(const rational_number& other)
{
    numerator=other.numerator;
	denominator=other.denominator;
}
//正规化函数   
void rational_number::normalize()
{
    assert(denominator!=0);   
    int d=gcd(numerator,denominator);   
    numerator=numerator/d;   
    denominator=denominator/d;
}
void rational_number::print()
{   
	rational_number::normalize();
	cout<<numerator<<"/"<<denominator<<"\n";
	return;
} 
rational_number rational_number::operator +(const rational_number& other)
{
	  rational_number temp;
	  if(denominator==other.denominator)
	     {temp.denominator=denominator;
	      temp.numerator=numerator+other.numerator;
		  return temp;}
	  else
		  {temp.denominator=denominator*other.denominator;
	       temp.numerator=numerator*other.denominator+other.numerator*denominator;
		   return temp;}
}
rational_number rational_number::operator -(const rational_number& other)
{
      rational_number temp;
      if(denominator==other.denominator)
	     {temp.denominator=denominator;
	      temp.numerator=numerator-other.numerator;
		  return temp;}
	  else
		  {temp.denominator=denominator*other.denominator;
	       temp.numerator=numerator*other.denominator-other.numerator*denominator;
		   return temp;}
}
rational_number rational_number::operator *(const rational_number& other)
{
      rational_number temp;
      temp.numerator=numerator*other.numerator;
	  temp.denominator=denominator*other.denominator;   
	  return temp;
}
rational_number rational_number::operator /(const rational_number& other)
{
      rational_number temp;
      temp.numerator=numerator*other.denominator;
	  temp.denominator=denominator*other.numerator;   
	  return temp;
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -