【Python】学生管理系统——详细解释+代码+详细注释(课设必过)_python学生管理系统代码
阿里云国内75折 回扣 微信号:monov8 |
阿里云国际,腾讯云国际,低至75折。AWS 93折 免费开户实名账号 代冲值 优惠多多 微信号:monov8 飞机:@monov6 |
带你编写学生管理系统Python
很多学生在学校学习完Python就要做一个课设考验你对知识的掌握程度这次就教大家如何来用Python来实现一个学生管理系统
对学生管理系统的分析
学生管理系统是对学生信息的学生信息的增删查改另外如需要打印一份文件下来绘制成纸质的学生名单所以还需要用到文件操作对其信息进行存档操作以及下一次打开程序可以看到上一次学生系统的读档操作
接下来就是具体实现~
一、首先需要一个基本框架无非就是菜单的打印以及对学生信息的增删查改因此我们可以通过循环加判断的方式来供用户操作
定义的main函数和菜单代码如下
#菜单
def menu():
print("1.增加学生信息")
print("2.删除学生信息")
print("3.展示学生信息")
print("4.查找学生信息")
print("0.退出系统")
choose = input("请输入:")
return choose
def main():
print("+------------------------------------+")
print("| 欢迎来到学生管理系统 |")
print("+------------------------------------+")
#先进行读档操作,读取上一次创建的学生信息
load()
while True:
choose = menu()
#增加学生信息
if choose == '1':
add()
#删除学生信息
elif choose == '2':
delete()
#查找学生信息
elif choose == '3':
show()
#查找学生信息
elif choose == '4':
fund()
#退出系统
elif choose == '0':
print("goodbye~")
sys.exit(0)
#输入非法
else :
print("输入非法请重新输入!")
main()
二、增加学生信息操作 这里可以考虑用字典来存放每一个学生信息并且声明一个全局的列表来存放所有学生信息一旦用字典存好一个学生的信息立即放入列表内最后存档操作后面会细讲
增加学生信息的代码如下
# 增加学生信息
def add():
print("[新增学生开始]")
student_id = input("请输入学号:")
student_name = input("请输入学生姓名:")
student_gender = input("请输入学生性别:")
if student_gender not in("男", "女"):
print("输入非法请输入男或者女!")
class_id = input("请输入学生班级:")
#用一个字典创建学生信息
student = {
"student_id": student_id,
"student_name": student_name,
"student_gender": student_gender,
"class_id": class_id
}
#声明使用全局变量
global students
#增加学生信息到学生列表里面
students.append(student)
print("[增加学生结束]")
#文件保存
save()
三、删除学生信息操作通过输入要删除的学生的姓名遍历学生列表找到相同名字并删除如果未能找到学生信息就打印提示消息提醒用户没有找到该学生最后存档
删除学生信息操作代码如下
# 删除学生信息
def delete():
print("[删除学生开始]")
delete_name = input("请输入您要删除的学生姓名:")
#遍历表格内容找到该学生
for stu in students:
if stu['student_name'] == delete_name:
#找到该学生后删除
students.remove(stu)
print("[删除学生结束]")
# 文件保存
save()
return
print("未能找到该学生!")
四、展示所有学生信息操作通过遍历学生列表将学生的学号、姓名、班级打印出来完成打印后最后说明一下一共展示了多少条信息
展示所有学生信息操作代码如下
#展示所有学生信息
def show():
print("[展示学生信息开始]")
for stu in students:
print(f"学号:[{stu['student_id']}]\t"
f"姓名:[{stu['student_name']}]\t"
f"性别:[{stu['student_gender']}]\t"
f"班级:[{stu['class_id']}]\t")
print("[展示学生信息结束]")
print(f"一共展示了{len(students)}条学生信息")
五、查找指定学生信息操作首先输入需要查找的学生姓名通过遍历学生列表来找到与之对应的学生信息然后将该学生信息进行打印同时若没有找到该学生需要打印一条信息用来提醒用户未找到该学生
查找指定学生信息操作代码如下
#查找学生信息
def fund():
print("[查找学生开始]")
fund_name = input("请输入您要查找的学生姓名:")
#遍历学生列表查找
for stu in students:
if stu['student_name'] == fund_name:
print(f"学号:[{stu['student_id']}]\t"
f"姓名:[{stu['student_name']}]\t"
f"性别:[{stu['student_gender']}]\t"
f"班级:[{stu['class_id']}]\t")
print("[查找学生结束]")
return
print("查找不到该学生信息!")
六、存档操作在每次增加学生信息删除学生信息的时候都要进行存档操作保证每次关闭程序后依然可以找到上次记录的学生信息最后记得提醒用户成功存档了多少条学生信息
存档操作代码如下
#文件保存信息
def save():
#将学生信息以utf8的格式保存到名为student.txt的文档中
with open("students.txt", "w", encoding="utf8") as write_in:
for stu in students:
write_in.write(f"{stu['student_id']}\t"
f"{stu['student_name']}\t"
f"{stu['student_gender']}\t"
f"{stu['class_id']}\n")
print(f"存档成功共存档了{len(students)}条信息!")
七、读档操作需要在学生管理系统这个程序启动的开头进行一次读档将上一次创建的学生信息读取到当前系统中读取的时候记得去掉空白符并切割字符串循环用字典保存每一个学生的信息每记录一个学生信息立刻存放到学生列表当中最后需要提醒用户以及读档了多少学生信息
读档操作的代码如下
#从文件中读取信息
def load():
#判断以前是否有创建过文件如果有进行读档若没有则进行return
if not os.path.exists("students.txt"):
return
#保证旧文件为空
global students
students = []
# 将学生信息以utf8的格式从文件中读取出来
with open("students.txt", "r", encoding="utf8") as read_in:
for line in read_in:
#去掉首尾的空白符
line = line.strip()
#切割字符串
string = line.split("\t")
#确保读档时被读档的文件格式正确若有格式不对的行则显示出来
if len(string) != 4:
print(f"line = {len(line)} 这一行格式存在问题 ")
#格式有问题这一行就不要读了直接看下一行
continue
#将这一个学生成绩存入字典
student = {
"student_id": string[0],
"student_name": string[1],
"student_gender": string[2],
"class_id": string[3]
}
#将这个学生成绩存入学生列表
students.append(student)
print(f"读档成功共读取了{len(students)}个学生数据!")
最后祝你课设成功通过~