《学生成绩管理系统.docx》由会员分享,可在线阅读,更多相关《学生成绩管理系统.docx(9页珍藏版)》请在第一文库网上搜索。
1、学生成绩管理系统题目:姓名:学院:专业:班级:学号:指导教师:职称:外聘导师:职称或职务:XX年X月XX日X教务处制学生成绩管理系统摘要:统计模块和显示模块,将一目了然的显示出学生的各科成绩及总成绩。本文为了对全校学生的成绩进行管理,利用Python构建了学生成绩管理系统,此系统分为七大模块,分别为:插入模块、查询模块、删除模块、修改模块、排序模块、统计模块和显示模块,从而进行各项操作,一遍对学生成绩进行合理有效地管理。关键词:学生成绩管理系统;Python;模块1需求分析1.1 开发环境开发平台:Windows1O1.2 开发工具程序的编写软件:PyCharm20232概要设计2.1系统的主
2、要流程1插入模块,2.查询模块,3.删除模块,4.修改模块,5.排序模块,6.统计模块,7.显示模块,0退出。系统的主要流程图,如图2.1所示:MISSINGIMAGE图2.1:系统流程2.2系统实现系统实现设计流程图,如图2.2所示:MISSINGIMAGE图2.2:系统实现流程图3详细设计3.1 主要模块与技术讲解3.1.1 主要运行函数主要运行函数stu()中调用菜单函数meum(),且当输入的数字满足条件是,分别调用插入函数insert。,查询函数SearCh(),删除函数de1ete。,修改函数modify。,排序函数sort()1统计函数tota1。和显示函数show()03.1.
3、2 菜单函数菜单函数meum()中使用Print()函数设计了一个菜单界面,如图3,1所示:*学生信息管理系统*功能菜单12345670录入学生信息查找学生信息删除学生信息修改学生信息排序统计学生人数显示所有学生信息退出*请选择功能模块:图3.1:菜单界面3.1.3 插入函数在插入函数insert。中输入学生的ID、姓名及各科成绩,并判断各科成绩的输入是否准确,若不准确,则重新输入。再输入完学生的所有信息以后,判断是否继续输入并显示学生信息。插入模块如图3.2所示:图3.2:插入界面3.1.4 查询函数在查询函数SearCh()中分为两部分,一部分为按学生ID查找,另一部分为按学生姓名查找。查
4、找界面如图3.3所示:请选择功能模块:2请选择查询功能模块(1:按id查找,2:按姓名查找):1请输入查询学生的id:IoOO查找成功!张三70.080.090.0是否继续删除(y/n)?y请选择查询功能模块(1:按id查找,2:按姓名查找):2请输入查询学生的姓名:李四查无此人是否继续删除(v/n)?n图3.3:查询界面3.1.5 删除函数删除数据要在文件数据存在的情况下删除。删除界面如图3.4所示请选择功能模块:3请输入删除学生的ID:Ioooid为IOOO的学生信息己被删除ID姓名英语成绩C语言成绩java成绩总成绩1001李四100.090.080.0270.0是否继续删除(yn)?图
5、3.4:删除界面3.1.6 修改函数修改数据要在文件数据存在的情况下修改。修改界面如图3.5所示:图3.5:修改界面3.1.7 排序函数排序函数sort()分为两大部分,一是按各科成绩的升降序排,二是按总成绩的升降序排。排序界面如图3.6,3.7所示:请选择功能模块:5ID姓名英语成绩C语言成绩java成绩总成绩1001张三60.070.080.0210.01000李四100.0100.040.0240.0请输入排序方式(1:升序,2:降序):2请选择按什么排序:(0:按总成绩,1:按英语成绩,2:按C语言成绩,3:按JaVa成绩):0ID姓名英语成绩C语言成绩java成绩总成绩1000李四1
6、00.0100.040.0240.01001张三60.070.080.0210.0图3.6:按总成绩排启界面话输入排序方式C1:升序,5降序):2-请选择按什么排序:(0:按总成绩,1:按英语成绩,2:按C语言成绩,3:按JaVa成绩):1ID姓名英语成绩C语言成绩java成绩总成绩1000李四100.0100.040.0240.01001张三60.070.080.0210.0a4U任UITtDN5图3.7:按英语成绩排序界面3.1.8 统计函数统计函数tota1。统计所有学生人数。统计界面如图3.8所示:请选择功能模块:6学生的总人数为:2图3.8:统计学生人数界面3.1.9显示函数显示函数
7、ShOWO显示所有学生成绩信息。显示界面如图3.9所示:请选择功能模块:7ID姓名英语成绩C语言成绩java成绩总成绩1001张三60.070.080.0210.01000李四100.0100.040.0240.0图3.9:显示界面4收获与总结在这次设计中,主要使用Python完成本次代码编写,对学生成绩进行一个简单清晰的整理。学生成绩管理系统中还有许多未完善之处需要完善,此系统只是单纯的用Python语言来开发,未结合Web前端和数据库的知识,这都是以后需要改进的地方。附录importosfi1ename=student.txt#文件名defstu():whi1eTrue:menm()#调用
8、菜单ChOiCe=int(inputC请选择功能模块:)choiceJist=0z23A5z67#功能模块列表ifcho1ceinchoicejist:#如果选择的数字在其中ifchoice=0:answer=inputC您确定要退出系统吗(yn)?)ifanswer=,yoranswer=Y,:break#退出系统e1se:continuee1ifchoice=1:insert()#录入e1ifchoice=2:search()#查找e1ifchoice=3:de1eted#删除e1ifchoice=4:modify()#修改e1ifchoice=5:sort()#排序e1ifchoice=
9、6:tota1()#统计e1ifchoice=7:show()#显示#菜单模块defmenm():print(,*学生信囱管理系统*1)print(,功能菜单)PrintCtttt1.录入学生信息)Primetttt2.查找学生信息。Prim(tttt3删除学生信息)Print(Xttt4.修改学生信息,)PrintCtttt5.排序)Primctttt6.统计学生人数。Print(tttt7显示所有学生信息)Print(tttt.退出)prit(,*巧#录入模块definsert():student_1ist=whi1eTrue:StUdenJid=input(,请输入此学生的ID:)ifn
10、otstudentjd:breakStUdenJname=input(,请输入此学生的姓名:,)ifnotstudent_name:breaktry:eng1ish_score=f1oat(input(,请输入此学生的英语成绩:)JSCOre=f1oat(inputq请输入此学生的C语言成绩:)java_score=f1oat(input(,请输入此学生的java语言成绩:)except:Prime输入的数据不是整型,请重新输入!)continuestudent=,id,studentjd,name,student-namezeng1ish,reng1ish-scorec,scOrejaVa:
11、java_score#将录入的数据保存在student字典中StudentJistappend(Student)#将学生信息添加到列表中answer=input(是否继续添加(yn)?)ifanswer=yoranswer=Y:continuee1se:breakSave(StudentJist)show()PrintC学生信息录入完毕)#把数据保存到文件中defsave(stu1ist):try:stujxt=open(fi1ename,a,encoding=,utf18)except:stujxt=open(f1ename,w,encoding=,utf-8,)fbriteminstu1i
12、st:stujxt.write(str(item)+,n)#换行写入stujxt.c1ose()#查询模块defsearch():whi1eTrue:ChOiCe=int(input(请选择查询功能模块(1:按id查找,2:按姓名查找)ifchoicein1,2:ifchoice=1:StUden1id=input(请输入查询学生的id:)ifstudentjd1=:ifos.path.exists(fi1ename):withoen(fi1enamerencoding=,utf8,)asfi1e:studentjist=fi1e.read1ines()e1se:returnifstudent
13、jist:foriteminstudentjist:ser=dict(eva1(item)ifser,id=studentjd:Printc查找成功!,)print(ser,name1ser,eng1ish,zser,c,1ser,java)breake1se:continuee1se:Prinw无学生信息e1se:StUden1name=input(请输入查询学生的姓名)ifstudent_name!=,:ifos.path.exists(fi1ename):withopen(fi1enamez,r,zencoding=,utf-8)asf1e:studentjist=fi1e.read1ines()e1se:returnifstudentjist:foriteminstudentjist:ser=eva1(item)ifsername=student_name:Print(查找成功!,)print(seridzser,eng1ish,ser,czser,java,)continuee1se:PrintC查无此人,)continuee1s