Yêu cầu người dùng nhập tên nhân viên muốn cập nhật và lưu vào biến “ma”.. Yêu cầu người dùng nhập chức vụ muốn cập nhật cho nhân viên và lưu vào biến “chục” c.. - Cần có ít nhất 1 hoặc
Trang 1
BỘ GIÁO DỤC VÀ ĐÀO TẠO TRƯỜNG ĐẠI HỌC THƯƠNG MẠI
BÀI TẬP LỚN
NHÓM 14: ĐỀ TÀI 13: XÂY DỰNG
CHƯƠNG TRÌNH QUẢN LÝ NHÂN SỰ CỦA CÔNG TY DU LỊCH VIETTRAVEL
GIÁO VIÊN GIẢNG DẠY: ĐINH THỊ HÀ
MA HOC PHAN: 231_INFO4511 02
HO VA TEN SINH VIEN: DUONG VAN NAM
MON HQC: LAP TRINH PYTHON
Trang 2
LỜI NÓI ĐẦU
Trong khi xã hội ngày càng phát triển, nhu cầu về dịch vụ của con người ngày càng tăng Để đáp ứng nhu cầu đó, các công ty,
doanh nghiệp chuyên về dịch vụ, đặc biệt là dịch vụ du lịch đã ra
đời
Với uy tín và chất lượng vượt trội, sau hơn 20 năm hình thành
và phát triển Vietravel đã chính thức trở thành một trong những công ty lữ hành hàng đầu Châu Á Để đạt được thành tựu đó, không phải chỉ nhờ công sức lao động của một hoặc một vài cá nhân Mà là kết quả của cả một tập thể Một tập thể đông, muốn các hoạt động trở nên hiệu quả thì cần có sự quản lý tốt Vấn đề đặt ra là, với số
lượng người đông, hoặc rất đông thì việc quản lý nên được thực hiện
thế nào cho hiệu quả?
Khi máy móc dần trở nên thân thuộc và gần gũi hơn với con người, việc sử dụng và phát huy năng lực của máy móc sẽ làm giảm
áp lực, giảm thời gian làm việc, tăng cường sự chính xác và hiệu quả Trên cơ sở đó, chúng tôi đã thiết kế và xây dựng một chương
trình quản lý nhân sự cho công ty Vietravel
Chúng tôi xin trân trọng bày tỏ lòng biết ơn đối với giảng viên
Đinh Thị Hà - Trường Đại học Thương mại - Hà Nội đã tận tình hướng
dẫn và giúp đa chúng tôi trong suốt quá trình tạo nên sản phẩm này Nhờ vậy mà chúng tôi có thể hoàn thành tốt bài thảo luận này và mong bài thảo luận sẽ suôn sẻ
Cảm ơn các bạn trong nhóm 14, đã đóng góp công sức của mình nhằm hoàn thiện hơn sản phẩm này
Trang 3
Xin chân thành cảm ơn!
Nhóm 14 - K59S4 - Trường đại học Thương Mại
MỤC LỤC LỜI NÓI ĐẦU LH HH HỦ g1 ng HH gen 1
¡0/201 ằằẰằẰằằằẻ.ẻ 6 2
PHẦN I: ĐẶT BÀI TOÁN c- LH n1 HH HH HH ga 3
0 Giao diện chương trÌnh chén HH HH ưu 3
3 Cập nhật thông tin nhân viên nh nh nền neo 4
4 Tìm kiếm thông tin nhân viên ích neo 5
5 Giải thích các bƯỚC ch nh nh nha tiệt 6
PHAN II: SƠ ĐỒ KHỐI LH 1É BE HH HH HH gu 9
PHAN III: CÀI ĐẶT CHƯƠNG TRÌNH ác nh nh nen 10
1 Module 1: quanlynhanSU.DV: ch nha na 10
PHẦN IV: KẾT LUẬN c nc tì HH ng HH HH Hà rệt 15
BIÊN BẢN ĐÁNH GIÁ NHÓM cọ tt cnn nh nh n HH HH Hà Hàn ng 16
Trang 4
PHẦN I: ĐẶT BÀI TOÁN
0 Giao diện chương trình
- Bước 1: "Thông báo các chức năng và cho người dùng lựa
chọn" với:
Lựa chọn 0: Kết thúc chương trình
Lựa chọn 1: Thêm nhân viên
Lựa chọn 2: Xoá bỏ nhân viên
Lựa chọn 3: Cập nhật thông tin nhân viên
Lựa chọn 4: Tìm kiếm thông tin nhân viên
1 Thêm nhân viên
- Bước 1: "Nhập mã nhân viên”:
a Yêu cầu người dùng nhập mã nhân viên và lưu vào biến
“ ma” n
b Tim kiém trong list “nv” value “ma”:
+ Nếu mã nhân viên da tồn tại trong danh sách, chuyển sang bước 4
+ Nếu mã nhân viên không tồn tại, chuyển sang bước 2
- Bước 2: "Thêm thông tin của nhân viên”:
a Yều cầu người dùng nhập tên nhân viên và lưu tên vào
biến “ten”,
b Yêu cầu người dùng nhập chức vụ nhân viên và lưu vào
biến “chục”
c Yêu cầu người dùng nhập mức lương của nhân viên và lưu vào biến “luong”
d Tạo từ điền “moi” và đưa vào 4 cặp key và value tương
ứng: “ma”: ma, “ten”: ten, “chục”: chục, “luong”: luong
e Mở thêm vùng chứa cho biến list “nv”,
Trang 5
f Đưa tất cả các cặp key và value trong từ điển “moi” vào
list “nv” tại vùng nhớ mới tạo
g Dừng 0.5s
h Thông báo đã thêm nhân viên thành công
- Bước 4: "Hỏi người dùng có muốn tiếp tục chương trình
không?"
a Nếu người dùng chọn có, quay về mục 0
b Nếu người dùng chọn không, chuyển đến bước 5
- Bước 5: "Kết thúc chương trình"
2 Xóa nhân viên
- Bước 1: "Nhập mã nhân viên muốn xoá":
a Yêu cầu người dùng nhập mã nhân viên và lưu vào biến
“ ma” n
b Tìm kiếm trong list “nv” value “ma”:
+ Nếu mã nhân viên đã tồn tại trong danh sách, chuyển đến bước 2
+ Nếu mã nhân viên không tồn tại trong danh sách, thông báo rằng không tìm thấy mã nhân viên và chuyển đến bước 3
- Bước 2: "Xóa thông tin nhân viên”:
a Xoá trong list “nv” phần từ có “ma” tương ứng với mã
vừa nhập tại bước 1
b Dung 0.5s
c Théng bao da xoa nhan vién thanh céng
d Dung 0.5s
- Bước 3: "Hỏi người dùng có muốn tiếp tục chương trình
khéng?":
a Nếu người dùng chọn có, quay về mục 0
Trang 6
b Nếu người dùng chọn không, chuyển đến bước 4
- Bước 4: "Kết thúc chương trình”:
3 Cập nhật thông tin nhân viên
- Bước 1: "Nhập mã nhân viên muốn cập nhật":
a Yêu cầu người dùng nhập mã nhân viên muốn cập nhật
rồi lưu vào biến “ma”
b Tìm kiếm trong list “nv” value “ma”:
+ Nếu mã nhân viên đã tồn tại trong danh sách, chuyển đến bước 2
+ Nếu mã nhân viên không tồn tại trong danh sách, chuyển đến bước 3
- Bước 2: “Cập nhật thông tin nhân viên”:
a Yêu cầu người dùng nhập tên nhân viên muốn cập nhật
và lưu vào biến “ma”
b Yêu cầu người dùng nhập chức vụ muốn cập nhật cho
nhân viên và lưu vào biến “chục”
c Yêu cầu người dùng nhập mức lương muốn cập nhật cho nhân viên và lưu vào biến “luong”
d Thay thế lần lượt các giá trị biến “ten”, “chục”, “luong”
vào value tương ứng với các key “ten”, “chục”, “luong”
tại vị trí tìm được ở bước 1
e Dừng 0.5s
f Thông báo đã cập nhật thông tin nhân viên thành công
g Dừng 0.5s
- Bước 3: Hỏi người dùng có muốn tiếp tục chương trình
khéng?":
a Nếu người dùng chọn có, quay về mục 0
b Nếu người dùng chọn không, chuyển đến bước 4
Trang 7
4
- Bước 4: "Kết thúc chương trình”:
Tìm kiếm thông tin nhân viên
- Bước 1: "Nhập mã nhân viên muốn tìm kiếm”:
a Yêu cầu người dùng nhập mã nhân viên muốn tìm kiếm
rồi lưu vào biến “ma”
b Tim kiém trong list “nv” value “ma”:
+ Nếu mã nhân viên da tồn tại trong danh sách, chuyển đến bước 2
+ Nếu mã nhân viên không tồn tại trong danh sách, chuyển đến bước 3
- Bước 2: “Tìm kiếm thông tin nhân viên”:
a In lần lượt các value “ma”, “ten”, “chục”, “luong” tại vị trí
tìm được ở bước 1 Với mỗi thông tin in ra đều dừng lại
0.55
- Bước 3: Hỏi người dùng có muốn tiếp tục chương trình
khéng?":
a Nếu người dùng chọn có, quay về mục 0
b Nếu người dùng chọn không, chuyển đến bước 4
- Bước 4: "Kết thúc chương trình"
Giải thích các bước
Để giải quyết bài toán quản lý nhân sự, ta cần xác định một vài thông tin cần thiết của nhân viên
Bởi vì một vài thông tin của nhân viên trong quá trình làm
việc có thể thay đổi Nên các thông tin mà người dùng cần đưa vào trong bài toàn phải đảm bảo các yêu cầu sau:
Trang 8
-_ Cần có ít nhất 1 thông tin luôn cố định, đặc trưng cho từng nhân viên để thuận tiện trong việc tìm kiếm, sửa đổi hay xoá các thông tin (nếu cần)
- Cần có ít nhất 1 hoặc một vài thông tin linh động để
trong quá trình một nhân viên làm việc, tuỳ vào nhu cầu, mong muốn hoặc năng lực làm việc của nhân viên mà:
+ Nhân viên đó có thể muốn dừng làm việc, hoặc bị sa thải > Phần mềm quản lý nhân sự cần chức năng xoá bỏ
nhân viên
+ Các nhà quản lý có thể tăng giảm (thay đổi) chức vụ cũng như mức lương cho nhân viên > Phan mềm quản lý nhân sự cần có chức năng cập nhật thông tin nhân viên + Các nhà quản lý hoặc khách hàng, có thể cần thông tin của một nhân viên nào đó nhằm phục vụ mục đích cá nhân hoặc doanh nghiệp ¬> Cần xây dựng chức năng tìm kiếm thông tin nhân viên cho phần mềm quản lý
Xét các điều kiện trên, ta thấy các thông tin cần đưa vào các thông tin gồm mã nhân viên (trong bài toán này sẽ có vai trò
là thông tin cố định) và các thông tin như tên nhân viên, chức
vụ nhân viên và mức lương của nhân viên (thông tin linh động)
là có thể giải quyết bài toán
Mục 0: Để có một chương trình dễ tiếp cận người dùng, cần
có một giao diện thân thiện gồm đầy đủ thông tin và chức năng của chương trình mang lại
Mục 1: Ta cần xây dựng mục 1 với đầy đủ thông tin nhân
viên và và đưa chúng vào một danh sách quản lý Vì mục
một là điều kiện tiên quyết và phải có để xử lý các mục sau (phải tồn tại nhân viên và thông tin của nhân viên thì mới có thể xoá bỏ, chỉnh sửa hoặc tìm kiếm thông tin của nhân viên đó)
Bước 1:
-_ Với chức năng thêm nhân viên, như các giải thích phía trên, ta cần đưa vào và xử lý các thông tin gồm mã nhân
Trang 9
viên, tên nhân viên, chức vụ nhân viên và mức lương
nhân viên
Các thông tin như tên nhân viên, chức vụ nhân viên và
mức lương của nhân viên có thể trùng nhau Tuy nhiên, vì
mã nhân viên là một mã cố định, đặc trưng cho từng nhân viên, nên mã nhân viên không được phép trùng nhau > Cần đưa ra giải pháp xử lý trong các trường hợp người dùng nhập nhầm hoặc cố tình nhập một mã trùng với mã của nhân viên đã tồn tại
Bước 2:
Ta đưa các thông tin vào một dictionary và đưa các
dictionary vào một Iist (các mục từ a đến f) vì:
+ Dictionary chứa các key và value tương ứng với các
thông tin như mã, tên, chức vụ và mức lương nhân viên
sẽ thuận tiện trong việc thay đổi và dễ dàng lấy các thông tin nếu cần
+ Do một doanh nghiệp sẽ có nhân viên, và mỗi nhân
viên cần được xác định các thông tin cụ thể Nên ta xây
dựng một list chứa các thông tin đó (đã chứa trong
dictionary), để có thể quản lý một lúc toàn bộ nhân viên của doanh nghiệp
Các bước dùng lại (time.sleep) và thông báo thực hiện
nhiệm vụ thành công:
+ Các bước dừng lại nên có để tạo cảm giác chương trình được thực hiện bài bản và tuần tự cho người dùng
+ Bước thông báo thực hiện nhiệm vụ thành công cũng
cần thiết vì ta cần cho người dùng biết mong muốn của người dùng đã được thực hiện hay chưa
-> Tạo cảm giác thân thiện với người dùng
Bước 3:
Trang 10
-_ Tuỳ nhu cầu của từng người sử dụng, mà khi thực hiện xong bước 2, người dùng có thể mong thực hiện tiếp các công việc hoặc không Nên khi đó Cần đưa ra các chức năng nhằm tìm hiểu nhụ cầu người sử dụng rồi đưa ra
quyết định có tiếp tục chương trình hay không (trong quá
trình yêu cầu người dùng lựa chọn chức năng cũng có thể người dụng nhập nhầm hoặc cố tình nhập sai chức năng
— Cần đưa ra giải pháp xử lý trong các trường hợp này) Nếu người dùng muốn tiếp tục sử dụng: Ta sẽ quay về mục 0 nhằm tuần tự thực hiện lại các chức năng của chương trình
Bước 4:
Một chương trình khi xây dựng nếu không có phần kết
thúc, chương trình sẽ thực hiện mãi mãi và không dừng
lại Khi đó sẽ gây ra sự khó chịu với người sử dụng, đồng thời tiêu tốn tài nguyên — Cần kết thúc chương trình
Mục 2:
Xoá nhân viên là thực hiện xoá hết các thông tin của nhân viên đó (bao gồm cả thông tin cố định) Vì mã nhân viên đã xác định từ trước (mã nhân viên muốn xoá do người dùng nhập vào), nên ta chỉ cần tìm kiếm trong list các key “ma” chứa value vừa được người dùng nhập, rồi thực hiện xoá phần tử đó là đã thiết kế thành công việc xoá thông tin nhân viên
Các bước khác giải thích tương tự như đã giải thích trong
mục 1
Mục 3:
cần xác định được các key “ma” chứa value được người dùng nhập vào rồi thay thế các tất cả các value thuộc tất
cả các key (trừ key “ma”) là đã giải quyết thành công bài
toán cập nhật thông tin nhân viên
Các bước khác giải thích tương tự như đã giải thích trong
mục 1
Trang 11
ti
- Bai todn tim kiếm thông tin th viên Thực:tế¡là bài toán
đưa ra màn hình các, thông tih ¿ủa;hhẩn viễn Nên |tuong
tự như mục 2 và mục -3,'do mã nhân viễn là độc nhất, nên
khi đã xác định được phần từ với key “ma” với value là giá trị được nhập vào, chỉ-cần in ra các value tương ứng với các key HỆ ĐH: >3)
-_ Các bước khác giải thích tương tự như đã igiai thich trang
mục 1
Trang 12
PHẦN III: CÀI ĐẶT CHƯƠNG TRÌNH
1 Module 1: quanlynhansu.py
import time
def delay():
print()
time.sleep(0.5)
def them(nv):
ma=input("Nhập mã nhân viên của nhân viên muốn thêm: ") for iin nv:
if iọ'ma'ò==ma:
delay() print("Mã nhân viên đã tồn tại.") delay()
return
ten=input("Nhập tên nhân viên của nhân viên muốn thêm:
")
chuc=input("Nhập chức vụ của nhân viên muốn thêm: ")
luong=input("Nhập mức lương của nhân viên muốn thêm: ")
moi={'ma': ma, ten': ten,'chục': chuc, 'luong': luong}
nv.append(moi)
delay()
print("Đã thêm nhân viên thành công.")
delay()
def xoa(nv):
ma=input("Nhập mã nhân viên muốn xoá: ")
Trang 13
for iin nv:
if iọ'ma'ò==ma:
nv.remove(i) delay() print("Đã xoá nhân viên thành công.") delay()
return
delay()
print("Không tìm thấy nhân viên có mã",ma)
delay()
def cn(nv):
ma=input("Nhập mã nhân viên muốn cập nhật: ")
for iin nv:
if iọ'ma'ò==ma:
ten=input("Nhập tên nhân viên mới: ") chuc=input("Nhập chức vụ nhân viên mới: ")
luong=input("Nhập mức lương nhân viên mới: ")
iọ'ten'ò=ten
ig'chuc'6=chuc io'luong'ò=luong
delay()
print("Đã cập nhật thông tin nhân viên thành công.")
delay()
return
delay()
print("Không tìm thấy nhân viên cé ma",ma)
delay()