员工管理系统
# 【一】用户可以注册,并将注册信息临时保存起来,登陆时可根据指定用户名或密码进行登陆 --->注册 和 登录
# 【二】设定好用户名和密码,用户通过输入指定的用户名和密码进行登陆 ---> 登录功能
# 【1】最大尝试次数:用户最多尝试猜测3次
# 【2】最大尝试次数后:如3次后,问用户是否继续登陆
# (1)如果回答Y或y,就再给3次机会,提示【还剩最后三次机会】
# (2)3次都猜错的话登录结束
# (3)如果回答N或n,登陆结束!
# 【三】如果格式输入错误,提示【输入格式错误,请重新输入:】 ---> 对用户名有要求 默认都是校验数字
# 【四】如果猜对了,登陆结束!
# 【1】添加员工信息
# 用户登录选择添加员工信息功能,可以添加指定员工信息
# 信息格式如下
# {'员工编号':{员工数据}, '员工编号':{员工数据}, '员工编号':{员工数据}}
# 【2】修改员工薪资
# 用户可以根据员工编号选择指定员工
# 然后可以修改指定员工薪资(也可以修改其他选项)
# 【3】查看指定员工
# 用户根据指定员工编号查看指定员工信息
# 【4】查看所有员工
# 用户可以查看所有员工信息
# 【5】删除员工数据
# 用户可以根据指定员工编号删除指定员工信息
function_menu = '''
--------------- 员工管理系统 ---------------
1.管理员注册功能
2.登录功能
3.添加员工信息
4.修改员工信息
5.查找所有员工信息
6.查看指定员工信息
7.删除指定员工信息
8.删除所有员工信息
9.查看当前登录信息
退出系统(q)
'''
user_data_dict = {'max':{'username':'max', 'password':'999', 'role': True},
'yn':{'userID':'0001' ,'username':'yn', 'password':'123', 'age':18, 'salary':850000.0,
'hobby':['music','basketball'], 'role':False}}
login_dict = {
'username': '',
'role': None,
}
while True:
print(function_menu)
func_id = input("请输入指令>>>>>").strip()
if func_id =='q':
break
if not func_id.isdigit():
print("当前指令格式错误!")
continue
func_id = int(func_id)
if func_id not in [1, 2, 3, 4, 5, 6, 7, 8, 9]:
print("当前指令不合法!")
continue
#注册功能
if func_id == 1:
print("注册中.....")
username_input = input("username>>>>>").strip()
password_input = input("password>>>>>").strip()
#校验当前用户名是否存在
if username_input in user_data_dict:
print(f"当前用户 {username_input} 已存在,请登录")
continue
#添加管理员的信息
if username_input == 'max' and password_input == '999':
role = True
else:
role = False
#增加数据字典
user_data_dict[username_input] ={
'username':username_input,
'password':password_input,
'role':role,
}
print(f"用户 {username_input} 注册成功")
#员工登录
elif func_id == 2:
print("正在登录中.....")
username_input = input("username>>>>>").strip()
password_input = input("password>>>>>").strip()
#先校验该用户是否注册过
if username_input not in user_data_dict.keys():
print(f"当前用户 {username_input} 不存在请先注册!")
continue
elif username_input in user_data_dict.keys() and password_input == user_data_dict[username_input].get('password'):
print(f"欢迎用户 {username_input} 上线")
#验证其是否是管理员登录
login_dict['username'] = username_input
login_dict['role'] = user_data_dict[username_input].get('role')
else:
print("当前用户密码错误!")
continue
#添加员工信息
elif func_id == 3:
print("添加中.....")
#验证是否是管理员进入
if not login_dict.get('username'):
print("请先登录再操作!")
continue
elif not login_dict.get('role'):
print("用户权限不足!")
continue
#获取员工数据
username_input = input("username>>>>").strip()
#判断用户是否存在
user_data = user_data_dict.get(username_input)
#能从数据库获取该人的用户信息,不能注册已经存在的人
if user_data:
print(f"该用户 {username_input} 已存在")
else:
#添加新员工信息
password_input = input("password>>>>>").strip()
#添加年龄
while True:
age_input = input("age>>>>>").strip()
if not 16< int(age_input) <80:
print("当前年龄不合法!")
continue
elif not age_input.isdigit():
print("当前年龄格式不正确!")
break
#添加薪资
salary_input = float(int(input("salary>>>>>").strip()))
#添加爱好
hobby_all = []
while True:
hobby_input = input("hobby>>>>>").strip()
if hobby_input =='q':
break
elif hobby_input not in hobby_all:
hobby_all.append(hobby_input)
else:
print("这个爱好已经有了,换一个")
continue
#添加员工ID
user_ID = input("ID>>>>>").strip()
user_ID = user_ID.rjust(4,'0')
user_data_dict[username_input] = {
'userID' : user_ID,
'username' : username_input,
'password' : password_input,
'age' : age_input,
'salary' : salary_input,
'hobby' : hobby_all,
'role' : False
}
print(f"当前用户 {username_input} 信息添加成功")
#修改员工信息
elif func_id == 4:
print("修改中.....")
if not login_dict.get('username'):
print("请先登录再操作!")
continue
elif not login_dict.get('role'):
print("用户权限不足!")
continue
print(f"已有员工信息如下.....")
user_id_list = []
for username, user_data in user_data_dict.items():
if username == 'max':
pass
else:
user_id_list.append(user_data.get('userID'))
print(f"当前用户ID : {user_data.get('userID')} | 用户名: {username}")
#输入想要修改员工信息的ID
userid_input = input("请输入员工ID>>>>>").strip()
if userid_input not in user_id_list:
print(f"当前ID不存在")
continue
#若存在要先创建空字典存储用户数据
user_data = {}
for username,user_data_ in user_data_dict.items():
#判断输入的ID和已存在的ID一致
if userid_input == user_data_.get('userid_input'):
user_data_dict.update(user_data_)
#修改薪资
salary_input = float(int(input("salary>>>>>").strip()))
user_data_dict[username]['salary'] = salary_input
print(f"当前用户薪资修改成功!")
#查找所有员工信息
elif func_id == 5:
print("查找所有用户中.....")
if not login_dict.get('username'):
print("请先登录再操作!")
continue
print(f'''
---------------------用户信息---------------------
''')
for username, user_data in user_data_dict.items():
if username == 'max':
pass
else:
print(f'''
编 号:{user_data.get('userID')}
用户名:{username}
年 龄:{user_data.get('age')}
薪 资:{user_data.get('salary')}
爱 好:{user_data.get('hobby')}
''')
print(f'''
-------------------------------------------------
''')
#查看指定员工信息
elif func_id == 6:
print(f"查看指定用户.....")
#判断是否有管理员用户登录
if not login_dict.get('username'):
print("请先登录再操作!")
continue
print(f"当前已有用户信息如下...")
user_id_list = []
for username,user_data in user_data_dict.items():
if username == 'max':
pass
else:
user_id_list.append(user_data.get('userID'))
print(f"当前员工ID:{user_data.get('userID')} | 用户名:{username}")
user_ID = input("输入员工ID>>>>>").strip()
if user_ID not in user_id_list:
print(f"当前员工ID不存在!")
continue
#若存在要先创建空字典来存储用户数据
user_data = {}
for username,user_data_ in user_data_dict.items():
if user_ID == user_data_.get('userID'):
#将原字典更新成新字典
user_data.update(user_data_)
print(f'''
---------------------当前ID:{user_ID} 员工信息---------------------
用户名:{user_data.get('username')}
年 龄:{user_data.get('age')}
薪 资:{user_data.get('salary')}
爱 好:{user_data.get('hobby')}
-----------------------------------------------------------------
''')
#删除指定员工
elif func_id == 7:
print("删除员工...")
#判断当前是否有管理员用户登录
if not login_dict.get('username'):
print("请先登录再操作!")
continue
elif not login_dict.get('role'):
print("用户权限不足!")
continue
print(f"当前已存在用户名如下")
for username, user_data in user_data_dict.items():
if user_data.get('role'):
pass
else:
print(username)
username_input = input("需要删除的用户名:").strip()
#判断当前用户是否存在
if username_input not in user_data_dict.keys() and username_input != 'max':
print(f"当前用户 {username_input} 不存在!")
del user_data_dict[username_input]
print(f"当前用户信息 {username_input} 已删除")
#删除所有用户
elif func_id == 8:
print(f"清空所有员工信息....")
# 判断当前是否有管理员用户登录
if not login_dict.get('username'):
print("请先登录再操作!")
continue
elif not login_dict.get('role'):
print("用户权限不足!")
continue
#构架一个假的原来数据格式的字典
#{'username’:{}}
user_data_dict_ = {}
#遍历原来的字典
for username, user_data in user_data_dict.items():
if user_data.get('role'):
#判断如果是管理员,按照原来的格式更新上面的空字典
#更新字典的时候是动的,根据每一个用户名动,不能是死值(username)
user_data_dict_.update({user_data.get('username'): user_data})
else:
pass
#清空原来的字典
user_data_dict.clear()
#将管理员字典信息更新回去
user_data_dict.update(user_data_dict_)
print(f"信息清空!")
#查看当前登录用户信息
elif func_id == 9:
print(f'''
---------------------当前登录用户信息---------------------
用户名:{login_dict.get('username') if login_dict.get('username') else "未登录"}
身 份:{'管理员' if login_dict.get('role') else '未知'}
''')