rational_number.cpp

来自「设计有理数类rational_number &#61656 数据成员: 」· C++ 代码 · 共 90 行

CPP
90
字号
//程序: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 + =
减小字号Ctrl + -
显示快捷键?