📚 BÀI TẬP TỔNG HỢP OOP — QUẢN LÝ SÁCH
📝 Mô tả bài toán
Một thư viện cần xây dựng một chương trình để quản lý các loại sách khác nhau. Mỗi loại sách có thuộc tính và hành vi riêng, nhưng vẫn có những điểm chung. Hệ thống cần đảm bảo dễ mở rộng khi thêm loại sách mới.
🔧 Yêu Cầu Chi Tiết
1. Xây dựng lớp trừu tượng Book
-
Thuộc tính chung: mã sách, tên sách, tác giả, năm xuất bản, giá.
-
Phương thức trừu tượng: tính phí mượn sách, hiển thị thông tin.
2. Tạo các lớp kế thừa từ Book
Tối thiểu 3 lớp ví dụ như:
-
TextBook (Sách giáo khoa)
-
Novel (Tiểu thuyết)
-
Magazine (Tạp chí)
Mỗi lớp phải có:
-
Thuộc tính riêng.
-
Cách tính phí mượn riêng (áp dụng đa hình).
3. Áp dụng Encapsulation
-
Một số thuộc tính phải ở chế độ private.
-
Phải cung cấp getter/setter phù hợp.
4. Tạo Interface Borrowable
Yêu cầu:
-
Các phương thức: mượn sách, trả sách.
-
Các lớp con phải triển khai interface này.
5. Quản lý danh sách sách trong thư viện
Dùng:
-
List để lưu danh sách sách.
-
Map để lưu thông tin log mượn / trả sách (key: mã sách, value: số lần mượn).
Chức năng cần có:
-
Thêm sách.
-
Xóa sách.
-
Tìm kiếm sách theo tên / mã.
-
Hiển thị toàn bộ sách.
-
Tính tổng số tiền phí mượn tất cả sách đã mượn.
6. Chức năng tổng hợp
Tạo lớp LibraryManager để:
-
Quản lý các đối tượng sách.
-
Thống kê:
-
Số sách theo loại.
-
Sách mượn nhiều nhất.
-
Tổng doanh thu từ phí mượn.
-
7. Yêu cầu mở rộng (tuỳ chọn)
-
Xuất báo cáo ra console.
-
Thêm chức năng phân trang danh sách sách.
-
Cho phép chỉnh sửa thông tin sách.
🎉 Kết quả kỳ vọng
Sinh viên hoàn thành bài tập sẽ nắm chắc:
-
Tổ chức chương trình theo mô hình OOP đầy đủ.
-
Sử dụng class, interface, abstract class.
-
Biết thiết kế hệ thống theo hướng mở rộng.
-
Hiểu cách kết hợp OOP với List và Map.