# Subject 课程。
class Subjects():
subjects=[]
def input(cls):
while True:
cls.subjects.append(input('请输入课程名称:'))
if input('继续输入课程吗?若输入n,则结束课程输入') in ['n','N']:
break
class Student():
def __init__(self,subjects):
self.name=''
self.sum=0
self.grades={}
self.subjects=subjects
def input(self): # 输入此学生的成绩
self.name=input('请输入学生姓名:')
print('请输入各门课成绩:')
for i in self.subjects:
print(i,end=':')
score=int(input())
self.grades[i]=score
self.sum=sum(self.grades.values())
self.grades['总分']=self.sum
def output(self): # 输出成绩
print(self.name,'\t',end='')
for i in self.grades:
print(self.grades[i],'\t',end='')
def main():
print('***学生成绩管理系统***')
Subjects.input(Subjects) # 输入课程
students=[]
while True:
student=Student(Subjects.subjects) # 创建1个学生
student.input() # 输入此学生的所有成绩
students.append(student) # 放入学生群
if input('继续输入学生吗:(y/n)?') in ['n','N']:
break
students.sort(key=lambda x:x.grades['总分'],reverse=True)
print('***结果为:***')
print('总分最高分:',students[0].grades['总分'])
print('总分最低分:',students[-1].grades['总分'])
print('姓名','\t',end='')
for i in Subjects.subjects: # 显示表头
print(i,'\t',end='')
print()
for stu in students:
print(stu.name,'\t',end='')
for subject in stu.grades:
print(stu.grades[subject],'\t',end='')
print()
if __name__=='__main__':
main()

