#include "iostream.h"
#include "conio.h"
class PhanSo
{
private:
int iTu;
int iMau;
public:
void Nhap();
void Xuat();
int KiemTra ();
PhanSo Cong (const PhanSo &);
PhanSo Tru (const PhanSo &);
PhanSo Nhan (const PhanSo & );
PhanSo Chia (const PhanSo &);
int SoSanh(const PhanSo &);
};
void PhanSo::Nhap()
{
if(this->iTu == this->iMau)
this->iTu=this->iMau=1;
}
void PhanSo::Xuat()
{
if(this->iTu == 0)
else
{
if((this->iTu != 0) && (this->iMau == 1))
else
{
if((this->iTu != 0) && (this->iMau != 0))
cout<<this
->iTu
<<"/"<<this
->iMau
<<"\n"; }
}
}
int RutGon(int a,int b)
{
while((a!=0)&&(b!=0))
{
if(a>=b)
a-=b;
else
b-=a;
}
if(a==0)
return b;
else
return a;
}
int PhanSo::KiemTra()
{
return(this->iMau != 0)?1:0;
}
PhanSo PhanSo::Cong(const PhanSo &a)
{
PhanSo c;
c.iTu = (this->iTu * a.iMau) + (this->iMau * a.iTu);
c.iMau = this->iMau * a.iMau;
int k =RutGon(c.iTu, c.iMau);
c.iTu=c.iTu/k;
c.iMau=c.iMau/k;
return c;
}
PhanSo PhanSo::Tru(const PhanSo &a)
{
PhanSo c;
c.iTu = (this->iTu * a.iMau) - (this->iMau * a.iTu);
c.iMau = this->iMau * a.iMau;
int k =RutGon(c.iTu, c.iMau);
c.iTu/=k;
c.iMau/=k;
return c;
}
PhanSo PhanSo::Nhan(const PhanSo &a)
{
PhanSo c;
c.iTu = this->iTu * a.iTu;
c.iMau = this->iMau * a.iMau;
int k =RutGon(c.iTu, c.iMau);
c.iTu=c.iTu/k;
c.iMau=c.iMau/k;
return c;
}
PhanSo PhanSo::Chia(const PhanSo &a)
{
PhanSo c;
c.iTu = this->iTu * a.iMau;
c.iMau = this->iMau * a.iTu;
int k =RutGon(c.iTu, c.iMau);
c.iTu/=k;
c.iMau/=k;
return c;
}
int PhanSo::SoSanh(const PhanSo &a)
{
int tong;
tong = (this->iTu * a.iMau) - (this->iMau * a.iTu);
if(tong <0)
return -1;
if(tong == 0)
return 0;
if(tong > 0)
return 1;
}
void main()
{
PhanSo a, b, c, d ,e, f;
lap_lai:
cout<<"\tNHAP PHAN SO THU 1: \n"; a.Nhap();
a.KiemTra();
int i = a.KiemTra();
if(i==1)
{
cout<<"\tNHAP PHAN SO THU 2: \n"; b.Nhap();
b.KiemTra();
int j = b.KiemTra();
if(j == 1)
{
cout<<"-------------KET QUA-------------\n"; cout<<"Tong hai phan so la: "; c = a.Cong(b);
c.Xuat();
cout<<"Hieu hai phan so la: "; d = a.Tru(b);
d.Xuat();
cout<<"Tich hai phan so la: "; e = a.Nhan(b);
e.Xuat();
cout<<"Thuong hai phan so la: "; f = a.Chia(b);
f.Xuat();
a.SoSanh(b);
int i = a.SoSanh(b);
if(i == -1 )
cout<<"Phan so thu nhat nho hon phan so thu hai"<<endl
; else
{
if(i == 0)
cout<<"Hai phan so bang nhau"<<endl
; else
cout<<"Phan so thu nhat lon hon phan so thu hai"<<endl
; }
}
else
{
cout<<"Ban nhap mau so sai, nhap lai\n"; goto lap_lai;
}
}
else
{
cout<<"Ban nhap mau so sai, nhap lai\n"; goto lap_lai;
}
}