class CFraction
{
private:
int nume; // 分子
int deno; // 分母
public:
//构造函数及运算符重载的函数声明
CFraction(){nume=1,deno=1;};
CFraction(int n,int d):nume(n),deno(d){}
CFraction operator+(CFraction &c);
CFraction operator -(CFraction &c);
CFraction operator *(CFraction &c);
CFraction operator /(CFraction &c);
int display1();
int display2();
};
#include "stdafx.h"
#include "fenshu.h"
using namespace std;
CFraction CFraction::operator +(CFraction &c)
{
CFraction d;
d.nume=nume*c.deno+deno*c.nume;
d.deno=deno*c.deno;
return d;
}
CFraction CFraction::operator -(CFraction &c)
{
CFraction d;
d.nume=nume*c.deno-deno*c.nume;
d.deno=deno*c.deno;
return d;
}
CFraction CFraction::operator *(CFraction &c)
{
CFraction d;
d.nume=nume*c.nume;
d.deno=deno*c.deno;
return d;
}
CFraction CFraction::operator /(CFraction &c)
{
CFraction d;
d.nume=nume*c.deno;
d.deno=deno*c.nume;
return d;
}
int CFraction::display1()
{
int m,n;
if(nume<0)
{
n=-nume,m=deno;
for(int i=2;n>=i;i++)
{
if(n%i==0 && m%i==0)
{
n/=i;
m/=i;
i--;
}
}
return -n;
}
else
{
n=nume,m=deno;
for(int i=2;n>=i;i++)
{
if(n%i==0 && m%i==0)
{
n/=i;
m/=i;
i--;
}
}
return n;
}
}
int CFraction::display2()
{
int m,n;
if(nume<0)
{
n=-nume,m=deno;
for(int i=2;n>=i;i++)
{
if(n%i==0 && m%i==0)
{
n/=i;
m/=i;
i--;
}
}
return m;
}
else
{
n=nume,m=deno;
for(int i=2;n>=i;i++)
{
if(n%i==0 && m%i==0)
{
n/=i;
m/=i;
i--;
}
}
return m;
}
}
class CFraction
{
private:
int nume; // 分子
int deno; // 分母
public:
//构造函数及运算符重载的函数声明
CFraction(){nume=1,deno=1;};
CFraction(int n,int d):nume(n),deno(d){}
CFraction operator+(CFraction &c);
CFraction operator -(CFraction &c);
CFraction operator *(CFraction &c);
CFraction operator /(CFraction &c);
int display1();
int display2();
};