python创建学生成绩管理系统
python学生成绩管理系统创建,供大家参考,具体内容如下
要求编写学生类,班级类,并在电脑运行生成表单,输入一个数字,得到对应的结果。
输出样式
代码如下
学生类
classStudent: def__init__(self,sno,name,english,math): self.sno=sno self.name=name self.__english=english self.__math=math @property defenglish(self): returnself.__english @english.setter defenglish(self,english): self.__english=englishif0<=english<=100else0 @property defmath(self): returnself.__math @math.setter defmath(self,math): self.__math=mathif0<=math<=100else0 defget_average(self): return(self.english+self.math)/2 def__str__(self): s=str.format('{0:>4d}{1:>4s}{2:>8d}{3:>8d}',self.sno,self.name,self.english,self.math) returns @staticmethod defget_header(): return'{0:>2s}{1:>4s}{2:\u3000>4s}{3:>4s}'.format('学号','姓名','英语','数学') def__eq__(self,other): returnself.sno==other.sno def__gt__(self,other): returnself.sno>other.sno
测试
#测试 if__name__=='__main__': s1=Student(1,'王大海',100,65) s2=Student(2,'李三',38,45) s3=Student(3,'李四',88,45) print(s1>s2) students=[s2,s1,s3] students.sort() print(students) print(Student.get_header()) forsinstudents: print(s)
结果
班级类
fromstudentimportStudent classBanJi: def__init__(self,name): self.name=name self.students=[] self.load_data() defload_data(self): withopen('data.txt','r')asf: forlineinf: d=line.split() self.students.append(Student(int(d[0]),d[1],int(d[2]),int(d[3]))) defshow_student(self): print(Student.get_header()) forsinself.students: print(s) defadd_student(self,student): ifstudentinself.students: return'此学生已存在' else: self.students.append(student) return'添加成功' def__index_student(self,sno): s=Student(sno,'',0,0) ifsnotinself.students: returnNone else: returnself.students.index(s) deffind_student(self,sno): i=self.__index_student(sno) ifiisNone: returnNone else: returnself.students[i] defdelete_student(self,sno): i=self.__index_student(sno) ifiisNone: r='没有学号为{0:d}'.format(sno) else: delself.students[i] r='删除成功!' returnr defupdate_student(self,sno): s=self.find_student(sno) ifsisNone: return'没有学号为{0:d}的学生!'.format(sno) else: print(s) print('请输入新的值,直接回车不修改!') name_str=input('姓名:') english_str=input('英语:') math_str=input('数学:') s.name=name_striflen(name_str)>0elses.name s.name=int(english_str)iflen(english_str)>0elses.english s.name=int(math_str)iflen(math_str)>0elses.math return'修改成功!' defsave_data(self): withopen('data.txt','w',encoding='GBK')asf: forsinself.students: r=str.format('{0:d}{1:s}{2:d}{3:d}\n',s.sno,s.name,s.english,s.math) f.write(r) defsort_by_english(self,reverse=False): self.students.sort(key=lambdax:x.english,reverse=reverse)
学生管理系统
importos fromstudentimportStudent frombanjiimportBanJi menu=""" ********************* 学生成绩管理系统 1.浏览学生成绩 2.按学号查找学生 3.按英语成绩排序 4.添加学生 5.删除学生 6.修改学生信息 9.保存 0.退出 ********************* """ tip='输入(0-9)选择操作:' choice='' b=BanJi('1802') os.system('cls') print(menu) whileTrue: choice=input(tip) os.system('cls') print(menu) ifchoice=='0': print('数据以保存!') break elifchoice=='1': b.show_student() elifchoice=='2': sno=int(input('请输入您需要查询的学生的学号:')) s=b.find_student(sno) ifsisNone: print('无此学号的学生!') else: print(s) elifchoice=='3': b.sort_by_english() b.show_student() elifchoice=='4': print('请输入学生信息:') sno=int(input('学号:')) name=input('姓名:') english=int(input('英语:')) math=int(input('数学:')) student=Student(sno,name,english,math) r=b.add_student(student) print(r) elifchoice=='5': sno=int(input('请输入要删除的学生的学号:')) r=b.delete_student(sno) print(r) elifchoice=='6': sno=int(input('请输入要修改的学生的学号:')) r=b.update_student(sno) print(r) elifchoice=='9': b.save_data() print('保存成功!') else: print('输入错误!')
用spyder或者cmd运行都可以。
更多学习资料请关注专题《管理系统开发》。
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持毛票票。
声明:本文内容来源于网络,版权归原作者所有,内容由互联网用户自发贡献自行上传,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任。如果您发现有涉嫌版权的内容,欢迎发送邮件至:czq8825#qq.com(发邮件时,请将#更换为@)进行举报,并提供相关证据,一经查实,本站将立刻删除涉嫌侵权内容。