员工管理系统简洁版

发布时间 2023-11-26 16:10:54作者: Chimengmeng

【一】需求介绍

  • 用户可以注册,并将注册信息临时保存起来,登陆时可根据指定用户名或密码进行登陆
  • 设定好用户名和密码,用户通过输入指定的用户名和密码进行登陆
  • 最大尝试次数:用户最多尝试猜测3次
  • 最大尝试次数后:如3次后,问用户是否继续登陆
    • 如果回答Y或y,就再给3次机会,提示【还剩最后三次机会】
    • 3次都猜错的话登录结束
    • 如果回答N或n,登陆结束!
    • 如果格式输入错误,提示【输入格式错误,请重新输入:】
  • 如果猜对了,登陆结束!

【二】功能分析

【1】添加员工信息

  • 用户登录选择添加员工信息功能,可以添加指定员工信息
  • 信息格式如下
{'员工编号':{员工数据}, '员工编号':{员工数据}, '员工编号':{员工数据}}

【2】修改员工薪资

  • 用户可以根据员工编号选择指定员工
  • 然后可以修改指定员工薪资(也可以修改其他选项)

【3】查看指定员工

  • 用户根据指定员工编号查看指定员工信息

【4】查看所有员工

  • 用户可以查看所有员工信息

【5】删除员工数据

  • 用户可以根据指定员工编号删除指定员工信息

【三】代码实现

# -*-coding: Utf-8 -*-
# @File : 员工管理系统初级 .py
# author: Chimengmeng
# blog_url : https://www.cnblogs.com/dream-ze/
# Time:2023/11/26

func_list = '''
      --- 员工管理系统 ---
        1.添加员工信息
        2.修改员工信息
        3.查看所有员工
        4.查看指定员工
        5.删除员工数据
'''

# 定义员工信息字典
user_data_dict = {}

