TRƯỜNG ĐẠI HỌC THƯƠNG MẠI KHOA HỆ THỐNG THÔNG TIN KINH TẾ VÀ TMĐT BÀI TẬP LỚN XÂY DỰNG CHƯƠNG TRÌNH QUẢN LÝ TIỀN LƯƠNG NHÂN VIÊN TẠI CÔNG TY SAMSUNG VIỆT NAM - Nhóm: 19 - Lớp học phần:
Trang 1TRƯỜNG ĐẠI HỌC THƯƠNG MẠI KHOA HỆ THỐNG THÔNG TIN KINH TẾ VÀ TMĐT
BÀI TẬP LỚN XÂY DỰNG CHƯƠNG TRÌNH QUẢN LÝ TIỀN LƯƠNG NHÂN VIÊN TẠI
CÔNG TY SAMSUNG VIỆT NAM
- Nhóm: 19
- Lớp học phần: 2317INFO4511
- Giảng viên hướng dẫn: Nguyễn Hưng Long
Trang 2MỤC LỤC
I ĐẶT BÀI TOÁN 4
1.1 Mô tả tổng quát: 4
1.2 Vai trò, ý nghĩa của đề tài: 4
1.3 Mục đích của đề tài: 5
1.4 Mục tiêu của đề tài: 5
1.5 Đối tượng sử dụng: 5
II KẾT QUẢ NGHIÊN CỨU 6
2.1 Phân tích bài toán bằng sơ đồ khối: 6
2.2 Cài đặt chương trình: 7
III KẾT LUẬN VÀ BÀI HỌC KINH NGHIỆM 16
IV TÀI LIỆU THAM KHẢO 17
Trang 3LỜI MỞ ĐẦU
Lời đầu tiên, nhóm xin gửi lời cảm ơn chân thành tới thầy Trong quá trình học tập và thực hiện đề tài này, chúng em đã nhận được sự quan tâm giúp đỡ, hướng dẫn tận tình, tâm huyết của thầy Những gì chúng em nhận được không chỉ dừng lại ở kiến thức môn học mà nhiều hơn thế đó là những lời khuyên, chia sẻ thực tế từ thầy Chính nhờ phương pháp dạy học của thầy mà chúng em có cơ hội khám phá và phát huy khả năng của bản thân Những buổi làm việc nhóm chính là cơ hội tuyệt vời giúp chúng em rèn luyện sự tự tin, kỹ năng giao tiếp, làm việc nhóm, … Đây cũng chính là hành trang quan trọng giúp chúng em tự tin bước chân vào môi trường làm việc thực tế
Để hoàn thành được đề tài này, nhóm chúng em đã cùng nhau nghiên cứu, thảo luận,
áp dụng những kiến thức được học trên lớp cùng với các nguồn tài liệu trên Internet và cả những trải nghiệm của bản thân Chúng em rất mong sẽ nhận được những lời nhận xét, góp ý từ thầy cô và bạn đọc để đề tài này có thể hoàn thiện hơn nữa
Một lần nữa, chúng em xin chân thành cảm ơn!
Nhóm sinh viên thực hiện.
Trang 4I ĐẶT BÀI TOÁN
1.1 Mô tả tổng quát:
- Việc quản lý lương của nhân viên trong công ty SAMSUNG VIETNAM dựa trên các thông tin cá nhân, thông tin về lương, thưởng, phạt để quản lý lương một cách tốt nhất Vì vậy, bài toán quản lý lương là vấn đề vô cùng quan trọng với công ty hiện nay
- Ngày nay, việc tin học hóa quá trình xử lý thông tin quản lý ngày càng trở nên phổ biến, trước hết nhằm trợ giúp cho nghiệp vụ quản lý, giúp các nhà lãnh đạo nắm được thông tin cần thiết Việc tin học hóa không đặt ra cho toàn bộ qui trình quản lý mà chỉ thực hiện một số khâu quan trọng nhất định trong quy tình đó Nếu số lượng nhân viên quá đông thì công việc này càng phức tạp và mất nhiều thời gian Mặt khác, khi cần tìm kiếm, chỉnh sửa thì người quản lý phải làm thủ công, tức là phải tìm hồ sơ thông tin cho từng cá nhân sẽ mất rất nhiều thời gian và công sức Từ đó ta thấy việc áp dụng công nghệ vào quản lý, lưu trữ thông tin lương nhân viên là rất cần thiết, đáp ứng nhu cầu nhanh chóng và cần thiết
- Với tầm quan trọng như trên nhóm chúng em đã quyết định chọn đề tài “Quản lý tiền lương nhân viên tại Công ty SAMSUNG VIETNAM”
1.2 Vai trò, ý nghĩa của đề tài:
- Công tác quản lý hồ sơ, tài liệu có vai trò, tác dụng rất lớn Bởi vì nó giúp cơ quan,
tổ chức và doanh nghiệp thu thập, xử lý và cung cấp kịp thời, đầy đủ nguồn thông tin văn bản (thông tin tài liệu, phục vụ hoạt động quản lý của cơ quan)
- Là công cụ để kiểm soát việc thi hành quyền lực của cơ quan, doanh nghiệp Góp phần nâng cao hiệu quả và chất lượng công việc công tác của nhà quản lý
- Tạo điều kiện để bảo vệ bí mật thông tin trong văn bản, Giữ gìn các chứng cứ pháp
lý đảm bảo cho hoạt động kiểm tra, thanh tra và giám sát Đảm bảo an toàn và phát huy giá trị tài liệu lưu trữ
- Giúp tra cứu nhanh chóng, làm căn cứ chính xác để giải quyết công việc kịp thời, mang lại hiệu quả
Trang 5- Lập hồ sơ tốt sẽ xây dựng được nề nếp khoa học trong công tác văn thư, tránh quy tình trạng nộp lưu tài liệu còn bó, gói đưa vào lưu trữ, tạo thuận lợi cho người lưu trữ tiến hành các nội dung nghiệp vụ lưu trữ, nhằm phục vụ tốt cho công tác khai thác, nghiên cứu trong lưu trữ cơ quan và lưu trữ lịch sử
1.3 Mục đích của đề tài:
- Đáp ứng nhu cầu quản lí thông tin tiền lương, xây dựng nên một môi trường làm việc hiệu quả
1.4 Mục tiêu của đề tài:
- Sử dụng thành thạo ngôn ngữ Python
- Sử dụng các hàm và module
1.5 Đối tượng sử dụng:
- Dành cho đối tượng là nhân viên, kế toán, quản lý công ty SAMSUNG VIETNAM
tính an toàn cho website
Trang 6II KẾT QUẢ NGHIÊN CỨU
2.1 Phân tích bài toán bằng sơ đồ khối:
Trang 72.2 Cài đặt chương trình:
- Chương trình cấu hình chung cho toàn package:
import re
titleList = ['Ma NV', 'Ten NV', 'Tuoi', 'Vi Tri','Dia Chi','SDT','Phong
Ban','Luong/Ngay','Tham nien','Chuyen can','Ngay Cong']
regexString = '^[a-zA-Z\s]+$'
regexNumber = '^[0-9\s]+$'
regexID = '^[a-zA-Z0-9\s]+$'
path = 'data.txt'
- Chương trình gồm các hàm:
from config import *
#check bẫy lỗi
def checkRegex(reg,string_target):
if re.search(reg,string_target)!= None:
return True
else:
return False
#nhập dữ liệu cho phép nhập nhiều từ trên cùng 1 hàng ngang
def inputMultipleWord():
words = input().split()
string = ' '.join(words)
return string
Trang 8#nhập thông tin Lương từ bàn phím
def inputInf(employ,titleList):
print(titleList[1],":",end='')
inp=inputMultipleWord()
inp = inp if checkRegex(regexString,inp) else False
if inp==False:
return
employ.append(inp )
print(titleList[2],":",end='')
inp=inputMultipleWord()
inp = inp if checkRegex(regexNumber,inp) else False
if inp==False:
return
employ.append(inp)
print(titleList[3],":",end='')
inp=inputMultipleWord()
inp = inp if checkRegex(regexString,inp) else False
if inp==False:
return
employ.append(inp)
print(titleList[4],":",end='')
inp=inputMultipleWord()
inp = inp if checkRegex(regexID,inp) else False
if inp==False:
return
employ.append(inp)
print(titleList[5],":",end='')
inp=inputMultipleWord()
inp = inp if checkRegex(regexNumber,inp) else False
if inp==False:
Trang 9return
employ.append(inp)
print(titleList[6],":",end='')
inp=inputMultipleWord()
inp = inp if checkRegex(regexString,inp) else False
if inp==False:
return
employ.append(inp)
print(titleList[7],":",end='')
employ.append(int(input()))
print(titleList[8],":",end='')
employ.append(int(input()))
print(titleList[9],":",end='')
employ.append(int(input()))
print(titleList[10],":",end='')
employ.append(int(input()))
#tạo thông tin mới
def create(path):
try:
employList=readFile(path)
employ=[]
id = input("Nhap ma nhan vien:")
#check trùng
for emp in employList:
if(id == emp[0]):
print("=======================================")
print("Ma nhan vien bi trung")
return
employ.append(id)
Trang 10
inputInf(employ,titleList)
checkCre=True
for in range(1,7):
if employ[i]==False:
print("=======================================")
print("Khong nhap duoc nhan vien nay!")
print("Lỗi nhập",titleList[i])
checkCre=False
if checkCre==False:
return
#add file
writeFile(path,'a',employ)
# #add list Tổng
# employList.append(employ)
print("=======================================")
print("Nhap nhan vien thanh cong!")
except:
print("=======================================")
print("Khong nhap duoc nhan vien nay!")
print("Lỗi nhập !!!!")
finally:
print("=======================================")
#Sua thong tin
def update(path):
try:
employList=listE=readFile(path)
checkUpd=False
employUpdate=input("Nhap ma nhan vien can sua:")
#tim kiếm thông tin
Trang 11for emp in employList:
#tim xem ton tai ko
if(emp[0]==employUpdate):
Upd_emp=[]
inputInf(Upd_emp,titleList)
emp[1:11]=Upd_emp
checkUpd=True
print("=======================================")
print("Sua thong tin nhan vien thanh cong")
break
for emp in employList:
writeFile(path,'w',emp)
if checkUpd==False:
print("=======================================")
print("Khong ton tai nhan vien nay!!!!!!!")
except:
print("=======================================")
print("Sua thong tin khong thanh cong!!!!!!!")
finally:
print("=======================================")
#Xóa 1 row
def delete(path):
try:
employList=readFile(path)
checkDel = False
employDelete=input("Nhap ma nhan vien can xoa:")
#tim kiếm thông tin
for emp in employList:
#tìm mã
Trang 12if emp[0]== employDelete:
employList.remove(emp)
print("=======================================")
print("Xoa thanh cong")
checkDel=True
break
if checkDel:
for emp in employList:
writeFile(path,'w',emp)
else:
print("=======================================")
print("Khong ton tai nhan vien nay!!!!!!!")
except Exception as e:
print("=======================================")
print("Xoa khong thanh cong!!!!")
print(e)
finally:
print("=======================================")
#tính Tổng Lương
def sumSalary(employ):
return int(employ[7]*employ[10]+sum(employ[8:10]))
#đọc file
def readFile(path):
with open(path,'r') as file:
fileList=[]
for line in file:
fileEmp=line.strip().split('\t')
for in range(7,11):
Trang 13fileEmp[i]= int(fileEmp[i])
fileList.append(fileEmp)
return fileList
#ghi file
def writeFile(path,mode,emp):
with open(path,mode) as file:
file.write('{}\t{}\t{}\t{}\t{}\t{}\t{}\t{}\t{}\t{}\t{}\
n'.format(emp[0],emp[1],emp[2],emp[3],emp[4],emp[5],emp[6],emp[7],emp[8],emp[9],e mp[10]))
#hiển thị dưới dạng bảng
def show(title,path):
print("\n\n")
print(title[0].rjust(5),end='')
print(title[1].rjust(25),end='')
print(title[2].rjust(5),end='')
for tit in range(3,7):
print(title[tit].rjust(15),end='')
for tit in range(7,11):
print(title[tit].rjust(15),end='')
print('Tong Luong'.rjust(20))
listE=readFile(path)
for emp in listE:
print(emp[0].rjust(5),end='')
print(emp[1].rjust(25),end='')
Trang 14print(emp[2].rjust(5),end='')
for tit in range(3,7):
print(emp[tit].rjust(15),end='')
for tit in range(7,11):
print(str(emp[tit]).rjust(15),end='')
print(str(sumSalary(emp)).rjust(15))
print("\n\n")
#string.rjust
#tìm kiếm
def findEmp(path):
employList = readFile(path)
checkFind=False
findList=[]
findTarget = int(input("Nhap muc luong can tim:"))
for emp in employList:
if sumSalary(emp) >= findTarget:
findList.append(emp)
checkFind=True
if checkFind:
show(titleList,path)
else:
print("=======================================")
print("Khong ton tai nhan vien nay!!!!!!!")
print("=======================================")
Trang 15
- Chương trình chính:
from ultis import *
from config import *
if name == " main ":
while(True):
print("QUAN LY LUONG NHAN VIEN SAMSUNG VIETNAM")
print("1 Hien thi danh sach luong nhan vien")
print("2 Them thong tin luong nhan vien")
print("3 Sua thong tin luong nhan vien")
print("4 Xoa thong tin luong nhan vien")
print("5 Tim kiem thong tin luong nhan vien")
print("6 Thoat")
print(" Nhap yeu cau cua ban:",end='')
try:
choose=int(input())
except:
print("Nhap lua chon loi!!!")
continue
if choose==1:
show(titleList,path)
elif choose==2:
create(path)
elif choose==3:
update(path)
elif choose==4:
delete(path)
elif choose==5:
Trang 16findEmp(path)
elif choose==6:
print("Chuong trinh ket thuc!!!")
break
else:
print("Khong ton tai lua chon nay")
III KẾT LUẬN VÀ BÀI HỌC KINH NGHIỆM
- Những kiến thức và kỹ năng học được thông qua bài tiểu luận:
quan: biến, mảng, kiểu dữ liệu, collections,… và sử dụng nó trong Python, hiểu biết về re và các thư viện mã nguồn mở khác
thời gian
- Trình bày những kiến thức và kỹ năng học được thông qua thực hiện Tiểu luân, Bài tập lớn, Đồ án/ Dự án
- Những chuẩn đầu ra của hộc phần đã đạt được trong quá trình thực hiện Tiểu luận, Bài tập lớn, Đồ án/ Dự án
- Những bài học kinh nghiệm được rút ra sau khi kết thúc Tiểu luận, Bài tập lớn, Đồ án/ Dự án
Trang 17IV TÀI LIỆU THAM KHẢO
Tài liệu giảng viên cung cấp
Python document: https://docs.python.org/3/
Website W3School : https://www.w3schools.com/python/
StackOverflow: https://stackoverflow.com/
DANH SÁCH NHÓM 19
- Chạy chương trình
- Hoàn thành tốt nhiệm vụ, đúng thời hạn
- Tích cực trao đổi
- Chạy chương trình
- Hoàn thành tốt nhiệm vụ, đúng thời hạn
- Tích cực trao đổi
- Vẽ sơ đồ khối
- Hoàn thành tốt nhiệm vụ, đúng thời hạn
- Tích cực trao đổi