Tạo lớp phanso, bắt buộc phải có:
Ø Thành
phần dữ liệu tuso và mauso
Ø Hàm
thiết lập với các tham số mặc định gán cho tuso và mauso
Ø Hàm
quy đồng mẫu 2 phân số
Ø Hàm
tối giản phân số
Ø Hàm
chồng toán tử chèn dòng << để xuất phân số ra màn hình
Ø Hàm
chồng toán tử + cộng 2 phân số
Tạo lớp honso kế thừa lớp phanso,
bắt buộc phải có:
Ø Thành
phần dữ liệu nguyen là phần nguyên của hỗn số
Ø Hàm
thiết lập với các tham số mặc định gán cho tuso, mauso và nguyen
Ø Hàm
chồng toán tử chèn dòng << để xuất hỗn số ra màn hình
Ø Hàm
chồng toán tử + cộng 2 hỗn số
Hàm
main tạo 2 phân số, 2 hỗn số. Xuất các phân số, hỗn số, tổng 2 phân số, tổng 2
hỗn số.#include<iostream.h>
int
usc(int a, int b)
{int
r=a%b;
{a=b;b=r;r=a%b;
}
return b;
}
class
phanso
{
protected:
int tuso,mauso;
public:
phanso(int a=0, int b=1)
{tuso=a;
mauso=b;
}
void quydong(phanso &b)
{b.tuso=b.tuso*mauso;
mauso=mauso*b.mauso;
tuso=tuso*b.mauso;
b.mauso=mauso;
}
void toigian()
{int u=usc(tuso,mauso);
tuso=tuso/u;
mauso=mauso/u;
}
friend ostream &operator << (ostream
&Out,phanso &P)
{P.toigian();
Out<<P.tuso<<"/"<<P.mauso<<"\n";
return Out;
}
phanso operator+(phanso b)
{quydong(b);
phanso c;
c.tuso=tuso+b.tuso;
c.mauso=mauso;
return c;
}
};
class
honso:public phanso
{
int nguyen;
void toigian()
{phanso::toigian();
int n=tuso/mauso;
nguyen+=n;
tuso=tuso%mauso;
}
public:
honso(int p=0,int q=0,int r=1):phanso(q,r)
{nguyen=p; }
honso operator+(honso b)
{quydong(b);
honso c;
c.tuso=tuso+b.tuso;
c.mauso=mauso;
c.nguyen=nguyen+b.nguyen;
return c;
}
friend ostream &operator << (ostream
&Out,honso &P)
{P.toigian();
Out<<P.nguyen<<"+"<<P.tuso<<"/"<<P.mauso<<"\n";
return Out;
}
};
void
main()
{phanso
x(12,18),y(15,25);
cout<<"Phan so thu nhat
:"<<x<<endl;
cout<<"Phan so thu hai
:"<<y<<endl;
cout<<"Tong 2 phan so
:"<<(x+y)<<endl;
honso a(3,6,8),b(2,10,16);
cout<<"Hon so thu nhat
:"<<a<<endl;
cout<<"Hon so thu hai
:"<<b<<endl;
cout<<"Tong 2 hon so
:"<<(a+b)<<endl;
}
Nhãn bài viết: Chia-se | Học tập