Tải bản đầy đủ (.pdf) (50 trang)

Lời giải 26 bài lập trình Code C và C++ hướng đối tượng

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (642.94 KB, 50 trang )

ĐỀ CƯƠNG ƠN TẬP
HỌC PHẦN: LẬP TRÌNH HƯỚNG ĐỐI TƯỢNG C++
PHẦN LÝ THUYẾT
1. Khái niệm về lớp và đối tượng:
2. Hàm tạo, hàm hủy
3. Dẫn xuất và thừa kế
4. Tương ứng bội và phương thức ảo
5. Các dòng tin (stream), làm việc với tệp (file)
B. PHẦN BÀI TẬP (SỬ DỤNG BC/TC/DevC)
1. Xây dựng lớp DIEM gồm 2 thành phần là tọa độ x, y. Yêu cầu xây dựng các phương
thức: Nhập, xuất, tính khoảng cách 2 điểm có tọa độ bất kỳ. Xây dựng các hàm
tạo, hàm hủy 1 đối tượng điểm
2. Xây dựng lớp SINHVIEN gồm các thuộc tính: Họ tên, mã SV, điểm tốn, điểm lý,
điểm hóa, điểm trung bình.Yêu cầu: Xây dựng các phương thức: Nhập, xuất, tính
điểm trung bình, hàm tạo, hàm hủy.
3. Xây dựng lớp số phức. Yêu cầu: Xây dựng các phương thức: Cộng, trừ, nhân, chia
2 số phức
4. Xây dựng lớp SINHVIEN gồm các thuộc tính: Họ tên, mã SV, điểm tốn, điểm lý,
điểm hóa, điểm trung bình. u cầu: Xây dựng các phương thức: Nhập, xuất, Hàm
tạo, hàm hủy, quy đổi điểm từ hệ 10 sang hệ 4
5. Xây dựng lớp DIEM gồm 2 thành phần là tọa độ x, y. Yêu cầu: xây dựng lớp tam
giác kế thừa từ lớp điểm. Tính chu vi và diện tích tam giác theo cơng thức Herong
6. Xây dựng lớp DIEM gồm 2 thành phần là tọa độ x, y. Yêu cầu: xây dựng lớp hình
trịn kế thừa từ lớp điểm. Tính chu vi và diện tích hình trịn
7. Xây dựng lớp phân số gồm 2 thành phần: tử số, mẫu số. Yêu cầu: Xây dựng các
phương thức để cộng, trừ, nhõn, chia, rút gọn phân số
8. Xây dựng lớp đa thức gồm các thuộc tính bậc của đa thức và các hệ số. Yêu cầu:
Xây dựng phương thức tính giá trị của đa thức
9. Xây dựng lớp đa thức gồm các thuộc tính bậc của đa thức và các hệ số. Yêu cầu:
Xây dựng phương thức cộng, trừ 2 đa thức
10. Xây dựng lớp mảng một chiều. Yêu cầu: xây dựng phương thức nhập, xuất, sắp


xếp lại mảng theo thứ tự tăng dần

P a g e 1 | 50


11. Tạo một lớp cơ sở có tên là airship để lưu thông tin về số lượng hành khách tối đa
và trọng lượng hàng hóa tối đa mà máy bay có thể chở được. Từ đó hãy tạo hai lớp
dẫn xuất airplane và balloon, lớp airplane lưu thông tin về kiểu động cơ (gồm động
cơ cánh quạt và động cơ phản lực), lớp balloon lưu thông tin về loại nhiên liệu sử
dụng cho khí cầu (gồm hai loại là hydrogen và helium). Hãy viết chương trình minh
họa
12. Xây dựng lớp Sinh viên gồm các thông tin: Họ tên, mã SV, điểm trung bình.Yêu
cầu: Xây dựng phương thức nhập, xuất, sắp xếp lại danh sách sinh viên theo thứ tự
abc của họ tên
13. Xây dựng lớp Sinh viên gồm các thông tin: Họ tên, mã SV, điểm trung bình. Yêu
cầu: Xây dựng phương thức nhập, xuất, sắp xếp lại danh sách sinh viên theo thứ tự
giảm dần của điểm trung bình
14. Xây dựng lớp Sinh viên gồm các thông tin: Họ tên, mã SV, điểm trung bình. Yêu
cầu: Xây dựng phương thức nhập, xuất, tìm kiếm thơng tin sinh viên theo họ tên,
hoặc mã sinh viên
15. Xây dựng lớp thời gian Time. Dữ liệu thành phần bao gồm giờ, phút giây. Các hàm
thành phần bao gồm: hàm tạo, hàm truy cập dữ liệu, hàm normalize() để chuẩn hóa
dữ liệu nằm trong khoảng quy định của giờ (0  giờ < 24) , phút (0  phút <60),
giây (0  giây <60), hàm advance(int h, int m, int s) để tăng thời gian hiện hành của
đối tượng đang tồn tại, hàm reset(int h, int m, int s) để chỉnh lại thời gian hiện hành
của một đối tượng đang tồn tại và một hàm print() để hiển thị dữ liệu
16. Xây dựng lớp Date. Dữ liệu thành phần bao gồm ngày, tháng, năm. Các hàm thành
phần bao gồm: hàm tạo, hàm truy cập dữ liệu, hàm normalize() để chuẩn hóa dữ
liệu nằm trong khoảng quy định của ngày (1  ngày tháng < 12), năm (năm  1), hàm daysIn(int) trả về số ngày trong tháng, hàm

