关于员工管理系统的实现
***用到的知识点
【1】os模块
- os 就是 “operating system” 的缩写,顾名思义,os模块提供的就是各种 Python 程序与操作系统进行交互的接口。
- 通过使用 os 模块,一方面可以方便地与操作系统进行交互,另一方面也可以极大增强代码的可移植性。
# 本次用到的方法有两个
# 方法一:简单理解就是 OS模块创建新的文件夹,一般搭配使用的方法是
os.mkdir(file_name)
# 声明一个文件夹路径(文件夹名字)
file_name = 'InfoDetailes'
# IF做判断 --- 如果不存在当前路径下的文件夹 则新建文件夹,如果存在,则忽略
# 考虑到每个人的电脑上都不会存在这个新建的数据库位置,特意添加了这个语句,来声明数据库位置
if not os.path.exists(file_name):
os.mkdir(file_name)
# 方法二:另一个方法是 删除文件
# 先声明要删除的文件的位置
file_path = file_name + '\\' + 'infodetails.text'
# 利用os方法删除文件
os.remove(file_path)
【2】函数相关的知识
- 函数之间相互调用
- 函数的形参和实参传值
【3】主程序入口即 if name == 'main'
- 老师上课应该也讲过,其实主要的目的就是用来做测试用的
- 在将本文件作文包导入到其他文件中运行的时候,不会被执行这部分内容
- 不懂得我到时候可以详细再介绍
详见博客:【Python】main函数 if name=='main' 详解 - Chimengmeng - 博客园 (cnblogs.com)
【一】思路解析
'''
# # 员工管理系统初级 # #
【一】 让用户直接看到打印序号的功能
# 功能列表有
1. 添加用户
2. 查看用户
3. 删除用户
4. 退出系统
【二】 需要实现的功能
1. 可以添加用户
2. 判断用户是否存在
2.1 用户存在则重新输入
2.2 用户不存在则添加
3. 用户可以添加自己的信息
信息包括:用户名、年龄、薪资、爱好
并将数据存储到信息列表里
3. 查看用户信息功能(可选择)
3.1 用户可以指定查看指定用户的信息
3.2 用户可以查看所有用户的信息
4. 删除用户功能
4.1 用户可以按照指定编号删除用户
5. 退出系统
'''
【1】功能菜单
- 用一个变量存储用户功能菜单,以便后期修改功能信息
- 单独存储每个变量每个功能相关的信息,方便以后修改功能信息
【2】登陆验证
(1)数据库之存储用户名密码(注册功能)
- 思路
- 创建一个文件 text文档,存储用户名和密码
- 写入信息,信息要以固定格式写入,以便去取数据的时候不会造成太大阻碍
- 将用户名和密码信息写入到text文档
- 打印,注册成功
# 功能分部一之写入数据
# 存储用户名和密码
def write_username_password():
# 声明数据库路径
file_path = file_name + '\\' + 'up.text'
# 输入用户信息和密码
username = input('Enter username:>>>>')
password = input('Enter password:>>>>')
# 用户数据存储格式 ----> dream#521
data = f'{username}#{password}\n'
# 打开文件进行存储
with open(file_path, 'a') as f:
# 写入数据
f.write(data)
print(f'{username}:>>>>用户注册成功!')
(2)数据库之读取用户名密码
- 思路
- 声明文件路径
- 通过 读模式 将文件中的数据读取出来,再存成两个列表
- 列表一:读取到的全部用户名,方便判断登录的用户是否已经注册过,且存在
- 列表二:全部的用户名及密码,方便后期登陆验证
# 功能分部一之读取数据
def get_username_password():
# 声明数据库路径
file_path = file_name + '\\' + 'up.text'
# 将读取出来的全部用户信息暂时存在列表里,返回调用
username_lists = []
us_details_lists = []
with open(file_path, 'r') as info:
for line in info.readlines():
line = line.rstrip().split('#')
username = line[0]
password = line[1]
data = {
'username': username,
'password': password
}
username_lists.append(username)
us_details_lists.append(data)
return [username_lists, us_details_lists]
(3)登陆用户校验
- 思路
- 输入用户名进行登录用户是否存在的校验
- 从数据库拿到用户名列表,
- 如果用户名存在列表中
- 进行登录验证操作
- 不存在列表中
- 进行注册操作
- 如果用户名存在列表中
# 员工注册校验系统
def login_befroe():
# 输入用户名,进行信息校验
# 输入用户名
input_username = input('请输入用户名!')
# 调用校验函数,在数据库中调出数据,进行比对,校验用户姓名是否已经存在
if check_info_exist(input_username):
# 用户名存在,进行登陆操作
login(input_username)
else:
# 用户名不存在,进行注册操作
print(f'当前用户{input_username}不存在,请先注册!谢谢!')
write_username_password()
- 检验用户名是否存在
def check_info_exist(input_username):
# 从数据库中获取到用户名和密码的详细列表
username_lists = get_username_password()[0]
if input_username in username_lists:
return True
else:
return False
(4)用户名存在进行登陆操作
-
思路
-
拿到用户输入的用户名
-
校对用户名是否一致
-
一致
- 进行以下操作
-
不一致
- 则校验用户名是否一致
-
-
从数据库拿到所有的用户名和密码
-
循环遍历这个列表,找到对应的用户名和密码
-
进行登陆判断
-
用户名和密码一致
- 打印欢迎语
- 进入登陆后的功能菜单
-
用户名和密码不一致
- 退回到登陆前的验证操作
-
-
def login(input_username):
# 从数据库中获取到用户名和密码的详细列表
# [{'username': '33', 'password': '22'}, {'username': '22', 'password': '22'}]
us_details_lists = get_username_password()[1]
print('请输入用户名和密码进行登陆,谢谢!')
input_username_check = input('请输入用户名::>>')
# input_username_check = input_username
# 校验是否是同一个用户
if input_username_check == f'{input_username}':
i = -1
a = 0
# 在详细信息列表里遍历用户名和密码
for info in us_details_lists:
i += 1
if input_username_check == info['username']:
# 将找到 username 的 索引值
a = i
# 找到索引所在的信息
info_details = us_details_lists[a]
username = info_details['username']
password = info_details['password']
input_password = input('请输入密码::>>')
# 如果用户名和密码正确
if username == input_username and password == input_password:
# 打印欢迎登陆,并进入登陆后的功能
print('Welcome to our system!')
login_after()
else:
print('请核对你的信息!,是否继续尝试(y/n):>>')
cmd_imput = input('请输入指令!:>>')
if cmd_imput == 'y':
login(input_username)
else:
print(f'退出到校验登陆界面!')
# 信息错误,自调用函数进行再次校对
login_befroe()
else:
print(f'请重新确认你的用户名是否正确?')
login(input_username)
【3】添加用户信息
(1)数据库之添加用户详细信息
- 思路:
- 创建数据库文件位置
- 拿到存储的数据
- 按照指定格式进行文件的存储
- 打印存储成功
# 功能部分二之存储用户信息
def write_user_infos(username, data_info):
'''
:param data: 写入的 data_info:a|b|c|d
data_info = f'{username}|{age}|{salary}|{hobbies}\n'
:return: 返回写入成功
'''
# 指定 用户详细信息文件路径
file_path = file_name + '\\' + 'infodetails.text'
with open(file_path, 'a') as info:
info.write(data_info)
print(f'{username}::>>录入信息成功!')
(2)数据库之读取用户详细信息
- 思路:
- 指定数据库文件位置
- 将数据库文件读出来,按指定格式进行切分
- 切分成两个部分
- 部分一:存储用户名列表
- 判断用户是否存在,不存在则新建信息
- 部分二:存储全部用户信息
- 为后期的查询信息做准备
- 部分一:存储用户名列表
# 功能部分三之读取用户信息
def get_user_details():
'''
:return: 返回用户信息暂存列表
[{'username': 'a', 'age': 'b', 'salary': 'c', 'hobbies': 'd'}]
'''
file_path = file_name + '\\' + 'infodetails.text'
# 将读取出来的全部用户信息暂时存在列表里,等下一步调用
username_lists = []
user_info = []
with open(file_path, 'r') as info:
for line in info.readlines():
line = line.rstrip().split('|')
username = line[0]
username_lists.append(username)
age = line[1]
salary = line[2]
hobbies = line[3]
data = {
'username': username,
'age': age,
'salary': salary,
'hobbies': hobbies,
}
user_info.append(data)
return [username_lists, user_info]
(3)已经登陆成功,进行功能选择
def login_after():
# 登录系统成功 :打印功能菜单
print(function_menus)
# 输入指令ID
function_id = judge_function_id()
# 得到指令ID(强转后的ID)进行登录后的各种操作
# 进入到添加用户信息功能
if function_id == 1:
function_id_1()
# 进入到查看用户信息功能
elif function_id == 2:
function_id_2()
elif function_id == 3:
function_id_3()
elif function_id == 4:
function_id_4()
else:
print(f'请重新校验指令')
login_after()
(4)附加功能 - 判断指令是否为数字且在功能列表内
# 判断指令ID是否合法
def judge_function_id():
'''
:param function_id: 指令ID判断
:return: 错误值 或者 指令ID
'''
function_id = input(f'请再次确认你的指令ID(可选项<1,2,3,4>):>>>>')
if function_id.isdigit() and function_id in ['1', '2', '3', '4']:
function_id = int(function_id)
return function_id
else:
print(f'请确认你的指令ID是否合法:>>>>{function_id}')
judge_function_id()
(5)指令合法,进入功能1:添加用户信息
- 思路、:
- 录取到指定的信息,并按照指定格式传给写入用户信息的部分进行信息录入
# 添加用户信息功能函数
def function_id_1():
print('欢迎使用,当前是添加用户信息功能! (≖ᴗ≖)✧')
username = input('请输入用户名:>>>>')
age = input('请输入年龄(必须是数字):>>>>')
age = check_isnumber(age)
salary = input('请输入薪资(必须是数字):>>>>')
salary = check_isnumber(salary)
hobbies = input('请输入爱好:>>>>')
# 存储的数据格式
data_info = f'{username}|{age}|{salary}|{hobbies}\n'
# 调用写入信息函数进行写入信息
write_user_infos(username, data_info)
chose = input('是否确认录入信息?(Y/N):>>>')
if chose == 'Y':
function_id_1()
else:
# 返回主菜单
print('感谢你的使用!')
login_after()
【4】查询用户信息
(1)进入到功能2
- 思路:
- 检验用户是否存在
- 用户存在则进行用户信息搜索
def function_id_2():
# 校验数字,否则重新输入
# 先打印功能菜单
print('你好,当前是查看用户信息功能,请根据提示选择功能ID')
print(function_2)
function_id_2_num = input('请输入指令ID:>>>>')
function_id_2_num = check_isnumber(function_id_2_num)
# 指令ID输入完成进行指令ID的校验(是否是数字)
# 进行菜单选择 --- 1 为查询指定用户信息
if function_id_2_num == 1:
# 进入查询指定用户信息的功能,进行人员校验(是否存在个人信息)
function_id_2_1_username = input('请输入你要查询的个人信息的用户姓名:>>>>')
# 进入到查验用户名
result = check_info_details_exist(function_id_2_1_username)
if result:
# 存在用户信息 进入查询并打印用户信息功能
# 传入用户姓名列表 和 用户详细信息列表
# search_user_info(function_id_2_1_username)
search_user_info(function_id_2_1_username)
else:
print(f'查无此人,请确认输入的信息是否正确:::>>>>{function_id_2_1_username}')
# 调回功能2进行功能复选
function_id_2()
# 进行菜单选择 --- 2 为查询全部用户信息
elif function_id_2_num == 2:
# search_user_info_all()
search_user_info_all()
(2)检验用户信息是否存在
- 思路
- 从数据库拿到用户名列表
- 用户名存在
- 返回True,进行查询操作
- 用户名不存在
- 返回Faluse,然后进行录入操作
- 用户名存在
- 从数据库拿到用户名列表
# 校验用户信息是否存在
def check_info_details_exist(inout_username_2):
username_lists = get_user_details()[0]
if inout_username_2 in username_lists:
return True
# 不存在 : 返回报错信息 查无此人
else:
return False
(3)附加之校验指令是否是数字
def check_isnumber(num):
if num.isdigit():
return int(num)
else:
# 不是数字的话就重新输入
print('请确认输入的信息!')
check_isnumber(num)
(4)查询指定用户信息
- 思路
- 在数据库中拿到所有信息列表
- 循环遍历找到指定位置的用户信息
- 取出信息并做打印输出
- 在数据库中拿到所有信息列表
# 查询并打印指定用户信息功能
def search_user_info(function_id_2_1_username):
# 拿到用户名列表 和 用户详细信息列表
user_info = get_user_details()[1]
# 到数据库中查询用户信息
# 校验用户信息是否存在,存在则打印指定用户信息
# check_info_details_exist(inout_username_2) # [{'username': 'a', 'age': 'b', 'salary': 'c', 'hobbies': 'd'}]
# [{'username': 'a', 'age': 'b', 'salary': 'c', 'hobbies': 'd'}]
# 定义初始变量
# i 为列表循环次数(即每个用户所在的索引值) - 取到索引再去拿值
# a 为替换后的索引值,因为每一次循环 i 都在发生变化
i = -1
a = 0
for info in user_info:
i += 1
if function_id_2_1_username == info['username']:
# 将找到 username 的 索引值
a = i
# 找到索引所在的信息
info_details = user_info[a]
username = info_details['username']
age = info_details['age']
salary = info_details['salary']
hobbies = info_details['hobbies']
print(f'用户详细信息为::姓名>{username},年龄>{age},薪资{salary},爱好>{hobbies}')
print('感谢你的使用')
# 是否再次查询或退出
back_function(function_id_2)
(5)查询全部用户信息
- 思路
- 拿到全部用户信息列表
- 循环遍历每一个信息
- 循环打印输出
def search_user_info_all():
# 拿到用户名列表 和 用户详细信息列表
user_info = get_user_details()[1]
for info_details in user_info:
username = info_details['username']
age = info_details['age']
salary = info_details['salary']
hobbies = info_details['hobbies']
print(f'用户详细信息为::姓名>{username},年龄>{age},薪资{salary},爱好>{hobbies}')
print('感谢你的使用')
back_function(function_id_2)
(6)附加功能之是否再次进行查询
def back_function(function_id_i):
# 请选择是否继续使用
chose = input('请输入是否继续使用(Y/N)')
if chose == 'Y':
function_id_i()
elif chose == 'N':
login_after()
else:
back_function(function_id_i)
print(f'请正确输入指令(Y/N):>>>')
【5】删除用户信息
- 思路类查询用户操作
(1)进入到功能菜单
def function_id_3():
# 打印欢迎语
print('欢迎使用,当前是删除用户信息系统!')
# 打印欢迎菜单
print(function_3)
function_id_3_1 = input('请输入指令ID:>>>>')
# 进行功能ID的选择校验
result = check_isnumber(function_id_3_1)
# 进入修改指定用户信息指令
if result == 1:
delete_one_info()
else:
delete_all_info()
(2)删除指定用户信息之校验用户信息是否存在
# 校验用户信息是否存在
def check_info_details_exist(inout_username_2):
username_lists = get_user_details()[0]
if inout_username_2 in username_lists:
return True
# 不存在 : 返回报错信息 查无此人
else:
return False
(3)删除指定用户信息
- 思路
- 拿到全部用户信息列表
- 将需要删除的用户信息进行比对
- 找到相应的用户信息的位置
- 利用 pop 方法删除指定用户信息
- 将其余的信息写入到新的列表里
- 这里有一个操作
- 先将原来的表删除
- 然后再将剩余的信息循环写入到文件里
- 因为我们将全部的信息都读出来存放在列表里,相当于在内存里,然后我们再利用a方法将列表内的数据写入进去
- 拿到全部用户信息列表
def delete_one_info():
# 修改信息首先要校验用户信息是否存在
print('欢迎使用,当前是删除用户信息功能! (≖ᴗ≖)✧')
inout_username_delete = input(f'请先输入信息校验用户信息是否存在:>>>>')
result = check_info_details_exist(inout_username_delete)
if result:
# 校验到用户信息已经存在 进行修改指定用户信息功能
delete_info_for_ones(inout_username_delete)
else:
print(f'查无此人:>>>>')
function_id_3()
def delete_info_for_ones(username_input):
# 去数据库读取信息
user_info = get_user_details()[1]
print('这里是删除个人信息功能')
# 到数据库中查询用户信息
# 校验用户信息是否存在,存在则打印指定用户信息
# check_info_details_exist(inout_username_2) # [{'username': 'a', 'age': 'b', 'salary': 'c', 'hobbies': 'd'}]
# [{'username': 'a', 'age': 'b', 'salary': 'c', 'hobbies': 'd'}]
# 定义初始变量
# i 为列表循环次数(即每个用户所在的索引值) - 取到索引再去拿值
# a 为替换后的索引值,因为每一次循环 i 都在发生变化
i = -1
a = 0
for info in user_info:
i += 1
if username_input == info['username']:
# 将找到 username 的 索引值
a = i
# 找到索引所在的信息
print(f'这是找到的用户信息:>>>{user_info[a]}')
user_info.pop(a)
print(f'这是删除后的信息{user_info}')
# 存储的数据格式
# 调用写入信息函数进行写入信息
# user_info : [{'username': 'a', 'age': 'b', 'salary': 'c', 'hobbies': 'd'}]
# 将原来的信息表删除,重新创建新的信息表进行信息的写入
file_path = file_name + '\\' + 'infodetails.text'
os.remove(file_path)
for data in user_info:
username = data['username']
age = data['age']
salary = data['salary']
hobbies = data['hobbies']
data_info = f'{username}|{age}|{salary}|{hobbies}\n'
write_user_infos(username, data_info)
print('感谢你的使用')
back_function(function_id_3)
(4)删除全部用户信息
- 思路:
- 将原来的表删除
- 新建表并写入空信息
def delete_all_info():
# 去数据库读取信息
user_info = get_user_details()[1]
print('这里是删除全部信息功能')
file_path = file_name + '\\' + 'infodetails.text'
os.remove(file_path)
with open(file_path, 'w') as f:
f.write('')
print('感谢你的使用')
back_function(function_id_3)
【6】退出系统
- 思路
- 完全退出系统
- 退出到功能界面
def function_id_4():
cmd = input('确认是否退出系统?(y/n)>>>>>')
if cmd == 'y':
pass
else:
# 返回功能菜单
login_after()
【7】完整的代码
# -*-coding: Utf-8 -*-
# @File : main .py
# author: Chimengmeng
# blog_url : https://www.cnblogs.com/dream-ze/
# Time:2023/5/26
'''
# # 员工管理系统初级 # #
【一】 让用户直接看到打印序号的功能
# 功能列表有
1. 添加用户
2. 查看用户
3. 删除用户
4. 退出系统
【二】 需要实现的功能
1. 可以添加用户
2. 判断用户是否存在
2.1 用户存在则重新输入
2.2 用户不存在则添加
3. 用户可以添加自己的信息
信息包括:用户名、年龄、薪资、爱好
并将数据存储到信息列表里
3. 查看用户信息功能(可选择)
3.1 用户可以指定查看指定用户的信息
3.2 用户可以查看所有用户的信息
4. 删除用户功能
4.1 用户可以按照指定编号删除用户
5. 退出系统
'''
function_menus = '''
-------------- 欢迎使用员工信息管理系统 -------------
请根据功能ID选择功能
1. 添加用户
2. 查看用户
3. 删除用户
4. 退出系统
'''
function_2 = '''
欢迎使用,当前功能是查看用户
请选择你要使用的功能
1.查看指定用户信息
2.查看全部用户信息
'''
function_3 = '''
欢迎使用,当前功能是删除用户
请选择你要使用的功能
1.删除指定用户信息
2.删除全部用户信息
'''
function_4 = '''
欢迎使用,当前功能是退出系统
请选择你要使用的功能
1.返回功能界面
2.完全退出系统
'''
# 创建数据库,存储用户名及密码
# OS模块 - 创建文件夹存储数据
import os
# 声明数据库存储位置
file_name = 'InfoDetailes'
if not os.path.exists(file_name):
os.mkdir(file_name)
# 功能分部一之写入数据
# 存储用户名和密码
def write_username_password():
# 声明数据库路径
file_path = file_name + '\\' + 'up.text'
# 输入用户信息和密码
username = input('Enter username:>>>>')
password = input('Enter password:>>>>')
# 用户数据存储格式 ----> dream#521
data = f'{username}#{password}\n'
# 打开文件进行存储
with open(file_path, 'a') as f:
# 写入数据
f.write(data)
print(f'{username}:>>>>用户注册成功!')
# 功能分部一之读取数据
def get_username_password():
# 声明数据库路径
file_path = file_name + '\\' + 'up.text'
# 将读取出来的全部用户信息暂时存在列表里,返回调用
username_lists = []
us_details_lists = []
with open(file_path, 'r') as info:
for line in info.readlines():
line = line.rstrip().split('#')
username = line[0]
password = line[1]
data = {
'username': username,
'password': password
}
username_lists.append(username)
us_details_lists.append(data)
return [username_lists, us_details_lists]
# 功能部分二之存储用户信息
def write_user_infos(username, data_info):
'''
:param data: 写入的 data_info:a|b|c|d
data_info = f'{username}|{age}|{salary}|{hobbies}\n'
:return: 返回写入成功
'''
# 指定 用户详细信息文件路径
file_path = file_name + '\\' + 'infodetails.text'
with open(file_path, 'a') as info:
info.write(data_info)
print(f'{username}::>>录入信息成功!')
# 功能部分三之读取用户信息
def get_user_details():
'''
:return: 返回用户信息暂存列表
[{'username': 'a', 'age': 'b', 'salary': 'c', 'hobbies': 'd'}]
'''
file_path = file_name + '\\' + 'infodetails.text'
# 将读取出来的全部用户信息暂时存在列表里,等下一步调用
username_lists = []
user_info = []
with open(file_path, 'r') as info:
for line in info.readlines():
line = line.rstrip().split('|')
username = line[0]
username_lists.append(username)
age = line[1]
salary = line[2]
hobbies = line[3]
data = {
'username': username,
'age': age,
'salary': salary,
'hobbies': hobbies,
}
user_info.append(data)
return [username_lists, user_info]
def check_info_exist(input_username):
# 从数据库中获取到用户名和密码的详细列表
username_lists = get_username_password()[0]
if input_username in username_lists:
return True
else:
return False
def login(input_username):
# 从数据库中获取到用户名和密码的详细列表
# [{'username': '33', 'password': '22'}, {'username': '22', 'password': '22'}]
us_details_lists = get_username_password()[1]
print('请输入用户名和密码进行登陆,谢谢!')
input_username_check = input('请输入用户名::>>')
# input_username_check = input_username
# 校验是否是同一个用户
if input_username_check == f'{input_username}':
i = -1
a = 0
# 在详细信息列表里遍历用户名和密码
for info in us_details_lists:
i += 1
if input_username_check == info['username']:
# 将找到 username 的 索引值
a = i
# 找到索引所在的信息
info_details = us_details_lists[a]
username = info_details['username']
password = info_details['password']
input_password = input('请输入密码::>>')
# 如果用户名和密码正确
if username == input_username and password == input_password:
# 打印欢迎登陆,并进入登陆后的功能
print('Welcome to our system!')
login_after()
else:
print('请核对你的信息!,是否继续尝试(y/n):>>')
cmd_imput = input('请输入指令!:>>')
if cmd_imput == 'y':
login(input_username)
else:
print(f'退出到校验登陆界面!')
# 信息错误,自调用函数进行再次校对
login_befroe()
else:
print(f'请重新确认你的用户名是否正确?')
login(input_username)
# 员工注册校验系统
def login_befroe():
# 输入用户名,进行信息校验
# 输入用户名
input_username = input('请输入用户名!')
# 调用校验函数,在数据库中调出数据,进行比对,校验用户姓名是否已经存在
if check_info_exist(input_username):
# 用户名存在,进行登陆操作
login(input_username)
else:
# 用户名不存在,进行注册操作
print(f'当前用户{input_username}不存在,请先注册!谢谢!')
write_username_password()
# 判断指令ID是否合法
def judge_function_id():
'''
:param function_id: 指令ID判断
:return: 错误值 或者 指令ID
'''
function_id = input(f'请再次确认你的指令ID(可选项<1,2,3,4>):>>>>')
if function_id.isdigit() and function_id in ['1', '2', '3', '4']:
function_id = int(function_id)
return function_id
else:
print(f'请确认你的指令ID是否合法:>>>>{function_id}')
judge_function_id()
def login_after():
# 登录系统成功 :打印功能菜单
print(function_menus)
# 输入指令ID
function_id = judge_function_id()
# 得到指令ID(强转后的ID)进行登录后的各种操作
# 进入到添加用户信息功能
if function_id == 1:
function_id_1()
# 进入到查看用户信息功能
elif function_id == 2:
function_id_2()
elif function_id == 3:
function_id_3()
elif function_id == 4:
function_id_4()
else:
print(f'请重新校验指令')
login_after()
def check_isnumber(num):
if num.isdigit():
return int(num)
else:
# 不是数字的话就重新输入
print('请确认输入的信息!')
check_isnumber(num)
# 添加用户信息功能函数
def function_id_1():
print('欢迎使用,当前是添加用户信息功能! (≖ᴗ≖)✧')
username = input('请输入用户名:>>>>')
age = input('请输入年龄(必须是数字):>>>>')
age = check_isnumber(age)
salary = input('请输入薪资(必须是数字):>>>>')
salary = check_isnumber(salary)
hobbies = input('请输入爱好:>>>>')
# 存储的数据格式
data_info = f'{username}|{age}|{salary}|{hobbies}\n'
# 调用写入信息函数进行写入信息
write_user_infos(username, data_info)
chose = input('是否确认录入信息?(Y/N):>>>')
if chose == 'Y':
function_id_1()
else:
# 返回主菜单
print('感谢你的使用!')
login_after()
def function_id_2():
# 校验数字,否则重新输入
# 先打印功能菜单
print('你好,当前是查看用户信息功能,请根据提示选择功能ID')
print(function_2)
function_id_2_num = input('请输入指令ID:>>>>')
function_id_2_num = check_isnumber(function_id_2_num)
# 指令ID输入完成进行指令ID的校验(是否是数字)
# 进行菜单选择 --- 1 为查询指定用户信息
if function_id_2_num == 1:
# 进入查询指定用户信息的功能,进行人员校验(是否存在个人信息)
function_id_2_1_username = input('请输入你要查询的个人信息的用户姓名:>>>>')
# 进入到查验用户名
result = check_info_details_exist(function_id_2_1_username)
if result:
# 存在用户信息 进入查询并打印用户信息功能
# 传入用户姓名列表 和 用户详细信息列表
# search_user_info(function_id_2_1_username)
search_user_info(function_id_2_1_username)
else:
print(f'查无此人,请确认输入的信息是否正确:::>>>>{function_id_2_1_username}')
# 调回功能2进行功能复选
function_id_2()
# 进行菜单选择 --- 2 为查询全部用户信息
elif function_id_2_num == 2:
# search_user_info_all()
search_user_info_all()
# 校验用户信息是否存在
def check_info_details_exist(inout_username_2):
username_lists = get_user_details()[0]
if inout_username_2 in username_lists:
return True
# 不存在 : 返回报错信息 查无此人
else:
return False
def back_function(function_id_i):
# 请选择是否继续使用
chose = input('请输入是否继续使用(Y/N)')
if chose == 'Y':
function_id_i()
elif chose == 'N':
login_after()
else:
back_function(function_id_i)
print(f'请正确输入指令(Y/N):>>>')
# 查询并打印指定用户信息功能
def search_user_info(function_id_2_1_username):
# 拿到用户名列表 和 用户详细信息列表
user_info = get_user_details()[1]
# 到数据库中查询用户信息
# 校验用户信息是否存在,存在则打印指定用户信息
# check_info_details_exist(inout_username_2) # [{'username': 'a', 'age': 'b', 'salary': 'c', 'hobbies': 'd'}]
# [{'username': 'a', 'age': 'b', 'salary': 'c', 'hobbies': 'd'}]
# 定义初始变量
# i 为列表循环次数(即每个用户所在的索引值) - 取到索引再去拿值
# a 为替换后的索引值,因为每一次循环 i 都在发生变化
i = -1
a = 0
for info in user_info:
i += 1
if function_id_2_1_username == info['username']:
# 将找到 username 的 索引值
a = i
# 找到索引所在的信息
info_details = user_info[a]
username = info_details['username']
age = info_details['age']
salary = info_details['salary']
hobbies = info_details['hobbies']
print(f'用户详细信息为::姓名>{username},年龄>{age},薪资{salary},爱好>{hobbies}')
print('感谢你的使用')
# 是否再次查询或退出
back_function(function_id_2)
def search_user_info_all():
# 拿到用户名列表 和 用户详细信息列表
user_info = get_user_details()[1]
for info_details in user_info:
username = info_details['username']
age = info_details['age']
salary = info_details['salary']
hobbies = info_details['hobbies']
print(f'用户详细信息为::姓名>{username},年龄>{age},薪资{salary},爱好>{hobbies}')
print('感谢你的使用')
back_function(function_id_2)
def function_id_3():
# 打印欢迎语
print('欢迎使用,当前是删除用户信息系统!')
# 打印欢迎菜单
print(function_3)
function_id_3_1 = input('请输入指令ID:>>>>')
# 进行功能ID的选择校验
result = check_isnumber(function_id_3_1)
# 进入修改指定用户信息指令
if result == 1:
delete_one_info()
else:
delete_all_info()
def delete_all_info():
# 去数据库读取信息
user_info = get_user_details()[1]
print('这里是删除全部信息功能')
file_path = file_name + '\\' + 'infodetails.text'
os.remove(file_path)
with open(file_path, 'w') as f:
f.write('')
print('感谢你的使用')
back_function(function_id_3)
def delete_one_info():
# 修改信息首先要校验用户信息是否存在
print('欢迎使用,当前是删除用户信息功能! (≖ᴗ≖)✧')
inout_username_delete = input(f'请先输入信息校验用户信息是否存在:>>>>')
result = check_info_details_exist(inout_username_delete)
if result:
# 校验到用户信息已经存在 进行修改指定用户信息功能
delete_info_for_ones(inout_username_delete)
else:
print(f'查无此人:>>>>')
function_id_3()
def delete_info_for_ones(username_input):
# 去数据库读取信息
user_info = get_user_details()[1]
print('这里是删除个人信息功能')
# 到数据库中查询用户信息
# 校验用户信息是否存在,存在则打印指定用户信息
# check_info_details_exist(inout_username_2) # [{'username': 'a', 'age': 'b', 'salary': 'c', 'hobbies': 'd'}]
# [{'username': 'a', 'age': 'b', 'salary': 'c', 'hobbies': 'd'}]
# 定义初始变量
# i 为列表循环次数(即每个用户所在的索引值) - 取到索引再去拿值
# a 为替换后的索引值,因为每一次循环 i 都在发生变化
i = -1
a = 0
for info in user_info:
i += 1
if username_input == info['username']:
# 将找到 username 的 索引值
a = i
# 找到索引所在的信息
print(f'这是找到的用户信息:>>>{user_info[a]}')
user_info.pop(a)
print(f'这是删除后的信息{user_info}')
# 存储的数据格式
# 调用写入信息函数进行写入信息
# user_info : [{'username': 'a', 'age': 'b', 'salary': 'c', 'hobbies': 'd'}]
# 将原来的信息表删除,重新创建新的信息表进行信息的写入
file_path = file_name + '\\' + 'infodetails.text'
os.remove(file_path)
for data in user_info:
username = data['username']
age = data['age']
salary = data['salary']
hobbies = data['hobbies']
data_info = f'{username}|{age}|{salary}|{hobbies}\n'
write_user_infos(username, data_info)
print('感谢你的使用')
back_function(function_id_3)
def function_id_4():
cmd = input('确认是否退出系统?(y/n)>>>>>')
if cmd == 'y':
pass
else:
# 返回功能菜单
login_after()
def main():
login_befroe()
# write_username_password()
if __name__ == '__main__':
main()
标签:username,info,管理系统,function,用户,员工,关于,input,id
From: https://www.cnblogs.com/dream-ze/p/17455401.html