SlideShare uma empresa Scribd logo
1 de 22
Baixar para ler offline
 Bài Báo Cáo Thực Hành Môn Học : Lập Trình Hướng Đối Tượng C++ 
 Ngành CNTT - Trường CĐ Công Nghệ Thông Tin  Page 1
Giáo viên hướng dẫn : Nguyễn Đức Hiển
Sinh viên thực hiện : Nguyễn Tiến Hoài Nam
Lớp : 06I
 Bài Báo Cáo Thực Hành Môn Học : Lập Trình Hướng Đối Tượng C++ 
 Ngành CNTT - Trường CĐ Công Nghệ Thông Tin  Page 2
Câu 1:
void swap(int *a,int *b)
{ int c;
c=*a;
*a=*b;
*b=c;
}
void main()
{
clrscr();
int a,b,i,j,n;
int d[50];
cout<<"nso phan tu cua day la n=";
cin>>n;
for(i=1;i<=n;i++)
{
cout<<"nhap so d["<<i<<"]=";
cin>>d[i];
}
cout<<"day duoc sap sep tang dan :n";
for(i=1;i<=n;i++)
for(j=i+1;j<n+1;j++)
if(d[i]>d[j])
swap(&d[i],&d[j]);
for(i=1;i<=n;i++)
{
cout<<d[i]<<"t";
}
cout<<"nday duoc sap sep giam dan :n";
for(i=1;i<=n;i++)
for(j=i+1;j<n+1;j++)
if(d[i]<d[j])
swap(&d[i],&d[j]);
for(i=1;i<=n;i++)
{
cout<<d[i]<<"t";
}
getch();
}
Câu 2:
struct PhanSo
{
int TuSo;
int MauSo; };
 Bài Báo Cáo Thực Hành Môn Học : Lập Trình Hướng Đối Tượng C++ 
 Ngành CNTT - Trường CĐ Công Nghệ Thông Tin  Page 3
PhanSo operator + (PhanSo a ,PhanSo b);
PhanSo operator - (PhanSo a ,PhanSo b);
PhanSo operator * (PhanSo a ,PhanSo b);
PhanSo operator / (PhanSo a ,PhanSo b);
int operator > (PhanSo a ,PhanSo b);
int operator >=(PhanSo a ,PhanSo b);
int operator < (PhanSo a ,PhanSo b);
int operator <=(PhanSo a ,PhanSo b);
int operator ==(PhanSo a ,PhanSo b);
int operator !=(PhanSo a ,PhanSo b);
PhanSo RutGonPS (PhanSo a);
}
void main()
{
clrscr();
PhanSo a,b,c;
cout<<"Tu So a="; cin>>a.TuSo;
cout<<"MauSo a="; cin>>a.MauSo;
cout<<"Tu So b="; cin>>b.TuSo;
cout<<"MauSo b="; cin>>b.MauSo;
cout<<"na="<<a.TuSo<<"/"<<a.MauSo;
cout<<"nb="<<b.TuSo<<"/"<<b.MauSo;
c=a+b;
c=RutGonPS(c);
cout<<"na+b="<<c.TuSo <<"/"<<c.MauSo;
c=a-b;
c=RutGonPS(c);
cout<<"na-b="<<c.TuSo <<"/"<<c.MauSo;
c=a*b;
c=RutGonPS(c);
cout<<"na*b="<<c.TuSo <<"/"<<c.MauSo;
c=a/b;
c=RutGonPS(c);
cout<<"na/b="<<c.TuSo <<"/"<<c.MauSo;
if (a==b)
cout<<"nPS a bang PS b";
else cout<<"nPS b khac PS a";
if (a!=b)
cout<<"nPS a khac PS b";
else cout<<"nPS b bang PS a";
if (a>b)
 Bài Báo Cáo Thực Hành Môn Học : Lập Trình Hướng Đối Tượng C++ 
 Ngành CNTT - Trường CĐ Công Nghệ Thông Tin  Page 4
cout<<"nPS a lon hon PS b";
else if(b>a)
cout<<"nPS b lon hon PS a";
else cout<<"na=b";
if (a>=b)
cout<<"nPS a lon hon hoac bang PS b";
else cout<<"nPS b lon hon hoac bang PS a";
if (a<b)
cout<<"nPS a be hon PS b";
else if (b<a)
cout<<"nPS b be hon PS a";
else cout<<"nb=a";
if (a<=b)
cout<<"nPS a be hon hoac bang PS b";
else cout<<"nPS b be hon hoac bang PS a";
getch();
}
// Dinh Nghia Cac Ham
PhanSo operator + (PhanSo a ,PhanSo b)
{
PhanSo c;
c.TuSo=a.TuSo*b.MauSo+a.MauSo*b.TuSo;
c.MauSo=a.MauSo*b.MauSo;
return c;
}
PhanSo operator - (PhanSo a ,PhanSo b)
{
PhanSo c;
c.TuSo=a.TuSo*b.MauSo-a.MauSo*b.TuSo;
c.MauSo=a.MauSo*b.MauSo;
return c;
}
PhanSo operator * (PhanSo a ,PhanSo b)
{
PhanSo c;
c.TuSo=a.TuSo*b.TuSo;
c.MauSo=a.MauSo*b.MauSo;
return c;
}
PhanSo operator / (PhanSo a ,PhanSo b)
 Bài Báo Cáo Thực Hành Môn Học : Lập Trình Hướng Đối Tượng C++ 
 Ngành CNTT - Trường CĐ Công Nghệ Thông Tin  Page 5
{
PhanSo c;
c.TuSo=a.TuSo*b.MauSo;
c.MauSo=a.MauSo*b.TuSo;
return c;
}
int operator > (PhanSo a ,PhanSo b)
{
if(a.TuSo*b.MauSo>b.TuSo*a.MauSo)
return 1;
else
return 0;
}
int operator >= (PhanSo a ,PhanSo b)
{
if(a.TuSo*b.MauSo>=b.TuSo*a.MauSo)
return 1;
else
return 0;
}
int operator < (PhanSo a ,PhanSo b)
{
if(a.TuSo*b.MauSo<b.TuSo*a.MauSo)
return 1;
else
return 0;
}
int operator <= (PhanSo a ,PhanSo b)
{
if(a.TuSo*b.MauSo<=b.TuSo*a.MauSo)
return 1;
else
return 0;
}
int operator == (PhanSo a ,PhanSo b)
{
if(a.TuSo*b.MauSo==b.TuSo*a.MauSo)
return 1;
else
return 0;
}
int operator != (PhanSo a ,PhanSo b)
 Bài Báo Cáo Thực Hành Môn Học : Lập Trình Hướng Đối Tượng C++ 
 Ngành CNTT - Trường CĐ Công Nghệ Thông Tin  Page 6
{
if(a.TuSo*b.MauSo!=b.TuSo*a.MauSo)
return 1;
else
return 0;
}
PhanSo RutGonPS (PhanSo a)
{
int UCLN;
int n=abs(a.TuSo),m=abs(a.MauSo);
while (n != 0 && m != 0)
if (n>m)
n -= m;
else
m -= n;
if (n != 0)
UCLN= n;
else
UCLN= m;
a.TuSo=a.TuSo/UCLN;
a.MauSo=a.MauSo/UCLN;
return a;
}
Câu 3:
struct sophuc
{
double thuc;
double ao;
};
sophuc lapsophuc()
{
int x,y;
sophuc tam;
cout<<"nthuc:"<<endl;
cin>>x;
tam.thuc=x;
cout<<"nao:"<<endl;
cin>>y;
tam.ao=y;
return tam;
}
void display(sophuc a)
{
cout<<"("<<a.thuc<<","<<a.ao<<")"<<endl;
}
 Bài Báo Cáo Thực Hành Môn Học : Lập Trình Hướng Đối Tượng C++ 
 Ngành CNTT - Trường CĐ Công Nghệ Thông Tin  Page 7
