zoukankan      html  css  js  c++  java
  • python员工管理系统(基础版)

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

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

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

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

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

      

      

      

      

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

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

    第一部分:

    1.1菜单栏的展示

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

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

      

      =

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

    1.2如何循环并且选择操作

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

    while True:
        employee_tools.show_menu()
        action_str = input("请输入您的操作:")
        if action_str == "1":
            # 1.添加员工信息
            employee_tools.add_info()
        elif action_str == "2":
            # 2.修改员工信息
            employee_tools.update_info()
        elif action_str == "3":
            # 3.删除员工信息
            employee_tools.delete_info()
        elif action_str == "4":
            # 4.显示所有员工信息
            employee_tools.show_all_info()
        elif action_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.提示添加成功

    def add_info():
        """添加员工信息"""
        print("添加员工===>")
        employ_id = input("请输入要添加员工的工号:")
        # 先找到所有的字典的键,再将这些键转化为列表的形式
        all_id = list(employee_dict.keys())
        if employ_id in all_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判断修改时输入的是不是惟恐,为空就保持不变,不为空则说明修改了
    def update_info():
        """修改员工信息"""
        print("修改员工===>")
        employ_id = input("请输入你要修改的员工的工号")
        all_id = list(employee_dict.keys())
        if employ_id not in all_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'])
        # 因为并不是所有的信息都需要修改,万一不需要修改的怎么办?如何简化使用操作?
        if new_name != "":
            employee_dict[employ_id]['name'] = new_name
        if new_sex != "":
            employee_dict[employ_id]['sex'] = new_sex
        if new_salary != "":
            employee_dict[employ_id]['salary'] = new_salary
        print("工号为 %s 的员工信息修改成功!!!" % employ_id)

    3.删除员工    

    # 实现步骤:1.输入要删除员工的工号
    # 2.判断工号是否存在,不存在就给出提示信息,终止函数执行
    # 3.如果存在,则直接删除
    def delete_info():
        """删除员工信息"""
        print("删除员工===>")
        employ_id = input("请输入你要删除的员工的工号")
        all_id = list(employee_dict.keys())
        if employ_id not in all_id:
            print("该员工工号不存在,不能进行删除!!!")
            return
        else:
            # 直接删除这个字典
            del employee_dict[employ_id]
        print("工号为 %s 的员工信息删除成功!!!" % employ_id)

    4.显示所有员工信息

    # 实现步骤:1.判断员工是否存在,如果不存在则提示返回
    # 1.1怎么判断?当列表长度为0时,则说明不存在
    # 2.如果存在,就打印表头
    # 3.打印分割线
    # 4.遍历员工信息,依次输出字典信息
    def show_all_info():
        """显示员工信息"""
        print("显示所有员工信息===>")
        # 判断员工是否存在
        if len(list(employee_dict.keys())) == 0:
            print("当前没有任何的员工信息,请先选择操作 1,添加员工!!!")
            # return 下方的代码不会被执行
            return
        # 打印表头
        print("-" * 40)
        for people in ["工号", "姓名", "性别", "工资"]:
            print(people, end="		")
        # 打印分割线
            # 增加换行
        print("")
        print("-" * 40)
        # 遍历员工信息,依次输出字典信息
        # 这个items方法是把字典转换成列表的方法,须特别注意
        for jober in employee_dict.items():
            print("%s		%s		%s			%s" % (jober[0],
                                            jober[1]['name'],
                                            jober[1]['sex'],
                                            jober[1]['salary']))
        print("-" * 40)

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

    反思几个问题:

    为什么哪里都有这段?

    employ_id = input("请输入你要(删除、修改、添加)的员工的工号")
    all_id = list(employee_dict.keys())
    if employ_id not in all_id:
    print("该员工工号不存在,不能进行(修改、删除、添加)!!!")
    return

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

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

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

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

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

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

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

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

    有没有什么值得推荐的自学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文件

    import employee_tools
    while True:
        employee_tools.show_menu()
        action_str = input("请输入您的操作:")
        if action_str == "1":
            # 1.添加员工信息
            employee_tools.add_info()
        elif action_str == "2":
            # 2.修改员工信息
            employee_tools.update_info()
        elif action_str == "3":
            # 3.删除员工信息
            employee_tools.delete_info()
        elif action_str == "4":
            # 4.显示所有员工信息
            employee_tools.show_all_info()
        elif action_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'},
                     }
    
    
    def show_menu():
        """进入菜单页面"""
        print("*" * 11+"员工管理系统 V_1.0"+"*" * 11)
        # print("员工管理系统 V1.0")
        print("1、添加员工信息")
        print("2、修改员工信息")
        print("3、删除员工信息")
        print("4、显示所有员工信息")
        print("5、退出系统")
        print("*" * 40)
    
    
    def add_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())
        if employ_id in all_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'}}
    
    
    def update_info():
        """修改员工信息"""
        print("修改员工===>")
        # 实现步骤 1.拿到要修改员工的工号
        #          1.1如果工号不存在,则提示错误信息,终止函数执行,返回
        #          1.2如果存在,则修改对应的信息
        #               1.2.1 显示原来的信息再修改
        #          2.因为并不是所有的信息都需要修改,万一不需要修改的怎么办?如何简化使用操作?
        #             2.1判断修改时输入的是不是惟恐,为空就保持不变,不为空则说明修改了
        employ_id = input("请输入你要修改的员工的工号")
        all_id = list(employee_dict.keys())
        if employ_id not in all_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'])
        # 因为并不是所有的信息都需要修改,万一不需要修改的怎么办?如何简化使用操作?
        if new_name != "":
            employee_dict[employ_id]['name'] = new_name
        if new_sex != "":
            employee_dict[employ_id]['sex'] = new_sex
        if new_salary != "":
            employee_dict[employ_id]['salary'] = new_salary
        print("工号为 %s 的员工信息修改成功!!!" % employ_id)
    
    
    def delete_info():
        """删除员工信息"""
        print("删除员工===>")
        # 实现步骤:1.输入要删除员工的工号
        #           2.判断工号是否存在,不存在就给出提示信息,终止函数执行
        #           3.如果存在,则直接删除
        employ_id = input("请输入你要删除的员工的工号")
        all_id = list(employee_dict.keys())
        if employ_id not in all_id:
            print("该员工工号不存在,不能进行删除!!!")
            return
        else:
            # 直接删除这个字典
            del employee_dict[employ_id]
        print("工号为 %s 的员工信息删除成功!!!" % employ_id)
    
    
    def show_all_info():
        """显示员工信息"""
        print("显示所有员工信息===>")
        # 实现步骤:1.判断员工是否存在,如果不存在则提示返回
        #                   1.1怎么判断?当列表长度为0时,则说明不存在
        #           2.如果存在,就打印表头
        #           3.打印分割线
        #           4.遍历员工信息,依次输出字典信息
    
        # 判断员工是否存在
        if len(list(employee_dict.keys())) == 0:
            print("当前没有任何的员工信息,请先选择操作 1,添加员工!!!")
            # return 下方的代码不会被执行
            return
        # 打印表头
        print("-" * 40)
        for people in ["工号", "姓名", "性别", "工资"]:
            print(people, end="		")
        # 打印分割线
            # 增加换行
        print("")
        print("-" * 40)
        # 遍历员工信息,依次输出字典信息
        # 这个items方法是把字典转换成列表的方法,须特别注意
        for jober in employee_dict.items():
            print("%s		%s		%s			%s" % (jober[0],
                                            jober[1]['name'],
                                            jober[1]['sex'],
                                            jober[1]['salary']))
        print("-" * 40)

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

  • 相关阅读:
    word2vec层次化softmax理解
    python动态加载模块,并获取模块中的类与方法(类似反射)
    用Python装饰器给函数自动加上try except
    3D打印第二弹:狗牌
    【高等代数】06
    【高等代数】05
    沙箱-guacamole
    关于写博客的一点思考
    二阶段目标检测总结
    Waymo object detect 2D解决方案论文拓展
  • 原文地址:https://www.cnblogs.com/xj-excellent/p/12560611.html
Copyright © 2011-2022 走看看