while True:
    # 打印功能菜单
    print(func_list)
    # 输入功能代码
    function_id = input("请输入功能ID(输入n退出) :>>>> ").strip()
    if function_id == 'n' or function_id == 'N':
        print(f"感谢使用!下次再会!")
        break
    # 功能代码进行强转
    function_id = int(function_id)
    # 【一】添加员工信息
    if function_id == 1:
        # 【1】定义添加信息标志位
        tag_add = True
        # 【2】标志位为True可添加信息,否则退出循环
        while tag_add:
            # 【3】员工编号
            emp_id = input("请输入员工编号 :>>>> ").strip()
            # 【3.1】校验员工编号是否已存在
            if emp_id in user_data_dict.keys():
                print(f"当前编号 :>>>> {emp_id} 已存在!无法添加!")
                # 【3.2】员工编号存在,则不允许使用该编号
                continue
            # 【4】员工姓名
            emp_name = input("请输入员工姓名 :>>>> ").strip()
            # 【5】员工年龄
            emp_age = input("请输入员工年龄 :>>>> ").strip()
            # 【6】员工薪资
            emp_salary = input('请输入员工的薪资 :>>>> ').strip()
            # 【7】构建员工字典
            user_data = {
                "emp_name": emp_name,
                "emp_age": emp_age,
                "emp_salary": emp_salary,
            }
            # 【8】将本员工信息添加到总的员工信息字典中
            user_data_dict[emp_id] = user_data
            print(f"当前员工 {emp_name} :>>>> 信息已录用!")

            again_input = input("是否继续录入信息?(Y/N)")
            if again_input == 'Y' or again_input == 'y':
                print()
                continue
            else:
                tag_add = False
    # 【二】修改员工信息
    elif function_id == 2:
        # 【1】设置修改员工信息标志位
        tag_change = True
        # 【2】标志位为True可修改信息,否则退出循环
        while tag_change:
            # 【3】获取所有员工的编号列表
            emp_id_list = user_data_dict.keys()
            print(f"当前用户编号列表如下 :>>>> {list(emp_id_list)}")
            # 【4】输入修改的员工编号对应的员工信息
            emp_id = input("请输入员工编号 :>>>> ").strip()
            # 【4.1】校验员工编号是否已存在
            if emp_id not in user_data_dict.keys():
                print(f"当前编号 :>>>> {emp_id} 不存在!无法修改!")
                # 【4.2】员工编号不存在,则不允许使用该编号
                continue
            # 【5】获取员工编号对应的员工信息字典
            user_data = user_data_dict.get(emp_id)
            # 【5】获取员工姓名 --- 如果是 n/N 则表示不修改此信息
            emp_name_new = input("请输入员工姓名(输入n保持不变) :>>>> ").strip()
            if emp_name_new == "n" or emp_name_new == "N":
                # 根据字典中的键获取对应的值
                emp_name_new = user_data.get('emp_name')
            # 【5】获取员工年龄 --- 如果是 n/N 则表示不修改此信息
            emp_age_new = input("请输入员工年龄(输入n保持不变) :>>>> ").strip()
            if emp_age_new == "n" or emp_age_new == "N":
                emp_age_new = user_data.get('emp_age')
            # 【6】获取员工薪资 --- 如果是 n/N 则表示不修改此信息
            emp_salary_new = input('请输入员工的薪资(输入n保持不变) :>>>> ').strip()
            if emp_salary_new == "n" or emp_salary_new == "N":
                emp_salary_new = user_data.get('emp_salary')
            # 【7】构建用户信息字典
            user_data = {
                "emp_name": emp_name_new,
                "emp_age": emp_age_new,
                "emp_salary": emp_salary_new,
            }
            # 【8】更新用户信息字典 --- 当前员工编号对应信息存在则更新,不存在则新添加
            user_data_dict[emp_id] = user_data
            print(f"当前员工 {emp_name_new} :>>>> 信息更新成功!")

            # 【9】是否再次修改信息
            again_input = input("是否继续修改信息?(Y/N)")
            if again_input == 'Y' or again_input == 'y':
                print()
                continue
            else:
                tag_add = False
    # 【三】查看所有员工信息
    elif function_id == 3:
        # 【1】设置标志位
        tag_check = True
        while tag_check:
            print(f"当前所有员工信息如下")
            # 遍历员工信息字典 {emp_id : {"emp_name":emp_name,"emp_age":emp_age,"emp_salary":emp_salary}}
            # emp_id : emp_id
            # emp_data : {"emp_name":emp_name,"emp_age":emp_age,"emp_salary":emp_salary}
            for emp_id, emp_data in user_data_dict.items():
                emp_name = emp_data.get("emp_name")
                emp_age = emp_data.get("emp_age")
                emp_salary = emp_data.get("emp_salary")
                print(f'''
                   ------- emp_info -------
                    员工编号 :>>>> {emp_id}
                    员工姓名 :>>>> {emp_name}
                    员工年龄 :>>>> {emp_age}
                    员工薪资 :>>>> {emp_salary}
                   -------    end    -------
                ''')
            # 【9】是否再次查看信息
            again_input = input("是否继续查看全部信息?(Y/N)")
            if again_input == 'Y' or again_input == 'y':
                print()
                continue
            else:
                tag_check = False
    # 【四】查看指定员工信息
    elif function_id == 4:
        # 【1】设置标志位
        tag_check_one = True
        # 【2】
        while tag_check_one:
            # 【3】获取所有员工的编号列表
            emp_id_list = user_data_dict.keys()
            print(f"当前用户编号列表如下 :>>>> {list(emp_id_list)}")
            # 【4】输入修改的员工编号对应的员工信息
            emp_id = input("请输入员工编号 :>>>> ").strip()
            # 【4.1】校验员工编号是否已存在
            if emp_id not in user_data_dict.keys():
                print(f"当前编号 :>>>> {emp_id} 不存在!无法查看!")
                # 【4.2】员工编号不存在,则不允许查看该编号
                continue
            # 【5】获取员工编号对应的员工信息字典
            print(f"当前指定员工编号 {emp_id} 信息如下")
            # emp_data : {"emp_name":emp_name,"emp_age":emp_age,"emp_salary":emp_salary}
            emp_data = user_data_dict.get(emp_id)
            emp_name = emp_data.get("emp_name")
            emp_age = emp_data.get("emp_age")
            emp_salary = emp_data.get("emp_salary")
            print(f'''
                       ------- emp_info -------
                        员工编号 :>>>> {emp_id}
                        员工姓名 :>>>> {emp_name}
                        员工年龄 :>>>> {emp_age}
                        员工薪资 :>>>> {emp_salary}
                       -------    end    -------
                    ''')
            # 【9】是否再次查看信息
            again_input = input("是否继续查看全部信息?(Y/N)")
            if again_input == 'Y' or again_input == 'y':
                print()
                continue
            else:
                tag_check_one = False
    # 【五】删除指定编号信息
    elif function_id == 5:
        # 【1】设置标志位
        tag_delete_one = True
        # 【2】
        while tag_delete_one:
            # 【3】获取所有员工的编号列表
            emp_id_list = user_data_dict.keys()
            print(f"当前用户编号列表如下 :>>>> {list(emp_id_list)}")
            # 【4】输入修改的员工编号对应的员工信息
            emp_id = input("请输入员工编号 :>>>> ").strip()
            # 【4.1】校验员工编号是否已存在
            if emp_id not in user_data_dict.keys():
                print(f"当前编号 :>>>> {emp_id} 不存在!无法查看!")
                # 【4.2】员工编号不存在,则不允许查看该编号
                continue
            # 【5】删除员工编号对应的员工信息字典
            user_data_dict.pop(emp_id)
            print(f"当前员工 {emp_id} :>>>> 信息已删除")
            # 【6】是否再次查看信息
            again_input = input("是否继续删除信息?(Y/N)")
            if again_input == 'Y' or again_input == 'y':
                print()
                continue
            else:
                tag_delete_one = False
    else:
        print(f"意料之外的错误!")