1. Trang chủ
  2. » Luận Văn - Báo Cáo

Môn lập trình hướng Đối tượng bài tập thực hành x

36 0 0
Tài liệu được quét OCR, nội dung có thể không chính xác
Tài liệu đã được kiểm tra trùng lặp

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Tiêu đề Lập Trình Hướng Đối Tượng Bài Tập Thực Hành X
Tác giả Nguyễn Hoàn Triều
Người hướng dẫn GVHD: Nguyễn Ngọc Qui
Trường học Đại Học Quốc Gia Thành Phố Hồ Chí Minh - Trường Đại Học Công Nghệ Thông Tin
Chuyên ngành Lập Trình Hướng Đối Tượng
Thể loại Bài Tập Thực Hành
Năm xuất bản 2024
Thành phố Hồ Chí Minh
Định dạng
Số trang 36
Dung lượng 8,09 MB

Nội dung

Code của lớp NhanVien bao gồm các thuộc tính và phương thức: Hinh 1.. Code của lớp QuanLy bao gồm các thuộc tính và phương thức: 9| Page... Code của lớp KySu bao gồm các thuộc tính và ph

Trang 1

DAI HOC QUOC GIA THANH PHO HO CHI MINH TRUONG DAI HOC CONG NGHE THONG TIN KHOA CONG NGHE PHAN MEM

MON LAP TRINH HUONG DOI TUONG

BAI TAP THUC HANH X

GVHD: Nguyễn Ngọc Qui

Sinh viên thực hiện: Nguyễn Hoàn Triều - 23521657

Trang 2

IT002 - LAP TRINH HUONG BOI TUQNG

Uf Tp Hồ Chí Minh, 02/2024 I0

2|Page

Trang 3

IT002 - LAP TRINH HUONG BOI TUQNG

NHAN XET CUA GIAO VIEN HUONG DAN

, gdp tháng năm 2024

Người nhận xét (Ký tên và ghi rõ họ tên)

3|Page

Trang 4

IT002 - LAP TRINH HUONG BOI TUQNG

MUC LUC

1 Bài tập 1: Quan lý thông tin nhân viên

2 Bai tap 2: Quan ly thong tin khách sạn 2c 22222222 sey 13

3 Bai tap 3: Quan ly nông trại

4|Page

Trang 5

IT002 - LAP TRINH HUONG BOI TUQNG

DANH MỤC HÌNH ẢNH Hinh 1 1: Class diapram của bài Ì 2 22212112211 221151 1112211111 11111 11128151112 cay 8 Hinh 1 2: Các thuộc tính và phương thức trons lớp NhanViIen .c c2 cc s52 8 Hinh 1 3: Các thuộc tính và phương thức của lớp QuanLy - 5c 2222222 9 Hinh 1 4: Các thuộc tính và phương thức của lớp KySu 2c Sen 9

Hinh 1 5: Phương thức nhập thông tin nhân vIÊn - c5 2215612212122 22x 9 Hình 1 6: Phương thức xuất thông tin nhân viên đã nhập +22 10

Hinh 1 7: Phương thức nhập thông tin quản Ìý - 2c 2212222111121 1115511281 ce 10 Hình 1 8: Phương thức xuất thông tin quản lý - + s21 S111 2111522112121 x0 11 Hình 1 9: Phương thức tính tiền thưởng của lớp QuanLy - 2 seSz2scEz 222222 11 Hinh 1 10: Phuong thức nhập thông tin kỹ sư 222 2212222122221 1352 212 re 11

Hinh 1 11: Phương thire xuat thong tin KY SU ccc cccecc css cseeeseseeseeeeseesseseseeesseees 12 Hình 1 12: Phương thức tính tiền thưởng của lớp KySu 552222 12 Hình 1 13: Kết quả của nhập vào và xuất ra thông tin của quản lý và kỹ sư 13 Hình 1 14: Kết quả của các hàm tính tiền thưởng 2 22222 22EE£E22E2£E22E22222 252 13

