BANNER-Python数据分析实战课件1第6章 类的应用-学生成绩管理系统_第1页
BANNER-Python数据分析实战课件1第6章 类的应用-学生成绩管理系统_第2页
BANNER-Python数据分析实战课件1第6章 类的应用-学生成绩管理系统_第3页
BANNER-Python数据分析实战课件1第6章 类的应用-学生成绩管理系统_第4页
BANNER-Python数据分析实战课件1第6章 类的应用-学生成绩管理系统_第5页
已阅读5页,还剩8页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

学生成绩管理系统功能介绍学生成绩管理系统功能实现学生基本信息的管理,主要以下功能:(1)输入并存储学生的信息:输入学生的学号、姓名、和分数,把数据保存在建立的student.txt文件里面。(2)打印学生信息:通过打印函数把学生所有信息打印在屏幕上。(3)修改学生信息:首先通过查询功能查询出该学生是否存在,如果存在就对该学生的信息进行修改,如果不存在则返回到主界面。(4)删除学生信息:该功能是对相应的学生进行删除操作,如果学生存在就查找并进行删除。(5)按学生成绩进行排序:按照学生总分从高到底进行排序。(6)查找学生信息:输入学生学号,查找该学生的相关信息,如果查找到就输出该学生的信息,没有该学号就提示输入的学号不存在。。程序设计的思路将学生信息设计成一个Student类,这里假设学生有三门课成绩。classStudent:#定义一个学生类def__init__(self):=''self.ID=''self.score1=0#语文成绩self.score2=0#数学成绩self.score3=0#英语成绩self.sum=0#总分

defsumscore(self):#计算总分self.sum=self.score1+self.score2+self.score3definput(self):#输入学生的信息defoutput(self,file_object):系统在开始使用之前先进行初始化功能,判断students.txt文件中是否保存有学生的信息。程序设计的思路对学生基本信息操作(包括查找、修改、删除、排序)时,首先是打开students.txt文件,对文件中的内容进行读取操作,然后再对每个人的信息以空格进行分隔,得到每个人的详细信息包括学生的姓名,学号,成绩,形成学生类对象并存入stulist列表中。对学生基本信息的所有操作都是针对stulist列表进行,如果是添加学生,则追加写入文件中。如果是删除和修改学生,则操作完成后将stulist列表覆盖写入文件中。程序设计步骤——设计Student类classStudent:#定义一个学生类def__init__(self):=''self.ID=''self.score1=0#语文成绩self.score2=0#数学成绩self.score3=0#英语成绩self.sum=0#总分defsumscore(self):#计算总分self.sum=self.score1+self.score2+self.score3definput(self):#输入学生的信息=input("请输入学生的姓名")self.ID=input("请输入学生的ID")self.score1=int(input("请输入学生语文成绩"))self.score2=int(input("请输入学生数学成绩"))self.score3=int(input("请输入学生英语成绩"))self.sumscore()defoutput(self,file_object):#输出到文件中print(,self.ID,self.score1,self.score2,self.score3,self.sum)file_object.write(self.ID)file_object.write("")file_object.write()file_object.write("")file_object.write(str(self.score1))file_object.write("")file_object.write(str(self.score2))file_object.write("")file_object.write(str(self.score3))file_object.write("")file_object.write(str(self.sum))file_object.write("\n")程序设计步骤——添加学生信息添加一个stu学生信息时,首先判断学号是否已经存在,如果已经存在则取消添加操作。否则根据用户选择是否保存,如果保存则以追加方式写入文件。defAdd(stulist,stu):#添加一个学生信息ifsearchByID(stulist,stu.ID)==True:#判断学号存在否print("学号已经存在!")returnFalseprint("是否要保存学生信息?")nChoose=input("ChooseY/N")ifnChoose=='Y'ornChoose=='y':stulist.append(stu)#加入列表print(,stu.ID,stu.score1,stu.score2,stu.score3,stu.sum)file_object=open("students.txt","a")#"a"追加方式stu.output(file_object)#输出到文件里保存file_object.close()程序设计步骤——删除学生信息删除一个学生信息时,首先遍历stulist列表中学生的ID是否是删除的学号,如果是则从列表stulist中删除。最后采用覆盖写入方式将stulist列表中剩余学生重新写入文件中。程序设计步骤——删除学生信息defDel(stulist,ID):#删除一个学生信息

count=0flag=Falseforiteminstulist:ifitem.ID==ID:stulist.remove(item)#从列表中删除

flag=True#删除成功

breakcount+=1ifflag==False:#或者count==len(stulist)print("没有该学生学号!")returnfile_object=open("students.txt","w")#覆盖写入

forstuinstulist:stu.output(file_object)print("删除保存成功!")file_object.close()程序设计步骤——修改学生信息defChange(stulist,ID):#修改学生信息

count=0flag=Falseforiteminstulist:ifitem.ID==ID:flag=Truestulist.remove(item)

file_object=open("students.txt","w")#将stulist列表中剩余学生重新写入文件forstuinstulist:stu.output(file_object)file_object.close()ifflag==False:print("没有该学生学号!")returnstu=Student()

stu.input()#输入这个被修改学生的新信息Add(stulist,stu)#添加一个stu学生信息到文件中程序设计步骤——显示所有学生信息defdisplay(stulist):#显示所有学生信息print("学号\t姓名

语文数学英语总分")foriteminstulist:#格式化输出print("%5s%5s%3d%3d%3d%4d"%(item.ID,,item.score1,item.score2,item.score3,item.sum))程序设计步骤——成绩排序

成绩排序实现按照学生成绩由高至低进行排序,在实现的时候采用比较排序算法,按照总分对stuList中保存的学生信息进行排序。defSort(stulist): #按学生成绩排序

insertSort(stulist) #比较排序

display(stulist)definsertSort(stulist): #比较排序

foriinrange(len(stulist)-1):forjinrange(i+1,len(stulist)):ifstulist[i].sum<stulist[j].sum: #交换

temp=stulist[i]stulist[i]=stulist[j]stulist[j]=tempstulist[i],stulist[j]=

stulist[j],stulist[j]程序设计步骤——查询学生信息

defSearch(stulist,ID):#搜索一个学生信息print("学号\t姓名\t语文\t数学\t英语\t总分")count=0foriteminstulist:ifitem.ID==ID:print(item.ID,'\t',,'\t',item.score1,'\t',item.score2,'\t',item.score3,'\t',item.sum)breakcount=count+1ifcount==len(stulist):print("没有该学生学号!")程序设计步骤——初始化函数defInit(stulist):#初始化函数ifos.path.exists('students.txt'):#判断文件students.txt是否存在

file_object=open('students.txt','r')forlineinfile_object:stu=Student()line=line.strip("\n")s=line.split("")#按空格分隔形成列表stu.ID=s[0]=s[1]stu.score1=int(s[2])stu.score2=int(s[3])stu.score3=int(s[4])stu.sum=s[5]

stulist.append(stu)file_object.close()print("初始化成功!")main()程序设计步骤——主函数main()是主函数,主要通过循环实现用户功能选择。defmain():#程序的入口函数whileTrue:print("*********************")print("--------菜单---------")print("增加学生信息--------1")print("查找学生信息--------2")print("删除学生信息--------3")print("修改学生信息--------4")print("所有学生信息--------5")print("按照分

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论