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