python人员管理系统_python 员工管理系统 (基础版)

python 员工管理系统 (基础版)

各位小伙伴们大家好, 最近自学 python 已经差不多把基础学完了, 现在运用这些基础知识写了一个简单版本的员工管理系统

因为在大学里我是学过 java 的, 所以, 当有了一定的基础和熏陶外, 真心觉得 python 比 java 要简单的多, 而且学起来特快, 业务

逻辑没那么复杂, 理解起来更好理解, 接下里就慢慢给大家讲讲思路:

(尤其是初学者, 不要只顾着敲, 要多想想业务逻辑, 思路才是最重要的)

先放几张图, 给大家看看运行效果, 再慢慢跟大家层层剖析

c1.gif

c1.gif

c1.gif

c1.gif

看到这些图片, 是不是觉得挺简单的, 确实, 只要掌握了基础, 自然这些是有把握的敲出来的

此次这个员工管理系统大致的功能就是 增删改查, 就是我们俗称的 curd, 只是这些都是假数据, 并没有连接数据库 MySQL 的那种

第一部分:

1.1 菜单栏的展示

这个菜单栏 99% 的同学都可以敲得出来, 就好比 1+1=2 那样简单, 但是这里有个小注意的地方, 为了代码的美观性和避免冗长, 一般

都是封装在一个函数里, 把它独立成块, 你可以就放在同一个文件里, 也可以另外新建一个 python 文件, 导入并调用即可

c1.gif

c1.gif

=

我就是建立了两个文件夹, 把他单独写在另外一个文件夹中, 但是一定要记得导入 import

1.2 如何循环并且选择操作

第一行的 while True 时起着循环的作用whileTrue:

employee_tools.show_menu()

action_str=input("请输入您的操作:")

ifaction_str=="1":

# 1. 添加员工信息

employee_tools.add_info()

elifaction_str=="2":

# 2. 修改员工信息

employee_tools.update_info()

elifaction_str=="3":

# 3. 删除员工信息

employee_tools.delete_info()

elifaction_str=="4":

# 4. 显示所有员工信息

employee_tools.show_all_info()

elifaction_str=="5":

# 5. 退出系统

print("欢迎您再次使用员工管理系统!!!")

break

else:

# 输入其他任意数字

print("您输入的有误, 请重新输入:")

第二部分: 增删查改的功能实现(尽量别看代码, 多看思路, 逻辑思维才是最重要的!!!)

1. 添加员工 实现的步骤:

1. 输入员工的工号, 姓名, 性别, 工资等等

1.1 判断员工编号是否存在, 如果存在则拒绝添加, 提示 "编号已存在, 不能重复添加"

1.2 如果不重复, 则继续接下来的操作

2. 把这些信息保存在一个字典里(键值对)

2.1 员工工号作为键, 剩下的属性 (姓名, 性别, 工资) 作为值,

这才是最重要的, 因为 id 是唯一的, 后面的修改, 删除都是以 id 为突破口, 这点一定要重视

2.2 类似: '1001' {'name':xxx, 'sex':xxx, 'salary':xxx}

3. 提示添加成功defadd_info():

"""添加员工信息"""

print("添加员工 ===>")

employ_id=input("请输入要添加员工的工号:")

# 先找到所有的字典的键, 再将这些键转化为列表的形式

all_id=list(employee_dict.keys())

ifemploy_idinall_id:

print("员工工号已存在, 不能重复添加!!!")

return

employ_name=input("请输入要添加员工的姓名:")

employ_sex=input("请输入要添加员工的性别:")

employ_salary=input("请输入要添加员工的工资:")

# 把这些信息保存在一个字典里

info_dict={"name":employ_name,"sex":employ_sex,"salary":employ_salary}

# 再放在大字典里, 怎么放, 根据 id 号相对应

employee_dict[employ_id]=info_dict

print("工号为 %s 的员工信息添加成功!!!"%employ_id)

# 这里只是起到打印观察的作用, 可注释掉下面这一行