advance(int y, int m, int d) để tăng ngày hiện lên các năm y, tháng m, ngày d của
đối tượng đang tồn tại, hàm reset(int y, int m, int d) để đặt lại ngày cho một đối
tượng đang tồn tại và một hàm print() để hiển thị dữ liệu
17. Thực hiện một lớp String. Mỗi đối tượng của lớp sẽ đại diện một chuỗi ký tự.
Những thành phần dữ liệu là chiều dài chuỗi, và chuỗi ký tự. Các hàm thành phần
bao gồm: hàm tạo, hàm truy cập, hàm hiển thị, hàm character(int i)trả về một ký tự
trong chuỗi được chỉ định bằng tham số i

P a g e 2 | 50


18. Xây dựng lớp ma trận có tên là Matrix cho các ma trận, các hàm thành phần bao
gồm: hàm tạo mặc định, hàm nhập xuất ma trận, cộng, trừ, nhân hai ma trận
19. Xây dựng lớp ma trận có tên là Matrix cho các ma trận vuông, các hàm thành phần
bao gồm: hàm tạo mặc định, hàm nhập xuất ma trận, tính định thức và tính ma trận
nghịch đảo
20. Xây dựng lớp Stack cho ngăn xếp kiểu int. Các hàm thành phần bao gồm: Hàm tạo
mặc định, hàm hủy, hàm isEmpty() kiểm tra stack có rỗng khơng, hàm isFull()
kiểm tra stack có đầy khơng, hàm push() , pop(), hàm in nội dung ngăn xếp. Sử
dụng một mảng để thực hiện.
21. Xây dựng lớp hàng đợi Queue chứa phần tử kiểu int. Các hàm thành phần bao gồm:
hàm tạo, hàm hủy và những tốn tử hàng đợi thơng thường: hàm insert() để thêm
phần tử vào hàng đợi, hàm remove() để loại bỏ phần tử, hàm isEmpty() kiểm tra
hàng đợi có rỗng khơng, hàm isFull() kiểm tra hàng đợi có đầy không. Sử dụng một
mảng để thực hiện
22. Xây dựng lớp Sinhvien để quản lý hộ tên sinh viên, năm sinh, điểm thi 9 môn học
của các sinh viên. Cho biết sinh viên nào được làm khóa luận tốt nghiệp, bao nhiêu
sinh viên thi tốt nghiệp, bao nhiêu sinh viên thi lại, tên môn thi lại> Tiêu chuẩn để
xét như sau:
- Sinh viên làm khóa luận phải có điểm trung bình từ 7 trở lên, trong đó khơng có

mơn nào dưới 5.
- Sinh viên thi tố nghiệp khi điểm trung bình nhỏ hơn 7 và điểm các môn không
dưới 5.
- Sinh viên thi lại môn dưới 5.
23. Một nhà xuất bản nhận xuất bản sách. Sách có hai loại: loại có hình ảnh ở trang bìa
và loại khơng có hình ảnh ở trang bìa. Loại có hình ảnh ở trang bìa thì phải thuê
họa sĩ vẽ bìa. Viết chương trình thực hiện các yêu cầu :
- Tạo một lớp cơ sở có tên là SACH để lưu thơng tin về tên sách, tác giả, số trang,
giá bán và định nghĩa hàm thành phần cho phép nhập dữ liệu cho các đối tượng
của lớp SACH.
- Tạo lớp BIA kế thừa từ lớp SACH để lưu các thơng tin : Mã hình ảnh, tiền vẽ và
định nghĩa hàm thành phần cho phép nhập dữ liệu cho các đối tượng của lớp BIA.
- Tạo lớp HOASY để lưu các thông tin họ tên, địa chỉ của họa sỹ và định nghĩa
hàm thành phần cho phép nhập dữ liệu cho các đối tượng của lớp HOASY.
- Tạo lớp SACHVEBIA kế thừa từ lớp BIA và lớp HOASY và định nghĩa hàm
thành phần cho phép nhập dữ liệu cho các đối tượng của lớp SACHVEBIA. Viết

P a g e 3 | 50


