# 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'))
2018-08-28-day07-学生信息管理练习
最后编辑于 :
©著作权归作者所有,转载或内容合作请联系作者
- 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
- 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
- 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
推荐阅读更多精彩内容
- 小学语文修改病句的方法 修改病句是小学语文考试中常见的题型,在修改病句之前,我们应该清晰的了解有哪些病句现象,下面...
- 这8种学生永远拿不到高分!早看早受益! 下面是一位资深班主任总结了8种成绩提不上去的原因,分别对应8类孩子,如果你...
- 作业:学生管理系统 ===============================================...
- 这8种学生永远拿不到高分!早看早受益! 下面是一位资深班主任总结了8种成绩提不上去的原因,分别对应8类孩子,如果你...
- ★记账 39.05元 ★存钱10元 自从参加完PR学习以后,我记录过一段时间自己的梦境,这让我发现如果早上睁开眼睛...