Hinh 2 1: Class diapram của bài 2 0 22122112111 21 1211211111111 11111 115111111111 kg 14 Hinh 2 2: Các thuộc tính và phương thức của lớp Phong - 22 2222222 ssss 14 Hinh 2 3: Các thuộc tính và phương thức của lop Deluxe cee cette eee 15 Hinh 2 4: Các thuộc tính và phương thức của lớp Premium : +5 22s s53 15 Hinh 2 5: Các thuộc tính và phương thức của lớp Business - c2 s2 15 Hinh 2 6: Phương thức tạo ra phòng - 2 22 211121122211 11 151111111111111 1518111811 re 16 Hình 2 7: Phương thức xuất ra thông tin phòng -2- 225222 121211115 15111122 2xe 16 Hinh 2 8: Phương thức tạo ra loại phòng DelÌuxe - 0 222122122 1221222 16 Hình 2 9: Phương thức xuất ra thông tin phòng của lớp Deluxe 2 5z 17

Trang 6

IT002 - LAP TRINH HUONG BOI TUQNG

Hinh 2 10: Phương thức tính doanh thu phòng của lớp Deluxe - - 17 Hinh 2 11: Phương thức tạo ra loại phòng Premium 2 22 2222222 cay 18 Hình 2 12: Phương thức xuất ra thông tin phòng của lớp Premium - 18 Hinh 2 13: Phương thức tính doanh thu phòng của lớp Premrum - - 18 Hinh 2 14: Phương thức tạo ra loại phòng BusIness 5 2c 2 2222222222 xses 19 Hình 2 15: Phương thức xuất ra thông tin phòng của lớp Business - 19 Hinh 2 16: Phương thức tính doanh thu phòng của lớp Business 20 Hinh 2 17: Nội dung cách tạo ra các phòng trong hàm matn() - 2c 5c sc 5+ 20 Hình 2 18: Các hàm dùng để tìm ra loại phòng có doanh thu cao nhất 20 Hình 2 19: Kết quả sau khi tìm loại phòng có doanh thu lớn nhất - - z2 21

Hinh 3 1: Class diapram của bài 3 220122012111 21 1211211111111 111 011151111121 1 kg 22 Hinh 3 2: Các thuộc tính và phương thức của lớp GiaSuc c c2 se 23 Hinh 3 3: Các thuộc tính và phương thức của lớp Bo - 22c 2221222 rsey 23 Hinh 3 4: Các thuộc tính và phương thức của lớp uu - 0 2222222212 sey 24 Hinh 3 5: Các thuộc tính và phương thức của lớp De - 222 22222222122 sey 24 Hinh 3 6: Phương thức tạo ra Ø1a SÚC - L2 2 22121211211 121 112111111111 1821 101111811 kg 25 Hình 3 7: Phương thức nhập vào số lượng ban đầu của gia SÚC 5s 25 Hình 3 8: Phương thức xuất ra thông tin của gia SÚC 2 2 2212221511111 x6 25 Hinh 3 9: Phương thức tạo ra p1a súc bÒ L0 2012112112211 112 1118110111281 11g ườ 25 Hình 3 10: Phương thức nhập vào số lượng gia súc bò ban đầu - scss 26 Hình 3 11: Phương thức xuất ra thông tin của gia súc bò -¿ 22222 S222 xe 26 Hình 3 12: Phương thức tiếng kêu của gia súc bò 2 St 2221111221511 1112 6 26

Hinh 3 13: Phương thức cho sữa của ø1a súc ĐÒ - S 2n Sn 1n H2 SH HH hy 27 Hinh 3 14: Phương thức sinh con của gia súc bÒ - n SH 1 9H T19 1121 Hư 28

Hinh 3 15: Phương thức tạo ra Ø1a SÚC CỪU - 2 2 2 20112 1121211121111 11 11181 tr àg 28

Trang 7

IT002 - LAP TRINH HUONG BOI TUQNG

27: Kết quả tiếng kêu khi bị bỏ đói - 5-5 2s 2 1211 1E1121271211121 1 c2 33

28: Kết quả việc thông kê số lượng sữa và con sau | dot cho stra va sinh 34

7|Page

Trang 8

IT002 - LAP TRINH HUONG BOI TUQNG

NOI DUNG BAI LAM

1 Bai tap 1: Quan ly thong tin nhan vién

Viết một chương trình C++ đề quản lý thông tin nhân viên trong một công ty Sử dụng tính kế thừa để tạo lớp cơ sở NhanVien và hai lớp con Quản lý và Kỹ sư Mỗi loại

nhân

viên có các thuộc tính như sau:

« Nhân viên: Mã số nhân viên, Tên, Lương cơ bản