sophuc operator + (sophuc a,sophuc b)
{
sophuc tam;
tam.thuc=a.thuc+b.thuc;
tam.ao=a.ao+b.ao;
return tam;
}
sophuc operator - (sophuc a,sophuc b)
{
sophuc tam;
tam.thuc=a.thuc-b.thuc;
tam.ao=a.ao-b.ao;
return tam;
}
sophuc operator * (sophuc a,sophuc b)
{
sophuc tam;
tam.thuc= (a.thuc*b.thuc)-(a.ao*b.ao);
tam.ao= (a.thuc*b.ao)+(b.thuc*a.ao);
return tam;
}
sophuc operator / (sophuc a,sophuc b)
{
sophuc tam;
if((b.thuc!=0.0)&&(b.ao!=0.0))
{ tam.thuc=
((a.thuc*b.thuc)+(a.ao*b.ao))/((b.thuc*b.thuc)+(b.ao*b.ao));
tam.ao= ((b.thuc*a.ao)-
(a.thuc*b.ao))/((b.thuc*b.thuc)+(b.ao*b.ao));
}
return tam;
}
int operator == (sophuc a,sophuc b)
{
return ((a.thuc==b.thuc)&&(a.ao==b.ao));
}
int operator != (sophuc a,sophuc b)
{
return ((a.thuc!=b.thuc)||(a.ao!=b.ao));
}
void main()
{
clrscr();
sophuc x,y,z,t,s,r;
 Bài Báo Cáo Thực Hành Môn Học : Lập Trình Hướng Đối Tượng C++ 
 Ngành CNTT - Trường CĐ Công Nghệ Thông Tin  Page 8
cout<<"nso phuc x:";
x=lapsophuc();
cout<<"nx";
display(x);
cout<<"nso phuc y:";
y=lapsophuc();
cout<<"ny";
display(y);
z=x+y;
cout<<"ncong hai so phuc:";
display(z);
t=x-y;
cout<<"nhieu hai so phuc:";
display(t);
s=x*y;
cout<<"ntich hai so phuc:";
display(s);
r=x/y;
cout<<"nthuong hai so phuc:";
display(r);
if(x==y)
{ cout<<"nhai so phuc bang nhau";}
else
{ cout<< "nhai so phuc khong bang nhau"; }
if(x!=y)
{ cout<<"nhai so phuc khac nhau";}
else
{ cout<<"nhai so phuc khong khac nhau";}
getch();
}
Câu 4:
class sinhvien
{
public:
char *ten;
float toan , ly ,hoa ,dtb;
void nhap();
void xuat();
friend void hoanvi(float *a,float *b);
};
void sinhvien::nhap()
{
cout<<"vui long nhap cac thong tin sau :n";
 Bài Báo Cáo Thực Hành Môn Học : Lập Trình Hướng Đối Tượng C++ 
 Ngành CNTT - Trường CĐ Công Nghệ Thông Tin  Page 9
cout<<"ten sinh vien :";
cin>>ten;
cout<<"ndiem toan :";
cin>>toan;
cout<<"ndiem ly :";
cin>>ly;
cout<<"ndiem hoa :";
cin>>hoa;
dtb=(toan+ly+hoa)/3;
}
void sinhvien::xuat()
{
cout<<"nten sinh vien :"<<ten;
cout<<"ndiem trung binh :"<<dtb<<"n";
}
void main()
{
clrscr();
int i,j;
sinhvien a[10];
for(i=0;i<=9;i++) //nhap thong tin 10 sinh vien
{
a[i].nhap();
}
for(i=0;i<=9;i++) //sap xep theo diem trung binh giam dan
for(j=i+1;j<=10;j++)
if((a[i].dtb)<(a[j].dtb))
{
float c;
char *tam;
c=a[i].dtb;
tam=a[i].ten;
a[i].dtb=a[j].dtb;
a[i].ten=a[j].ten;
a[j].dtb=c;
a[j].ten=tam;
}
cout<<"3 SV co diem trung binh cao nhat la : n";
for(i=0;i<=2;i++) //in ra man hinh 3 sinh vien co dtb cao nhat
a[i].xuat();
getch();
}
 Bài Báo Cáo Thực Hành Môn Học : Lập Trình Hướng Đối Tượng C++ 
 Ngành CNTT - Trường CĐ Công Nghệ Thông Tin  Page 10
Câu 5:
class hcnhat
{
private:
int chdai,chrong;
public:
void nhap();
int chuvi();
int dientich();
void xuat();
};
void hcnhat::nhap()
{
cout<<"nhap chieu dai :";
cin>>chdai;
cout<<"nhap chieu rong :";
cin>>chrong;
}
int hcnhat::chuvi()
{
return (chdai+chrong)*2;
}
int hcnhat::dientich()
{
return chdai*chrong;
}
void hcnhat::xuat()
{
cout<<"chieu dai la :"<<chdai;
cout<<"nchieu rong la :"<<chrong;
cout<<"nchu vi hcn la :"<<chuvi();
cout<<"ndien tich hcn la :"<<dientich();
}
void main()
{
clrscr();
hcnhat a;
a.nhap();
a.xuat();
getch();
}
 Bài Báo Cáo Thực Hành Môn Học : Lập Trình Hướng Đối Tượng C++ 
 Ngành CNTT - Trường CĐ Công Nghệ Thông Tin  Page 11
Câu 6:
class phanso
{
private:
int tuso, mauso;
public:
void nhap();
friend phanso rutgon(phanso p);
friend phanso cong(phanso p1,phanso p2);
friend phanso tru(phanso p1, phanso p2);
friend phanso nhan(phanso p1,phanso p2);
friend phanso chia(phanso p1,phanso p2);
void xuat();
};
void phanso::nhap()
{
phanso p1,p2;
cout<<"nhap tu so cua ps a :";
cin>>p1.tuso;
cout<<"nnhap mau so cua ps a :";
cin>>p1.mauso;
cout<<"nnhap tu so cua ps b :";
cin>>p2.tuso;
cout<<"nnhap mau so cua ps b :";
cin>>p2.mauso;
}
int ucln(int x,int y)
{
x=abs(x);y=abs(y);
if(x*y==0)
return 1;
while(x!=y)
if(x>y)
x-=y;
else
y-=x;
return x;
}
phanso rutgon(phanso p)
{
phanso q;
int x;
x=ucln(p.tuso,p.mauso);
q.tuso=p.tuso/x;
q.mauso=p.mauso/x;
return q;
}
 Bài Báo Cáo Thực Hành Môn Học : Lập Trình Hướng Đối Tượng C++ 
 Ngành CNTT - Trường CĐ Công Nghệ Thông Tin  Page 12
phanso cong(phanso p1,phanso p2)
{
p1.tuso=p1.tuso*(p2.mauso) + p2.tuso*(p1.mauso);
p1.mauso=p1.mauso*p2.mauso;
return rutgon(p1);
}
phanso tru(phanso p1,phanso p2)
{
p1.tuso=p1.tuso*p2.mauso - p2.tuso*p1.mauso;
p1.mauso=p1.mauso*p2.mauso;
return rutgon(p1);
}
phanso nhan(phanso p1,phanso p2)
{
p1.tuso=p1.tuso*p2.tuso;
p1.mauso=p1.mauso*p2.mauso;
return rutgon(p1);
}
phanso chia(phanso p1,phanso p2)
{
p1.tuso=p1.tuso*p2.mauso;
p1.mauso=p1.mauso*p2.tuso;
return rutgon(p1);
}
void phanso::xuat()
{
phanso p1,p2,c,t,n,ch;
c=cong(p1,p2);
t=tru(p1,p2);
n=nhan(p1,p2);
ch=chia(p1,p2);
cout<<"na+b="<<c.tuso<<"/"<<c.mauso;
cout<<"na-b="<<t.tuso<<"/"<<t.mauso;
cout<<"na*b="<<n.tuso<<"/"<<n.mauso;
cout<<"na : b="<<ch.tuso<<"/"<<ch.mauso;
}
void main()
{
clrscr();
phanso a;
a.nhap();
a.xuat();
getch();
}
 Bài Báo Cáo Thực Hành Môn Học : Lập Trình Hướng Đối Tượng C++ 
 Ngành CNTT - Trường CĐ Công Nghệ Thông Tin  Page 13
