# encoding:utf-8
import os
import json
from time import sleep
filename = 'student_data.txt'
def main_interface():
while True:
print('=' * 25)
print("学生信息管理系统")
print('1.查看所有学生')
print('2.添加学生')
print('3.删除学生')
print('4.修改指定学生的信息')
print('0.退出系统')
print('=' * 25)
chance = int(input('请选择:'))
if chance == 1:
see_student()
elif chance == 2:
os.system('cls')
print('='*25)
print('学生添加模块')
print('1.保存信息')
print('2.退出当前模块,返回上一级')
print('='*25)
add_student()
elif chance == 3:
del_student()
elif chance == 4:
modify_student()
elif chance == 0:
print('谢谢使用!')
break
def add_student():
'''
添加学生
:return:
'''
while True:
students = {}
name = input('请输入学生姓名:')
age = input('请输入学生年龄:')
phone_num = input("请输入你的的电话:")
student = {"name": name, "age": age, "phone_num": phone_num}
students.update(student)
flag = int(input('请输入你的操作:'))
if flag == 1:
# 当flag=1时保存当前输入的信息
print('保存成功')
sleep(2)
open_file(students)
elif flag == 2:
# 当flag==2时退出添加学生的功能,并保存学生信息
print('保存成功')
open_file(students)
sleep(2)
break
def get_all_student():
'''
获取所有学生信息
'''
student_list = []
dic_stu = {}
with open(filename, 'r+', encoding='utf-8', errors='ignore') as file_obj:
students = file_obj.readlines()
for student in students:
if student.startswith(u'\ufeff'):
student = student.encode('utf-8')[3:].decode('utf-8').replace('\'', '\"')
dic_stu = json.loads(student, encoding='utf-8')
else:
student = student.encode('utf-8').decode('utf-8').replace('\'', '\"')
dic_stu = json.loads(student, encoding='utf-8')
student_list.append(dic_stu)
return student_list
def see_student():
'''
查看学生信息
:return:
'''
student_list = get_all_student()
for student in student_list:
for key in student.keys():
print('%s=%s' % (key, student[key]), end=' ')
print()
sleep(2)
def del_student():
'''
删除学生信息
:return:
'''
student_list = get_all_student()
num=len(student_list) #记录学生数
name = input('请输入你要删除学生的姓名:')
for student in student_list:
for key in student.keys():
if student[key] == name:
student_list.remove(student)
print('删除成功!!!')
sleep(2)
break
'''
将删除了指定的学生的信息写回文件中,但是要先将文件里情空
'''
if(num>len(student_list)):
#判断是否删除了
writeback_file(student_list)
else:
print('你要删除的学生不存在!!!')
sleep(2)
'''
重新显示新文件里的信息
'''
def modify_student():
'''
修改学生信息的方法
'''
# 1.先获取所有学生信息
student_list = get_all_student()
# 2.获取要修改的学生名字
name = input('请输入你要修改学生的姓名:')
# 3.遍历学生列表,查看是否存在该学生
for student in student_list:
for key in student:
if student[key] == name:
name = input('请输入新的姓名:')
age = input('请输入新的年龄:')
phone_num = input('请输入新的电话号码:')
student_list[student_list.index(student)] = {"name":name,"age":age,"phone_num":phone_num}
print('修改成功!!')
sleep(2)
writeback_file(student_list)
return 0
print('对不起,你输入的学生不存在!!')
sleep(2)
def writeback_file(student_list):
'''
数据回写文件的方法
'''
with open(filename, 'w', encoding='utf-8') as _:
for student in student_list:
open_file(student)
def open_file(students):
with open(filename, 'a+', encoding='utf-8') as file_obj:
# for key in students:
# file_obj.write(key+":"+students[key]+'\n')
file_obj.write(str(students) + '\n')
if __name__ == '__main__':
'''
主函数
'''
main_interface()
# print(dict('{1:2,3:4}'))
# print(json.loads('{"1":2, 2:3}', encoding='utf-8'))
网友评论