hàm main() cho phép nhập vào hai danh sách : danh sách các sách có vẽ bìa và
danh sách các sách khơng có vẽ bìa (có thể dùng mảng tĩnh hoặc mảng con trỏ)
24. Xây dựng lớp hình vng có tên là HVUONG với các dữ liệu thành phần như sau:
độ dài cạnh. Các hàm thành phần để nhập dữ liệu, hiển thị dữ liệu, tính diện tích,
chu vi hình vng. Từ lớp HVUONG, xây dựng lớp dẫn xuất có tên là CHUNHAT,
là lớp kế thừa của lớp HVUONG và được bổ sung thêm thuộc tính sau: độ dài cạnh
thứ hai. Các hàm thành phần để nhập dữ liệu, hiển thị dữ liệu để tính diện tích và
chu vi hình chữ nhật. Viết chương trình minh họa.
25. Xây dựng lớp cơ sở CANBO có dữ liệu thành phần là mã cán bộ, mã đơn vị, họ
tên, ngày sinh. Các hàm thành phần bao gồm: nhập dữ liệu cán bộ, hiển thị dữ liệu.

Lớp dẫn xuất LUONG kế thừa lớp CANBO và có thêm các thuộc tính: phụ cấp, hệ
số lương, bảo hiểm. Hàm thành phần để tính lương cán bộ theo công thức:
lương = hệ số lương *290000 + phụ cấp - bảo hiểm
Hãy thiết kế chương trình để đáp ứng các yêu cầu:
- Nhập danh sách cán bộ
- In bảng lương các cán bộ theo từng đơn vị.
26. Nhân viên trong một cơ quan được lĩnh lương theo các dạng khác nhau. Dạng người
lao động hưởng lương từ ngân sách Nhà nước gọi là cán bộ, công chức (dạng biên
chế). Dạng người lao động lĩnh lương từ ngân sách của cơ quan gọi là người làm
hợp đồng. Như vậy hệ thống có hai đối tượng: biên chế và hợp đồng.
- Hai loại đối tượng này có đặc tính chung là viên chức làm việc cho cơ quan. Từ
đây có thể tạo nên lớp cơ sở để quản lý một viên chức (lớp Nguoi) bao gồm mã số,
họ tên, lương
- Hai lớp kế thừa từ lớp cơ sở trên:
+ Lớp Bienche gồm các thuộc tính: hệ số lượng, tiền phụ cấp chức vụ.
+ Lớp Hopdong gồm các thuộc tính: tiền công lao động, số ngày làm việc
trong tháng, hệ số vượt giờ.
Hãy thiết kế các lớp trên và viết chương trình minh họa.

P a g e 4 | 50


LỜI GIẢI
BÊN DƯỚI

P a g e 5 | 50


Bài 1: ĐIỂM TỌA ĐỘ x y
#include<iostream>

#include<math.h>
using namespace std;
class Diem{
private:
int x;
int y;
public:
Diem(){
x=y=0;
}
Diem(int x1, int y1){
x=x1;
y=y1;
}
~Diem(){
x=y=0;
}
void nhap();
void xuat();
float khoangCach(Diem B);
};
void Diem::nhap(){
cout<<"Nhap hoanh do x: "; cin>>x;
cout<<"Nhap tung do y: "; cin>>y;
}
void Diem::xuat(){
cout<<"Toa do diem la: ("<cout<}
float Diem::khoangCach(Diem B){

float d=sqrt((x-B.x)*(x-B.x)+(y-B.y)*(y-B.y));
return d;
}
main(){
Diem A(1, 3);
A.xuat();
Diem B(2, 5);
B.xuat();
cout<<"\nKhoang cah giua hai diem la: "<}

P a g e 6 | 50


Bài 2: LỚP SINH VIÊN - ĐIỂM T-L-H- TB - HÀM TẠO - HỦY
#include<iostream>
#include<string.h>
using namespace std;
class SinhVien{
private:
char hoTen[30];
char maSV[30];
float diemToan;
float diemLy;
float diemHoa;
public:
SinhVien(){
}
SinhVien( char ht[50], char msv[50], float t, float l, float h){
strcpy(hoTen,ht);

strcpy(maSV, msv);
diemToan=t;
diemLy=l;
diemHoa=h;
}
~SinhVien(){
}
void nhap();
void xuat();
float DTB();
};
void SinhVien::nhap(){
cout<<"Nhap ho ten sinh vien: "; cin>>hoTen;
cout<<"Nhap ma sinh vien: "; cin>>maSV;
cout<<"Nhap diem toan: "; cin>>diemToan;
cout<<"Nhap diem ly: "; cin>>diemLy;
cout<<"Nhap diem hoa: "; cin>>diemHoa;
}
void SinhVien::xuat(){
cout<<"Ho ten sv: "<cout<<"Ma sv: "<cout<<"Diem toan, diem ly, diem hoa: "<}
float SinhVien::DTB(){
float diem=(diemToan+diemLy+diemHoa)/3;
return diem;
}
main(){
SinhVien sv("ngocanh","ht21",9.5,10,8.1);
//sv.nhap();

sv.xuat();
cout<<"Diem trung binh: "<}