Câu 7:
class sophuc
{
private:
double thuc;
double ao;
public:
void nhap()
{
cout<<"nthuc=";
cin>>thuc;
cout<<"nao=";
cin>>ao;
}
void in(sophuc a)
{
cout<<"("<<a.thuc<<","<<a.ao<<")"<<endl;
}
sophuc operator + ( sophuc a)
{
sophuc tam;
tam.thuc=this->thuc+a.thuc;
tam.ao =this->ao+a.ao;
return tam;
}
sophuc operator - ( sophuc a)
{
sophuc tam;
tam.thuc=this->thuc-a.thuc;
tam.ao =this->ao-a.ao;
return tam;
}
sophuc operator * ( sophuc a)
{
sophuc tam;
tam.thuc= (this->thuc*a.thuc)-(this->ao*a.ao);
tam.ao= (this->thuc*a.ao)+(a.thuc*this->ao);
return tam;
}
sophuc operator / ( sophuc a)
{
sophuc tam;
if((a.thuc!=0.0)&&(a.ao!=0.0))
tam.thuc= ((this->thuc*a.thuc)+(this-
>ao*a.ao))/((a.thuc*a.thuc)+(a.ao*a.ao));
 Bài Báo Cáo Thực Hành Môn Học : Lập Trình Hướng Đối Tượng C++ 
 Ngành CNTT - Trường CĐ Công Nghệ Thông Tin  Page 14
tam.ao= ((a.thuc*this->ao)-(this-
>thuc*a.ao))/((a.thuc*a.thuc)+(a.ao*a.ao));
return tam;
}
int operator == (sophuc a)
{
return ((this->thuc==a.thuc)&&(this->ao==a.ao));
}
int operator != (sophuc a)
{
return ((this->thuc!=a.thuc)||(this->ao!=a.ao));
}
};
void main()
{
clrscr();
sophuc a,b,c;
cout<<"nsophuc a";
a.nhap();
cout<<"nsophuc b";
b.nhap();
c=a+b;
cout<<"na+b=" ; c.in(c);
c=a-b;
cout<<"na-b="; c.in(c);
c=a*b;
cout<<"na*b="; c.in(c);
c=a/b;
cout<<"na/b="; c.in(c);
if(a==b)
cout<<"nhai so phuc bang nhau";
else
cout<<"nhai so phuc khong bang nhau";
if(a!=b)
cout<<"nhai so phuc khac nhau";
else
cout<<"nhai so phuc khong khac nhau";
getch();
}
 Bài Báo Cáo Thực Hành Môn Học : Lập Trình Hướng Đối Tượng C++ 
 Ngành CNTT - Trường CĐ Công Nghệ Thông Tin  Page 15
Câu 8:
struct matran
{
double mt[20][20];
int n;
};
ostream& operator <<(ostream& os, const matran& x)
{
os<<setprecision(2)<<setiosflags(ios::showpoint);
for(int i=1;i<=x.n;++i)
{
os<<"n";
for(int j=1;j<=x.n;++j)
os<<setw(6)<<x.mt[i][j];
}
os<<"n";
return os;
}
istream& operator>>(istream& is,matran& x)
{
cout<<"cap ma tran vuong:";
is>>x.n;
cout<<"nhap cac phan tu :n";
for(int i=1;i<=x.n;++i)
for(int j=1;j<=x.n;++j)
{
cout<<"a["<<i<<"]["<<j<<"]=";
is>>x.mt[i][j];
}
return is;
}
matran operator +(matran a, matran b)
{ matran c;
for(int i=1;i<=a.n;++i)
for(int j= 1;j<=a.n;++j)
c.mt[i][j]= a.mt[i][j] + b.mt[i][j];
return c;
}
matran operator -(matran a,matran b)
{ matran c;
int i,j;
if(a.n!=b.n)
{
cout<<"nkhong thuc hien duoc phep tru vi 2 MT khong cung cap";
getch();
 Bài Báo Cáo Thực Hành Môn Học : Lập Trình Hướng Đối Tượng C++ 
 Ngành CNTT - Trường CĐ Công Nghệ Thông Tin  Page 16
return a;
}
else
for(i=1;i<=a.n;++i)
for(j= 1;j<=a.n;++j)
c.mt[i][j]= a.mt[i][j] - b.mt[i][j];
return c;
}
matran operator *(matran a, matran b)
{
if(a.n!=b.n)
{
cout<<"nkhong thuc hien duoc phep nhan vi 2 MT khong cung cap";
getch();
return a;
}
else
{
matran c;
int i,j,k;
for(i=1;i<=a.n;++i)
for(j=1;j<=a.n;++j)
{
c.mt[i][j]=0.0;
for(k=1;k<=a.n;++k)
c.mt[i][j]+=a.mt[i][k]*b.mt[k][i];
}
return c;
}
}
void main()
{
clrscr();
matran a,b,c,d,e;
int n,i,j;
cout<<"nnhap ma tran A";cin>>a;
cout<<"nnhap ma tran B";cin>>b;
c = a+b;
cout<<"nket qua A + B :";
for(i=1;i<=a.n;++i)
for(j=1;j<=a.n;++j)
cout<<"tc["<<i<<"]["<<j<<"]="<<c.mt[i][j];
d=a-b;
cout<<"nket qua A - B :";
for(i=1;i<=a.n;++i)
for(j=1;j<=a.n;++j)
cout<<"td["<<i<<"]["<<j<<"]="<<d.mt[i][j];
 Bài Báo Cáo Thực Hành Môn Học : Lập Trình Hướng Đối Tượng C++ 
 Ngành CNTT - Trường CĐ Công Nghệ Thông Tin  Page 17
e=a*b;
cout<<"nket qua A * B :";
for(i=1;i<=a.n;++i)
for(j=1;j<=a.n;++j)
cout<<"te["<<i<<"]["<<j<<"]="<<e.mt[i][j];
getch();
}
Câu 9:
class point
{
private:
int x,y; // hoanh do va tung do
public:
void nhap()
{
cout<< "nhoanh do va tung do cua diem:" ;
cin>>x>>y;
}
void xuat()
{
cout<<x<<","<<y;
}
double do_dai(point n)
{
return sqrt(pow(x-n.x,2)+pow(y-n.y,2));
}
};
void main()
{
clrscr();
point a,b;
double c;
cout<<"ntoa do diem a :";
a.nhap();
cout<<"ndiem a:";
a.xuat();
cout<<"ntoa do diem b:";
b.nhap();
cout<<"ndiem b:";
a.xuat();
c= a.do_dai(b);
cout<<" ndo dai giua hai diem:";
cout<<c;
 Bài Báo Cáo Thực Hành Môn Học : Lập Trình Hướng Đối Tượng C++ 
 Ngành CNTT - Trường CĐ Công Nghệ Thông Tin  Page 18
getch();
}
Câu 10:
class DIEM
{
int x,y;
public :
DIEM()
{
x=y=0;
}
DIEM(int x1,int y1)
{
x=x1;y=y1;
}
DIEM(DIEM &d)
{
this->x=d.x;
this->y=d.y;
}
int operator[](int i)
{
if(i==1)return x;
else return y;
}
};
class DUONG_TRON:public DIEM
{
int r,md;
public:
DUONG_TRON():DIEM()
{
r=md=0;
}
DUONG_TRON(DIEM d,int r1, int md1):DIEM(d)
{
r=r1;md=md1;
}
void ve()
{
setcolor(md);
circle((*this)[1],(this)[2],r);
}
int getmd()
 Bài Báo Cáo Thực Hành Môn Học : Lập Trình Hướng Đối Tượng C++ 
 Ngành CNTT - Trường CĐ Công Nghệ Thông Tin  Page 19
{
return md;
}
};
void ktdh()
{
int mh=0,mode=0;
initgraph(&mh,&mode,"");
}
void main()
{
ktdh();
DUONG_TRON dt(DIEM(100,100),80,MAGENTA);
dt.ve();
getch();
closegraph();
}
Câu 11:
class DIEM
{
private :
double x,y;
public :
DIEM()
{
x=y=0.0;
}
DIEM(double x1,double y1)
{
x=x1;y=y1;
}
void in()
{
cout<<"nx="<<x<<" y="<<y;
}
};
class HINH_TRON : public DIEM
{
private :
double r;
public :
HINH_TRON()
{
r=0.0;
}
 Bài Báo Cáo Thực Hành Môn Học : Lập Trình Hướng Đối Tượng C++ 
 Ngành CNTT - Trường CĐ Công Nghệ Thông Tin  Page 20
HINH_TRON(double x1,double y1,double r1):DIEM(x1,y1)
{
r=r1;
}
double getR()
{
return r;
}
};
void main()
{
HINH_TRON h(2.5,3.5,8);
clrscr();
cout<<"nHinh tron co tam :";
h.in();
cout<<"nCo ban kinh ="<<h.getR();
getch();
}
Câu 12:
class nguoi
{
private:
char *ten;
char *diachi;
int ns; // nam sinh
public:
nguoi()
{
ten=NULL;
diachi=NULL;
ns=0;
}
nguoi(char *ten1, char *diachi1, int ns1)
{
int n=strlen(ten1);
ten =new char[n+1];
strcpy(ten,ten1);
int m=strlen(diachi1);
diachi =new char[m+1];
strcpy(diachi,diachi1);
ns=ns1;
}
~nguoi()
{
if((ten!=NULL)&&(diachi!=NULL))
 Bài Báo Cáo Thực Hành Môn Học : Lập Trình Hướng Đối Tượng C++ 
 Ngành CNTT - Trường CĐ Công Nghệ Thông Tin  Page 21
{
delete ten;
delete diachi;
ns=0;
}
}
void xuat()
{
cout<<"nho va ten:"<<ten<<"nnam sinh:"<<ns<<"ndiachi:"<<diachi;
}
};
class mon_hoc
{
private:
char*mon;
int sotiet;
public:
mon_hoc()
{
mon=NULL;
sotiet=0;
}
mon_hoc(char*mon1,int sotiet1)
{
int n=strlen(mon1);
mon=new char[n+1];
strcpy(mon,mon1);
sotiet=sotiet1;
}
~mon_hoc()
{
if(mon!=NULL)
delete mon;
sotiet=0;
}
void xuat()
{
cout<<"nTen mon hoc:"<<mon<<"nSo tiet hoc:"<<sotiet;
}
};
class giao_vien:public nguoi
{
private:
mon_hoc mh;
public:
giao_vien():nguoi(),mh()
{}
 Bài Báo Cáo Thực Hành Môn Học : Lập Trình Hướng Đối Tượng C++ 
 Ngành CNTT - Trường CĐ Công Nghệ Thông Tin  Page 22
giao_vien(char*ten1,char*diachi1,int ns1,char*mon1,int
sotiet1):nguoi(ten1,diachi1,ns1),mh(mon1,sotiet1)
{}
~giao_vien()
{}
void xuat()
{
nguoi::xuat() ;
mh.xuat();
}
};
void main()
{
clrscr();
giao_vien a; // goi toi ham tao khong doi
giao_vien *b; //goi toi ham tao co doi
b= new giao_vien("nhu quynh","da nang",1988,"tin",60);
cout<<"ngoi ham xuat tu lop giao vien";
b->xuat();
cout<<"ngoi ham xuat tu lop nguoi";
b->nguoi::xuat();
getch();
delete b;
getch();
}
_____♠The End♠______

