Ai
1 Star 1 Fork 0

yiwen/basePython

加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
文件
克隆/下载
student.py 6.27 KB
一键复制 编辑 原始数据 按行查看 历史
jww 提交于 2020-12-12 14:02 +08:00 . 学生管理系统-end
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()
Loading...
马建仓 AI 助手
尝试更多
代码解读
代码找茬
代码优化
1
https://gitee.com/yiwencc/basepython.git
git@gitee.com:yiwencc/basepython.git
yiwencc
basepython
basePython
master

搜索帮助