P a g e 7 | 50


Bài 3. SỐ PHỨC
#include<iostream>
using namespace std;
class SoPhuc{
private:
float thuc;
float ao;
public:
void nhap();
void xuat();
SoPhuc cong(SoPhuc);
SoPhuc tru(SoPhuc);
SoPhuc nhan(SoPhuc);
SoPhuc chia(SoPhuc);
};
void SoPhuc::nhap(){
cout<<"Nhap phan thuc: "; cin>>thuc;
cout<<"Nhap phan ao: "; cin>>ao;
}
void SoPhuc::xuat(){
cout<}
SoPhuc SoPhuc::cong(SoPhuc p2){

SoPhuc p;
p.thuc=thuc+p2.thuc;
p.ao=ao+p2.ao;
return p;
}
SoPhuc SoPhuc::tru(SoPhuc p2){
SoPhuc p;
p.thuc=thuc-p2.thuc;
p.ao=ao-p2.ao;
return p;
}
SoPhuc SoPhuc::nhan(SoPhuc p2){
SoPhuc p;
p.thuc=thuc*p2.thuc - ao*p2.ao;
p.ao=thuc*p2.ao+ao*p2.thuc;
return p;
}
SoPhuc SoPhuc::chia(SoPhuc p2){
SoPhuc p;
p.thuc=(ao*p2.ao+ thuc*p2.thuc)/(p2.ao*p2.ao+ p2.thuc*p2.thuc);
p.ao=thuc*p2.ao- ao*p2.thuc;
}
main(){
SoPhuc p1, p2, p3, p4, p5, p6;
p1.nhap();
p2.nhap();
p1.xuat();
cout<p2.xuat();
cout<<"\ntong la: ";

p3=p1.cong(p2);
p3.xuat();
p3=p1.tru(p2);
cout<<"\nHieu hai so phuc la: ";
p3.xuat();
p4=p1.nhan(p2);
cout<<"\nTich hai so phuc la: ";
p4.xuat();
p5=p1.chia(p2);
cout<<"\nThuong hai so phuc la: ";
p5.xuat();
}

P a g e 8 | 50


Bài 4. SINH VIÊN hệ 10 SANG 4
#include<iostream>
#include<string.h>
using namespace std;
class SinhVien{
private:
char hoTen[30];
char maSV[10];
float diemToan, diemLy, diemHoa, DTB;
public:
SinhVien(){
}
SinhVien(char hten[30], char msv[10], float t, float h, float l, float dtb){
strcpy(hoTen,hten);

strcpy(maSV,msv);
diemToan=t;
diemLy=l;
diemHoa=h;
DTB=dtb;
}
~SinhVien(){
}
void nhap();
void xuat();
void diemHe4();
};
void SinhVien::nhap(){
cout<<"Nhap ten sinh vien: "; cin>>hoTen;
cout<<"Nhap ma sinh vien: "; cin>>maSV;
cout<<"Nhap diem toan, ly, hoa: "; cin>>diemToan>>diemLy>>diemHoa;
cout<<"Nhap diem trung binh: "; cin>>DTB;
}
void SinhVien::xuat(){
cout<<"Ten sinh vien: "<cout<<"Ma sinh vien: "<cout<<"Diem toan, ly, hoa: "<cout<<"Diem trung binh: "<}
void SinhVien::diemHe4(){
if(DTB>=8.5) cout<<"\nDiem A";
if(DTB>=7.5&&DTB<8.5) cout<<"\nDiem B";
if(DTB>=6.5&&DTB<7.5) cout<<"\nDiem C";
if(DTB>=4.5&&DTB<6.5) cout<<"\nDiem D";
if(DTB<4.5) cout<<"\nDiem F";

}
main(){
SinhVien sv("ngocanh","ht21",9,8.5,10.1,9.2);
sv.xuat();
sv.diemHe4();
}

P a g e 9 | 50


