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

Bài giảng Công Nghệ Phần Mềm
Bài giảng Công Nghệ Phần MềmBài giảng Công Nghệ Phần Mềm
Bài giảng Công Nghệ Phần MềmHoài Phạm
 
Lttt matlab chuong 4
Lttt matlab chuong 4Lttt matlab chuong 4
Lttt matlab chuong 4Hoa Cỏ May
 
Cấu tạo và nguyên lý hoạt động cpu
Cấu tạo và nguyên lý hoạt động cpuCấu tạo và nguyên lý hoạt động cpu
Cấu tạo và nguyên lý hoạt động cpubeu09vn
 
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 2Minh Ngoc Tran
 
Giáo trình phân tích thiết kế hệ thống thông tin
Giáo trình phân tích thiết kế hệ thống thông tinGiáo trình phân tích thiết kế hệ thống thông tin
Giáo trình phân tích thiết kế hệ thống thông tinVõ Phúc
 
Bài giảng kiến trúc máy tính
Bài giảng kiến trúc máy tínhBài giảng kiến trúc máy tính
Bài giảng kiến trúc máy tínhCao Toa
 
Hd th sql server_tuan5_n_khanh
Hd th sql server_tuan5_n_khanhHd th sql server_tuan5_n_khanh
Hd th sql server_tuan5_n_khanhHai Rom
 
Phương pháp tham lam giải bài toán lập lịch công việc
Phương pháp tham lam giải bài toán lập lịch công việcPhương pháp tham lam giải bài toán lập lịch công việc
Phương pháp tham lam giải bài toán lập lịch công việcNguyễn Danh Thanh
 
chuong 4. dai so boole
chuong 4.  dai so boolechuong 4.  dai so boole
chuong 4. dai so boolekikihoho
 
chuong 1. co so logic
chuong 1. co so logicchuong 1. co so logic
chuong 1. co so logickikihoho
 
SỬ DỤNG PHẦN MỀM MAPLE ĐỂ GIẢI CÁC BÀI TOÁN VỀ NGUYÊN HÀM VÀ TÍCH PHÂN
SỬ DỤNG PHẦN MỀM MAPLE ĐỂ GIẢI CÁC BÀI TOÁN VỀ NGUYÊN HÀM VÀ TÍCH PHÂN SỬ DỤNG PHẦN MỀM MAPLE ĐỂ GIẢI CÁC BÀI TOÁN VỀ NGUYÊN HÀM VÀ TÍCH PHÂN
SỬ DỤNG PHẦN MỀM MAPLE ĐỂ GIẢI CÁC BÀI TOÁN VỀ NGUYÊN HÀM VÀ TÍCH PHÂN nataliej4
 
đáP án 24 đề tin
đáP án 24 đề tinđáP án 24 đề tin
đáP án 24 đề tinTtx Love
 
Nhập môn công nghệ thông tin
Nhập môn công nghệ thông tinNhập môn công nghệ thông tin
Nhập môn công nghệ thông tinThanh Lee
 
Mạng neuron, trí tuệ nhân tạo
Mạng neuron, trí tuệ nhân tạoMạng neuron, trí tuệ nhân tạo
Mạng neuron, trí tuệ nhân tạoKien Nguyen
 
30 bài toán phương pháp tính
30 bài toán phương pháp tính30 bài toán phương pháp tính
30 bài toán phương pháp tínhPham Huy
 
Bài tập thiết kế cơ sở dữ liệu
Bài tập thiết kế cơ sở dữ liệuBài tập thiết kế cơ sở dữ liệu
Bài tập thiết kế cơ sở dữ liệuLê Minh
 

Mais procurados (20)

Chuong 3
Chuong 3Chuong 3
Chuong 3
 
Bài giảng Công Nghệ Phần Mềm
Bài giảng Công Nghệ Phần MềmBài giảng Công Nghệ Phần Mềm
Bài giảng Công Nghệ Phần Mềm
 
Lttt matlab chuong 4
Lttt matlab chuong 4Lttt matlab chuong 4
Lttt matlab chuong 4
 
Cấu tạo và nguyên lý hoạt động cpu
Cấu tạo và nguyên lý hoạt động cpuCấu tạo và nguyên lý hoạt động cpu
Cấu tạo và nguyên lý hoạt động cpu
 
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
 
Giáo trình phân tích thiết kế hệ thống thông tin
Giáo trình phân tích thiết kế hệ thống thông tinGiáo trình phân tích thiết kế hệ thống thông tin
Giáo trình phân tích thiết kế hệ thống thông tin
 
Bài giảng kiến trúc máy tính
Bài giảng kiến trúc máy tínhBài giảng kiến trúc máy tính
Bài giảng kiến trúc máy tính
 
Hd th sql server_tuan5_n_khanh
Hd th sql server_tuan5_n_khanhHd th sql server_tuan5_n_khanh
Hd th sql server_tuan5_n_khanh
 
Phương pháp tham lam giải bài toán lập lịch công việc
Phương pháp tham lam giải bài toán lập lịch công việcPhương pháp tham lam giải bài toán lập lịch công việc
Phương pháp tham lam giải bài toán lập lịch công việc
 
chuong 4. dai so boole
chuong 4.  dai so boolechuong 4.  dai so boole
chuong 4. dai so boole
 
chuong 1. co so logic
chuong 1. co so logicchuong 1. co so logic
chuong 1. co so logic
 
SỬ DỤNG PHẦN MỀM MAPLE ĐỂ GIẢI CÁC BÀI TOÁN VỀ NGUYÊN HÀM VÀ TÍCH PHÂN
SỬ DỤNG PHẦN MỀM MAPLE ĐỂ GIẢI CÁC BÀI TOÁN VỀ NGUYÊN HÀM VÀ TÍCH PHÂN SỬ DỤNG PHẦN MỀM MAPLE ĐỂ GIẢI CÁC BÀI TOÁN VỀ NGUYÊN HÀM VÀ TÍCH PHÂN
SỬ DỤNG PHẦN MỀM MAPLE ĐỂ GIẢI CÁC BÀI TOÁN VỀ NGUYÊN HÀM VÀ TÍCH PHÂN
 
đáP án 24 đề tin
đáP án 24 đề tinđáP án 24 đề tin
đáP án 24 đề tin
 
Bai1
Bai1Bai1
Bai1
 
Phương pháp tham lam
Phương pháp tham lamPhương pháp tham lam
Phương pháp tham lam
 
Nhập môn công nghệ thông tin
Nhập môn công nghệ thông tinNhập môn công nghệ thông tin
Nhập môn công nghệ thông tin
 
Mạng neuron, trí tuệ nhân tạo
Mạng neuron, trí tuệ nhân tạoMạng neuron, trí tuệ nhân tạo
Mạng neuron, trí tuệ nhân tạo
 
30 bài toán phương pháp tính
30 bài toán phương pháp tính30 bài toán phương pháp tính
30 bài toán phương pháp tính
 
Đề tài: Hệ thống quản lý ký túc xá đại học, HAY
Đề tài: Hệ thống quản lý ký túc xá đại học, HAYĐề tài: Hệ thống quản lý ký túc xá đại học, HAY
Đề tài: Hệ thống quản lý ký túc xá đại học, HAY
 
Bài tập thiết kế cơ sở dữ liệu
Bài tập thiết kế cơ sở dữ liệuBài tập thiết kế cơ sở dữ liệu
Bài tập thiết kế cơ sở dữ liệu
 

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
 
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
 
Ctdl lab01
Ctdl lab01Ctdl lab01
Ctdl lab01
 

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♠______