python学生成绩管理系统创建,供大家参考,具体内容如下
要求编写学生类,班级类,并在电脑运行生成表单,输入一个数字,得到对应的结果。
输出样式
代码如下
学生类
class Student: def __init__(self,sno,name,english,math): self.sno=sno self.name=name self.__english=english self.__math=math @property def english(self): return self.__english @english.setter def english(self,english): self.__english=english if 0<=english<=100 else 0 @property def math(self): return self.__math @math.setter def math(self,math): self.__math=math if 0<=math<=100 else 0 def get_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) return s @staticmethod def get_header(): return '{0:>2s}{1: >4s}{2:\u3000>4s}{3: >4s}'.format('学号','姓名','英语','数学') def __eq__(self,other): return self.sno==other.sno def __gt__(self,other): return self.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()) for s in students: print(s)
结果
班级类
from student import Student class BanJi: def __init__(self,name): self.name=name self.students=[] self.load_data() def load_data(self): with open('data.txt','r')as f: for line in f: d=line.split() self.students.append(Student(int(d[0]),d[1],int(d[2]),int(d[3]))) def show_student(self): print(Student.get_header()) for s in self.students: print(s) def add_student(self,student): if student in self.students: return '此学生已存在' else: self.students.append(student) return'添加成功' def __index_student(self,sno): s=Student(sno,'',0,0) if s not in self.students: return None else: return self.students.index(s) def find_student(self,sno): i = self.__index_student(sno) if i is None: return None else: return self.students[i] def delete_student(self,sno): i = self.__index_student(sno) if i is None: r = '没有学号为{0: d}'.format(sno) else: del self.students[i] r = '删除成功!' return r def update_student(self,sno): s = self.find_student(sno) if s is None: return '没有学号为{0:d}的学生!'.format(sno) else: print(s) print('请输入新的值,直接回车不修改!') name_str = input('姓名:') english_str = input('英语:') math_str = input('数学:') s.name = name_str if len(name_str)>0 else s.name s.name = int(english_str) if len(english_str)>0 else s.english s.name = int(math_str) if len(math_str)>0 else s.math return '修改成功!' def save_data(self): with open('data.txt','w',encoding = 'GBK') as f: for s in self.students: r = str.format('{0:d} {1:s} {2:d} {3:d}\n',s.sno,s.name,s.english,s.math) f.write(r) def sort_by_english(self,reverse = False): self.students.sort(key=lambda x: x.english,reverse = reverse)
学生管理系统
import os from student import Student from banji import BanJi menu = """ ********************* 学生成绩管理系统 1.浏览学生成绩 2.按学号查找学生 3.按英语成绩排序 4.添加学生 5.删除学生 6.修改学生信息 9.保存 0.退出 ********************* """ tip = '输入(0-9)选择操作:' choice = '' b = BanJi('1802') os.system('cls') print(menu) while True: choice = input(tip) os.system('cls') print(menu) if choice == '0': print('数据以保存!') break elif choice == '1': b.show_student() elif choice == '2': sno = int(input('请输入您需要查询的学生的学号:')) s = b.find_student(sno) if s is None: print('无此学号的学生!') else: print(s) elif choice == '3': b.sort_by_english() b.show_student() elif choice == '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) elif choice == '5': sno = int(input('请输入要删除的学生的学号:')) r = b.delete_student(sno) print(r) elif choice == '6': sno = int(input('请输入要修改的学生的学号:')) r = b.update_student(sno) print(r) elif choice == '9': b.save_data() print('保存成功!') else: print('输入错误!')
用spyder或者cmd运行都可以。
更多学习资料请关注专题《管理系统开发》。
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持小牛知识库。
项目分析 在学生成绩管理系统中,我们将实现7大功能,分别是添加记录、显示记录、修改记录、删除记录、查找记录、排序记录以及退出系统。 需求分析 添加记录 这个功能主要是添加学生的信息,当用户在功能菜单中选择数字1时,会进入添加记录模块,提示用户输入学生的学号、姓名、数学成绩、语文成绩。当用户输入完毕后,会提示用户是否继续添加,Y表示继续,N表示返回。需要注意的是,在添加学号时不能重复,如果输入重复的
学生成绩管理系统 案例描述 案例要求模拟开发一个学生成绩管理系统,此系统具有以下功能: (1)添加学生信息,包括学号、姓名、语文、数学成绩; (2)显示学生信息,将所有学生信息打印输出; (3)修改学生信息,可以根据姓名查找到学生,然后可以修改学生姓名、成绩项; (4)删除学生信息,根据学号查找到学生,将其信息删除; (5)查找学生信息,根据学生姓名,将其信息打印输出; (6)按学生总成绩进行从高
本文向大家介绍C语言学生成绩管理系统设计,包括了C语言学生成绩管理系统设计的使用技巧和注意事项,需要的朋友参考一下 本文实例为大家分享了C语言学生成绩管理系统的具体代码,供大家参考,具体内容如下 Ps:后加了个链表排序,用冒泡写的。 更多学习资料请关注专题《管理系统开发》。 以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持呐喊教程。
本文向大家介绍C语言实现学生成绩管理系统,包括了C语言实现学生成绩管理系统的使用技巧和注意事项,需要的朋友参考一下 设计一个学生成绩管理系统,实现对学生成绩的动态管理,实现对学生成绩的输入,显示,删除,查找,插入,最佳,保存,计算,排序等主要功能。 功能要求 1、每一条记录包括一个学生的学号、姓名、3门课成绩、平均成绩。 2、输入功能:可以一次完成若干条记录的输入。 3、显示功能:完成全部学生记录
本文向大家介绍java学生成绩管理系统设计与实现,包括了java学生成绩管理系统设计与实现的使用技巧和注意事项,需要的朋友参考一下 本文实例为大家分享了java学生成绩管理系统的具体代码,供大家参考,具体内容如下 部分效果图: 以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持呐喊教程。
本文向大家介绍C语言学生成绩管理系统小设计,包括了C语言学生成绩管理系统小设计的使用技巧和注意事项,需要的朋友参考一下 本文实例为大家分享了C语言学生成绩管理系统的具体代码,供大家参考,具体内容如下 一、本设计涉及的重要C语言知识有: 1.单链表的各种操作 2.文件流的操作 3.单链表的排序 二、本设计主要以下几个模块组成 1.学生成绩添加模块 2.学生成绩删除模块 3.学生成绩修改模块 4.学生