基于Python+MySQL的员工档案管理系统

发布时间:2026/10/21 1:10:53
基于Python+MySQL的员工档案管理系统 目录目 录 1一、系统定义 1 1二、 需求分析 1一 系统综合需求 2二 系统逻辑模型 2三、 系统设计 4一概念结构设计 5四、 详细设计 10一 开发平台及工具 10二 创建数据库和表 11三 设计框架 12四 界面设计 14五、 课程设计总结 17六、 参考文献 18七、 附录 18二、需求分析一系统综合需求作为一个员工管理系统应当为公司的员工信息管理提供便利。同时给用户提供方便、友好而简洁的界面进行操作和使用。在实际的公司员工管理过程中通常有三类用户管理员BOSS、部门经理以及员工。显然用户的身份不同所拥有的权限也不会相同因此我们应当为不同身份的用户提供不同的操作权限和界面。所以在此我们通过设立三种不同类型的账号不同账号类型登入系统后的功能不同来达到此效果。管理员BOSS拥有最高级别的权限可以对所有员工和经理的信息进行增加、删除、修改和查找操作同时可以对公司的所有员工、经理的登录账号和密码进行管理若有新员工入职管理员不仅需要增加其信息还需要为其设立一个可登录系统的账号同时如有员工离职则对其信息和账号进行删除。员工、经理的信息更新和忘记密码等功能均由管理员完成。部门经理由于对自己所属部门的员工拥有领导权因此拥有管理员的部分权限经理只能对属于自己部门的员工的信息进行增加、删除、修改和查找操作同时经理登录后可以查看自己的信息和修改自己的登录密码。经理无法查看和修改其他经理的信息也无法对其他部门的员工信息进行管理在经理进行增加员工操作时会检查新增员工的部门信息是否与经理本人相同不相同则弹出Error提示框告诉经理没有该部门的操作权限。由此解决了经理可能存在的滥用职权等问题。作为公司的基层员工不具有对其他人员的领导权因此员工登录后的功能实现比较简单员工登录后只能查看自己的信息和修改自己的登录密码。由此实现了一定的保密能力并在很大程度上避免了信息的泄露和外流。由此也实现了管理员BOSS-部门经理-员工的三级管理模式比较契合实际企业的员工管理情况。#账号管理系统只对管理员开放 from tkinter import * from tkinter import ttk import tkinter.messagebox import pymysql from PIL import Image,ImageTk #连接数据库 databasepymysql.connect(hostlocalhost,userroot,password123456,databaseemployee_system,charsetgb2312) cursordatabase.cursor() def get_image(file_name,width,height): imImage.open(file_name).resize((width,height)) return ImageTk.PhotoImage(im) mode0 def button_admin_login(): global mode username_input entry1.get().strip() password_input entry2.get().strip() cursor.execute(select * from admin where user_name %s and password %s % (username_input,password_input)) if (len(cursor.fetchall()) 0): print(已成功登录) mynewwin.destroy() mode1 else: tkinter.messagebox.showerror(错误,用户名或密码错误) mynewwinTk() mynewwin.title(员工账号管理系统登录页面) mynewwin.geometry(1080x600) canvans_myWindowCanvas(mynewwin,width720,height400) im_rootget_image(D:\数据库课程设计\湖南工程学院员工账号管理系统.png,720,400) canvans_myWindow.create_image(400,200,imageim_root) canvans_myWindow.pack() Label(mynewwin, text管理员账号:,font(Arial 12 bold),width10,height1).place(relx 0.10, rely 0.75) Label(mynewwin, text管理员密码:,font(Arial 12 bold),width10,height1).place(relx 0.10, rely 0.85) button_login Button(text 登陆,relief raised, command button_admin_login) button_login.place(relx 0.5, rely 0.92) entry1Entry(mynewwin) entry2Entry(mynewwin,show*) entry1.place(relx 0.45, rely 0.75) entry2.place(relx 0.45, rely 0.85) #进入消息循环 mynewwin.mainloop() def button_insert_account_emp(): user_nameentry_user.get().strip() passwordentry_pass.get().strip() print(user_name,password) cursor.execute(select * from employee_login where user_name %s%(user_name)) datacursor.fetchall() if len(data)0: tkinter.messagebox.showerror(titleError,message该账号已存在) return None cursor.execute(insert into employee_login values(%s,%s) % (user_name,password)) database.commit() tkinter.messagebox.showinfo(title新增员工账号密码,message新增员工账号成功) def button_update_account_emp(): user_nameentry_user.get().strip() passwordentry_pass.get().strip() print(user_name,password) cursor.execute(update employee_login set password%s where user_name%s % (password,user_name)) database.commit() tkinter.messagebox.showinfo(title修改员工账号密码,message修改员工账号密码成功) def button_delete_account_emp(): user_nameentry_user.get().strip() passwordentry_pass.get().strip() print(user_name,password) cursor.execute(delete from employee_login where user_name%s%(user_name)) database.commit() tkinter.messagebox.showinfo(title删除员工账号密码,message删除员工账号密码成功) def button_insert_account_ma(): user_nameentry_user.get().strip() passwordentry_pass.get().strip() print(user_name,password) cursor.execute(select * from manager_login where user_name %s%(user_name)) datacursor.fetchall() if len(data)0: tkinter.messagebox.showerror(titleError,message该账号已存在) return None cursor.execute(insert into manager_login values(%s,%s)%(user_name,password)) database.commit() tkinter.messagebox.showinfo(title新增经理账号密码,message新增经理账号密码成功) def button_update_account_ma(): user_nameentry_user.get().strip() passwordentry_pass.get().strip() print(user_name,password) cursor.execute(update manager_login set password%s where user_name%s % (password,user_name)) database.commit() tkinter.messagebox.showinfo(title修改经理账号密码,message修改经理账号密码成功) def button_delete_account_ma(): user_nameentry_user.get().strip() passwordentry_pass.get().strip() print(user_name,password) cursor.execute(delete from manager_login where user_name%s%(user_name)) database.commit() tkinter.messagebox.showinfo(title删除经理账号密码,message删除经理账号密码成功) def button_update_account_my(): user_nameentry_user.get().strip() passwordentry_pass.get().strip() print(user_name,password) cursor.execute(update admin set password%s where user_name%s % (password,user_name)) database.commit() tkinter.messagebox.showinfo(title修改管理员密码,message修改管理员密码成功请您牢记新密码) if mode1: print(已进入系统) mynewwinTk() mynewwin.title(账号管理系统) mynewwin.geometry(720x520) #各个窗体效果 Label(mynewwin, text ,font(Arial 12 bold),width4,height1).grid(column 0, row 0) Label(mynewwin, text账号,font(Arial 12 bold),width10,height1).grid(column0,row1) entry_userEntry(mynewwin) entry_user.grid(column1,row1) Label(mynewwin, text密码,font(Arial 12 bold),width10,height1).grid(column2,row1) entry_passEntry(mynewwin) entry_pass.grid(column3,row1) #Label(mynewwin, text ,font(Arial 12 bold),width4,height1).grid(column 0, row 1) button_insert_empButton(mynewwin,text新增员工账号密码,reliefraised,commandbutton_insert_account_emp) button_insert_emp.place(relx0.3,rely0.2) button_update_empButton(mynewwin,text修改员工账号密码,reliefraised,commandbutton_update_account_emp) button_update_emp.place(relx0.5,rely0.2) button_delete_empButton(mynewwin,text删除员工账号密码,reliefraised,commandbutton_delete_account_emp) button_delete_emp.place(relx0.7,rely0.2) #Label(mynewwin, text ,font(Arial 12 bold),width4,height1).grid(column 0, row 2) button_insert_maButton(mynewwin,text新增经理账号密码,reliefraised,commandbutton_insert_account_ma) button_insert_ma.place(relx0.3,rely0.4) button_update_maButton(mynewwin,text修改经理账号密码,reliefraised,commandbutton_update_account_ma) button_update_ma.place(relx0.5,rely0.4) button_delete_maButton(mynewwin,text删除经理账号密码,reliefraised,commandbutton_delete_account_ma) button_delete_ma.place(relx0.7,rely0.4) button_update_myButton(mynewwin,text修改管理员密码,reliefraised,commandbutton_update_account_my) button_update_my.place(relx0.75,rely0.04) mynewwin.mainloop()

关于本文作者

来自尧图内容编辑团队

尧图内容编辑团队 内容团队

尧图内容编辑团队

本文由尧图网络内容编辑团队执笔。团队由资深项目经理、前端工程师与设计师组成,所有内容均来自亲手交付的真实项目,先讲清问题、再给出可落地的解法。尧图深耕北京网站建设十年,服务过京华建材集团、智造科技等各行业客户,把一线经验沉淀为可复用的行业观察。

  • 十年建站经验,覆盖建材、制造、服务、文创等
  • 项目经理把关选题与事实准确性
  • 工程师与设计师联合撰写专业细节
  • 统一编辑规范,保证文风与排版一致
  • 每月复盘转化数据,迭代选题方向

延伸阅读

相关资讯与近期热门内容

深度阅读推荐

建站决策前值得细读的三篇

网站改版的5个关键决策
2024-08-12

网站改版的5个关键决策

什么时候该改版、改到什么程度、如何避免流量掉光,京华建材集团改版复盘给出答案。

获取专属建站方案

看完文章,把您的行业与预算告诉我们,免费获取一份量身定制的官网建设方案与报价。

立即免费咨询