Mais conteúdo relacionado

Mais procurados

Tai lieu S7-1200.pdf
Tai lieu S7-1200.pdfTai lieu S7-1200.pdf
Tai lieu S7-1200.pdfMan_Ebook
 
Giáo trình Điều khiển số.pdf
Giáo trình Điều khiển số.pdfGiáo trình Điều khiển số.pdf
Giáo trình Điều khiển số.pdfMan_Ebook
 
đồ áN tốt nghiệp điều khiển và tự động hóa robot tránh vật cản
đồ áN tốt nghiệp điều khiển và tự động hóa robot tránh vật cảnđồ áN tốt nghiệp điều khiển và tự động hóa robot tránh vật cản
đồ áN tốt nghiệp điều khiển và tự động hóa robot tránh vật cảnhttps://www.facebook.com/garmentspace
 
Bai giang-vhdl
Bai giang-vhdlBai giang-vhdl
Bai giang-vhdlhoangclick
 
Spartan 3e-vietnamese
Spartan 3e-vietnameseSpartan 3e-vietnamese
Spartan 3e-vietnamesebuianhminh
 
Kiến trúc máy tính và hợp ngữ bài 02
Kiến trúc máy tính và hợp ngữ bài 02Kiến trúc máy tính và hợp ngữ bài 02
Kiến trúc máy tính và hợp ngữ bài 02Nhóc Nhóc
 
Bai07 bo nho
Bai07   bo nhoBai07   bo nho
Bai07 bo nhoVũ Sang
 
Giáo trình xử lý ảnh
Giáo trình xử lý ảnhGiáo trình xử lý ảnh
Giáo trình xử lý ảnhTùng Trần
 
Kiến trúc máy tính và hợp ngữ bài 03
Kiến trúc máy tính và hợp ngữ bài 03Kiến trúc máy tính và hợp ngữ bài 03
Kiến trúc máy tính và hợp ngữ bài 03Nhóc Nhóc
 
Phương pháp nhánh cận
Phương pháp nhánh cậnPhương pháp nhánh cận
Phương pháp nhánh cậnDiên Vĩ
 
mạch tổ hợp và mạch trình tự - Điện tử Đo lường
mạch tổ hợp và mạch trình tự - Điện tử Đo lườngmạch tổ hợp và mạch trình tự - Điện tử Đo lường
mạch tổ hợp và mạch trình tự - Điện tử Đo lườngChia sẻ tài liệu học tập
 
Chuong 04 mach logic
Chuong 04 mach logicChuong 04 mach logic
Chuong 04 mach logicAnh Ngoc Phan
 

Mais procurados (20)

Cac lenh trong matlab
Cac lenh trong matlabCac lenh trong matlab
Cac lenh trong matlab
 
Tai lieu S7-1200.pdf
Tai lieu S7-1200.pdfTai lieu S7-1200.pdf
Tai lieu S7-1200.pdf
 
Giáo trình Điều khiển số.pdf
Giáo trình Điều khiển số.pdfGiáo trình Điều khiển số.pdf
Giáo trình Điều khiển số.pdf
 
Chuong6 hoạt động ngắt
Chuong6 hoạt động ngắtChuong6 hoạt động ngắt
Chuong6 hoạt động ngắt
 
đồ áN tốt nghiệp điều khiển và tự động hóa robot tránh vật cản
đồ áN tốt nghiệp điều khiển và tự động hóa robot tránh vật cảnđồ áN tốt nghiệp điều khiển và tự động hóa robot tránh vật cản
đồ áN tốt nghiệp điều khiển và tự động hóa robot tránh vật cản
 
Bai giang-vhdl
Bai giang-vhdlBai giang-vhdl
Bai giang-vhdl
 
Spartan 3e-vietnamese
Spartan 3e-vietnameseSpartan 3e-vietnamese
Spartan 3e-vietnamese
 
Kiến trúc máy tính và hợp ngữ bài 02
Kiến trúc máy tính và hợp ngữ bài 02Kiến trúc máy tính và hợp ngữ bài 02
Kiến trúc máy tính và hợp ngữ bài 02
 
Bai07 bo nho
Bai07   bo nhoBai07   bo nho
Bai07 bo nho
 
Giáo trình xử lý ảnh
Giáo trình xử lý ảnhGiáo trình xử lý ảnh
Giáo trình xử lý ảnh
 
Chuong+1 2-3-4
Chuong+1 2-3-4Chuong+1 2-3-4
Chuong+1 2-3-4
 
