Download as pdf or txt
Download as pdf or txt
You are on page 1of 3

TRƯỜNG ĐẠI HỌC NGÂN HÀNG TP.

HỒ CHÍ MINH
BỘ MÔN TOÁN KINH TẾ
BÀI KIỂM TRA SỐ 2
Tên học phần: Lập trình Python cho phân tích dữ liệu

Chú ý:

- Các yêu cầu được đánh số thứ tự từ thấp lên cao và có liên quan đến nhau,
Sinh viên nên hoàn thành theo đúng thứ tự.
- Sinh viên làm bài trên Jupyter Notebook, hoàn thành các yêu cầu đánh số bên
dưới.
- Sinh viên nộp bài trực tiếp trên hệ thống LMS bằng file có đặt tên theo cú pháp
MSSV_HoVaTen_BKT_So2.ipynb hoặc zip tất cả các file liên quan vào folder
và đặt tên theo cú pháp MSSV_HoVaTen_BKT_So2.zip
- Sinh viên cần thực hiện các đoạn code để đảm bảo chương trình hoạt động
tốt, nếu nộp code lỗi -> 0đ cho yêu cầu liên quan.
- Chú ý hết thời gian nộp bài thì hệ thống sẽ từ chối nhận bài mới -> 0đ
- Phát hiện sao chép, gian lận, bài giống nhau -> 0đ

Nội dung:

1. (2đ) Tạo một lớp có tên là Staff (Nhân viên) với các yêu cầu sau:
- Các thuộc tính: code (Mã nhân viên), name (tên), age (tuổi), gender (giới
tính), salary (tiền lương)
- Tạo một phương thức trong lớp Staff có tên tet_bonus (Thưởng tết)
nhận vào một số (percent) và trả về giá trị thưởng cuối năm percent *
salary. Ví dụ: 20 nghĩa là thưởng 20%.

Sau khi thiết lập thì kiểm tra bằng cách thực thi đoạn code mẫu dưới đây.

sta1 = Staff("NV001", "Linh Do", 28, "Male", 2500)

print(sta1.tet_bonus(20))

2. (2đ) Tạo một lớp có tên là Leader (Lãnh đạo), kế thừa từ lớp Staff với các yêu
cầu sau:
- Thuộc tính bổ sung: department (bộ phận công việc)
- Thay đổi phương thức tet_bonus trong lớp Leader để tính toán thưởng
cuối năm của lãnh đạo. Giá trị thưởng dựa trên phần trăm
thưởng(percent) và số lượng dự án(proj) mà người đó đang giám sát.
Giả sử mỗi dự án đóng góp được thưởng thêm 5% lương.

Sau khi thiết lập xong thì kiểm tra bằng cách thực thi đoạn code mẫu dưới
đây.

leader1 = Leader("LD001","Kelly", 30, "Female", 3000, "IT")

print(leader1.tet_bonus(10, 5))

3. (2đ) Tạo một lớp có tên là Developer (Nhà phát triển), kế thừa từ lớp Staff,
với các yêu cầu:
- Thuộc tính bổ sung: programming_language (ngôn ngữ lập trình)
- Thay đổi phương thức tet_bonus trong lớp Developer để tính toán
thưởng dựa trên phần trăm thưởng và số lượng lỗi phần
mềm(number_task) đã được khắc phục. Giả sử mỗi lỗi khắc phục
thưởng thêm 3% * lương.

Sau khi thiết lập xong thì kiểm tra bằng cách thực thi đoạn code mẫu dưới
đây.

dev1 = Developer("DE001","Mike Johnson",32,"Male", 4500,"Java")

print(dev1.tet_bonus(10, 6))

4. (1đ) Cho danh sách nhân viên trong công ty như sau:

staffs = [

Leader("LD01", "Kelly", 35, "Female", 5000, "IT"),

Developer("DE01", "Jane Smith", 28, "Female", 4000,


"Python"),

Developer("DE02", "Mike Johnson", 32, "Male", 4500, "Java"),

Leader("LD02", "Emily Davis", 40, "Female", 5500, "HR"),


Staff("ST01", "Hoang Thuy Linh", 30, "Female", 2000),

Staff("ST02", "My Tam", 40, "Female", 2500)

Sắp xếp danh sách trên theo thứ tự giảm dần của tiền lương. In ra thông tin
chi tiết từng nhân viên trong danh sách sau khi sắp xếp.

5. (3đ) Viết chương trình:

Tạo một menu chức năng cho phép chọn chức năng để thực hiện các yêu cầu
sau:
Phím 1: Thêm một nhân viên vào danh sách
Phím 2: In danh sách nhân viên đang có ra màn hình.
Phím 3: Sắp xếp danh sách nhân viên theo thứ tự giảm dần của tiền lương, sau
đó ghi danh sách này ra file
Phím 4: Load danh sách nhân viên từ file.
Phím 9: Thoát chương trình
Sau khi cài đặt, cần thực hiện lần lượt các bước sau để kiểm tra chương trình:

- Dùng chức năng phím 1 để thêm mới 3 nhân viên


- Dùng chức năng phím 2 để xuất ra màn hình
- Dùng chức năng phím 3 để ghi ra file
- Dùng chức năng phím 9 để thoát chương trình
- Run lại code, dùng chức năng phím 4 để load danh sách từ file và dùng
Chức năng phím 2 để xuất ra màn hình danh sách vừa load

You might also like