# 说明仅仅还是放在字典里面, 毕竟输出是字典形式, 怎么显示那是第四个功能该做的事

# print(employee_dict) # {'1001': {'name': '张三', 'sex': '男', 'salary': '5000'}}

2. 修改员工 实现的步骤:

1. 拿到要修改员工的工号

1.1 如果工号不存在, 则提示错误信息, 终止函数执行, 返回

1.2 如果存在, 则修改对应的信息

1.2.1 显示原来的信息再修改

2. 因为并不是所有的信息都需要修改, 万一不需要修改的怎么办? 如何简化使用操作?

2.1 判断修改时输入的是不是惟恐, 为空就保持不变, 不为空则说明修改了defupdate_info():

"""修改员工信息"""

print("修改员工 ===>")

employ_id=input("请输入你要修改的员工的工号")

all_id=list(employee_dict.keys())

ifemploy_idnotinall_id:

print("该员工工号不存在, 不能进行修改!!!")

return

new_name=input("姓名是:%s 修改后的姓名:"%employee_dict[employ_id]['name'])

new_sex=input("性别是:%s 修改后的性别:"%employee_dict[employ_id]['sex'])

new_salary=input("工资是:%s 修改后的工资:"%employee_dict[employ_id]['salary'])

# 因为并不是所有的信息都需要修改, 万一不需要修改的怎么办? 如何简化使用操作?

ifnew_name!="":

employee_dict[employ_id]['name']=new_name

ifnew_sex!="":

employee_dict[employ_id]['sex']=new_sex

ifnew_salary!="":

employee_dict[employ_id]['salary']=new_salary

print("工号为 %s 的员工信息修改成功!!!"%employ_id)

3. 删除员工# 实现步骤: 1. 输入要删除员工的工号

# 2. 判断工号是否存在, 不存在就给出提示信息, 终止函数执行

# 3. 如果存在, 则直接删除

defdelete_info():

"""删除员工信息"""

print("删除员工 ===>")

employ_id=input("请输入你要删除的员工的工号")

all_id=list(employee_dict.keys())

ifemploy_idnotinall_id:

print("该员工工号不存在, 不能进行删除!!!")

return

else:

# 直接删除这个字典

delemployee_dict[employ_id]

print("工号为 %s 的员工信息删除成功!!!"%employ_id)

4. 显示所有员工信息# 实现步骤: 1. 判断员工是否存在, 如果不存在则提示返回

# 1.1 怎么判断? 当列表长度为 0 时, 则说明不存在

# 2. 如果存在, 就打印表头

# 3. 打印分割线

# 4. 遍历员工信息, 依次输出字典信息

defshow_all_info():

"""显示员工信息"""

print("显示所有员工信息 ===>")

# 判断员工是否存在

iflen(list(employee_dict.keys()))==0:

print("当前没有任何的员工信息, 请先选择操作 1, 添加员工!!!")

# return 下方的代码不会被执行

return

# 打印表头

print("-"*40)

forpeoplein["工号","姓名","性别","工资"]:

print(people,end="\t\t")

# 打印分割线

# 增加换行

print("")

print("-"*40)

# 遍历员工信息, 依次输出字典信息

# 这个 items 方法是把字典转换成列表的方法, 须特别注意

forjoberinemployee_dict.items():

print("%s\t\t%s\t\t%s\t\t\t%s"%(jober[0],

jober[1]['name'],

jober[1]['sex'],

jober[1]['salary']))

print("-"*40)

以上就是增删改查四个部分的功能实现, 思路都写的非常详细, 希望初学者们能重视思路的重要性

反思几个问题:

1为什么哪里都有这段?employ_id=input("请输入你要 (删除, 修改, 添加) 的员工的工号")

all_id=list(employee_dict.keys())

ifemploy_idnotinall_id:

print("该员工工号不存在, 不能进行(修改, 删除, 添加)!!!")

return

前面我就提到过, id 此时是唯一能提供识别的

还有, 为什么哪段都写呢, 因为每一个函数都是独立的, 定义在函数内部的, 你在另外一个函数不能直接拿来用, 涉及到局部变量和全局变量的知识

