第一章系统概述
学生信息管理查询软件是一个教育单位不可缺少的部分它的内容对于学校的决策者和管理者来说都至关重要所以学生信息管理查询软件应该能够为用户提供充足的信息和快捷的查询手段。以前各个学校的学生信息管理基本上都是靠手工进行,但随着各个学校的规模增大,有关学生信息管理工作所涉及的数据量也越来越大,有的学校不得不靠增加人力、物力来进行学生宿舍管理。这种管理方式存在着许多缺点,如:效率低、保密性差等,另外其所用时间长,产生大量的文件和数据,这对于查找、更新和维护都带来了不少的困难。如今学校的学生越来越多,学生信息管理的工作量越来越大,手工管理宿舍信息的弊端也越来越明显。作为计算机应用的一部分,使用计算机对学生档案信息进行管理具有手工管理所无法比拟的优点,如检索迅速、查找方便、可靠性高、存储量大、保密性好、寿命长、成本低等,能够极大地提高学生档案管理的效率。所以我想借本次课程设计之际,设计一个简易的宿舍管理查询软件
第二章 学生信息管理系统需求分析
2.1系统的功能需求
在管理系统中最重要的是其功能部分。它之所以被设计出来,是为了满足特定人群的需要,是该项目完成实现的重要前提。该项目是针对宿舍信息管理的需求设计的,下面是本文设计系统的主要功能需求。
系统包含的操作有新建宿舍名单,显示学生信息,查询学生信息,删除宿舍信息,修改学生信息以及退出系统。
系统总体框架
各个模板的功能需求如下:
输入学生信息:输入学生的成绩、姓名等各项基本信息,并能录入文件中存档。
查询学生信息:根据学生姓名进行遍历。
删除学生信息:能删除指定姓名的学生信息。
修改学生信息:能够修改存储在文件中的所有学生信息。
显示学生信息:显示文件中的所有学生信息
第三章模块分析
在运行循环前先进行尝试读取文件,如果读取到数据,则直接根据其中数据创建students列表,如果文件不存在,则抛出相应的异常,然后进行接收,并且创建一个新的空文件
新建学生信息模块
根据输入的值,其中为了便于之后的计算,将math,chinese,english中输入的值进行int转换,最后在students列表中通过append方法添加
显示学生信息模块
通过遍历students列表,如果列表为空,则输出"学生列表为空,无法显示成绩"
如果列表不为空,则根据列表中存储的数据分别将其输出
查询学生信息模块
通过遍历students列表,通过将输入的学生姓名与students列表中存储的数据进行标价,如果遍历到后,则输出相应的成绩,再用break退出循环,否则,则输出”该学员不存在"
删除学生信息模块
修改学生信息
如果输入的学员姓名存在,则依次输入math,chinese,english的成绩,如果有相应的输入则进行修改,如果为空,则保持不变
退出程序模块
关闭文件,并把students列表中的数据存入json文件中,并通过break推出循环
第四章源码
import json
info="""
*********************
欢迎进入【学生信息管理系统】v1.0
请选择相应的操作
1、新建学生信息
2、显示全部信息
3、查询学生信息
4、删除学生信息
5、修改学生信息
0、退出系统
*********************"""
file_path='student.json'
#尝试读取文件
try:
with open(file_path,mode='r',encoding='utf-8')as f:
text=f.read()
if text:
students=json.loads(text)
else:
students=[]
#如果文件不存在。则创建一个新的空文件
except FileNotFoundError:
with open(file_path,mode='w',encoding='utf-8')as f:
json.dump([],f)
students=[]
# 处理 JSON 解码错误
except json.JSONDecodeError:
print("Error decoding JSON from the file.")
students = []
while True:
print(info)
#从外部输入
action=input('请输入你需要的操作:')
if action=='1':
name=input("请输入学生的名字:")
math=int(input("请输入学生的数学成绩:"))
chinese=int(input("请输入学生的语文成绩:"))
english=int(input("请输入学生的英语成绩:"))
total=math+chinese+english
students.append({
'name': name,
'math': math,
'chinese': chinese,
'english': english,
'total': total
})
elif action=='2':
if not students:
print("学生列表为空,无法显示成绩")
else:
print("学生成绩如下")
print('姓名\t\t数学\t\t语文\t\t英语\t\t总分')
for student in students:
print('{}\t\t{}\t\t{}\t\t{}\t\t{}'.format(*student.values()))
elif action=='3':
name=input("请输入查询学生的名字:")
for student in students:
if student['name']==name:
print('姓名\t\t数学\t\t语文\t\t英语\t\t总分')
print('{}\t\t{}\t\t{}\t\t{}\t\t{}'.format(*student.values()))
break
else:
print(f'{name}该学员不存在')
elif action=='4':
name=input("请输入想要删除的学员信息:")
for student in students:
if student['name'] == name:
#del pop remove
#students.remove(student)
#students.pop(students.index(student))
del students[students.index(student)]
break
else:
print(f'{name}该学员不存在')
elif action == '5':
name = input("请输入想要修改的学员信息:")
print("(如果输入为空则不修改学生信息)")
for student in students:
if student['name'] == name:
math=input("请重新输入学生的数学成绩:")
if math:
math = int(math)
student['math'] = math
chinese = input("请重新输入学生的语文成绩:")
if chinese:
chinese=int(chinese)
student['chinese'] = chinese
english = input("请重新输入学生的英语成绩:")
if english:
english=int(english)
student['english'] = english
student['total']=student['math']+student['chinese']+student['english']
print("修改成功")
break
else:
print(f'{name}该学员不存在')
elif action=='0':
with open('student.json', mode='w', encoding='utf-8') as f:
f.write(json.dumps(students, ensure_ascii=False))
break
else:
print("你输入的选项错误,请重新输入")
标签:课程设计,name,students,学生,源码,student,print,信息管理系统,输入
From: https://blog.csdn.net/m0_72116042/article/details/141958738