# coding='utf-8'
# 学生管理系统函数
def stu_manager():
print('-' * 20)
print("""学生管理系统:
1.添加学生
2.展示学生
3.查询学生
4.删除学生
5.修改学生
6.退出系统 """)
print('-' * 20)
while True:
choice = input('请输入您要选择的操作(1-6):')
# 添加学生
if choice == '1':
students = []
name = input('请输入学生姓名:')
age = input('请输入学生年龄:')
ID = input('请输入学生学号:')
# 学生个人信息列表
stu = [name, age, ID]
students.append(stu)
with open('./stu_manager.txt', 'a+', encoding='utf-8') as f:
length = len(students)
for i in range(length):
stu_str = '姓名:' + students[i][0] + ' ' * 2 + \
'年龄:' + students[i][1] + ' ' * 2 + \
'学号:' + students[i][2] + '\n'
f.write(stu_str)
print('添加成功!')
# 展示学生
elif choice == '2':
with open('./stu_manager.txt', 'r', encoding='utf-8') as f:
content = f.read()
if content:
print(content)
else:
print('学生信息文件为空,请添加学生!')
# 查询学生
elif choice == '3':
name = input('请输入要查询的学生姓名:')
with open('./stu_manager.txt', 'r', encoding='utf-8') as f:
lines = f.readlines()
flag = True
print('您查询的学生信息为:')
# 对于读取到的信息列表,循环判断每一行中,要查询的学生是否存在
for each_line in lines:
if name in each_line:
# 如果存在,则打印出该行,即该学生信息
print(each_line)
flag = False
if flag:
print('该学生不存在,请检查!')
# 删除学生
elif choice == '4':
students = []
name = input('请输入要删除的学生姓名:')
with open('./stu_manager.txt', 'r', encoding='utf-8') as f:
lines = f.readlines()
old_length = len(lines)
for each_line in lines:
# 如果学生信息不存在,则将该行添加到新的全体学生列表中
if name not in each_line:
students.append(each_line)
length = len(students)
with open('./stu_manager.txt', 'w', encoding='utf-8') as f2:
# 逐行打印新的学生列表中的信息
for i in range(length):
stu_str = students[i]
f2.write(stu_str)
# 判断原始信息列表和新的学生信息列表长度,如果新列表长度短,代表删除成功
if length < old_length:
print('删除成功!')
else:
print('该学生不存在,请检查!')
# 修改学生
elif choice == '5':
old_name = input('请输入要修改的学生:')
with open('./stu_manager.txt', 'r', encoding='utf-8') as f:
lines = f.readlines()
flag = True
content = ''
for each_line in lines:
if old_name in each_line:
new_name = input('请输入学生姓名:')
age = input('请输入学生年龄:')
ID = input('请输入学生学号:')
each_line = '姓名:' + new_name + ' ' * 2 + \
'年龄:' + age + ' ' * 2 + \
'学号:' + ID + '\n'
flag = False
else:
each_line = each_line
content += each_line
with open('./stu_manager.txt', 'w+', encoding='utf-8') as new_f:
new_f.write(content)
if flag:
print('该学生不存在,请检查!')
else:
print('修改成功!')
# 退出系统
elif choice == '6':
print('即将退出系统,欢迎下次使用!')
exit()
else:
print('您的输入有误,请重新输入!')
if __name__ == '__main__':
stu_manager()
网友评论