2在专门定义函数的最上面, 不要忘记这行代码, 这是大字典, 在写第一个功能前, 就必须用到, 放在外面第一行, 其他功能的实现也会用到

提示: 在这个 tools 文件中, 第一行需要加一行代码:# 存储所有的员工信息, 空数据时

employee_dict={}

3有的同学会问, 我可以在一个 python 文件中, 实现这些所有功能吗?

当然可以, 因为咱们这只有四个主要功能, 数量基数小, 放在一个文件中写是绝对可以的, 那作为技术一般的小编我为什么又要分开写呢?

因为, 企业的开发肯定要实现的功能多, 放在不同的文件中利于项目后期的版本修改和维护, 添加或者修改某个功能都会方便很多, 这么说吧,

在后期维护中, 代码能不动的尽量别动, 如果你把所有的东西都放在一个文件中, 那改起来如果不小心, 牵一发而动全身, 后悔莫及

4有没有什么值得推荐的自学 python 的网站呢?

接下来, 小编我就把自己觉得质量还可以的教学视频链接发在这里: 自己用心慢慢看哦(其实 B 站资源很丰富的)

https://www.bilibili.com/video/av14184325/?spm_id_from=333.788.videocard.1

如果你觉得看视频太长, 太耗费时间, 可以去菜鸟教程上面看文档,(有的地方有点绕, 建议最好还是看视频)

https://www.runoob.com/python3/python3-tutorial.html

最后的最后, 我把这个简易版的员工管理系统代码全搬出来, 小伙伴们有需要的可以直接复制, 你只需要建立两个文件就行

1.employee_main.py 文件importemployee_tools

whileTrue:

employee_tools.show_menu()

action_str=input("请输入您的操作:")

ifaction_str=="1":

# 1. 添加员工信息

employee_tools.add_info()

elifaction_str=="2":

# 2. 修改员工信息

employee_tools.update_info()

elifaction_str=="3":

# 3. 删除员工信息

employee_tools.delete_info()

elifaction_str=="4":

# 4. 显示所有员工信息

employee_tools.show_all_info()

elifaction_str=="5":

# 5. 退出系统

print("欢迎您再次使用员工管理系统!!!")

break

else:

# 输入其他任意数字

print("您输入的有误, 请重新输入:")

2.employee_tools.py 文件# 存储所有的员工信息, 空数据时

# employee_dict = {}

# 这是原本就有固定数据时的字典

employee_dict={'1001':{'name':'张三','sex':'男','salary':'5000'},

'1002':{'name':'李四','sex':'男','salary':'7000'},

'1003':{'name':'小红','sex':'女','salary':'9000'},

}

defshow_menu():

"""进入菜单页面"""

print("*"*11+"员工管理系统 V_1.0"+"*"*11)

# print("员工管理系统 V1.0")

print("1, 添加员工信息")

print("2, 修改员工信息")

print("3, 删除员工信息")

print("4, 显示所有员工信息")

print("5, 退出系统")

print("*"*40)

defadd_info():

"""添加员工信息"""

# 实现步骤: 1. 输入员工的工号, 姓名, 性别, 工资等等

# 1.1 判断员工编号是否存在, 如果存在则拒绝添加, 提示 "编号已存在, 不能重复添加"

# 1.2 如果不重复, 则继续接下来的操作

# 2. 把这些信息保存在一个字典里

# 2.1 员工工号作为键, 剩下的属性 (姓名, 性别, 工资) 作为值

# 2.2 类似: '1001' {'name':xxx, 'sex':xxx, 'salary':xxx}

# 3. 提示添加成功

print("添加员工 ===>")

employ_id=input("请输入要添加员工的工号:")

# 先找到所有的字典的键, 再将这些键转化为列表的形式

all_id=list(employee_dict.keys())

ifemploy_idinall_id:

print("员工工号已存在, 不能重复添加!!!")

return

employ_name=input("请输入要添加员工的姓名:")

employ_sex=input("请输入要添加员工的性别:")

