员工管理系统

员工管理系统

# 【一】用户可以注册,并将注册信息临时保存起来,登陆时可根据指定用户名或密码进行登陆  --->注册 和 登录
# 【二】设定好用户名和密码,用户通过输入指定的用户名和密码进行登陆 ---> 登录功能
# 【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 '未知'}
        ''')
posted @ 2024-04-08 20:29  光头大炮  阅读(31)  评论(0编辑  收藏  举报