« Quản lý: Thừa kế từ Nhân viên với thêm thuộc tính là Tỷ lệ thưởng Phương thức TienThuong () tính toán tiền thưởng dựa trên tỷ lệ thướng va lương cơ bản

- Kỹ sư: Thừa kế từ Nhân viên với thêm thuộc tính là Số giờ làm thêm Phương thức TienThuong () tính toán tiền thưởng dựa trên số giờ làm thêm (mỗi giờ làm thêm được trả 100.000)

Chương trình cần thực hiện các công việc sau:

» Cho phép người dùng nhập thông tin của một quan ly va một kỹ sư

+ Hién thi thông tin chỉ tiết của cả hai nhân viên, bao gồm mã số, tên, lương cơ bản

và tiền thưởng tính được

* Sử dụng tính kế thừa đề thực hiện việc tính toán tiền thưởng dựa trên loại nhân viên

+ Su dung ham Xuat() dé hiển thị thông tin của nhân viên

Bài làm

Class diagram cua bai 1:

8|Page

Trang 9

IT002 - LẬP TRÌNH HƯỚNG ĐÓI TƯỢNG

NhanVien

# Luong: int + Nhap(): void + Xuat(): void

Extends Extends

- TyLeThuong: float - SoGioLamThem: float + Nhap(): void + Nhap(): void + Xuat(): void + Xuat(): void + TienThuong(): float + TienThuong(): float

Hinh 1 1; Class diagram cua bai 1

Code của lớp NhanVien bao gồm các thuộc tính và phương thức:

Hinh 1 2: Cae thuée tinh va phuong thitc trong lop NhanVien

Code của lớp QuanLy bao gồm các thuộc tính và phương thức:

9| Page

Trang 10

IT002 - LẬP TRÌNH HƯỚNG ĐÓI TƯỢNG