Kiến trúc máy tính và hợp ngữ bài 03
Kiến trúc máy tính và hợp ngữ bài 03Kiến trúc máy tính và hợp ngữ bài 03
Kiến trúc máy tính và hợp ngữ bài 03
 
Đề tài: Thiết bị khóa cửa bằng bảo mật và thẻ chip RFID, HAY
Đề tài: Thiết bị khóa cửa bằng bảo mật và thẻ chip RFID, HAYĐề tài: Thiết bị khóa cửa bằng bảo mật và thẻ chip RFID, HAY
Đề tài: Thiết bị khóa cửa bằng bảo mật và thẻ chip RFID, HAY
 
Luận văn Thạc sĩ xây dựng ứng dụng chat trong android với firebase
Luận văn Thạc sĩ xây dựng ứng dụng chat trong android với firebaseLuận văn Thạc sĩ xây dựng ứng dụng chat trong android với firebase
Luận văn Thạc sĩ xây dựng ứng dụng chat trong android với firebase
 
Qua trinh qua do
Qua trinh qua doQua trinh qua do
Qua trinh qua do
 
Phương pháp nhánh cận
Phương pháp nhánh cậnPhương pháp nhánh cận
Phương pháp nhánh cận
 
mạch tổ hợp và mạch trình tự - Điện tử Đo lường
mạch tổ hợp và mạch trình tự - Điện tử Đo lườngmạch tổ hợp và mạch trình tự - Điện tử Đo lường
mạch tổ hợp và mạch trình tự - Điện tử Đo lường
 
Ktmt chuong 2
Ktmt chuong 2Ktmt chuong 2
Ktmt chuong 2
 
Đề tài: Nghiên cứu thiết kế mạch đo nhiệt độ dùng LM35, HAY
Đề tài: Nghiên cứu thiết kế mạch đo nhiệt độ dùng LM35, HAYĐề tài: Nghiên cứu thiết kế mạch đo nhiệt độ dùng LM35, HAY
Đề tài: Nghiên cứu thiết kế mạch đo nhiệt độ dùng LM35, HAY
 
Chuong 04 mach logic
Chuong 04 mach logicChuong 04 mach logic
Chuong 04 mach logic
 

Semelhante a Bai tap oop c++

Semelhante a Bai tap oop c++ (20)

Lap trinh c++ có lời giải 1
Lap trinh c++ có lời giải 1Lap trinh c++ có lời giải 1
Lap trinh c++ có lời giải 1
 
Ktlt lab full
Ktlt lab fullKtlt lab full
Ktlt lab full
 
Tut6 solution
Tut6 solutionTut6 solution
Tut6 solution
 
Tut4 solution
Tut4 solutionTut4 solution
Tut4 solution
 
Lập trình c++ có lời giải 2
Lập trình c++ có lời giải 2Lập trình c++ có lời giải 2
Lập trình c++ có lời giải 2
 
Bai de quy
Bai de quyBai de quy
Bai de quy
 
C10 generic algorithms
C10 generic algorithmsC10 generic algorithms
C10 generic algorithms
 
C10 generic algorithms
C10 generic algorithmsC10 generic algorithms
C10 generic algorithms
 
Tn ktlt
Tn ktltTn ktlt
Tn ktlt
 
giao trinh c++ Chuong1
giao trinh c++ Chuong1giao trinh c++ Chuong1
giao trinh c++ Chuong1
 
C8 object-oriented thinking
C8 object-oriented thinkingC8 object-oriented thinking
C8 object-oriented thinking
 
C8 object-oriented thinking
C8 object-oriented thinkingC8 object-oriented thinking
C8 object-oriented thinking
 
Lesson08
Lesson08Lesson08
Lesson08
 
Lập trình hướng đối tượng - p3
Lập trình hướng đối tượng - p3Lập trình hướng đối tượng - p3
Lập trình hướng đối tượng - p3
 
Cq lt hdt-th2011-02-tuan04
Cq lt hdt-th2011-02-tuan04Cq lt hdt-th2011-02-tuan04
Cq lt hdt-th2011-02-tuan04
 
Lesson08
Lesson08Lesson08
Lesson08
 
Cấu trúc dữ liệu cơ bản - Ôn tập
Cấu trúc dữ liệu cơ bản - Ôn tậpCấu trúc dữ liệu cơ bản - Ôn tập
Cấu trúc dữ liệu cơ bản - Ôn tập
 
Pointer
PointerPointer
Pointer
 
C đến C++ phần 1
C đến C++ phần 1C đến C++ phần 1
C đến C++ phần 1
 
Nmlt c13 con_tronangcao_in
Nmlt c13 con_tronangcao_inNmlt c13 con_tronangcao_in
Nmlt c13 con_tronangcao_in
 

Mais de Tiến Quang Phan (16)

Windows comunication foundation
Windows comunication foundationWindows comunication foundation
Windows comunication foundation
 
VBA for AutoCAD
VBA for AutoCADVBA for AutoCAD
VBA for AutoCAD
 
Mainboard
MainboardMainboard
Mainboard
 
Keyboard shortcuts for windows 8 pdf
Keyboard shortcuts for windows 8 pdfKeyboard shortcuts for windows 8 pdf
Keyboard shortcuts for windows 8 pdf
 
C9 templates
C9 templatesC9 templates
C9 templates
 
C7 class relationship
C7 class relationshipC7 class relationship
C7 class relationship
 
C5 classes and objects
C5 classes and objectsC5 classes and objects
C5 classes and objects
 
C4 data structures
C4 data structuresC4 data structures
C4 data structures
 
C3 functions and_library
C3 functions and_libraryC3 functions and_library
C3 functions and_library
 
C2 basics of_c_and_cpp
C2 basics of_c_and_cppC2 basics of_c_and_cpp
C2 basics of_c_and_cpp
 
C1 introduction
C1 introductionC1 introduction
C1 introduction
 
Ngon ngu lap trinh c&c++
Ngon ngu lap trinh c&c++Ngon ngu lap trinh c&c++
Ngon ngu lap trinh c&c++
 
Nang cao c++
Nang cao c++Nang cao c++
Nang cao c++
 
Giao trinh c can ban
Giao trinh c can banGiao trinh c can ban
Giao trinh c can ban
 
Con tro ham c++
Con tro ham c++Con tro ham c++
Con tro ham c++
 
Thu vien chuan c++
Thu vien chuan c++Thu vien chuan c++
Thu vien chuan c++
 

