📄 cai dat lop phan so.txt
字号:
#include <iostream.h>
#include <conio.h>
class phanso{
public:
phanso();// constructor mac dinh
phanso(int tu, int mau);// khi dung cac constructor chuyen doi thi ta khong dc dung cac constructor voi tham so mac dinh, bao loi
phanso(int );// constructor chuyen do kieu nguyen sang phan so
~phanso();
void set(int , int );
void get();
friend phanso operator+(phanso a, phanso b);
friend phanso operator-(phanso a, phanso b);
friend phanso operator*(phanso a, phanso b);
friend phanso operator/(phanso a, phanso b);
friend ostream & operator <<(ostream &, phanso);
friend istream &operator >>(istream &, phanso &);
private:
void quydong ( phanso &a, phanso &b);
int tu, mau;
};
int BSCNN ( int a, int b);
int USCLN ( int a, int b);
int BSCNN ( int a, int b)
{
int c;
int u;
u=USCLN(a,b);
return ((a*b)/u);
}
int USCLN( int a, int b)
{
a=abs(a);
b=abs(b);
if( a==0||b==0) return (a+b);
else
{
while (a!=b)
{
if ( a>b) a-=b;
else b-=a;
}
return a;
}
}
phanso::phanso()
{
set(1,1);
}
phanso::phanso(int tu, int mau)
{
set(tu, mau);
}
phanso::phanso(int a)
{
set(a,1);
}
phanso::~phanso()
{
// ko lam j ca
}
void phanso::set(int a , int b)
{
tu=a;
mau=b;
}
void phanso::get()
{
cout<<tu<<"/"<<mau<<endl;
}
void phanso::quydong(phanso &a, phanso &b)
{
int bs=BSCNN(a.mau, b.mau);
a.tu=a.tu*bs/a.mau ;
b.tu=b.tu*bs/b.mau;
a.mau=b.mau=bs;
}
phanso operator +(phanso a, phanso b)
{
phanso result;
if(a.mau==b.mau){
result.tu=a.tu+b.tu;
result.mau = a.mau;
}
else {
result.quydong(a,b);
result.tu=a.tu+b.tu;
result.mau=a.mau;
}
return result;
}
phanso operator - (phanso a, phanso b)
{
phanso result;
if( a.mau==b.mau){
result.tu=a.tu-b.tu;
result.mau= a.mau;
}
else {
result.quydong(a,b);
result.tu=a.tu-b.tu;
result.mau=a.mau;
}
return result;
}
phanso operator *(phanso a, phanso b)
{
phanso result;
result.tu=a.tu*b.tu;
result.mau=a.mau*b.mau;
return result;
}
phanso operator /(phanso a, phanso b)
{
phanso result;
result.tu=a.tu*b.mau;
result.mau=a.mau*b.tu;
return result;
}
ostream &operator << (ostream &out, phanso a)
{
out<<"\t"<<a.tu<<"/"<<a.mau<<endl;
return out;
}
istream &operator>>(istream &in, phanso &a)
{
cout<<"Tu so: ";
in>>a.tu;
cout <<"Mau so: ";
in>>a.mau;
return in;
}
int main ()
{
phanso a(3,2),b(4,5);
phanso c,d,e;
cout<<"a: "<<a<<endl;
cout<<"b: "<<b<<endl;
c=a+b;
cout<<"a: ";
c.get();
cout<<"a: "<<c<<endl;
d=a-5;
d.get();
d=b*3;
cout<<"d: "<<d<<endl;
cin>>e;
cout<<"e: "<<e<<endl;
e=d/a;
cout<<"e: "<<e<<endl;
getch();
return 0;
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -