代码拉取完成,页面将自动刷新
import json
import os
def read_info():
"""
读取文件获得学生信息列表
:return: student_info_list
"""
with open('student.json', 'r', encoding='utf8') as f:
infos = json.load(f)
return infos
def menu():
"""
输出菜单
"""
print("""
——————————————学生信息管理系统———————————————
==============功能菜单============
1 录入学生信息
2 查找学生信息
3 删除学生信息
4 修改学生信息
5 排序
6 统计学生总人数
7 显示所有学生信息
0 退出系统
=================================
—————————————————————————————————————————————
""")
if not os.path.exists('student.json'):
with open('student.json', 'w', encoding='utf8') as fp:
fp.write('[]')
def save(student, infos):
with open('student.json', 'w', encoding='utf8') as fr:
json.dump(infos+student, fr, ensure_ascii=False, indent=4)
def upSave(student):
with open('student.json', 'w', encoding='utf8') as fr:
json.dump(student, fr, ensure_ascii=False, indent=4)
def insert():
mark = True
student = []
while mark:
id = input('请输入id(如1001):')
if not id:
break
name = input('请输入名字:')
if not name:
break
try:
english = int(input('请输入英语成绩:'))
python = int(input('请输入python成绩:'))
c = int(input('请输入c成绩:'))
except:
print('输入无效,不是整数型值!重新录入信息')
continue
student_dic = {'id': id, 'name': name, 'english': english, 'python': python, 'c': c}
student.append(student_dic)
inputMark = input('是否继续添加?(y/n):')
if inputMark == 'y':
mark = True
else:
mark = False
infos = read_info()
save(student, infos)
print('学生信息录入完毕')
def search():
"""
根据id查询学生信息
:return:
"""
mark = True
while mark:
id = input('请输入学生id:')
infos = read_info()
for info in infos:
if info['id'] == id:
print('--id----name----english----python----c--')
print(info['id'], '--', info['name'], '---', info['english'], '----', info['python'], '----', info['c'])
inputMark = input('是否继续查询?(y/n):')
if inputMark == 'y':
mark = True
else:
mark = False
break
def show():
"""
展示全部学生信息
"""
infos = read_info()
print('--id----name----english----python----c--')
for info in infos:
print(info['id'], '--', info['name'], '---', info['english'], '----', info['python'], '----', info['c'])
def total():
"""
统计学生总人数
"""
infos = read_info()
print('学生的总人数位:%d位同学' % len(infos))
def delete():
"""
删除学生信息
:return:
"""
mark = True
while mark:
id = input('请输入学生的id')
if not id:
break
infos = read_info()
for info in infos:
if info['id'] == id:
del(infos[infos.index(info)])
upSave(infos)
inputMark = input('id为%s的学生信息已删除!是否继续删除?(y/n):' % id)
if inputMark == 'y':
mark = True
else:
mark = False
break
def my_sort():
"""
根据用户输入进行排序
:return:
"""
mark = True
infos = read_info()
option = input('请选择排序方式(english, python, c)')
order_str = input('请选择降序升序(0, 1)')
if order_str == '1':
mark = False
dic = sorted(infos, key=lambda x: x[option], reverse=mark)
print('--id----name----english----python----c--')
for info in dic:
print(info['id'], '--', info['name'], '---', info['english'], '----', info['python'], '----', info['c'])
def modify():
"""
修改学生信息
:return:
"""
mark = True
while mark:
id = input('请输入学生的id')
if not id:
break
infos = read_info()
for info in infos:
if info['id'] == id:
name = input('请输入名字:')
if not name:
break
try:
english = int(input('请输入英语成绩:'))
python = int(input('请输入python成绩:'))
c = int(input('请输入c成绩:'))
except:
print('输入无效,不是整数型值!重新录入信息')
continue
infos[infos.index(info)] = {'id': id, 'name': name, 'english': english, 'python': python, 'c': c}
upSave(infos)
inputMark = input('id为%s的学生信息已更改!是否继续?(y/n):' % id)
if inputMark == 'y':
mark = True
else:
mark = False
break
if __name__ == "__main__":
"""
ctrl: 标记是否退出
"""
ctrl = True
while ctrl:
menu()
option = input('请选择:')
if option in ['0', '1', '2', '3', '4', '5', '6', '7']:
option_int = int(option)
if option_int == 0:
print('您已退出学生信息管理系统')
ctrl = False
elif option_int == 1:
insert()
elif option_int == 2:
search()
elif option_int == 3:
delete()
elif option_int == 4:
modify()
elif option_int == 5:
my_sort()
elif option_int == 6:
total()
elif option_int == 7:
show()
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。