Bai tap oop c++

  • 1.  Bài Báo Cáo Thực Hành Môn Học : Lập Trình Hướng Đối Tượng C++   Ngành CNTT - Trường CĐ Công Nghệ Thông Tin  Page 1 Giáo viên hướng dẫn : Nguyễn Đức Hiển Sinh viên thực hiện : Nguyễn Tiến Hoài Nam Lớp : 06I
  • 2.  Bài Báo Cáo Thực Hành Môn Học : Lập Trình Hướng Đối Tượng C++   Ngành CNTT - Trường CĐ Công Nghệ Thông Tin  Page 2 Câu 1: void swap(int *a,int *b) { int c; c=*a; *a=*b; *b=c; } void main() { clrscr(); int a,b,i,j,n; int d[50]; cout<<"nso phan tu cua day la n="; cin>>n; for(i=1;i<=n;i++) { cout<<"nhap so d["<<i<<"]="; cin>>d[i]; } cout<<"day duoc sap sep tang dan :n"; for(i=1;i<=n;i++) for(j=i+1;j<n+1;j++) if(d[i]>d[j]) swap(&d[i],&d[j]); for(i=1;i<=n;i++) { cout<<d[i]<<"t"; } cout<<"nday duoc sap sep giam dan :n"; for(i=1;i<=n;i++) for(j=i+1;j<n+1;j++) if(d[i]<d[j]) swap(&d[i],&d[j]); for(i=1;i<=n;i++) { cout<<d[i]<<"t"; } getch(); } Câu 2: struct PhanSo { int TuSo; int MauSo; };
  • 3.  Bài Báo Cáo Thực Hành Môn Học : Lập Trình Hướng Đối Tượng C++   Ngành CNTT - Trường CĐ Công Nghệ Thông Tin  Page 3 PhanSo operator + (PhanSo a ,PhanSo b); PhanSo operator - (PhanSo a ,PhanSo b); PhanSo operator * (PhanSo a ,PhanSo b); PhanSo operator / (PhanSo a ,PhanSo b); int operator > (PhanSo a ,PhanSo b); int operator >=(PhanSo a ,PhanSo b); int operator < (PhanSo a ,PhanSo b); int operator <=(PhanSo a ,PhanSo b); int operator ==(PhanSo a ,PhanSo b); int operator !=(PhanSo a ,PhanSo b); PhanSo RutGonPS (PhanSo a); } void main() { clrscr(); PhanSo a,b,c; cout<<"Tu So a="; cin>>a.TuSo; cout<<"MauSo a="; cin>>a.MauSo; cout<<"Tu So b="; cin>>b.TuSo; cout<<"MauSo b="; cin>>b.MauSo; cout<<"na="<<a.TuSo<<"/"<<a.MauSo; cout<<"nb="<<b.TuSo<<"/"<<b.MauSo; c=a+b; c=RutGonPS(c); cout<<"na+b="<<c.TuSo <<"/"<<c.MauSo; c=a-b; c=RutGonPS(c); cout<<"na-b="<<c.TuSo <<"/"<<c.MauSo; c=a*b; c=RutGonPS(c); cout<<"na*b="<<c.TuSo <<"/"<<c.MauSo; c=a/b; c=RutGonPS(c); cout<<"na/b="<<c.TuSo <<"/"<<c.MauSo; if (a==b) cout<<"nPS a bang PS b"; else cout<<"nPS b khac PS a"; if (a!=b) cout<<"nPS a khac PS b"; else cout<<"nPS b bang PS a"; if (a>b)
  • 4.  Bài Báo Cáo Thực Hành Môn Học : Lập Trình Hướng Đối Tượng C++   Ngành CNTT - Trường CĐ Công Nghệ Thông Tin  Page 4 cout<<"nPS a lon hon PS b"; else if(b>a) cout<<"nPS b lon hon PS a"; else cout<<"na=b"; if (a>=b) cout<<"nPS a lon hon hoac bang PS b"; else cout<<"nPS b lon hon hoac bang PS a"; if (a<b) cout<<"nPS a be hon PS b"; else if (b<a) cout<<"nPS b be hon PS a"; else cout<<"nb=a"; if (a<=b) cout<<"nPS a be hon hoac bang PS b"; else cout<<"nPS b be hon hoac bang PS a"; getch(); } // Dinh Nghia Cac Ham PhanSo operator + (PhanSo a ,PhanSo b) { PhanSo c; c.TuSo=a.TuSo*b.MauSo+a.MauSo*b.TuSo; c.MauSo=a.MauSo*b.MauSo; return c; } PhanSo operator - (PhanSo a ,PhanSo b) { PhanSo c; c.TuSo=a.TuSo*b.MauSo-a.MauSo*b.TuSo; c.MauSo=a.MauSo*b.MauSo; return c; } PhanSo operator * (PhanSo a ,PhanSo b) { PhanSo c; c.TuSo=a.TuSo*b.TuSo; c.MauSo=a.MauSo*b.MauSo; return c; } PhanSo operator / (PhanSo a ,PhanSo b)
  • 5.  Bài Báo Cáo Thực Hành Môn Học : Lập Trình Hướng Đối Tượng C++   Ngành CNTT - Trường CĐ Công Nghệ Thông Tin  Page 5 { PhanSo c; c.TuSo=a.TuSo*b.MauSo; c.MauSo=a.MauSo*b.TuSo; return c; } int operator > (PhanSo a ,PhanSo b) { if(a.TuSo*b.MauSo>b.TuSo*a.MauSo) return 1; else return 0; } int operator >= (PhanSo a ,PhanSo b) { if(a.TuSo*b.MauSo>=b.TuSo*a.MauSo) return 1; else return 0; } int operator < (PhanSo a ,PhanSo b) { if(a.TuSo*b.MauSo<b.TuSo*a.MauSo) return 1; else return 0; } int operator <= (PhanSo a ,PhanSo b) { if(a.TuSo*b.MauSo<=b.TuSo*a.MauSo) return 1; else return 0; } int operator == (PhanSo a ,PhanSo b) { if(a.TuSo*b.MauSo==b.TuSo*a.MauSo) return 1; else return 0; } int operator != (PhanSo a ,PhanSo b)
  • 6.  Bài Báo Cáo Thực Hành Môn Học : Lập Trình Hướng Đối Tượng C++   Ngành CNTT - Trường CĐ Công Nghệ Thông Tin  Page 6 { if(a.TuSo*b.MauSo!=b.TuSo*a.MauSo) return 1; else return 0; } PhanSo RutGonPS (PhanSo a) { int UCLN; int n=abs(a.TuSo),m=abs(a.MauSo); while (n != 0 && m != 0) if (n>m) n -= m; else m -= n; if (n != 0) UCLN= n; else UCLN= m; a.TuSo=a.TuSo/UCLN; a.MauSo=a.MauSo/UCLN; return a; } Câu 3: struct sophuc { double thuc; double ao; }; sophuc lapsophuc() { int x,y; sophuc tam; cout<<"nthuc:"<<endl; cin>>x; tam.thuc=x; cout<<"nao:"<<endl; cin>>y; tam.ao=y; return tam; } void display(sophuc a) { cout<<"("<<a.thuc<<","<<a.ao<<")"<<endl; }
  • 7.  Bài Báo Cáo Thực Hành Môn Học : Lập Trình Hướng Đối Tượng C++   Ngành CNTT - Trường CĐ Công Nghệ Thông Tin  Page 7 sophuc operator + (sophuc a,sophuc b) { sophuc tam; tam.thuc=a.thuc+b.thuc; tam.ao=a.ao+b.ao; return tam; } sophuc operator - (sophuc a,sophuc b) { sophuc tam; tam.thuc=a.thuc-b.thuc; tam.ao=a.ao-b.ao; return tam; } sophuc operator * (sophuc a,sophuc b) { sophuc tam; tam.thuc= (a.thuc*b.thuc)-(a.ao*b.ao); tam.ao= (a.thuc*b.ao)+(b.thuc*a.ao); return tam; } sophuc operator / (sophuc a,sophuc b) { sophuc tam; if((b.thuc!=0.0)&&(b.ao!=0.0)) { tam.thuc= ((a.thuc*b.thuc)+(a.ao*b.ao))/((b.thuc*b.thuc)+(b.ao*b.ao)); tam.ao= ((b.thuc*a.ao)- (a.thuc*b.ao))/((b.thuc*b.thuc)+(b.ao*b.ao)); } return tam; } int operator == (sophuc a,sophuc b) { return ((a.thuc==b.thuc)&&(a.ao==b.ao)); } int operator != (sophuc a,sophuc b) { return ((a.thuc!=b.thuc)||(a.ao!=b.ao)); } void main() { clrscr(); sophuc x,y,z,t,s,r;
  • 8.  Bài Báo Cáo Thực Hành Môn Học : Lập Trình Hướng Đối Tượng C++   Ngành CNTT - Trường CĐ Công Nghệ Thông Tin  Page 8 cout<<"nso phuc x:"; x=lapsophuc(); cout<<"nx"; display(x); cout<<"nso phuc y:"; y=lapsophuc(); cout<<"ny"; display(y); z=x+y; cout<<"ncong hai so phuc:"; display(z); t=x-y; cout<<"nhieu hai so phuc:"; display(t); s=x*y; cout<<"ntich hai so phuc:"; display(s); r=x/y; cout<<"nthuong hai so phuc:"; display(r); if(x==y) { cout<<"nhai so phuc bang nhau";} else { cout<< "nhai so phuc khong bang nhau"; } if(x!=y) { cout<<"nhai so phuc khac nhau";} else { cout<<"nhai so phuc khong khac nhau";} getch(); } Câu 4: class sinhvien { public: char *ten; float toan , ly ,hoa ,dtb; void nhap(); void xuat(); friend void hoanvi(float *a,float *b); }; void sinhvien::nhap() { cout<<"vui long nhap cac thong tin sau :n";
  • 9.  Bài Báo Cáo Thực Hành Môn Học : Lập Trình Hướng Đối Tượng C++   Ngành CNTT - Trường CĐ Công Nghệ Thông Tin  Page 9 cout<<"ten sinh vien :"; cin>>ten; cout<<"ndiem toan :"; cin>>toan; cout<<"ndiem ly :"; cin>>ly; cout<<"ndiem hoa :"; cin>>hoa; dtb=(toan+ly+hoa)/3; } void sinhvien::xuat() { cout<<"nten sinh vien :"<<ten; cout<<"ndiem trung binh :"<<dtb<<"n"; } void main() { clrscr(); int i,j; sinhvien a[10]; for(i=0;i<=9;i++) //nhap thong tin 10 sinh vien { a[i].nhap(); } for(i=0;i<=9;i++) //sap xep theo diem trung binh giam dan for(j=i+1;j<=10;j++) if((a[i].dtb)<(a[j].dtb)) { float c; char *tam; c=a[i].dtb; tam=a[i].ten; a[i].dtb=a[j].dtb; a[i].ten=a[j].ten; a[j].dtb=c; a[j].ten=tam; } cout<<"3 SV co diem trung binh cao nhat la : n"; for(i=0;i<=2;i++) //in ra man hinh 3 sinh vien co dtb cao nhat a[i].xuat(); getch(); }
  • 10.  Bài Báo Cáo Thực Hành Môn Học : Lập Trình Hướng Đối Tượng C++   Ngành CNTT - Trường CĐ Công Nghệ Thông Tin  Page 10 Câu 5: class hcnhat { private: int chdai,chrong; public: void nhap(); int chuvi(); int dientich(); void xuat(); }; void hcnhat::nhap() { cout<<"nhap chieu dai :"; cin>>chdai; cout<<"nhap chieu rong :"; cin>>chrong; } int hcnhat::chuvi() { return (chdai+chrong)*2; } int hcnhat::dientich() { return chdai*chrong; } void hcnhat::xuat() { cout<<"chieu dai la :"<<chdai; cout<<"nchieu rong la :"<<chrong; cout<<"nchu vi hcn la :"<<chuvi(); cout<<"ndien tich hcn la :"<<dientich(); } void main() { clrscr(); hcnhat a; a.nhap(); a.xuat(); getch(); }
  • 11.  Bài Báo Cáo Thực Hành Môn Học : Lập Trình Hướng Đối Tượng C++   Ngành CNTT - Trường CĐ Công Nghệ Thông Tin  Page 11 Câu 6: class phanso { private: int tuso, mauso; public: void nhap(); friend phanso rutgon(phanso p); friend phanso cong(phanso p1,phanso p2); friend phanso tru(phanso p1, phanso p2); friend phanso nhan(phanso p1,phanso p2); friend phanso chia(phanso p1,phanso p2); void xuat(); }; void phanso::nhap() { phanso p1,p2; cout<<"nhap tu so cua ps a :"; cin>>p1.tuso; cout<<"nnhap mau so cua ps a :"; cin>>p1.mauso; cout<<"nnhap tu so cua ps b :"; cin>>p2.tuso; cout<<"nnhap mau so cua ps b :"; cin>>p2.mauso; } int ucln(int x,int y) { x=abs(x);y=abs(y); if(x*y==0) return 1; while(x!=y) if(x>y) x-=y; else y-=x; return x; } phanso rutgon(phanso p) { phanso q; int x; x=ucln(p.tuso,p.mauso); q.tuso=p.tuso/x; q.mauso=p.mauso/x; return q; }
  • 12.  Bài Báo Cáo Thực Hành Môn Học : Lập Trình Hướng Đối Tượng C++   Ngành CNTT - Trường CĐ Công Nghệ Thông Tin  Page 12 phanso cong(phanso p1,phanso p2) { p1.tuso=p1.tuso*(p2.mauso) + p2.tuso*(p1.mauso); p1.mauso=p1.mauso*p2.mauso; return rutgon(p1); } phanso tru(phanso p1,phanso p2) { p1.tuso=p1.tuso*p2.mauso - p2.tuso*p1.mauso; p1.mauso=p1.mauso*p2.mauso; return rutgon(p1); } phanso nhan(phanso p1,phanso p2) { p1.tuso=p1.tuso*p2.tuso; p1.mauso=p1.mauso*p2.mauso; return rutgon(p1); } phanso chia(phanso p1,phanso p2) { p1.tuso=p1.tuso*p2.mauso; p1.mauso=p1.mauso*p2.tuso; return rutgon(p1); } void phanso::xuat() { phanso p1,p2,c,t,n,ch; c=cong(p1,p2); t=tru(p1,p2); n=nhan(p1,p2); ch=chia(p1,p2); cout<<"na+b="<<c.tuso<<"/"<<c.mauso; cout<<"na-b="<<t.tuso<<"/"<<t.mauso; cout<<"na*b="<<n.tuso<<"/"<<n.mauso; cout<<"na : b="<<ch.tuso<<"/"<<ch.mauso; } void main() { clrscr(); phanso a; a.nhap(); a.xuat(); getch(); }
  • 13.  Bài Báo Cáo Thực Hành Môn Học : Lập Trình Hướng Đối Tượng C++   Ngành CNTT - Trường CĐ Công Nghệ Thông Tin  Page 13 Câu 7: class sophuc { private: double thuc; double ao; public: void nhap() { cout<<"nthuc="; cin>>thuc; cout<<"nao="; cin>>ao; } void in(sophuc a) { cout<<"("<<a.thuc<<","<<a.ao<<")"<<endl; } sophuc operator + ( sophuc a) { sophuc tam; tam.thuc=this->thuc+a.thuc; tam.ao =this->ao+a.ao; return tam; } sophuc operator - ( sophuc a) { sophuc tam; tam.thuc=this->thuc-a.thuc; tam.ao =this->ao-a.ao; return tam; } sophuc operator * ( sophuc a) { sophuc tam; tam.thuc= (this->thuc*a.thuc)-(this->ao*a.ao); tam.ao= (this->thuc*a.ao)+(a.thuc*this->ao); return tam; } sophuc operator / ( sophuc a) { sophuc tam; if((a.thuc!=0.0)&&(a.ao!=0.0)) tam.thuc= ((this->thuc*a.thuc)+(this- >ao*a.ao))/((a.thuc*a.thuc)+(a.ao*a.ao));
  • 14.  Bài Báo Cáo Thực Hành Môn Học : Lập Trình Hướng Đối Tượng C++   Ngành CNTT - Trường CĐ Công Nghệ Thông Tin  Page 14 tam.ao= ((a.thuc*this->ao)-(this- >thuc*a.ao))/((a.thuc*a.thuc)+(a.ao*a.ao)); return tam; } int operator == (sophuc a) { return ((this->thuc==a.thuc)&&(this->ao==a.ao)); } int operator != (sophuc a) { return ((this->thuc!=a.thuc)||(this->ao!=a.ao)); } }; void main() { clrscr(); sophuc a,b,c; cout<<"nsophuc a"; a.nhap(); cout<<"nsophuc b"; b.nhap(); c=a+b; cout<<"na+b=" ; c.in(c); c=a-b; cout<<"na-b="; c.in(c); c=a*b; cout<<"na*b="; c.in(c); c=a/b; cout<<"na/b="; c.in(c); if(a==b) cout<<"nhai so phuc bang nhau"; else cout<<"nhai so phuc khong bang nhau"; if(a!=b) cout<<"nhai so phuc khac nhau"; else cout<<"nhai so phuc khong khac nhau"; getch(); }
  • 15.  Bài Báo Cáo Thực Hành Môn Học : Lập Trình Hướng Đối Tượng C++   Ngành CNTT - Trường CĐ Công Nghệ Thông Tin  Page 15 Câu 8: struct matran { double mt[20][20]; int n; }; ostream& operator <<(ostream& os, const matran& x) { os<<setprecision(2)<<setiosflags(ios::showpoint); for(int i=1;i<=x.n;++i) { os<<"n"; for(int j=1;j<=x.n;++j) os<<setw(6)<<x.mt[i][j]; } os<<"n"; return os; } istream& operator>>(istream& is,matran& x) { cout<<"cap ma tran vuong:"; is>>x.n; cout<<"nhap cac phan tu :n"; for(int i=1;i<=x.n;++i) for(int j=1;j<=x.n;++j) { cout<<"a["<<i<<"]["<<j<<"]="; is>>x.mt[i][j]; } return is; } matran operator +(matran a, matran b) { matran c; for(int i=1;i<=a.n;++i) for(int j= 1;j<=a.n;++j) c.mt[i][j]= a.mt[i][j] + b.mt[i][j]; return c; } matran operator -(matran a,matran b) { matran c; int i,j; if(a.n!=b.n) { cout<<"nkhong thuc hien duoc phep tru vi 2 MT khong cung cap"; getch();
  • 16.  Bài Báo Cáo Thực Hành Môn Học : Lập Trình Hướng Đối Tượng C++   Ngành CNTT - Trường CĐ Công Nghệ Thông Tin  Page 16 return a; } else for(i=1;i<=a.n;++i) for(j= 1;j<=a.n;++j) c.mt[i][j]= a.mt[i][j] - b.mt[i][j]; return c; } matran operator *(matran a, matran b) { if(a.n!=b.n) { cout<<"nkhong thuc hien duoc phep nhan vi 2 MT khong cung cap"; getch(); return a; } else { matran c; int i,j,k; for(i=1;i<=a.n;++i) for(j=1;j<=a.n;++j) { c.mt[i][j]=0.0; for(k=1;k<=a.n;++k) c.mt[i][j]+=a.mt[i][k]*b.mt[k][i]; } return c; } } void main() { clrscr(); matran a,b,c,d,e; int n,i,j; cout<<"nnhap ma tran A";cin>>a; cout<<"nnhap ma tran B";cin>>b; c = a+b; cout<<"nket qua A + B :"; for(i=1;i<=a.n;++i) for(j=1;j<=a.n;++j) cout<<"tc["<<i<<"]["<<j<<"]="<<c.mt[i][j]; d=a-b; cout<<"nket qua A - B :"; for(i=1;i<=a.n;++i) for(j=1;j<=a.n;++j) cout<<"td["<<i<<"]["<<j<<"]="<<d.mt[i][j];
  • 17.  Bài Báo Cáo Thực Hành Môn Học : Lập Trình Hướng Đối Tượng C++   Ngành CNTT - Trường CĐ Công Nghệ Thông Tin  Page 17 e=a*b; cout<<"nket qua A * B :"; for(i=1;i<=a.n;++i) for(j=1;j<=a.n;++j) cout<<"te["<<i<<"]["<<j<<"]="<<e.mt[i][j]; getch(); } Câu 9: class point { private: int x,y; // hoanh do va tung do public: void nhap() { cout<< "nhoanh do va tung do cua diem:" ; cin>>x>>y; } void xuat() { cout<<x<<","<<y; } double do_dai(point n) { return sqrt(pow(x-n.x,2)+pow(y-n.y,2)); } }; void main() { clrscr(); point a,b; double c; cout<<"ntoa do diem a :"; a.nhap(); cout<<"ndiem a:"; a.xuat(); cout<<"ntoa do diem b:"; b.nhap(); cout<<"ndiem b:"; a.xuat(); c= a.do_dai(b); cout<<" ndo dai giua hai diem:"; cout<<c;
  • 18.  Bài Báo Cáo Thực Hành Môn Học : Lập Trình Hướng Đối Tượng C++   Ngành CNTT - Trường CĐ Công Nghệ Thông Tin  Page 18 getch(); } Câu 10: class DIEM { int x,y; public : DIEM() { x=y=0; } DIEM(int x1,int y1) { x=x1;y=y1; } DIEM(DIEM &d) { this->x=d.x; this->y=d.y; } int operator[](int i) { if(i==1)return x; else return y; } }; class DUONG_TRON:public DIEM { int r,md; public: DUONG_TRON():DIEM() { r=md=0; } DUONG_TRON(DIEM d,int r1, int md1):DIEM(d) { r=r1;md=md1; } void ve() { setcolor(md); circle((*this)[1],(this)[2],r); } int getmd()
  • 19.  Bài Báo Cáo Thực Hành Môn Học : Lập Trình Hướng Đối Tượng C++   Ngành CNTT - Trường CĐ Công Nghệ Thông Tin  Page 19 { return md; } }; void ktdh() { int mh=0,mode=0; initgraph(&mh,&mode,""); } void main() { ktdh(); DUONG_TRON dt(DIEM(100,100),80,MAGENTA); dt.ve(); getch(); closegraph(); } Câu 11: class DIEM { private : double x,y; public : DIEM() { x=y=0.0; } DIEM(double x1,double y1) { x=x1;y=y1; } void in() { cout<<"nx="<<x<<" y="<<y; } }; class HINH_TRON : public DIEM { private : double r; public : HINH_TRON() { r=0.0; }
  • 20.  Bài Báo Cáo Thực Hành Môn Học : Lập Trình Hướng Đối Tượng C++   Ngành CNTT - Trường CĐ Công Nghệ Thông Tin  Page 20 HINH_TRON(double x1,double y1,double r1):DIEM(x1,y1) { r=r1; } double getR() { return r; } }; void main() { HINH_TRON h(2.5,3.5,8); clrscr(); cout<<"nHinh tron co tam :"; h.in(); cout<<"nCo ban kinh ="<<h.getR(); getch(); } Câu 12: class nguoi { private: char *ten; char *diachi; int ns; // nam sinh public: nguoi() { ten=NULL; diachi=NULL; ns=0; } nguoi(char *ten1, char *diachi1, int ns1) { int n=strlen(ten1); ten =new char[n+1]; strcpy(ten,ten1); int m=strlen(diachi1); diachi =new char[m+1]; strcpy(diachi,diachi1); ns=ns1; } ~nguoi() { if((ten!=NULL)&&(diachi!=NULL))
  • 21.  Bài Báo Cáo Thực Hành Môn Học : Lập Trình Hướng Đối Tượng C++   Ngành CNTT - Trường CĐ Công Nghệ Thông Tin  Page 21 { delete ten; delete diachi; ns=0; } } void xuat() { cout<<"nho va ten:"<<ten<<"nnam sinh:"<<ns<<"ndiachi:"<<diachi; } }; class mon_hoc { private: char*mon; int sotiet; public: mon_hoc() { mon=NULL; sotiet=0; } mon_hoc(char*mon1,int sotiet1) { int n=strlen(mon1); mon=new char[n+1]; strcpy(mon,mon1); sotiet=sotiet1; } ~mon_hoc() { if(mon!=NULL) delete mon; sotiet=0; } void xuat() { cout<<"nTen mon hoc:"<<mon<<"nSo tiet hoc:"<<sotiet; } }; class giao_vien:public nguoi { private: mon_hoc mh; public: giao_vien():nguoi(),mh() {}
  • 22.  Bài Báo Cáo Thực Hành Môn Học : Lập Trình Hướng Đối Tượng C++   Ngành CNTT - Trường CĐ Công Nghệ Thông Tin  Page 22 giao_vien(char*ten1,char*diachi1,int ns1,char*mon1,int sotiet1):nguoi(ten1,diachi1,ns1),mh(mon1,sotiet1) {} ~giao_vien() {} void xuat() { nguoi::xuat() ; mh.xuat(); } }; void main() { clrscr(); giao_vien a; // goi toi ham tao khong doi giao_vien *b; //goi toi ham tao co doi b= new giao_vien("nhu quynh","da nang",1988,"tin",60); cout<<"ngoi ham xuat tu lop giao vien"; b->xuat(); cout<<"ngoi ham xuat tu lop nguoi"; b->nguoi::xuat(); getch(); delete b; getch(); } _____♠The End♠______