员工管理系统函数版本
1644 字
8 分钟
员工管理系统函数版本
【一】需求
'''功能列表1.添加用户2.查看指定用户3.查看所有用户4.删除指定用户5.删除所有用户6.修改指定用户信息7.退出系统
用户信息总览编号 名字 年龄 爱好 身份信息
指定编号(自定义):可以根据指定编号,修改查看指定员工信息指定名字(自定义)指定年龄(自定义)指定爱好(自定义):可以有多个爱好,可以修改时在原有基础上增加新的爱好指定身份信息(管理员/员工):管理员具有删除和修改信息功能,员工只能登录注册添加和查看'''【二】代码
from datetime import datetime
# 用户名和密码信息存储位置 user_pwd.txt# 用户信息存储位置 user_info.txt# 用户日志存储位置 user_log.txt
# 登录信息存储字典login_user_dict = {'username': '', "is_admin": False}
def _read_data(path): try: with open(path, 'r', encoding='utf8') as fp: data = fp.read() return True, data except Exception as error: return False, f'文件不存在'
def _create_data_dict(**kwargs): user_data_dict = {} if kwargs: user_data_dict.update(kwargs) return user_data_dict
# 读取用户名和密码信息def _read_pwd_data(): user_pwd_dict = {} # 读取文件数据 flag, data = _read_data(path='user_pwd.txt') if not flag: return data # 对数据进行切分 for data in data.split('\n'): if len(data) == 0: continue else: username, password, role = data.split('|') # 'dream': {'password': '521', 'role': 'admin'} user_pwd_dict[username] = _create_data_dict(password=password, role=role) # {'dream': {'password': '521', 'role': 'admin'}, 'hope': {'password': '369', 'role': 'normal'}} return user_pwd_dict
def _read_info_data(): user_info_dict = {} flag, data = _read_data(path='user_info.txt') if not flag: return data for data in data.split('\n'): if len(data) == 0: continue else: user_id, username, age, hobby = data.split('|') hobby_list = [] for hobby_every in hobby.split('-'): if 'None' == hobby_every: continue else: hobby_list.append(hobby_every) user_info_dict[username] = _create_data_dict(user_id=user_id, age=age, hobby=hobby_list) return user_info_dict
# 【1】读取用户信息def read_data(tag_pwd=None, tag_info=None): # 【2】读取用户名和密码信息 user_pwd_dict = _read_pwd_data() if 'None' in user_pwd_dict.keys(): user_pwd_dict.pop('None') # 【3】读取用户详细信息 user_info_dict = _read_info_data() if 'None' in user_info_dict.keys(): user_info_dict.pop('None') # 【4】如果标志位(密码)为真并且密码信息为真 if tag_pwd and user_pwd_dict: return user_pwd_dict # 【5】如果标志位(用户详细信息)为真并且用户详细信息为真 elif tag_info and user_info_dict: return user_info_dict # 【6】默认为全部信息 else: return user_pwd_dict, user_info_dict
def _create_data(tag, data): if tag == 'pwd': pwd_data = f'{data.get("username_input")}|{data.get("password_input")}|{data.get("role")}' return pwd_data elif tag == 'info': # music-listen hobby_all = '-'.join(data.get('hobby_list')) # 001|dream|88|music-listen info_data = f'{data.get("user_id")}|{data.get("username_input")}|{data.get("age_input")}|{hobby_all}' return info_data
def save_data(path, data, mode='a'): try: with open(path, mode, encoding='utf8') as fp: fp.write(data + '\n') return True, None except Exception as error: return False, error
def get_user_pwd(): username_input = input("请输入用户名 :>>>> ").strip() password_input = input("请输入密码 :>>>> ").strip() return username_input, password_input
def check_user_exists(username): user_pwd_data = read_data(tag_pwd=True) if username in user_pwd_data: return True, user_pwd_data.get(username) else: return False, None
# 注册def register(): username_input, password_input = get_user_pwd() if username_input == 'dream' and password_input == '521': pwd_data = _create_data(tag='pwd', data={"username_input": username_input, "password_input": password_input, "role": 'admin'}) else: pwd_data = _create_data(tag='pwd', data={"username_input": username_input, "password_input": password_input, "role": 'normal'}) flag, msg = save_data(path='user_pwd.txt', data=pwd_data) if flag: # 001|dream|88|music-listen info_data = f'None|{username_input}|None|None'
save_data('user_info.txt', data=info_data) save_data('user_log.txt', data=f'当前用户 *{username_input}* :>>>> 注册成功! 时间为 :>>>> {datetime.now().strftime("%Y年%m月%d日 %H时%M分%S秒")}') return True, f'当前用户 *{username_input}* :>>>> 注册成功!' else: return False, msg
def _check_login(): if not login_user_dict.get('username'): return False, f'请先登录!谢谢!' else: return True, None
# 登陆def login(): username_input, password_input = get_user_pwd() flag, user_pwd_data = check_user_exists(username_input) if not flag: return False, f'当前用户 *{username_input}* :>>>> 不存在!请先注册!' if password_input != user_pwd_data.get('password'): return False, f'当前用户 *{username_input}* :>>>> 用户名或密码失败!' else: login_user_dict['username'] = username_input if user_pwd_data.get('role') == 'admin': login_user_dict['is_admin'] = True save_data('user_log.txt', data=f'当前用户 *{username_input}* :>>>> 登陆成功! 时间为 :>>>> {datetime.now().strftime("%Y年%m月%d日 %H时%M分%S秒")}') return True, f'当前用户 *{username_input}* :>>>> 登陆成功!'
def _create_info_data(): try: # 编号 user_id = input("请输入用户编号 :>>>> ").strip() # 用户昵称 # username_input = input("请输入用户昵称(默认为当前登录用户) :>>>> ").strip() # if not username_input: username_input = login_user_dict.get('username') # 年龄 age_input = input("请输入年龄 :>>>> ").strip() # 爱好 hobby_list = [] while True: hobby_input = input("请输入爱好(q结束) :>>>> ").strip() if hobby_input == 'q': break else: hobby_list.append(hobby_input) return user_id, username_input, age_input, hobby_list except Exception as error: return None
# 添加用户def add_user(): if not _check_login()[0]: return False, _check_login()[1] # 编号 名字 年龄 爱好 身份信息 user_id, username_input, age_input, hobby_list = _create_info_data() info_data = _create_data(tag='info', data={'user_id': user_id, 'username_input': username_input, 'age_input': age_input, 'hobby_list': hobby_list}) flag, msg = save_data(path='user_info.txt', data=info_data) if flag: return True, f'当前用户 *{username_input}* :>>>> 信息修改成功!' else: return False, msg
def _check_user_id(tag_del=False): user_info_data = read_data(tag_info=True) user_id_dict = {item.get('user_id'): username for username, item in user_info_data.items()} if 'None' in user_id_dict: return False, f'请先修改用户 {user_id_dict.get("None")} 编号信息!' print(f'当前用户信息如下 :>>>> {user_id_dict}') user_id_input = input(f'请输入需要查找的编号 :>>>> ').strip() if user_id_input not in user_id_dict: return False, f'当前 *{user_id_input}* :>>>> 不存在' username_out_put = '' for username, user_info in user_info_data.items(): if user_id_input == user_info.get('user_id'): username_out_put = username if not username_out_put: return False, f'当前 *{user_id_input}* :>>>> 编号查找失败!' if not tag_del: return username_out_put, user_info_data[username_out_put] else: return username_out_put, user_info_data
# 查看指定用户def search_user_one(): if not _check_login()[0]: return False, _check_login()[1] flag, data = _check_user_id() if flag: msg = f''' ----------------- 当前用户 {flag} 信息如下 ----------------- 姓名 :>>>> {flag} 编号 :>>>> {data.get('user_id')} 年龄 :>>>> {data.get('age')} 爱好 :>>>> {data.get('hobby')} --------------------** END **---------------------- ''' return True, msg else: return flag, data
# 查看所有用户def search_user_all(): if not _check_login()[0]: return False, _check_login()[1] user_info_data = read_data(tag_info=True) for username, user_info in user_info_data.items(): msg = f''' ----------------- 当前用户信息 {username} 如下 ----------------- 姓名 :>>>> {username} 编号 :>>>> {user_info.get('user_id')} 年龄 :>>>> {user_info.get('age')} 爱好 :>>>> {user_info.get('hobby')} --------------------** END **---------------------- ''' print(msg) return True, ''
# 删除指定用户def del_user_one(): if not _check_login()[0]: return False, _check_login()[1] flag, data = _check_user_id(tag_del=True) print(data) if flag: data.pop(flag) print(f'删除后 :>>> {data}') return True, data else: return False, data
# 删除所有用户def del_user_all(): if not _check_login()[0]: return False, _check_login()[1] save_data(path='user_pwd.txt', mode='w', data='None|None|None') save_data(path='user_info.txt', mode='w', data='None|None|None|None') return True, f'用户信息已清除'
def _change_user_info(username): user_info_data = read_data(tag_info=True).get(username) try: # 编号 user_id = user_info_data.get('user_id') # 用户昵称 username_input = username # 年龄 age_input = input("请输入年龄 :>>>> ").strip() # 爱好 hobby_list = user_info_data.get('hobby') while True: hobby_input = input("请输入爱好(q结束) :>>>> ").strip() if hobby_input == 'q': break elif hobby_input in hobby_list: print(f"当前爱好 {hobby_input} :>>>> 已存在!") continue else: hobby_list.append(hobby_input) return user_id, username_input, age_input, hobby_list except Exception as error: return None
# 修改指定用户信息def change_user_one(): if not _check_login()[0]: return False, _check_login()[1] flag, data = _check_user_id() print(data) if flag: user_id, username_input, age_input, hobby_list = _change_user_info(username=flag) info_data = _create_data(tag='info', data={'user_id': user_id, 'username_input': username_input, 'age_input': age_input, 'hobby_list': hobby_list}) flag, msg = save_data(path='user_info.txt', data=info_data) if flag: return True, f'当前用户 *{username_input}* :>>>> 信息修改成功!' else: return False, msg else: return False, data
# 退出系统def back(): return False, 'break'
func_menu = '''--------------- 欢迎来到梦梦员工系统 --------------- 1:注册 2:登陆 3:添加员工信息 4:查看指定员工信息 5:查看所有员工信息 6:删除指定员工信息 7:删除所有员工信息 8:修改指定员工信息 9:退出系统'''
func_dict = { 1: register, 2: login, 3: add_user, 4: search_user_one, 5: search_user_all, 6: del_user_one, 7: del_user_all, 8: change_user_one, 9: back}
# 系统入口def main_system(): # 【1】打印功能菜单 while True: print(func_menu) func_id = input("请输入功能ID :>>>> ").strip() if not func_id.isdigit(): print(f'{func_id} :>>>> 非法字符') continue func_id = int(func_id) if func_id not in func_dict.keys(): print(f"{func_id} :>>>> 不存在该功能!") continue func = func_dict.get(func_id) flag, msg = func() if flag: print(msg) elif not flag and msg == 'break': print(f"欢迎下次使用!再见!") break else: print(msg) continue
if __name__ == '__main__': main_system()支持与分享
如果这篇文章对你有帮助,欢迎分享给更多人或打赏支持!
相关文章智能推荐
1
C 语言发展史
编程语言了解 C 语言从 BCPL、B 语言到现代标准 C 的发展历程、核心特点与应用领域。
2
C 语言开发环境的安装与配置
编程语言在 Windows、Linux 与 macOS 上安装 C 工具链,配置编辑器,并编译运行第一个 C 程序。
3
C 语言初识:程序运行机制与基本结构
编程语言认识 C 程序从源代码到运行的完整流程,以及基础语法和程序的基本结构。
4
C 语言基础:注释、关键字、变量与数据类型
编程语言学习 C 语言的注释、关键字、标识符、常量、变量和基本数据类型等基础知识。
5
C 语言数据类型
编程语言理解 C 语言的数据类型体系,包括基本类型、整数类型、浮点类型和逻辑类型。
随机文章随机推荐














