Nhập thông tin sinh viên: §ã Người quản lý điện các thông tin cơ bản: Họ và tên nhân viên, tuôi, chức vụ, lương, .... 1.4 Tim kiếm thông tin sinh viên: jj Người quản lý có thê tìm kiêm
Trang 1TRUONG DAI HOC THUONG MAI KHOA HE THONG THONG TIN KINH TE VA THUONG MAI
DIEN TU
BAI THAO LUAN LAP TRINH VOI PYTHON
DE TAI: “XAY DUNG CHUONG TRINH QUAN LY NHAN SU CUA CONG
TY SUA TH TRUE MILK”
Nhóm thực hiện: Nhóm 15
Họ và tên sinh viên: Nguyễn Văn Hoàng Nam
Lép hoc phan: 231_INFO4511_03
Giảng viên hướng dẫn: Ths.Cù Nguyên Giáp
HÀ NỘI, 2023
Trang 2
LOI CAM ON
Trước khi vào bài tập lớn, nhóm 15 chúng em xin gửi lời cảm ơn sâu sắc đến
thầy Củ Nguyên Giáp với sự hướng dẫn và giảng dạy nhiệt tình Thầy đã
truyền đạt lại cho chúng em vô vàn kiến thức và đó là hành trang quý giá trên
con đường phát triển sau này của mỗi chúng em
Về học phần Lập trinh Python, đây là học phần có tính thực tế vô củng cao,
cung cấp một lượng lớn kiến thức và gắn liền với nhu cầu thực tiễn của sinh
viên cũng như xã hội Tuy vậy, do vốn kiến thức còn nhiều hạn chế và còn bỡ
ngỡ với phương thức học của môi trường mới nên không thể tránh khỏi những
thiếu sót và chưa hoàn thiện một cách chin chu nhất Kính mong thầy sẽ xem
xét và góp ý đề bài tập lớn được hoàn thiện hơn
Nhóm em xin chân thành cảm ơn!
Trang 3MUC LUC
IL ĐẶT BÀI TOÁN 2222222222 nh nh HH HH ớ
II PHAN TICH BAI TOAN VA TRINH BAY QUY TRÌNH CÁC THAO
TÁC DƯỚI DẠNG SƠ ĐÔ KHỎI
1 Phan v0 an “ad
1.1 Nhập thông tin sinh viên cà cà cà cẰ 1.2 Xóa thông tin sinh viên .cc cà cò cà: 1.3 Cập nhật thông tin sinh viên
1.4 Tìm kiếm thông tin sinh viên c cc c2 2 Sơ đồ khối thê hiện các chức năng chính của chương trình
3 Đặc tả các chức năng chính của chương trình
3.1 Chức năng nhập thông tin sinh viên
3.2 Chức năng xóa thông tin sinh viên
3.3, Chức năng cập nhật thông tin sinh viên
3.4 Chức năng tìm kiếm thông tin sinh viên -
HI CÀI ĐẶT CHƯƠNG TRÌNH cà 2à cà bà si 1 Tạo mảng và thêm dữ liệu mẫu ¬— 2 Xóa thông tin nhân viên .cc c2 c2 cóc 3 Thêm nhân viên c cà n SnE nh» kh nhe kh vớ 4 Tìm kiêm nhân viÊn .Ặcc 2
10
11
12
12
13
Trang 45 Cap nhật thông tin nhân viên
7 Code Python Q.22 220 2n cnn nnn kg kh kh kh tha
IV KẾT LUẬN c2 2222022022122 nn nh HH HH nà tra
V TÀI LIỆU THAM KHẢO 2 227222222 122122 na
BIÊN BẢN HỌP NHÓM PHẦN CHIA CÔNG VIỆC
BẢNG ĐÁNH GIÁ THÀNH VIÊN 22222222 nà
13 14
15 19 20 21 23
Trang 5LOI MO DAU
Chúng ta đang trong thời kỳ công nghiệp hóa hiện đại hóa đất nước, xã hội
ngày càng phát triển vi thế cuộc cách mạng công nghệ 4.0 vẫn đang phát triển
không ngừng và nắm sIữ được một vị trí quan trọng Sau sự phát triển đó
chúng ta đã đạt được những thành tựu nhất định và gay ra duoc sw thay đôi
không nhỏ đến cuộc sống, công việc và học tập Một trons ba yếu tố trụ cột của
cuộc cách mạng 4.0 phải kế tới ở đây là Big data, giúp con người phân tích thu
thập và phân tích lượng đữ liệu lớn có thể giải quyết nhiều van đề trong lĩnh
vực nhân sự
Bằng việc sử dụng dữ liệu lớn, nhà quản lí nhân sự có thê đưa ra quyết định
chính xác hơn Nhờ vậy, tổ chức/doanh nghiệp đạt được mục tiêu một cách
hiệu quả hơn Đề làm được điều đó việc xây dựng một hệ thông quản trị thông
tin đóng vai trò khá quan trọng
Thế nhưng với lượng dữ liệu lớn như vậy thì việc lưu trữ, bảo quản và sử
dụng chúng sẽ trở nên khá khó khăn Qua bài tập lớn này chúng em đã được
tiếp cận với công việc đó Chính vì sự cần thiết của công việc này nên chúng
em đã quyết định xây dựng chương trình “XÂY DỰNG CHƯƠNG TRÌNH
QUẢN LÝ NHÂN SỰ CỦA CÔNG TY SỮA TH TRUE MILK” sử dụng
những kiến thức mà bản thân và cả nhóm đã tìm hiệu và năm bắt đề hoàn thành
dé tai một cách tốt nhất có thé
Đề xây dựng được chương trình sau đây, chúng em đã cùng phân tích và
chia bai tập lớn này thành các phân:
Phan I: Dat bài toán
Phan II: Phân tích bài toán bằng sơ đồ khối
Phân III: Chương trình viết bằng ngôn ngữ Python
Phân IV: Kết luận
L ĐẶT BÀI TOÁN
Trang 6TH True Milk - tên đầy đủ là Công ty Cô phần thực phâm sữa TH, là một
công ty thuộc tập đoàn TH được thành lập vào năm 2009 tại Nghệ An Đây là thương hiệu sữa Việt 100% chuyên sản xuất, cung cấp sữa và những sản phâm
từ sữa; mặc dủ mới có mặt tại thị trường được hơn 10 năm nhưng TH True
MIIk đã chứng minh được sự vượt trội của mình trên thị trường sữa tại Việt
Nam Chính vì thế nên công ty đã thu hút được một lượng nhân sự lơn có
chuyên môn khá cao Thế nên, để quản lí dé dang thi phải nhập thông tin của từng nhân sự một cách chính xác vào hệ thống
Các thông tin của nhân sự khi nhập vào dữ liệu bao gồm:
- Họ và tên nhân viên
1 Phân tích bài toán
Chương trình bao gồm các chức năng chính sau đây:
1,1 Nhập thông tin sinh viên: §ã
Người quản lý điện các thông tin cơ bản: Họ và tên nhân viên, tuôi, chức vụ, lương, để nhập thông tin nhân viên
1.2 Xod théng tin sinh viên: tf
Cho phép người quản lý xoá thông tin nhân viên đã thêm trước đó
1.3 Cập nhật thông tín sinh viên: §ã
Cho phép người quản lý cập nhật thông tin nhân viên đã thêm trước đó khi cần chỉnh sửa
1.4 Tim kiếm thông tin sinh viên: jj
Người quản lý có thê tìm kiêm thông tin sinh viên theo họ vả tên nhân viên
Trang 72 Sơ đồ khối thể hiện các chức năng chính của chương trình
Mỡ File cài đặt chương trình
Nhập thông tin Xóa thông tin Cập nhật thông Tìm kiếm
nhân viên nhân viên tin nhân viên thông tin nhân
Đóng File
Hình 1: Sơ đồ khối các chức năng chính
3 Đặc tả các chức năng chính của chương trình
3.7 Chức năng nhập thông tin nhân viên
Mô tả: chương trình cho phép người quản lý điền các thông tin cơ bản: Họ và
tên nhân viên , Tuổi, Chức vụ, Lương, đề nhập thông tin nhân viên
Bắt đầu
Nhập thông tin nhân viên
nhân viên tuôi Nhập họ và tên chức vụ lương
Thêm dữ liệu vào 1nảng toàn cục
In đanh sách nhân viên sau khi nhập
Trang 8
Hình 2: Biểu đồ hoạt động của chức năng nhập thông tin sinh viên 3.2 Chức năng xóa thông tín sinh viên
Mô tả: Chương trình cho phép người quản lý xoá thông tin nhân viên bằng Tên
Nhập họ và tên nhân viên cân xóa
Kiểm tra tên nhân viên
Trang 9
tên nhân viên can xóa
Tên nhân viên tôn tại?
Lưu thông tin nhân viên
Hình 4: Biểu đồ hoạt động của chức năng cập nhật thông tin sinh viên
3.4 Chức năng tìm kiếm thông tin sinh viên
Mô tả: Chương trình cho phép người quản lý tìm kiếm thông tin nhân viên
bằng tên
Trang 10Nhập tên nhân viên cân xóa
Kiểm tra tên nhân viên
HI CÀI ĐẶT CHƯƠNG TRÌNH
Khi làm bài tập này, nhóm em đã su dung module os va module sys
- Module sys trong Python cung cấp các hàm và các biến được sử dụng đề thao
tác các phần khác nhau của môi trường chạy Python Nó cho phép chúng ta
truy cập các tham số và chức năng cụ thê của hệ thông
Trang 11- Module os trong Python cung cap cac chire nang duge str dung dé tuong tac
với hệ điều hành và cũng có được thông tin liên quan về no OS đi theo các
Module tiện ích tiêu chuẩn của Python Module này cung cấp một cách linh
động sử dụng chức năng phụ thuộc vào hệ điều hành Module os trong python
cho phép chúng ta làm việc với các tập tin và thư mục
1 Tạo mảng và thêm dữ liệu mẫu
class Nguoi:
@ def init (self, ten, tuoi):
self.ten = ten self.tuoi = tuoi
def hien_thi_thong_tin(self):
thong_tin_co_ban = super().hien_thi_thong_tin() return f"{thong_tin_co_ban}, {self.chuc_vu}, Luong: {self.luong} VND"
Hàm TaoDuLieuMau() có chức năng thêm dữ liệu mẫu vào danh sách nhân
viên
Ham này được goi trong ham main() để tạo đữ liệu mẫu khi chương trình chạy
M6 ta:
- Hàm sử dụng cấu trúc từ điên đề lưu thông tin nhân viên
- Ham str dung cau trúc vòng lặp for đê thêm dữ liệu
2 Xóa thông tin nhân viên
Trang 12for nhan_vien in self.nhan_viens:
if nhan_vien.ten == ten_nhan_vien:
se1f ,nhan_viens "enove (nhan_ vien) print(f"Nhan vien {ten_nhan_vien} da bi xoa.")
return
print(f"Khong tim thay nhan vien co ten {ten_nhan_vien}.")
Ham cĩ chức năng xĩa thơng tin nhân viên
Hàm này được gọi trong hàm mạn() khi người dùng chọn chức năng xĩa thơng
tin nhân viên
M6 ta:
- Hàm sẽ yêu câu người dùng nhập tên nhân viên cân xĩa
- Hàm sử dụng câu trúc vịng lặp for đề tìm nhân viên cân xĩa
- Hàm sử dụng câu trúc từ điện đề lưu thơng tin nhân viên
- Hàm sử dụng câu trúc vịng lặp for đề xĩa đữ liệu
=> Sau khi thực hiện hàm này, danh sách nhân viên sẽ cĩ l nhân viên bị xĩa
=> Xem thơng tin cập nhat bang ham TimKiemThongTinHocVien(
3 Thêm nhân viên
def them_nhan_vien(self, nhan_vien):
self.nhan_viens.append(nhan_vien)
Ham cĩ chức năng nhập thơng tin nhân viên và thêm vào danh sách
Hàm này được gọi trong hàm mạn() khi người dùng chọn chức năng nhập
thơng tin nhân viên
Mơ tả:
- Hàm sử đụng hàm append() để thêm dữ liệu vào danh sách
- Hàm sử dụng câu trúc từ điện đề lưu thơng tin nhân viên
Trang 13- Hàm sử dụng câu trúc vòng lặp for để thêm dữ liệu
=> Sau khi thực hiện hàm này, danh sách nhân viên sẽ có l nhân viên mới
4 Tìm kiêm nhân viên
def tin_kiem_nhan_vien(setf, ten_nhan_vien) : for nhan_vien in self.nhan_viens
if nhan_vien.ten == ten_nhan_vien:
return nhan_vien return None
Hàm có chức năng tim kiêm thông tin nhân viên
Hàm này được gọi trong hàm main() khi người dùng chọn chức năng tìm kiêm
thông tin nhân viên
Mô tả:
- Hàm sẽ yêu câu người dùng nhập tên nhân viên cân tìm
- Hàm sử dụng câu trúc vòng lặp for đề tìm kiêm nhân viên cân tìm
- Hàm sử dụng câu trúc từ điện đề lưu thông tin nhân viên
- Ham su dung câu trúc vòng lặp for đề in đữ liệu
=> Sau khi thực hiện hàm này, danh sách nhân viên sẽ không thay đôi và hiện
thị thông tin nhân viên cân tìm
5 Cập nhật thông tin nhân viên
def can_nhat_thong_tin(se1f, ten_nhan_vien):
for nhan_vien in self.nhan_viens:
nhan_vien.ten = ten_moi nhan_vien.tuol = tuoi_moi nhan_vien.chuc_vu = chuc_vu_moi nhan_vien.Luong = 1uong_moi print("Da cap nhat thong tin cho nhan vien.") return
print(f"Khong tim thay nhan vien co ten {ten_nhan_vien}.")
Hàm có chức năng cập nhật thông tin nhân viên
Trang 14Ham này được goi trong ham main() khi người dùng chọn chức năng cập nhật thông tin học viên
Mô tả:
- Hàm sẽ yêu cầu người dùng nhập tên nhân viên cần cập nhật
- Hàm sử dụng cấu trúc vòng lặp for dé tìm kiếm học viên cần cập nhật
- Ham str dung cau trúc từ điển đề lưu thông tin học viên
- Ham str dung cau trúc vòng lặp for để cập nhật dữ liệu
- Sau khi thực hiện hàm này, danh sách nhân viên sẽ có thêm thông tin mới
- Xem thông tin cập nhật bằng hàm TimKiemNhanVien()
Liệt kê nhân viên")
Xóa nhân viên")
Thêm nhân viên")
Tìm kiếm nhân viên")
ten = input("Nhap ten nhan vien: ")
tuoi = int(input("Nhap tuoi nhan vien: "))
chục_vu = input(“Nhap chuc vu nhan vien: ")
tuong = int(input("Nhap tuong nhan vien: "))
nhan_vien_moi = NhanVien(ten, tuoi, chuc_vu, Luong)
if nhan_vien_tim_kiem is not None:
print("Tim théy nhén vién", nhan_vien_tim_kiem.hien_thi_thong_tin())
Trang 157, Code Python
# Hé thong quan li nhdn sv ctia cong ty stta TH True Milk
1 THỊ khoi tao,gan gid tri
class Nguoi: # tao lép chứa tên và tuổi của nhân viên
def init (self, ten, tuoi):
self.ten = ten
self.tuoi = tuoi
def hien thi thong tin(self): # hién thi tén & tuoi
return f"{self.ten} tên, {selftuoi} tuổi"
class NhanVien(Nguoi): # khoi tạo mảng con lấy dữ liệu tir mang Nguoi va
thêm thông tin về chức vụ và lương
def init (self ten, tuoi, chục vu, luong):
super() init (ten, tuoi)
self.chuc_ vu =chuc_vu
self.luong = luong
def hien_ thi thong tin(self):
thong tin co ban = super().hien thị thong _tin()
return f'{thong tin co ban}, {selfchuc vu}, Lương: {selfluong} VND"
class HeThongNhanSu:
def init (self):
selfnhan_ viens = []
defthem nhan vien(self nhan vien):
selfnhan_ viens.append(nhan_ vien)
Trang 16def cap_nhat thong tin(self, ten_nhan_vien):
for nhan_ vien In selfnhan_ viens:
1fnhan vien.ten = ten nhan vien:
print("Thong tin hien tai cua nhan vien:") print(nhan_vien.hien_ thi thong tin())
# Nhap thông tin mới từ người dùng ten_ moi = input("Nhap ten moi: ") tuoi_moi = int(input("Nhap tuoi moi: ")) chuc_vu_moi = input("Nhap chuc vu moi: ") luong moi = int(input("Nhap luong moi: "))
z Cập nhật thông tin cho nhân viên nhan vien.fen = ten_ moi nhan_vien.tuoi = tuoi_mot nhan vien.chuc vụ = chục vu moi nhan_vien.luong = luong moi print("Da cap nhat thong tin cho nhan vien.")
return
pmnt(f'Khong tim thay nhan vien co ten {ten nhan vien}.")
def liet_ke nhan_vien(self):
for nhan_ vien In selfnhan_ viens:
pmnt(nhan vien.hien thị thong tin())
deftim kiem nhan vien(self ten nhan vien):
for nhan_ vien In selfnhan_ viens:
1fnhan vien.ten = ten nhan vien:
return nhan_vien
return None
Trang 17def xoa_nhan_vien(self, ten_nhan_vien):
for nhan_ vien In selfnhan_ viens:
1fnhan vien.ten = ten nhan vien:
selfnhan_viens.remove(nhan_ vien) pmnt(f'Nhan vien {ten nhan vien} da bị xoa.")
return
pmnt(f'Khong tim thay nhan vien co ten {ten nhan vien}.")
def ghi_vao_tep(self, ten_tep):
with open(ten_tep, 'w') as file:
for nhan_vien in selfinhan_viens:
file.write(f{nhan_ vien.ten},{nhan_ vien.tuoi},{nhan_vien.chuc_ vu}, {nhan_vien.luong}\n")
def doc_tu_tep(ten_tep):
he_thong nhan_su = HeThongNhanSu()
try:
with open(ten_tep, 'r') as file:
for line in file: