Tài liệu Báo cáo Thực hành môn Lập trình hướng đối tượng C++: 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
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; };
PhanSo operator + (PhanSo a ,PhanSo b);
PhanSo operator - (PhanSo a ,PhanSo b);
PhanSo operator * (PhanSo a ,PhanSo b);
PhanSo oper...
22 trang |
Chia sẻ: hunglv | Lượt xem: 1313 | Lượt tải: 0
Bạn đang xem trước 20 trang mẫu tài liệu Báo cáo Thực hành môn Lập trình hướng đối tượng C++, để tải tài liệu gốc về máy bạn click vào nút DOWNLOAD ở trên
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
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; };
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>a.TuSo;
cout>a.MauSo;
cout>b.TuSo;
cout>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)
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)
{
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)
{
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;
}
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;
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";
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();
}
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();
}
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;
}
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();
}
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));
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();
}
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();
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>a;
cout>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];
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;
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()
{
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;
}
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))
{
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()
{}
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♠______
Các file đính kèm theo tài liệu này:
- bao_cao_c__9245.doc