vcLass QuanLy : public NhanVien { Postel e

Hình ï 3: Các thuộc tỉnh và phương thức của lớp QuanLy

Code của lớp KySu bao gồm các thuộc tính và phương thức:

xcLass KySu : public NhanVien {

Tình ï 4: Các thuộc tỉnh và phương thức của lớp KySu

Nội dung các phương thức trong lớp NhanVien:

- Phương thức nhập thông tin nhân viên:

vvoid NhanVien: :Nhap() { cout << "Nhap MSNV: "; cin >> MSNV; cin.ignore();

cout << "Nhap Ten: ";

Trang 11

IT002 - LAP TRINH HUONG BOI TUQNG

- Phương thức xuất thông tin nhân viên đã nhập:

::Xuat() { cout << "MSNV: " << MSNV << endl;

cout << "Ten: " << Ten << endL;

cout << uong: " << Luong << endl;

Hình 1 6: Phương thức xuất thông tin nhân viên đã nhập

Nội dung các phương thức trong lớp QuanLy:

- Phương thức nhập thông tin quản lý:

® - Hướng xử ly của phương thức nhập thông tin quan ly

o_ Dùng tính kế thừa để sử dụng hàm nhập của lớp NhanVien để nhập vào thông tin của 1 nhân viên

o_ Vi lớp QuanLy có thêm thuộc tính là TyLeThuong nên ta sẽ bố sung thêm việc nhập tỷ lệ thưởng

::Nhap(C) { ::Nhap(C);

cout << "Nhap ty Le thuong: "; cin >> TyLeThuong;

Tình 1 7: Phương thức nhập thông tin quan lý

- Phương thức xuất thông tin quản lý đã nhập:

e - Hướng xử lý của phương thức xuất thông tin quản lý

o_ Dùng tính kế thừa để sử dụng hàm xuất của lớp NhanVien để xuất ra thông tin của 1 nhân viên

o_ Vi lớp QuanLy có thêm tiền thưởng nên ta sẽ bô sung thêm việc xuất tiền thưởng

11|Page

Trang 12

IT002 - LẬP TRÌNH HƯỚNG ĐỚI TƯỢNG

::Xuat() { ::Xuat();

cout << "Tien thuong: " << TienThuong() << endl;

Hình 1 8: Phương thức xuất thông tin quản lý

- Phương thức tính tiền thưởng (Tien Thuong()):

e Đầu vào: Tỷ lệ thưởng

© - Đầu ra: Tiền thưởng ứng với tý lệ thưởng nhập vào

e - Hướng xử lý của phương thức tính tiền thưởng:

o_ Vi tý lệ thưởng là I số tính theo phần trăm (%), nên ta lấy tỷ lệ thưởng

nhập vào chia cho 100

o_ Sau đó lấy lương đã nhập vào ban đầu nhân với tỷ lệ thưởng đã chia cho

100 và trả về kết quả

::TienThuong() { TyLeThuong = TyLeThuong / 100;

return Luong * TyLeThuong;

Hinh 1 9: Phuong thite tinh tiần thưởng của lớp Quanly

Nội dung các phương thức của lớp KySu:

- Phương thức nhập thông tin của kỹ sư:

® Hướng xử ly của phương thức nhập thông tin kỹ sư

o_ Dùng tính kế thừa để sử dụng hàm nhập của lớp NhanVien để nhập vào thông tin của 1 nhân viên

o_ Vi lớp KySu có thêm thuộc tính là SoGioLamThem nên ta sẽ bô sung thêm việc nhập sô giờ làm thêm

::Nhap() { ::Nhap(C);

cout << "Nhap so gio Lam them: "; cin >> SoGioLamThem;

Hinh 1 10: Phương thức nhập thông tín kỹ sư

12|Page

Trang 13

IT002 - LẬP TRÌNH HUONG DOI TUQNG

- Phuong thirc xuat thong tin cua kỹ sư đã nhập vào:

e Hướng xử lý của phương thức xuất thông tin kỹ sư

o_ Dùng tính kế thừa để sử dụng hàm xuất của lớp NhanVien để xuất ra thông tin của 1 nhân viên

o_ Vi lớp KySu có thêm tiền thưởng nên ta sẽ bố sung thêm việc xuất tiền thưởng

::Xuat() f

ap (VF 1 8 ƒ- cout << "Tien thuong: " << TienThuong() << endl;

Hinh 1 11; Phuong thive xudt thong tin If su

- Phương thức tính tiền thuong (TienThuong()):

e Đầu vào: Số giờ làm thêm

e Đầu ra: Tiền thưởng dựa trên số giờ làm thêm nhập vào

e - Hướng xử lý của phương thức tính tiền thưởng:

o_ Vi tiền thưởng của kỹ sư dựa trên số giờ làm thêm và 1 giờ làm thêm sẽ

nhận được 100.000 tiền thưởng

o Ta lay s6 giờ làm thêm đã nhập vào nhân cho 100.000 và trả về kết quả

::TienThuong() {

return SoGioLamThem * 100000;

Hinh 1 12: Phương thúc tính tiền thưởng cia lop KySu

Ket qua cua cac ham trong bai 1:

- Kết quả cua nhập vào và xuất ra thông tin của quản lý và kỹ sư:

13|Page

Trang 14

IT002 - LẬP TRÌNH HƯỚNG ĐỚI TƯỢNG

Nhap thong tin quan Ly

Nhap MSNV: 23521657

Nhap Ten: Nguyen Hoan Trieu

: 120000 Thong tin quan ly

Hinh 1 13: Két quả của nhập vào và xuất ra thông tin của quản lý và kỹ sư

- Kêt quả của các hàm tính tiên thưởng:

[Ej D\OOP\Thực hành\ab4\235

Nhap thong tin quan ly

Hinh 1 14: Két quả của các hàm tính tiền thưởng

2 Bài tập 2: Quản lý thông tin khách sạn

Khách sạn SOFITEL có 3 loại phòng với doanh thu phòng của tháng được

tính như sau:

* Loại Deluxe: doanh thu phòng = Số đêm * 750000 + Phí dịch vụ + Phí phục vụ

14|Page

Trang 15

IT002 - LAP TRINH HUONG BOI TUQNG

+ Loại Premium: doanh thu phòng = Số đêm * 500000 + Phi dich vụ

« Loại Business: doanh thu phòng = Số đêm * 300000

Yêu cầu: Hàm main: khởi tạo 5 phòng: Ví dụ: Deluxe ặ ); Deluxe b( ); Premium c( ); Premium d( ); Business e( ) Hãy cho biết doanh thu của loại phòng nào nhiều nhất? (lưu ý: mỗi loại phòng có thê khới tạo nhiều phòng)

Bài làm

Class diagram cua bai 2:

Hinh 2 1: Class diagram của bài 2

Code của lớp Phong bao gồm các thuộc tính và phương thức:

Hinh 2 2: Cae thuéc tinh va phương thức của lớp Phong

Code của lớp Deluxe bao gồm các thuộc tính và phương thức:

15|Page

Trang 16

IT002 - LẬP TRÌNH HƯỚNG ĐÓI TƯỢNG

DeLuxe( sodem, DoanhThuPhong() ; Xuat();

Hinh 2 3: Các thuộc tính và phương thức cua lop Deluxe

Code của lớp Premium bao gồm các thuộc tính và phương thức:

DoanhThuPhong();

Xuat();

Hinh 2 4: Cae thuée tinh va phuong thite cua lop Premium

Code của lớp Business bao gồm các thuộc tính và phương thức:

Business( sode bệ

i DoanhThuPhong(

Xuat();

Hinh 2 5: Các thuộc tỉnh và phương thức của lớp Business

Nội dung các phương thức của lớp Phong:

- Phương thức tạo ra phòng với các thông tin được tạo sắn:

® - Hướng xử ly của phương thức tạo ra phòng

o_ Tạo ra l constructor có truyền các tham số vào như số đêm (sodem), phí dịch vụ (phidichvu), phí phục vụ (phiphucvu)

16|Page

Trang 17

IT002 - LAP TRINH HUONG BOI TUQNG

o_ Các thông tin trên sẽ được nhập vào bằng các tham số truyền vào từ ban đâu

Hinh 2 6: Phương thức tạo ra pHÒHg

- Phương thức xuất ra thông tin phòng đã tạo:

::XuatQ) {

cout << "so dem: " << SoDem << endl;

cout << "phi dich vu: " << PhiDichVu << endl; cout << "phi phuc vu: " << PhiPhucVu << endl;

Hình 2 7: Phương thức xuất ra thông tín phòng

Nội dung các phương thức của lớp Deluxe:

- Phương thức tạo ra loại phòng deluxe với các thông tin có sẵn:

® Hướng xử lý của phương thức tạo ra loại phòng Deluxe

o Sw dung tinh kế thừa đề sử dụng các thuộc tính của lớp Phone, bởi thuộc tính của lớp Deluxe có thuộc tính giống với lớp Phong

o_ Tạo ra l constructor có truyền các tham số vào như số đêm (sodem), phí dịch vụ (phidichvu), phí phục vụ (phiphucvu)

o_ Các thông tin trên sẽ được nhập vào bằng các tham số truyền vào từ ban đầu

Hinh 2 8: Phương thức tạo ra loại phòng Deluwe

- Phương thức xuất ra thông tin loại phòng Deluxe đã nhập:

e - Hướng xử lý của phương thức xuất thông tin phòng Deluxe

o Sw dung tính kế thừa dé sử dụng hàm xuất của lớp Phong

17|Page

Trang 18

IT002 - LAP TRINH HUONG BOI TUQNG

o Boi lép Deluxe co thém thuéc tinh doanh thu phong nén ta bé sung thém viéc xuat ra doang thu phong

::Xuat() { ::Xuat();

cout << "Doanh tl hong: " << DoanhThuPhong() << endL;

Tình 2.9: Phương thức xuất ra thông tin phòng của lớp Deluxe

- Phương thức tính doanh thu phòng

e - Đầu vào: Số đêm, phí phục vụ, phí dịch vụ truyền từ đầu

¢ au ra: Doanh thu phòng dựa trên loại phòng và các giá trị nhập vào

® - Hướng xử ly của phương thức tính doanh thu phòng

o_ Doanh thu của loại phòng Deluxe sẽ tính bằng số đêm * 750.000 cộng

Tình 2 10: Phương thúc tính doanh thu phòng của lớp Deluxe

Nội dung các phương thức của lớp Premium:

- Phương thức tạo ra loại phòng premium với các thông tin có sẵn:

® Hướng xử lý của phương thức tạo ra loại phòng Premium

o Sw dung tinh kế thừa đề sử dụng các thuộc tính của lớp Phone, bởi thuộc

tính của lớp Premium có thuộc tính giống với lớp Phong Nhưng lớp

Premium không cần thuộc tính phí phục vụ nên ta sẽ cho nó bằng 0 o_ Tạo ra l constructor có truyền các tham số vào như số đêm (sodem), phí dich vu (phidichvu)

o_ Các thông tin trên sẽ được nhập vào bằng các tham số truyền vào từ ban đâu

18|Page

Ngày đăng: 11/02/2025, 16:19