【一】需求介绍
- 用户可以注册,并将注册信息临时保存起来,登陆时可根据指定用户名或密码进行登陆
- 设定好用户名和密码,用户通过输入指定的用户名和密码进行登陆
- 最大尝试次数:用户最多尝试猜测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"意料之外的错误!")
标签:简洁,管理系统,员工,emp,编号,input,data,id
From: https://www.cnblogs.com/dream-ze/p/17857405.html