PhanSo
// doc phan so tu tep
#include<iostream>
#include<stdio.h>
#include<fstream>
using namespace std;
//Khai bao lop doi tuong
class PhanSo
{
private:
int tu, mau;
public:
PhanSo();
PhanSo operator+(PhanSo &ps2);
void rutGon();
//ham ban
friend istream& operator>>(istream &fin, PhanSo &ps);
friend ostream& operator<<(ostream &cout, PhanSo &ps);
};
//===Chuong trinh chinh===
int main()
{
//tao doi tuong phan so
PhanSo ps1, ps2, tong;
//tao doi tuong doc tep
ifstream finA("phanso1.txt");
ifstream finB("phanso2.txt");
//doc 2 phan so tu tep tuong tuong
finA>>ps1;
finB>>ps2;
cout<<"Chuong trinh tinh tong 2 phan so.\n\n";
//tinh tong 2 phan so
tong = ps1 + ps2;
//dua ra man hinh
cout<<"\nCac phan so khi chua duoc rut gon.";
cout<<"\nPhan so thu nhat: "; cout<<ps1;
cout<<"\nPhan so thu hai: "; cout<<ps2;
cout<<"\nTong 2 phan so khi chua rut gon: "; cout<<tong;
cout<<"\n\nCac phan so khi da duoc rut gon.";
cout<<"\nPhan so thu nhat: "; ps1.rutGon();
cout<<ps1;
cout<<"\nPhan so thu hai: "; ps2.rutGon();
cout<<ps2;
cout<<"\nTong 2 phan so: "; tong.rutGon();
cout<<tong;
cout<<endl;
return 0;
}
//===Dinh nghia ham===
PhanSo::PhanSo():tu(0), mau(1)
{
}
PhanSo PhanSo::operator+(PhanSo &ps2)
{
PhanSo tg;
if(mau == ps2.mau)
{
tg.tu = tu + ps2.tu;
tg.mau = mau;
}
else
{
tg.tu = (mau * ps2.tu) + (ps2.mau * tu);
tg.mau = mau * ps2.mau;
}
return tg;
}
void PhanSo::rutGon()
{
int a = tu;
int b = mau;
while(b!=0)
{
int r = a%b;
a = b;
b = r;
}
tu /= a;
mau /= a;
}
//ham ban
istream& operator>>(istream &fin, PhanSo &ps)
{
//doc tu va mau cua phan so tu tep
fin>>ps.tu;
fin>>ps.mau;
return fin;
}
ostream& operator<<(ostream &cout, PhanSo &ps)
{
cout<<ps.tu<<"/"<<ps.mau;
return cout;
}
//nhap tu ban phim
#include<iostream>
#include<stdio.h>
using namespace std;
//Khai bao lop doi tuong
class PhanSo
{
private:
int tu, mau;
public:
PhanSo operator+(PhanSo &ps2);
void rutGon();
//ham ban
friend istream& operator>>(istream &cin, PhanSo &ps);
friend ostream& operator<<(ostream &cout, PhanSo &ps);
};
//===Chuong trinh chinh===
int main()
{
//tao doi tuong phan so
PhanSo ps1, ps2, tong;
cout<<"Chuong trinh tinh tong 2 phan so.\n\n";
cout<<"Nhap vao phan so thu nhat: ";
cin>>ps1;
cout<<"\nNhap vao phan so thu hai: ";
cin>>ps2;
//tinh tong 2 phan so
tong = ps1 + ps2;
//dua ra man hinh
cout<<"\nPhan so thu nhat: "; cout<<ps1;
cout<<"\nPhan so thu hai: "; cout<<ps2;
cout<<"\nTong 2 phan so khi chua rut gon: "; cout<<tong;
cout<<"\nTong 2 phan so khi da rut gon: "; tong.rutGon();
cout<<tong;
cout<<endl;
return 0;
}
//===Dinh nghia ham===
PhanSo PhanSo::operator+(PhanSo &ps2)
{
PhanSo tg;
if(mau == ps2.mau)
{
tg.tu = tu + ps2.tu;
tg.mau = mau;
}
else
{
tg.tu = (mau * ps2.tu) + (ps2.mau * tu);
tg.mau = mau * ps2.mau;
}
return tg;
}
/**/
void PhanSo::rutGon()
{
int a = tu;
int b = mau;
while(b!=0)
{
int r = a%b;
a = b;
b = r;
}
tu /= a;
mau /= a;
}
//ham ban
istream& operator>>(istream &cin, PhanSo &ps)
{
cout<<"\nNhap vao tu so: "; cin>>ps.tu;
cout<<"Nhap vao mau so: "; cin>>ps.mau;
return cin;
}
ostream& operator<<(ostream &cout, PhanSo &ps)
{
cout<<ps.tu<<"/"<<ps.mau;
return cout;
}
#include <iostream>
#include <stdio.h>
using namespace std;
//khai bao doi tuong phan so
class PhanSo
{
private:
int tu, mau;
public:
void nhap();
void hien();
void rutGon();
PhanSo cong(PhanSo &ps2);
};
//===chuong trinh chinh===
int main()
{
//tao doi tuong phan so
PhanSo ps1, ps2, tong;
cout<<"Chuong trinh tinh tong 2 phan so.\n\n";
cout <<"Nhap vao phan so thu nhat: "; ps1.nhap();
cout <<"Nhap vao phan so thu hai: "; ps2.nhap();
//tinh tong 2 phan so
tong = ps1.cong(ps2);
//dua ra man hinh
cout<<"\nPhan so thu nhat la: "; ps1.hien();
cout<<"\nPhan so thu hai la: "; ps2.hien();
cout<<"\nTong 2 phan so khi chua rut gon la: "; tong.hien();
cout<<"\nTong 2 phan so khi da rut gon la: ";
tong.rutGon();
tong.hien();
cout<<endl;
return 0;
}
//===dinh nghia ham===
void PhanSo::nhap()
{
cout<<"\nNhap vao tu so: ";
cin>>tu;
cout<<"Nhap vao mau so: ";
cin>>mau;
if(mau == 0)
{
cout<<"Mau so phai khac 0 ! Vui long nhap lai.";
cout<<"\nNhap vao mau so: ";
cin>>mau;
}
}
void PhanSo::hien()
{
cout<<tu<<"/"<<mau;
}
void PhanSo::rutGon()
{
int a = tu;
int b = mau;
while(b != 0)
{
int tg = a%b;
a = b;
b = tg;
}
tu /= a;
mau /= a;
}
PhanSo PhanSo::cong(PhanSo &ps2)
{
PhanSo tg;
if(mau == ps2.mau)
{
tg.tu = tu + ps2.tu;
tg.mau = mau;
}
else
{
tg.tu = (tu * ps2.mau) + (ps2.tu * mau);
tg.mau = mau * ps2.mau;
}
return tg;
}
Last updated