#include<iostream>
#include<cmath>
using namespace std;
class fraction{
int above; //分子
int below; //分母
void reduction(); //约分
void mond(fraction&); //通分
public:
fraction(int a=0,int b=1)
{ above=a;
below=b;
} //构造函数
fraction add(fraction); //两分数相加
fraction sub(fraction); //本分数减去实参分数
fraction mul(fraction); //两分数相乘
fraction div(fraction); //本分数除以实参分数
fraction reciprocal(); //求倒数
bool equal(fraction); //等于运算
bool greaterThan(fraction); //大于运算
bool lessThan(fraction); //小于运算
void display(); //显示分数
void input(); //输入分数
};
void fraction::reduction() //约分先求最大公约数
{ int a,b,temp;
if(below<0)
{
below=-below;
above=-above;
}
a=abs(above); //abs 求绝对值函数
b=abs(below);
while(a%b)
{
temp=a; a=b; b=temp%b;
}
above/=b;
below/=b;
}
void fraction::mond(fraction& b) //通分
{
int temp;
reduction();
();
above*=;
*=below;
temp=below*;
below==temp;
}
fraction fraction::add(fraction b) //两分数相加
{
fraction temp;
mond(b); //通分
=above+;
=below;
(); //约分
return temp;
}
fraction fraction::sub(fraction b) //本分数减去实参分数
{
fraction temp;
mond(b); //通分
=above-;
=below;
(); //约分
return temp;
}
fraction fraction::mul(fraction b) //两分数相乘
{
fraction temp;
=above*
C 分数类 来自淘豆网m.daumloan.com转载请标明出处.