employ_salary=input("请输入要添加员工的工资:")

# 把这些信息保存在一个字典里

info_dict={"name":employ_name,"sex":employ_sex,"salary":employ_salary}

# 再放在大字典里, 怎么放, 根据 id 号相对应

employee_dict[employ_id]=info_dict

print("工号为 %s 的员工信息添加成功!!!"%employ_id)

# 这里只是起到打印观察的作用, 可注释掉下面这一行

# 说明仅仅还是放在字典里面, 毕竟输出是字典形式, 怎么显示那是第四个功能该做的事

# print(employee_dict) # {'1001': {'name': '张三', 'sex': '男', 'salary': '5000'}}

defupdate_info():

"""修改员工信息"""

print("修改员工 ===>")

# 实现步骤 1. 拿到要修改员工的工号

# 1.1 如果工号不存在, 则提示错误信息, 终止函数执行, 返回

# 1.2 如果存在, 则修改对应的信息

# 1.2.1 显示原来的信息再修改

# 2. 因为并不是所有的信息都需要修改, 万一不需要修改的怎么办? 如何简化使用操作?

# 2.1 判断修改时输入的是不是惟恐, 为空就保持不变, 不为空则说明修改了

employ_id=input("请输入你要修改的员工的工号")

all_id=list(employee_dict.keys())

ifemploy_idnotinall_id:

print("该员工工号不存在, 不能进行修改!!!")

return

new_name=input("姓名是:%s 修改后的姓名:"%employee_dict[employ_id]['name'])

new_sex=input("性别是:%s 修改后的性别:"%employee_dict[employ_id]['sex'])

new_salary=input("工资是:%s 修改后的工资:"%employee_dict[employ_id]['salary'])

# 因为并不是所有的信息都需要修改, 万一不需要修改的怎么办? 如何简化使用操作?

ifnew_name!="":

employee_dict[employ_id]['name']=new_name

ifnew_sex!="":

employee_dict[employ_id]['sex']=new_sex

ifnew_salary!="":

employee_dict[employ_id]['salary']=new_salary

print("工号为 %s 的员工信息修改成功!!!"%employ_id)

defdelete_info():

"""删除员工信息"""

print("删除员工 ===>")

# 实现步骤: 1. 输入要删除员工的工号

# 2. 判断工号是否存在, 不存在就给出提示信息, 终止函数执行

# 3. 如果存在, 则直接删除

employ_id=input("请输入你要删除的员工的工号")

all_id=list(employee_dict.keys())

ifemploy_idnotinall_id:

print("该员工工号不存在, 不能进行删除!!!")

return

else:

# 直接删除这个字典

delemployee_dict[employ_id]

print("工号为 %s 的员工信息删除成功!!!"%employ_id)

defshow_all_info():

"""显示员工信息"""

print("显示所有员工信息 ===>")

# 实现步骤: 1. 判断员工是否存在, 如果不存在则提示返回

# 1.1 怎么判断? 当列表长度为 0 时, 则说明不存在

# 2. 如果存在, 就打印表头

# 3. 打印分割线

# 4. 遍历员工信息, 依次输出字典信息

# 判断员工是否存在

iflen(list(employee_dict.keys()))==0:

print("当前没有任何的员工信息, 请先选择操作 1, 添加员工!!!")

# return 下方的代码不会被执行

return

# 打印表头

print("-"*40)

forpeoplein["工号","姓名","性别","工资"]:

print(people,end="\t\t")

# 打印分割线

# 增加换行

print("")

print("-"*40)

# 遍历员工信息, 依次输出字典信息

# 这个 items 方法是把字典转换成列表的方法, 须特别注意

forjoberinemployee_dict.items():

print("%s\t\t%s\t\t%s\t\t\t%s"%(jober[0],

jober[1]['name'],

jober[1]['sex'],

jober[1]['salary']))

print("-"*40)

欢迎各位大佬评论和交流, 咱们一起学习, 一起进步

来源: https://www.cnblogs.com/xj-excellent/p/12560611.html

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值