Bài 5. LỚP ĐIỂM. TÍNH TAM GIÁC
#include<iostream>
#include<cmath>
using namespace std;
class Diem{
protected:
float x;
float y;
public:
void nhap(){
cout<<"Nhap hoanh do x: "; cin>>x;
cout<<"Nhap tung do y: "; cin>>y;
}
void xuat(){
cout<<"("<}
float khoangCach(Diem B){
float d=sqrt((x-B.x)*(x-B.x)+(y-B.y)*(y-B.y));
return d;
}

};
class TamGiac:public Diem{
private:
Diem A;
Diem B;
Diem C;
public:
int xetDK(){
if(A.khoangCach(B)+B.khoangCach(C)>A.khoangCach(C)
&&A.khoangCach(B)+C.khoangCach(A)>B.khoangCach(C)
&&B.khoangCach(C)+C.khoangCach(A)>A.khoangCach(B)) return 1;
return 0;
}
void nhapTG(){
cout<<"Nhap diem A: ";
A.nhap();
cout<<"Nhap diem B: ";
B.nhap();
cout<<"Nhap diem C: ";
C.nhap();
}
void xuatTG(){
cout<<"Tao do diem A: ";
A.xuat();
cout<<"Tao do diem B: ";
B.xuat();
cout<<"Tao do diem C: ";
C.xuat();
}
void chieuDai(){

cout<<"\nDo dai canh AB: "<cout<<"\nDo dai BC: "<cout<<"\nDo dai CA: "<}
float chuVi(){
float c=A.khoangCach(B)+B.khoangCach(C)+C.khoangCach(A);
return c;
}
float dienTich(){
float p=chuVi()/2;
float s=sqrt(p*(p-A.khoangCach(B))*(p-B.khoangCach(C))*(p-C.khoangCach(A)));
return s;
}
};
main(){
TamGiac tg;
tt: tg.nhapTG();

P a g e 10 | 50


if(tg.xetDK()==0){
cout<<"Tam giac khong ton tai!";
goto tt;
}
tg.xuatTG();
tg.chieuDai();
cout<<"\nDien tich tam giac: "<cout<<"\nChu vi tam giac: "<}


P a g e 11 | 50


Bài 6. LỚP ĐIỂM . TÍNH CHU VI HÌNH TRỊN
#include<iostream>
#include<math.h>
using namespace std;
class DIEM
{
public:
int x,y;
DIEM(){
x=y=0;
}
DIEM(int x1,int y1){
x=x1;
y=y1;
}
~DIEM(){
}
void nhap()
{
cout<<"\nnhap toa do x: ";cin>>x;
cout<<"\nnhap toa do y: ";cin>>y;
}
void xuat()
{
cout<<"("<}

};
class HINHTRON: public DIEM
{
public:
DIEM a;
double r;
public:
void nhapht()
{ nhap();
cout<<"nhap ban kinh:";cin>>r;
}
void xuatht()
{
xuat();
cout<<"ban kinh:"<}
double chuvi()
{
return 2*3.14*r;
}
double dientich()
{
return r*r*3.14;
}
};
int main()
{
HINHTRON h;
h.nhapht();
h.xuatht();

cout<<"chi vi hinh tron la:"<cout<<"dien tich hinh tron la: "<}

P a g e 12 | 50


Bài 7. LỚP PHÂN SỐ
#include<iostream>
using namespace std;
class PhanSo{
private:
int tuSo;
int mauSo;
public:
void nhap();
void xuat();
void rutGon();
PhanSo cong(PhanSo);
PhanSo tru(PhanSo);
PhanSo tich(PhanSo);
PhanSo thuong(PhanSo);
};
void PhanSo::rutGon(){
int a,b;
a=tuSo;
b=mauSo;
while(b>0){
float tmp=a%b;
a=b;

b=tmp;
}
tuSo=tuSo/a;
mauSo=mauSo/a;
}
void PhanSo::nhap(){
cout<<"Nhap tu so: "; cin>>tuSo;
cout<<"Nhap mau so: "; cin>>mauSo;
}
void PhanSo::xuat(){
if(tuSo%mauSo==0) cout<else
cout<}
PhanSo PhanSo::cong(PhanSo p2){
PhanSo p;
p.tuSo=tuSo*p2.mauSo+mauSo*p2.tuSo;
p.mauSo=mauSo*p2.mauSo;
p.rutGon();
return p;
}
PhanSo PhanSo::tru(PhanSo p2){
PhanSo p;
p.tuSo=tuSo*p2.mauSo-mauSo*p2.tuSo;
p.mauSo=mauSo*p2.mauSo;
p.rutGon();
return p;
}
PhanSo PhanSo::tich(PhanSo p2){
PhanSo p;

p.tuSo=tuSo*p2.tuSo;
p.mauSo=mauSo*p2.mauSo;
p.rutGon();
return p;
}
PhanSo PhanSo::thuong(PhanSo p2){
PhanSo p;
p.tuSo=tuSo*p2.mauSo;
p.mauSo=mauSo*p2.tuSo;
p.rutGon();
return p;
}
main(){
PhanSo p1,p2,p3,p4,p5,p6;

P a g e 13 | 50


p1.nhap();
p2.nhap();
cout<<"\nTong hai phan so: ";
p3=p1.cong(p2);
p3.xuat();
cout<<"\nHieu hai phan so: ";
p4=p1.tru(p2);
p4.xuat();
cout<<"\nTich hai phan so: ";
p5=p1.tich(p2);
p5.xuat();
cout<<"\nThuong hai phan so: ";

p6=p1.tich(p2);
p6.xuat();
}

P a g e 14 | 50


