如何用python实现简单的学生成绩管理系统
发表于:2025-02-03 作者:千家信息网编辑
千家信息网最后更新 2025年02月03日,这篇文章主要介绍了如何用python实现简单的学生成绩管理系统的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇如何用python实现简单的学生成绩管理系统文章都会有所收获,
千家信息网最后更新 2025年02月03日如何用python实现简单的学生成绩管理系统
这篇文章主要介绍了如何用python实现简单的学生成绩管理系统的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇如何用python实现简单的学生成绩管理系统文章都会有所收获,下面我们一起来看看吧。
需求:
代码:
import osfilename = 'student.txt'def main(): while True: menu() choice = int(input("请选择:")) if choice in [0,1,2,3,4,5,6,7]: if choice==0: answer = input("你确定要退出吗?y/n") if answer =='y' or answer =='Y': print("谢谢使用!") break else: continue elif choice ==1: insert() elif choice ==2: search() elif choice ==3: delete() elif choice ==4: modify() elif choice ==5: sort() elif choice ==6: total() else: show()# 菜单def menu(): print("====================学生成绩管理系统=========================") print("======================功能菜单==============================") print("\t\t1、录入学生信息") print("\t\t2、查找学生信息") print("\t\t3、删除学生信息") print("\t\t4、修改学生信息") print("\t\t5、排序") print("\t\t6、统计学生人数") print("\t\t7、显示所有学生信息") print("\t\t0、退出系统") print("--------------------------------------------------------------")# 插入def insert(): student_list=[] while True: id = input('请输入ID(如1001):') if not id: break name = input('请输入姓名:') if not name: break try: english=int(input("input english grade:")) python=int(input("input python grade:")) java=int(input("input java grade:")) except: print("输入成绩无效!重新输入!") continue student = {'id':id,'name':name,'english':english,'python':python,'java':java} student_list.append(student) answer = input("是否继续添加信息!?:'y/n'") if answer == 'y': continue else: break # 调用save函数将其保存在文本当中 save(student_list) print("学生信息录入成功!")# 保存def save(lst): try: stu_txt = open(filename,'a',encoding='utf-8') except: stu_txt = open(filename,'w',encoding='utf-8') for item in lst: stu_txt.write(str(item)+'\n') stu_txt.close()# 搜索def search(): while True: student_name = input("请输入你要查找的学生姓名:") if student_name: if os.path.exists(filename): with open(filename,'r',encoding='utf-8') as rfile: student_old = rfile.readlines() else: student_old = [] if student_old: d = {} flag = False for item in student_old: d = dict(eval(item)) if d['name'] == student_name: flag = True student_show(d) else: pass else: print("无学生信息,请添加!") if flag: print("查询成功") else: print("查询失败") else: print("没有输入学生姓名!") answer = input("请问是否继续查询:y/n") if answer == "y": continue else: break# 展示个人信息def student_show(dic): format_title = '{:^6}\t{:^12}\t{:^8}\t{:^10}\t{:^10}\t{:^8}' print(format_title.format('ID','姓名','英语成绩','python成绩','java成绩','总成绩')) format_data = '{:^6}\t{:^12}\t{:^8}\t{:^10}\t{:^10}\t{:^8}' print(format_data.format(dic.get('id'), dic.get('name'), dic.get('english'), dic.get('python'), dic.get('java'), int(dic.get('english'))+int(dic.get('python'))+int(dic.get('java')), ))# 删除def delete(): while True: student_id = input("请输入要删除的学生ID:") if student_id: if os.path.exists(filename): with open(filename,'r',encoding='utf-8') as file: student_old = file.readlines() else: student_old=[] flag = False if student_old: with open(filename,'w',encoding='utf-8') as wfile: d={} for item in student_old: d = dict(eval(item)) if d['id']!=student_id: wfile.write(str(d)+"\n") else: flag = True if flag: print(f"{student_id}已经被删除!") else: print(f"{student_id}没有找到!") else: print("无学生信息!") break show() answer = input("是否继续删除?y/n") if answer == 'y': continue else: break else: print("请输入要删除的ID:") continue# 修改 def modify(): while True: student_id = input("请输入要修改的学生ID:") if student_id: if os.path.exists(filename): with open(filename,'r',encoding='utf-8') as file: student_old = file.readlines() else: student_old=[] if student_old: with open(filename,'w',encoding='utf-8') as wfile: d = {} for item in student_old: d = dict(eval(item)) if d['id'] == student_id: answer = input('已经找到该学生信息,是否修改:y/n?') flag = False if answer: d['name']=input("姓名:") d['english']=int(input("english:")) d['python']=int(input("python:")) d['java']=int(input("java:")) wfile.write(str(d)+"\n") flag = True else: wfile.write(str(d)+"\n") break else: wfile.write(str(d)+"\n") if flag: print("修改成功!") else: print("修改失败!") else: print("无学生信息,请添加") answer = input("请问是否继续修改?y/n") if answer == "y": continue else: break else: print("输入错误!")# 排序 def sort(): while True: if os.path.exists(filename): with open(filename,'r',encoding='utf-8') as file: student_old = file.readlines() student_new = [] d={} for item in student_old: d=dict(eval(item)) student_new.append(d) asc_and_desc = int(input("怎么排序:0 升序 1 降序:")) choice = int(input("按照什么排序:1 english 2 python 3 java 0 总成绩:")) if choice == 1: student_new.sort(key=lambda x:int(x['english']),reverse=asc_and_desc) elif choice == 2: student_new.sort(key=lambda x:int(x['python']),reverse=asc_and_desc) elif choice == 3: student_new.sort(key=lambda x:int(x['java']),reverse=asc_and_desc) elif choice == 0: student_new.sort(key=lambda x:int(x['english'])+int(x['python'])+int(x['java']),reverse=asc_and_desc) else: print("输入有误") sort() else: print("无学生信息") format_title = '{:^6}\t{:^12}\t{:^8}\t{:^10}\t{:^10}\t{:^8}' print(format_title.format('ID','姓名','英语成绩','python成绩','java成绩','总成绩')) format_data = '{:^6}\t{:^12}\t{:^8}\t{:^10}\t{:^10}\t{:^8}' for dic in student_new: print(format_data.format(dic.get('id'), dic.get('name'), dic.get('english'), dic.get('python'), dic.get('java'), int(dic.get('english'))+int(dic.get('python'))+int(dic.get('java')), )) answer = input("请问是否继续排序?y/n") if answer == "y": continue else: break# 总人数def total(): if os.path.exists(filename): with open(filename,'r',encoding='utf-8') as file: student_old = file.readlines() print('一共有',len(student_old),'名学生!') else: print("无人员资料") import msvcrt msvcrt.getch()# 展示def show(): if os.path.exists(filename): with open(filename,'r',encoding='utf-8') as file: student_old = file.readlines() d = {} students = [] for item in student_old: d = dict(eval(item)) students.append(d) else: print("没有信息!") if len(students): format_title = '{:^6}\t{:^12}\t{:^8}\t{:^10}\t{:^10}\t{:^8}' print(format_title.format('ID','姓名','英语成绩','python成绩','java成绩','总成绩')) format_data = '{:^6}\t{:^12}\t{:^8}\t{:^10}\t{:^10}\t{:^8}' for dic in students: print(format_data.format(dic.get('id'), dic.get('name'), dic.get('english'), dic.get('python'), dic.get('java'), int(dic.get('english'))+int(dic.get('python'))+int(dic.get('java')), )) else: print("无人员信息!") import msvcrt msvcrt.getch()if __name__ == '__main__': main()
关于"如何用python实现简单的学生成绩管理系统"这篇文章的内容就介绍到这里,感谢各位的阅读!相信大家对"如何用python实现简单的学生成绩管理系统"知识都有一定的了解,大家如果还想学习更多知识,欢迎关注行业资讯频道。
学生
成绩
信息
输入
姓名
系统
管理系统
管理
排序
总成
总成绩
成功
知识
英语
查询
人数
内容
篇文章
菜单
个人
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
数据库rac集群IP查询
软件开发如何分配小组成员
云堡垒服务器
音视频服务器管理
内存数据库是nosql数据库
乌拉服务器是什么游戏
计算机网络技术是码农
网络工程师电脑服务器配置
vb怎么读入文本数据库
数据库 infomix
添加iis服务器
武汉市软件开发招聘
微信小程序怎么操作数据库
网络技术员试题库
我们应该呼吁网络安全英文
360网络安全学院8月班
前端备注文字怎么传到数据库
网络安全问题的通报
计算机网络技术专升本视频
一个服务器有几个固定ip
数据库的安全性相关题目
上海企业mes管理软件开发
城阳软件开发学习
网络安全主持主题词
华为手机重新连接服务器
多媒体网络技术包括文件传输
网络安全颜色革命
福建曙光服务器维修调试云服务器
网络安全 健康成长手抄报
阜阳软件开发项目管理