[Buổi 28][Kế thừa][WS] Bài 1: Employee Salary Hierarchy
Employee Salary Hierarchy
Bối cảnh
Công ty có Employee cơ bản và Manager là một Employee có thêm allowance.
Workshop dùng inheritance khi quan hệ is-a rõ và tránh copy logic lương cơ bản.
Yêu cầu
- Employee giữ id và baseSalary, method
basePay(). - Manager public kế thừa Employee, thêm allowance.
- Method
totalPay()của Manager = basePay + allowance. - Đọc n manager và in
id totalPay, sau đó in tổng payroll.
Yêu cầu tổ chức code
Phải có Manager : public Employee; chưa dùng virtual.
Online Judge chấm output. Với bài nhạy về cấu trúc OOP, giảng viên review thêm source code để xác nhận học viên luyện đúng kỹ năng.
Input
Dòng 1 n; n dòng id baseSalary allowance.
Output
n dòng manager; dòng cuối TOTAL sum.
Ràng buộc
1≤n≤2000, các khoản 0..1e12.
Ví dụ 1
Input
3
M1 100 20
M2 80 10
M3 50 0
Output
M1 120
M2 90
M3 50
TOTAL 260
Giải thích
Ba manager dùng cùng base Employee nhưng mỗi record có base salary và bonus. M1 có 100+20=120, M2 80+10=90, M3 50+0=50; tổng payroll là260. Output từng người rồi TOTAL 260, cho thấy derived behavior tính lương nhưng vẫn tái sử dụng dữ liệu base.
Ví dụ 2
Input
1
A 0 0
Output
A 0
TOTAL 0
Giải thích
Chỉ có A với base0 bonus0 nên salary derived bằng0. Tổng toàn hệ thống cũng bằng0; output A 0 và TOTAL 0. Ví dụ biên này kiểm tra logic không giả định salary phải dương.
Thông tin học tập
- Module: M08
- Buổi: B28
- Loại bài: WORKSHOP
- Độ khó: Medium
- Concepts: inheritance, base derived, protected state, method reuse, constructor chain
- Giới hạn kiến thức: B01-B28
- Time limit: 1 second(s)
- Memory limit: 256 MB
- Point: 100
Comments