Bài thực hành buổi 5 Môn: Lập Trình Hướng Đối Tượng GV: Lê Thị Thu Lan
k4info :: Khu vực học tập :: Học Tập :: Thư viện :: C++
Trang 1 trong tổng số 1 trang
Bài thực hành buổi 5 Môn: Lập Trình Hướng Đối Tượng GV: Lê Thị Thu Lan
1. Hàm độc lập là hàm bạn
Khái báo CLASS Diem(thuộc tính: x,y)
Dựng hàm độc lập kiểm tra 2 điểm có trùng nhau không.
Khái báo Class Diem(thuộc tính: x,y)
Khai báo Class DoanThang trong đó xác định đoạn thẳng thông qua 2 điểm và để tính chiều dài đoạn thẳng cần lấy tọa độ các điểm (thuộc tính private của Class Diem).
Khái báo CLASS PhanSo(x,y) mô tả phân số x/y. Định nghĩa hàm xây dựng và hàm hiển thị.
Khai báo CLASS So(x). Định nghĩa hàm xây dựng, hàm hiển thị và hàm chuyển đổi một phân số thành một số.
Quản lý sinh viên.
Quản lý lớp học có kèm danh sách sinh viên.
Cho phép tìm kiếm sinh viên trong lớp theo mã, khi tìm thấy, in toàn bộ thông tin sinh viên đó ra màn hình, nêu không thấy, báo lỗi không tồn tại mã sinh viên
5. Mở rộng bài tập quản lý phòng học
Xây dựng hàm thành viên của TRUONG cho phép tìm thông tin phòng học trong trường dựa trên mã phòng.
Chương trình cho phép
nhập n trường và thông tin phòng kèm theo.
nhập mã phòng và tìm thông tin phòng trên tất cả các trường mà chương trình đang quản lý. In kết quả gồm mã trường, tên trường, và thông tin của phòng vừa tìm thấy hoặc báo lỗi không tìm được.
Khái báo CLASS Diem(thuộc tính: x,y)
Dựng hàm độc lập kiểm tra 2 điểm có trùng nhau không.
- Code:
#include<conio.h>
#include<iostream>
using namespace std;
class diem
{
int x;
int y;
public:
diem(int a, int b){x=a;y=b;}; //Khai bao ham friend
friend int trung(diem,diem);
};
int trung(diem a,diem b)
{ //Vila ham friend => duoc quyen truy cap den cac thanh phan private cua a,b
if(a.x==b.x && a.y==b.y)
return 1;
else
return 0;
}
int main()
{
diem a(1,2), b(1,2);
if(trung(a,b)==1)
cout<<"Diem a trung voi diem b.";
else
cout<<"Diem a khong trung voi diem b";
diem a1(1,2),b1(1,1);
if(trung(a1,b1)==1)
cout<<"\nDiem a1 trung voi diem b1";
else
cout<<"\nDiem a1 khong trung voi b1";
getch();
}
Khái báo Class Diem(thuộc tính: x,y)
Khai báo Class DoanThang trong đó xác định đoạn thẳng thông qua 2 điểm và để tính chiều dài đoạn thẳng cần lấy tọa độ các điểm (thuộc tính private của Class Diem).
- Code:
#include<conio.h>
#include<stdio.h>
#include<math.h>
#include<iostream>
using namespace std;
class diem
{
int x;
int y;
public:
diem(int a, int b){x=a;y=b;}; //Khai bao ham friend
void indiem(){cout<<"("<<x<<","<<y<<")";};
//Cho phep class doanthang truy cap toi cac thanh phan private
friend class doanthang;
};
class doanthang
{
diem d1,d2; //Doan thang la duong noi giua haio diem
public:
//Khoi tao doanthang(x1,y1,x2,y2) cung chinh la khoi tao 2 diem d1,d2
doanthang(int x1,int y1,int x2,int y2):d1(x1,y1),d2(x2,y2){};
void indoanthang(){d1.indiem();d2.indiem();};
float chieudai()
{
float chieudai;
//Can lay thong tin x,y(private) cua 2 diem de tinh chieu dai doan thang
chieudai=sqrt(pow((d1.x-d2.x),2)+pow((d1.y-d2.y),2));
return chieudai;
};
};
int main()
{
doanthang a(0,0,3,0);
a.indoanthang();
cout<<"\nChieu dai doan thang tren: "<<a.chieudai();
getch();
}
Khái báo CLASS PhanSo(x,y) mô tả phân số x/y. Định nghĩa hàm xây dựng và hàm hiển thị.
Khai báo CLASS So(x). Định nghĩa hàm xây dựng, hàm hiển thị và hàm chuyển đổi một phân số thành một số.
- Code:
#include<stdio.h>
#include<conio.h>
#include<iostream>
using namespace std;
class phanso;
class so
{
private:
float x;
public:
so(float);
void hien(char* = "");
void doi_phanso_so(phanso);
};
class phanso
{
private:
int x;
int y;
public:
phanso(int,int);
void hien(char* = "");
//Cho phep ham doi_phanso_so truy cap den cac thanh phan private cua phanso
friend void so::doi_phanso_so(phanso);
};
phanso::phanso(int a, int b)
{
x=a;y=b;
};
void phanso::hien(char* str)
{
cout<<str;
cout<<"("<<x<<"/"<<y<<")";
};
so::so(float x1=0){x=x1;};
void so::hien(char* str)
{
cout<<str;
cout<<"\nSo:"<<x;
};
//De chuyen mot phan so sang mot so, can lay duoc gia tri tu, mau (private) cua phan so => nen ham nay phai la friend cua phanso
void so::doi_phanso_so(phanso x1)
{
x=x1.x/x1.y;
};
int main()
{
phanso a(5,5);
a.hien("\nPhan so A la: ");
so b;
b.doi_phanso_so(a);
b.hien("\nDoi phan so A sang dang so: ");
getch();
}
Quản lý sinh viên.
Quản lý lớp học có kèm danh sách sinh viên.
Cho phép tìm kiếm sinh viên trong lớp theo mã, khi tìm thấy, in toàn bộ thông tin sinh viên đó ra màn hình, nêu không thấy, báo lỗi không tồn tại mã sinh viên
- Code:
#include<conio.h>
#include<string.h>
#include<iostream>
using namespace std;
//Khai bao lop hoc truoc de co the xac nhan lophoc la friend trong sinh vien
class lophoc;
class sinhvien
{
private:
char ms[10];
char* hoten;
int ns;
float diemtb;
public:
sinhvien();
~sinhvien();
sinhvien(char*,char*,int,float);
void nhap(char* = "");
void in(char* = "");
sinhvien(const sinhvien&);
//Danh dau lophoc la friend cua sinhvien de co the truy cap den cac thanh phan private
friend class lophoc;
};
sinhvien::~sinhvien()
{
delete[]hoten;
}
sinhvien::sinhvien(const sinhvien& s)
{
strcpy(ms,s.ms);
hoten=new char[50];
strcpy(hoten,s.hoten);
ns=s.ns;
diemtb=s.diemtb;
};
sinhvien::sinhvien()
{
strcpy(ms,"");
hoten=new char[50];
strcpy(hoten,"");
ns=1980;
diemtb=0;
};
sinhvien::sinhvien(char* m,char* t, int b, float d)
{
strcpy(ms,m);
hoten=new char[50];
strcpy(hoten,t);
ns=b;
diemtb=d;
};
void sinhvien::nhap(char* str)
{
cout<<str;
cout<<"\nMa sinh vien: ";
cin>>ms;
cout<<"\nTen sinh vien";
cin.ignore();
cin.getline(hoten,49);
cout<<"Nam sinh: ";
cin>>ns;
cout<<"\nDiem TB: ";
cin>>diemtb;
};
void sinhvien::in(char* str)
{
cout<<str;
cout<<"\n"<<ms<<" : "<<hoten<<"(NS: "<<ns<<") Diem: "<<diemtb;
};
class lophoc
{
private:
char malop[10];
char* tenlop;
char nienkhoa[9];
int slsv;
sinhvien* dssv[200]; //Toi da 200 sinh vien cho 1 lop
public:
lophoc();
void nhap();
void in();
//Tim thong tin sinh vien dua tren mssv
void timsv();
};
lophoc::lophoc()
{
strcpy(malop,"");
tenlop=new char[50];
strcpy(nienkhoa,"");
slsv=0;
}
void lophoc::nhap()
{
cout<<"\nMa lop hoc: ";
cin>>malop;
cout<<"\nTen lop: ";
cin.ignore();
cin.getline(tenlop,50);
cout<<"\nNien khoa: ";
cin>>nienkhoa;
cout<<"\nSo luong sinh vien: ";
cin>>slsv;
for(int i=0;i<slsv;i++)
{
//Do so luong sinh vien tung lop khac nhau nen viec cap phat vung nho truoc khi cap nhat tt sv cu the
dssv[i]=new sinhvien();
dssv[i]->nhap();
}
};
void lophoc::in()
{
cout<<"\nLop: "<<malop<<". Ten lop: "<<tenlop<<" ("<<nienkhoa<<"). So luong sv: "<<slsv<<"";
cout<<"\nDanh sach sinh vien cua lop";
for(int i=0;i<slsv;i++)
{
dssv[i]->in();
}
};
//Dinh nghia viec tinh ham sinh vien trong lop
void lophoc::timsv()
{
char ms[10];
bool thay=false;
cout<<"\nNhap ma sinh vien can tim: ";
cin>>ms;
for(int i=0;i<slsv;i++)
{
if(strcmp(dssv[i]->ms,ms)==0)
{
dssv[i]->in("Thong tin ");
thay=true;
}
}
if(thay==false)
cout<<"Khong tim thay sinh vien so ma so: "<<ms;
};
int main()
{
lophoc a;
a.nhap();
a.in();
a.timsv();
getch();
}
5. Mở rộng bài tập quản lý phòng học
Xây dựng hàm thành viên của TRUONG cho phép tìm thông tin phòng học trong trường dựa trên mã phòng.
Chương trình cho phép
nhập n trường và thông tin phòng kèm theo.
nhập mã phòng và tìm thông tin phòng trên tất cả các trường mà chương trình đang quản lý. In kết quả gồm mã trường, tên trường, và thông tin của phòng vừa tìm thấy hoặc báo lỗi không tìm được.
Similar topics
» Bài thực hành buổi 1 Môn: Lập Trình Hướng Đối Tượng GV: Lê Thị Thu Lan
» Bài thực hành buổi 3 Môn: Lập Trình Hướng Đối Tượng GV: Lê Thị Thu Lan
» Bài thực hành buổi 4 Môn: Lập Trình Hướng Đối Tượng GV: Lê Thị Thu Lan
» Bài thực hành buổi 2 Môn: Lập Trình Hướng Đối Tượng GV: Lê Thị Thu Lan
» Bài thực hành buổi 6 Môn: Lập Trình Hướng Đối Tượng GV: Lê Thị Thu Lan
» Bài thực hành buổi 3 Môn: Lập Trình Hướng Đối Tượng GV: Lê Thị Thu Lan
» Bài thực hành buổi 4 Môn: Lập Trình Hướng Đối Tượng GV: Lê Thị Thu Lan
» Bài thực hành buổi 2 Môn: Lập Trình Hướng Đối Tượng GV: Lê Thị Thu Lan
» Bài thực hành buổi 6 Môn: Lập Trình Hướng Đối Tượng GV: Lê Thị Thu Lan
k4info :: Khu vực học tập :: Học Tập :: Thư viện :: C++
Trang 1 trong tổng số 1 trang
Permissions in this forum:
Bạn không có quyền trả lời bài viết
|
|