- Mã:
- [OOP]Cau2.Final.hk1.2017-2018
- Tên:
- Quản lý nhân viên công ty
- Dạng thi:
- oi
- Thang điểm:
- 10 điểm
- Giới hạn thời gian:
- 1 giây
- Giới hạn bộ nhớ:
- 256 MB
- Được tạo bởi:
- admin
Một công ty cần tin học hóa công việc tính tiền lương cho nhân viên
trong toàn công ty. Nội dung yêu cầu như sau:
Cần lưu danh sách các nhân viên, trong đó mỗi nhân viên có ít nhất các
thông tin: Mã số nhân viên, Họ tên, Năm sinh, Mã số thuế cá nhân, Loại nhân
viên: nhân viên thời toàn thời gian, nhân viên bán thời gian.
Tiền lương mỗi tháng cho mỗi loại nhân viên trong công ty được tính
theo quy tắc sau:
- Đối với nhân viên toàn
thời gian:
Tiền lương
= Bậc lương * lương cơ bản + phụ cấp. Trong đó tất cả các nhân viên toàn thời
gian có cùng một mức lương cơ bản, mỗi nhân viên toàn thời gian sẽ có bậc lương
và phụ cấp khác nhau.
- Đối với nhân viên bán thời
gian:
Tiền lương
= Số giờ làm việc trong tháng * Tiền công mỗi giờ. Nếu nhân viên bán thời gian
đã có mã số thuế thì bị trừ 10% trên tổng số tiền lương. Nếu nhân viên bán thời
gian chưa có mã số thuế thì bị trừ 20% trên tổng số tiền lương.
Trong đó
tất cả các nhân viên bán thời gian có cùng tiền công mỗi giờ và mỗi nhân viên
bán thời gian sẽ có số giờ làm việc khác nhau.
Yêu cầu:
a.
Hãy khai báo
thuộc tính và phương thức của các lớp trong sơ đồ lớp (phải sử dụng kế thừa, đa hình, thành
phần tĩnh) để giái quyết vấn đề theo những đặc tả trên.
b.
Hãy xây dựng đầy
đủ các phương thức sau ở mỗi lớp: 3 loại phương thức khởi tạo và phương thức
hủy.
c.
Xây dựng phương
thức tính tiền lương của mỗi loại nhân viên.
d.
Cài đặt một hàm
hiển thị lương cho từng nhân viên với prototype như sau:
void hienThiLuong(NHANVIEN *pnv[], int n) ;
Trong đó:
pnv là một mảng các con trỏ mà mỗi phần tử lưu địa chỉ của một đối tượng thuộc
1 trong các loại nhân viên kể trên, n là tổng số nhân viên.
e.
Xây dựng hàm main để nhập và xuất dữ liệu theo
yêu cầu sau:
Input:
-
Dòng đầu tiên là
số N – số lượng nhân viên trong công ty.
-
Dòng 2: chứa 2 số
nguyên là mức lương cơ bản và tiền công mỗi giờ.
-
Nx6 dòng tiếp
theo là thông tin của từng nhân viên với cấu trúc sau:
o
Loại nhân viên:
Qui ước: TTG – là nhân viên toàn thời gian, BTG – là nhân viên bán thời gian.
o
Mã số nhân viên
o
Họ tên
o
Năm sinh
o
Mã số thuế: qui
ước # là nhân viên chưa có mã số thuế.
o
Dòng tiếp theo là
chứa 2 số nguyên là bậc lương và phụ cấp nếu là nhân viên toàn thời gian hoặc
chứa 1 số nguyên là số giờ làm việc của nhân viên bán thời gian.
Output:
-
Xuất thông tin của tất cả
nhân viên (xem ví dụ mẫu để hiểu rõ hơn)
Input Output 2 2000000 200000 TTG NV01 Nguyen Van A 1983 123 2 500000 BTG NV02 Tran Thi B 1980 # 20 Bang Tien Luong Cong Ty NV01: Nguyen Van A Loai: Toan thoi gian Ma so thue:123 Nam sinh:1983 Bac: 2 Phu cap: 500000 Luong: 2*2000000+500000=4500000 (vnd) NV02: Tran Thi B Loai: Ban thoi gian Ma so thue: Khong co Nam sinh:1980 Thoi gian: 20 (gio) Luong: 20*200000-20*200000*20%=3200000 (vnd)
Theme :
Mời bạn soạn code