Bài 8. LỚP ĐA THỨC . TÍNH GIÁ TRỊ
#include<iostream>
using namespace std;
class Dathuc{
private:
int bac;
int *a;
public:
Dathuc(){
this->bac=0;
this->a=NULL;
}
friend istream &operator >>(istream &in, Dathuc &d){
cout<<"Nhap bac cua da thuc: "<in>>d.bac;
d.a = new int [d.bac+1];
for(int i=d.bac;i>=0;i--){
cout<<"Nhap he so cua x^"<in>>d.a[i];
}
}
Dathuc operator +(Dathuc d2);
friend ostream &operator <<(ostream &out, Dathuc &d){

out<for(int i=d.bac-1;i>0;i--){
if(d.a[i]>0) cout<<"+"<else cout<}
if(d.a[0]>0) cout<<"+"<else cout<cout<}
};
Dathuc Dathuc::operator +(Dathuc d2){
Dathuc d;
if(bac>=d2.bac){
d.bac= bac;
d.a= new int [d.bac+1];
for(int i=0;i<=d2.bac;i++){
d.a[i]= a[i]+ d2.a[i];
}
for(int i=d2.bac+1;i<=bac;i++){
d.a[i]= a[i];
}
}
if(bacd.bac= d2.bac;
d.a= new int [d.bac+1];
for(int i=0;i<=bac;i++){
d.a[i]= a[i]+ d2.a[i];
}
for(int i=bac+1;i<=d2.bac;i++){
d.a[i]= d2.a[i];

}
}
this->bac=0;
delete this->a;
return d;
}
main(){
Dathuc d1, d2, d;
cin>>d1; cout<cin>>d2; cout<d=d1+d2;
cout<<"Tong hai da thuc la: "<cout<}

P a g e 15 | 50


