# Python职工管理系统 **Repository Path**: pokevy/python-staff-management-system ## Basic Information - **Project Name**: Python职工管理系统 - **Description**: 使用Pyhton、Pandas处理数据并存入CSV文件中 - **Primary Language**: Python - **License**: MulanPSL-2.0 - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 2 - **Forks**: 0 - **Created**: 2022-12-08 - **Last Updated**: 2024-09-10 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # Python职工管理系统 ### 介绍 该职工信息管理系统采用Python技术开发,利用Pandas实现对CSV中职工数据进行的各种操作,从而实现了职工信息管理管理功能。 ### 概要设计 #### 职工管理面板设计 职工信息管理界面如下图2-1 (图2-1) #### 职工信息管理功能 1、记录职工的个人基本信息如下图2-2 (图2-2) 2、删除职工信息如下图2-3,2-4,2-5,指定职工名称对该职工的信息进行删除,如果没有该员工,则会提示查无此人,否则删除成功。 (图2-3) (图2-4) (图2-5) 3、两个查询模块如下图2-6,2-7,显示所有职工信息或按照姓名查询显示单个职工信息 (图2-6) (图2-7) 4、修改职工人员信息如下图2-8 (图2-8) ### 详细功能设计及代码实现 #### 整个代码逻辑 1、基于面向对象,首先定义一个EMS类,用于对职工信息进行增删改查,首先建立构造方法,实例化对象时调用,在该方法中使用while无限真循环,调用方法show()用于打印面板信息,然后定义变量接受用户的输入,从而执行对应的代码块。 2、检错机制,使用try except对用于的输入进行错误检测,如果用户输入不规范则提示用户重新输入。 3、如果key值为1则显示所有职工人员信息,key值为2则新建一个职工人员信息,如果key为3则根据用户输入职工姓名显示该职工所有信息,key值为4则根据指定姓名修改该职工信息,key为4则删除用户输入指定的职工。 (图3-1) #### 显示所有职工信息 1、定义show_all_personal方法,使用pandas库中read_csv函数打开personal.csv文件,设置每行数据索引,然后打印数据 2、检错机制,当csv文件中无数据时会执行except语句报错并显示暂无数据,否则将打印所有csv中职工人员信息 (图3-2) 3.3 显示指定职工信息 定义show_personal方法,首先key接受用户输入的职工姓名,然后使用pandas read_csv打开csv文件,之后调用函数.values.tolist()将对象转换为列表,再使用for循环查询对应的职工,最后分别打印出该职工的所有信息,如果没有该职工则显示查无此人 (图3-3) #### 新增职工信息 1、定义方法insert_personal,其中变量name,sex...接受用户输入职工的基本信息,定义header列表为csv标题信息,使用with open以追加模式打开csv文件,使用writerow写入用户输入的数据。 2、检错机制,使用try excrpt可对当文件被打开始,python没有具备写入数据的权限进行了捕捉,如果文件被打开则执行except语句块。 (图3-4) #### 更新职工信息 1、定义update_personal方法,定义name为接受输入修改职工姓名,然后使用pandas中read_csv打开csv文件,再使用.value.tolist()函数将对象转换为列表。 2、使用for循环遍历__data对象,如果输入职工姓名与对象列表首元素相等,则使用__data.姓名==值来获取该职工所对应的索引号,然后再输入需要修改的值,使用to_csv保存至csv文件中。 3、如果遍历完整个对象没有查询到相应职工,则打印查无此人。 (图3-5) #### 删除职工信息 1、定义del_personal方法,定义name为接受输入修改职工姓名,然后使用pandas中read_csv打开csv文件,再使用.value.tolist()函数将对象转换为列表。 2、使用for循环遍历__data对象,如果输入职工姓名与对象列表首元素相等,则使用__data.姓名==值来获取该职工所对应的索引号,然后再根据索引删除对应职工人员的信息。 3、如果没有遍历查询到该职工,则显式该职工不存在。 (图3-6)