Final Review
Bài 1: Shape
Hình Học |
Diện Tích (S) |
Chu Vi (P) |
Hình tròn (Circle) |
\( S = \pi r^2 \) |
\( P = 2\pi r \) |
Hình elip (Ellipse) |
\( S = \pi a b \) |
\( P = \pi (a + b) \) |
Hình vuông (Square) |
\( S = a^2 \) |
\( P = 4a \) |
Hình chữ nhật (Rectangle) |
\( S = l \times w \) |
\( P = 2(l + w) \) |
Hình tam giác (Triangle) |
\( S = \sqrt{s(s-a)(s-b)(s-c)} \), với \( s = \frac{a+b+c}{2} \) |
\( P = a + b + c \) |
Yêu cầu
Sử dụng kế thừa tạo lớp trừu tượng Shape và các lớp con kế thừa từ lớp Shape và thực hiện các bước sau
Tạo lớp quản lý danh sách các hình gồm các phương thức sau
- Viết phương thức, thêm 1 hình vào danh sách quản lý
- Viết phương thức in ra danh sách các hình đang quản lý
- Viết phương thức tính tổng diện tích và chu vi
- Viết phương thức trung bình diện tích và chu vi
- Viết phương thức sắp xếp các hình theo diện tích tăng dần
- Viết phương thức sắp xếp các hình theo chu vi giảm dần
- Viết phương thức tìm hình có diện tích lớp nhất
- Viết phương thức tìm hình có chu vi nhỏ nhất
Bài 2: Vehicle
Xây dựng một hệ thống quản lý phương tiện vận tải gồm hai loại xe: Xe Buýt và Xe Tải.
Lớp cha Vehicle có các thuộc tính:
- licensePlate: Biển số xe
- brand: Hãng xe
- driverName: Tên tài xế
- fare(): Phương thức trừu tượng để tính giá cước
Lớp con Bus (Xe Buýt):
- Thuộc tính riêng: numPassengers (số hành khách)
- Giá vé: 10.000 VNĐ/hành khách
- Công thức tính giá cước:
Giá cước = numPassengers × 10.000
Lớp con Truck (Xe Tải):
- Thuộc tính riêng: weight (trọng tải tính bằng tấn)
- Giá cước: 5.000 VNĐ/kg
- Công thức tính giá cước:
Giá cước = weight × 5.000 × 1.000
Yêu cầu
Tạo lớp quản lý danh sách các xe và thực hiện các chức năng sau
- Viết phương thức thêm 1 xe vào danh sách
- Viết phương thức in ra danh sách các xe đang quản lý
- Viết phương thức tính tổng giá cước của các xe
- Viết phương thức tính tổng cước trung bình của các xe
- Tìm xe có giá cước lớn nhất
- Sắp xếp xe theo giá cước tăng dần
Bài tập 3: Book
Xây dựng hệ thống quản lý bán hàng với hai loại sản phẩm: Sách và Tạp chí.
Lớp cha: Product (Sản phẩm)
Thuộc tính chung:
- id: Mã sản phẩm
- title: Tên sản phẩm
- price: Giá bán (VNĐ)
- quantity: Số lượng trong kho
Cài đặt các phương thức:
- toString(): Hiển thị thông tin sản phẩm
- total(): Tính tổng giá khi mua số lượng sản phẩm
Lớp con: Book (Sách)
- Kế thừa từ Product
- Thuộc tính riêng:
- author: Tác giả
- numPages: Số trang
Lớp con: Magazine (Tạp chí)
- Kế thừa từ Product
- Thuộc tính riêng:
- issueNumber: Số phát hành
- month: Tháng phát hành
Yêu cầu
Tạo lớp quản lý các loại sách trên và cài đặt các phương thức sau
- Viết phương thức, thêm 1 cuốn sách vào danh sách quản lý
- Viết phương thức in ra danh sách các sách đang quản lý
- Viết phương thức tính tổng số tiền
- Viết phương thức trung bình theo số tiền từng sách
- Viết phương thức sắp xếp các sách theo số tiền tăng dần
- Viết phương thức tìm sách có số tiền lớn nhất
Bài 4: Tính lương theo tháng cho Công nhân và Sinh viên làm thêm
Viết chương trình quản lý tính lương hàng tháng cho Công nhân và Sinh viên làm thêm dựa trên số giờ làm việc và mức lương theo giờ.
2. Thiết kế lớp
Lớp cha: Employee (Nhân viên)
Thuộc tính chung:
- id: Mã nhân viên
- name: Họ và tên
- age: Tuổi
- hourlyRate: Lương theo giờ (VNĐ)
- workHours: Số giờ làm việc trong tháng
Phương thức:
- salary(): Tính lương = hourlyRate * workHours
- toString(): Hiển thị thông tin nhân viên
Lớp con: Worker (Công nhân)
- Kế thừa từ Employee
- Thuộc tính riêng: position (Vị trí làm việc, ví dụ: Thợ máy, Lắp ráp, Cơ khí)
Lớp con: StudentWorker (Sinh viên làm thêm)
- Kế thừa từ Employee
- Thuộc tính riêng:
- university: Trường đại học đang theo học
- maxHours: Số giờ làm tối đa trong tháng (Ví dụ: 80 giờ)
- Quy tắc: Nếu sinh viên làm quá maxHours, chỉ tính lương cho maxHours giờ.
Yêu cầu
- Nhập vào danh sách các đối tượng trên
- In ra danh sách các đối tượng
- Tính tổng lương
- Tìm nhân viên có mức lương thấp nhất
- Sắp xếp các nhân viên theo mức lương từ thấp đến cao