Bài 9. LỚP ĐA THỨC. TÍNH ĐA THỨC +#include<math.h>
#include<conio.h>
#include<iostream>
#include<stdio.h>
using namespace std;
void NHAPDL(int a[],int N)
{
int i;
for(i=0;i{
cout<<"Nhap phan tu cua da thuc thu "<cin>>a[i];

}
}
void CONGDT(int a[],int b[],int m,int n)
{
int i,j,x,c[20];
j=0;
if (melse x=m;
for(i=0;i{
j++;
c[i]=a[i]+b[j];
cout<<"Ket qua tong 2 da thuc : "<}
}
int main()
{
int a[10],b[10],m,n,i;
cout<<"TINH TONG CUA 2 DA THUC :";
cout<<"f(x) bac m= ";cin>>m;cout<<" va g(x) bac n= ";cin>>n;
cout<<"Nhap he so cho da thuc f(x)";NHAPDL(a,m);
cout<<"Nhap he so cho da thuc g(x)";NHAPDL(b,n);
cout<<"Ket qua cac he so cua f(x)+g(x)";
CONGDT(a,b,m,n);
}

P a g e 16 | 50


Bài 10. LỚP MẢNG MỘT CHIỀU

#include<iostream>
#include<conio.h>
using namespace std;
class Mang{
private:
int n;
int a[];
public:
void nhap();
void xuat();
void sapXep();
};
void Mang::nhap(){
cout<<"Nhap so phan tu cua mag: "; cin>>n;
for(int i=0; icout<<"Nhap so nguyen thu "<cin>>a[i];
}
}
void Mang::xuat(){
for(int i=0; icout<}
}
void Mang::sapXep(){
int tmp;
for(int i=0; ifor(int j=i+1; jif(a[i]>a[j]){
tmp=a[i];

a[i]=a[j];
a[j]=tmp;
}
}
}
}
main(){
int a[100];
Mang m;
m.nhap();
cout<<"\nMang so nguyen la: ";
m.xuat();
m.sapXep();
cout<<"\nMang so nguyen theo thu tu tang dan: ";
m.xuat();
}

P a g e 17 | 50


Bài 11. LỚP AIRSHIP
#include<iostream>
using namespace std;
class Airship{
protected:
int soKhachMax;
int trongLuongMax;
public:
void nhap(){
cout<<"Nhap so luong khach toi da: "; cin>>soKhachMax;

cout<<"Nhap trong luong hang hoa toi da: "; cin>>trongLuongMax;
}
void xuat(){
cout<<"So luong khach toi da: "<cout<<"Trong luong hang hoa toi da: "<}
};
class Airplane: public Airship{
private:
string kieuDC;
public:
void nhapAP(){
nhap();
cout<<"Kieu dong co: ";
cout<<"\n1. Dong co canh quat";
cout<<"\n2. Dong co phan luc"<cout<<"Chon: ";
int c; cin>>c;
if(c==1){
kieuDC="Dong co canh quat";
}
if(c==2){
kieuDC=="Dong co phan luc";
}
}
void xuatAP(){
//cout<<"Information of Airplan: "<xuat();
cout<}

};
class Balloon:public Airship{
private:
string kieuNL;
public:
void nhapBL(){
Airship::nhap();
cout<<"Kieu nhien lieu: ";
cout<<"\n1. Nhien lieu hydrogen";
cout<<"\n2. nhien lieu helium"<cout<<"Chon: ";
int c; cin>>c;
if(c==1){
kieuNL="Nhien lieu hydrogen";
}
if(c==2){
kieuNL="Nhien lieu helium";
}
}
void xuatBL(){
//cout<<"Information of Balloon: "<xuat();
cout<}
};
main(){

P a g e 18 | 50



Airplane *a;
Balloon *b;
int m,n,tmp;
cout<<"1. DANH SACH AIRPLANE";
cout<<"\n2. DANH SACH BALLOON";
cout<<"\nChon: "; cin>>tmp;
switch(tmp){
case 1:{
cout<<"\nNhap so luong Airplane: "; cin>>m;
a=new Airplane[m];
for(int i=0;icout<<"\nNhap thong tin Airplane "<a[i].nhapAP();
}
cout<<"\nDANH SACH AIRPLANE"<for(int i=0;icout<<"\nThong tin Airplane "<a[i].xuatAP();
}
break;
}
case 2: {
cout<<"\nNhap so luong Balloon: "; cin>>n;
b=new Balloon[n];
for(int i=0;icout<<"\nNhap thong tin Balloon "<b[i].nhapBL();
}
cout<<"\nDANH SACH BALLOON"<for(int i=0;i

cout<<"\nThong tin Balloon "<b[i].xuatBL();
}
break;
}
}
}

P a g e 19 | 50


Bài 12. LỚP SINH VIÊN - XẾP TÊN ABC
#include<iostream>
#include<conio.h>
using namespace std;
int n;
class SinhVien{
private:
char hoTen[30];
char maSV[30];
float DTB;
public:
void nhap();
void xuat();
string getTen(){
return hoTen;
}
};
void SinhVien::nhap(){
cout<<"\nNhap ho ten sv: "; cin>>hoTen;

cout<<"Nhap ma sv: "; cin>>maSV;
do{
cout<<"Nhap diem trung binh: "; cin>>DTB;
} while(DTB>10||DTB<0);
}
void SinhVien::xuat(){
cout<<"\nHo ten sv: "<cout<<"Ma sv: "<cout<<"Diem trung binh: "<}
void sapxepten(int n, SinhVien sv[]){
for(int i=0;ifor(int j=i+1;jif(sv[i].getTen()>sv[j].getTen()){
SinhVien tmp=sv[i];
sv[i]=sv[j];
sv[j]=tmp;
}
}
}
}
main(){
cout<<"Nhap so luong sv: "; cin>>n;
SinhVien sv[n];
for(int i=0;icout<<"Nhap sv thu "<sv[i].nhap();
}
cout<<"\nDANH SACH HO TEN ABC";
sapxepten(n,sv);

for(int i=0;isv[i].xuat();
}
}

P a g e 20 | 50


Bài 13. LỚP SINH VIÊN - DANH SÁCH GIẢM
#include<iostream>
#include<conio.h>
using namespace std;
int n;
class SinhVien{
private:
char hoTen[30];
char maSV[30];
float DTB;
public:
void nhap();
void xuat();
float getDiem(){
return DTB;
}
};
void SinhVien::nhap(){
cout<<"\nNhap ho ten sv: "; cin>>hoTen;
cout<<"Nhap ma sv: "; cin>>maSV;
do{
cout<<"Nhap diem trung binh: "; cin>>DTB;

} while(DTB>10||DTB<0);
}
void SinhVien::xuat(){
cout<<"\nHo ten sv: "<cout<<"Ma sv: "<cout<<"Diem trung binh: "<}
void sapxepdiem(int n, SinhVien sv[]){
for(int i=0;ifor(int j=i+1;jif(sv[j].getDiem()>sv[i].getDiem()){
SinhVien tmp;
tmp=sv[i];
sv[i]=sv[j];
sv[j]=tmp;
}
}
}
}
main(){
cout<<"Nhap so luong sv: "; cin>>n;
SinhVien sv[n];
for(int i=0;icout<<"Nhap sv thu "<sv[i].nhap();
}
cout<<"\nDANH SACH DIEM GIAM DAN: ";
sapxepdiem(n,sv);
for(int i=0;isv[i].xuat();

}
}

P a g e 21 | 50


Bài 14. LỚP SINH VIÊN - TÌM TÊN SV
#include<iostream>
#include<conio.h>
using namespace std;
int n;
class SinhVien{
private:
char hoTen[30];
char maSV[30];
float DTB;
public:
void nhap();
void xuat();
string getTen(){
return hoTen;
}
string getMSV(){
return maSV;
}
};
void SinhVien::nhap(){
cout<<"\nNhap ho ten sv: "; cin>>hoTen;
cout<<"Nhap ma sv: "; cin>>maSV;
do{

cout<<"Nhap diem trung binh: "; cin>>DTB;
if(DTB>10||DTB<0){
cout<<"Diem khong ton tai!";
cout<}
} while(DTB>10||DTB<0);
}
void SinhVien::xuat(){
cout<<"\nHo ten sv: "<cout<<"Ma sv: "<cout<<"Diem trung binh: "<}
void timKiem(int n, SinhVien sv[]){
string tim;
cout<<"\nNhap ten sinh vien hoac ma sv can tim: ";
cin>>tim;
cout<<"\nTHONG TIN SINH VIEN: ";
for (int i=0;iif(tim==sv[i].getMSV()||tim==sv[i].getTen()){
sv[i].xuat();
}
}
}
main(){
cout<<"Nhap so luong sv: "; cin>>n;
SinhVien sv[n];
for(int i=0;icout<<"Nhap sv thu "<sv[i].nhap();
}

for(int i=0;isv[i].xuat();
}
timKiem(n,sv);
}

P a g e 22 | 50


Bài 15. LỚP THỜI GIAN- TIME
#include<iostream>
using namespace std;
class Time{
private:
int h,m,s;
public:
Time(){
h=m=s=0;
}
Time(int h, int m, int s){
this->h=h;
m=m;
s=s;
}
void nhap(){
do{
cout<<"Nhap gio: "; cin>>h;
if(h<0||h>=24) cout<<"Gio khong ton tai!"<}while(h<0||h>=24);
do{

cout<<"Nhap phut: "; cin>>m;
if(m<0||m>=60) cout<<"Gio khong ton tai! "<}while(m<0||m>=60);
do{
cout<<"Nhap giay: "; cin>>s;
if(s<0||s>=60) cout<<"Gio khong ton tai!"<}while(s<0||s>=60);
}
void normalize(){
if(s>=60){
m=m+s/60;
s=s%60;
}
if(m>=60){
h=h+m/60;
m=m%60;
}
if(h>=24){
h=h%24;
}
}
void advance(int h, int m, int s){
this->s=this->s+s;
this->m=this->m+m;
this->h=this->h+h;
}
void reset(int h, int m, int s){
this->s=s;
this->m=m;
this->h=h;

}
void print(){
cout<<"Gio hien tai la: ";
cout<//
//
//
//
//
//
//
//
//
//
//

if(h<10){
if(m<10){
if(s<10){
cout<<"0"<}
else{
cout<<"0"<}
}
else{
if(s<10){

P a g e 23 | 50



//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//

cout<<"0"<}
else{

cout<<"0"<}
}
}
else{
if(m<10){
if(s<10){
cout<}
else{
cout<}
}
else{
if(s<10){
cout<}
else{
cout<}
}
}
}
Time operator+(Time t2){
}

};
main(){
Time t;
t.nhap();

int h,m,s;
cout<<"Nhap gio muon tang: "; cin>>h;
cout<<"Nhap phut muon tang: "; cin>>m;
cout<<"Nhap giay muon tang: "; cin>>s;
t.advance(h, m, s);
t.normalize();
t.print();
cout<<"\nChinh lai thoi gian hien tai: ";
do{
cout<<"Nhap gio: "; cin>>h;
if(h<0||h>=24) cout<<"Gio khong ton tai!"<}while(h<0||h>=24);
do{
cout<<"Nhap phut: "; cin>>m;
if(m<0||m>=60) cout<<"Gio khong ton tai! "<}while(m<0||m>=60);
do{
cout<<"Nhap giay: "; cin>>s;
if(s<0||s>=60) cout<<"Gio khong ton tai!"<}while(s<0||s>=60);
t.reset(h,m,s);
t.print();
}

P a g e 24 | 50


Bài 16. LỚP DATE
#include<iostream>
using namespace std;

class Date{
private:
int y,m,d;
public:
Date(){
y=1970;
m=1;
d=1;
}
Date(int y, int m, int d){
this->y=y;
m=m;
d=d;
}
int daysIn(int m){
if(m==1||m==3||m==5||m==7||m==8||m==10||m==12) return 31;
if(m==4||m==6||m==9||m==11)
return 30;
if(m==2){
if(y%4==0) return 29;
return 28;
}
}
void insert(){
do{
cout<<"Nhap nam: "; cin>>y;
if(y<0) cout<<"Khong ton tai!";
}while(y<0);
do{
cout<<"Nhap thang: "; cin>>m;

if(m<1||m>12) cout<<"Khong ton tai!";
}while(m<1||m>12);
do{
cout<<"Nhap ngay: "; cin>>d;
if(d<1||d>daysIn(d)) cout<<"Khong ton tai!";
}while(d<1||d>daysIn(d));
}
void normalize(){
if(m>12){
y=y+m/12;
m=m%12;
}
if(d>daysIn(m)){
cout<m=m+d/daysIn(m);
d=d%daysIn(m);
}
}
void advance(int y, int m, int d){
this->y=this->y+y;
this->m=this->m+m;
this->d=this->d+d;
}
void reset(int y, int m, int d){
this->y=y;
this->m=m;
this->d=d;
}
void print(){
cout<<"Ngay: ";

cout<}
};
main(){
Date d;

P a g e 25 | 50


×