内容不是很完善,多多见谅。
基础功能测试没有问题
import os
name_table = [] # 空列表 临时存储数据
# 添加学生函数
def add_student():
load_student()
user_id = input("请输入学生学号:")
user_name = input("请输入学生姓名:")
user_tel = input("请输入手机号:")
global name_table # 声明全局变量
for i in name_table:
if user_id == i['id']:
print('不允许学号重复')
return # 退出函数
student_dict = {'id': user_id, 'name': user_name, 'tel': user_tel} # 创建字典
name_table.append(student_dict) # addend结尾追加数据
# 新增成功保存数据
access_student()
# 删除学生函数
def del_student():
while True:
global name_table
del_id = input("请输入要删除的学号:")
if del_id == "wq":
break
else:
for i in name_table:
if del_id == i["id"]:
name_table.remove(i)
# 删除成功保存数据
access_student()
print(f"学号{i}删除成功\n ****数字wq退出****")
break
else:
print(f'学号{del_id}不存在重新输入!\n ****数字wq退出****')
# 修改学生函数
def modify_student():
modify_id = input("请输入要修改的学号:")
global name_table
while True:
if modify_id == "wq":
break
else:
for i in name_table:
if modify_id == i["id"]:
i['id'] = input("请输入新学号")
i['name'] = input("请输入新姓名")
i['tel'] = input("请输入新手机号")
print(f"学{modify_id}修改成功,新数据是:{i['id']}已更新到文件库")
# 修改成功保存数据
access_student()
break
else:
print(f'学号{modify_id}不存在重新输入!\n ****数字wq退出****')
break
break
# 查找学生函数
def query_student():
global name_table
query_id = input("请输入要查询的学号")
global name_table
for i in name_table:
if query_id == i["id"]:
print(f"学号:{i['id']} 姓名:{i['name']} 手机号:{i['tel']}")
break
else:
print(f'学号{query_id}不存在重新输入!\n ****数字wq退出****')
# 显示学生函数
def table_student():
print("学号\t姓名\t手机号")
# 变量学生信息列表
for i in name_table:
print(f"{i['id']} \t {i['name']} \t{i['tel']}")
# 保存数据到文件
def access_student():
# w+模式不存在创建文件
student_f = open("student.txt", 'w+', encoding="utf-8")
# write 写入数据
student_f.write(str(name_table))
# 关闭文件
student_f.close()
# 读取student.txt文件,不存在创建
def load_student():
# 判断student.txt文件是否存在
if os.path.exists("student.txt"):
student_data_f = open('student.txt', 'r', encoding='utf-8')
# 读取数据
aa = student_data_f.read()
# 声明全局变量
global name_table
# 复制并转换数据类型
name_table = eval(aa)
# 关闭文件
student_data_f.close()
else:
# 创建student文件
student_data_f = open('student.txt', 'w', encoding='utf-8')
# 插入[]防止数据为空调用报错
aa = student_data_f.write("[]")
student_data_f.close()
load_student()
while True:
print("1:添加学生\n2:删除学生\n3:修改学生\n4:查询学生\n5:显示所有学生\n6:退出系统\n7:保存数据")
a = int(input("编号:"))
if a == 1:
add_student()
elif a == 2:
del_student()
elif a == 3:
modify_student()
elif a == 4:
query_student()
elif a == 5:
table_student()
elif a == 6:
print("退出管理系统")
break
elif a == 7:
access_student()
else:
print("指令错误!!!")
break