编写一个简单学生成绩管理程序,每个学生记录包含学号、姓名、课程和分数成员,采用顺序表存储,完成以下功能:1、屏幕显示所有学生记录2、输入一个学生记录3、按学号和课程删除一个学生记录4、按学号排序并输出所有学生记录5、按课程排序。一门课程学生按分数递减排序
时间: 2023-06-03 14:04:21 浏览: 569
没有问题,这是一个简单的学生成绩管理程序,以下是代码示例:
```python
class Student:
def __init__(self, sid, name, course, score):
self.sid = sid
self.name = name
self.course = course
self.score = score
class ScoreManager:
def __init__(self):
self.student_list = []
def display(self):
# 显示所有学生记录
for stu in self.student_list:
print("学号:%s\t姓名:%s\t课程:%s\t成绩:%s" % (stu.sid, stu.name, stu.course, stu.score))
def add(self):
# 输入一个学生记录
sid = input("请输入学号:")
name = input("请输入姓名:")
course = input("请输入课程名称:")
score = int(input("请输入成绩:"))
# 将学生信息保存到student_list中
stu = Student(sid, name, course, score)
self.student_list.append(stu)
print("添加成功!")
def remove(self):
# 按学号和课程删除一个学生记录
sid = input("请输入学号:")
course = input("请输入课程名称:")
index = -1
for i in range(len(self.student_list)):
if self.student_list[i].sid == sid and self.student_list[i].course == course:
index = i
break
if index == -1:
print("没有找到该学生!")
else:
del self.student_list[index]
print("删除成功!")
def sort_by_sid(self):
# 按学号排序并输出所有学生记录
self.student_list.sort(key=lambda x: x.sid)
self.display()
def sort_by_course(self):
# 按课程排序。一门课程学生按分数递减排序
course = input("请输入课程名称:")
tmp_list = []
for stu in self.student_list:
if stu.course == course:
tmp_list.append(stu)
tmp_list.sort(key=lambda x: x.score, reverse=True)
for stu in tmp_list:
print("学号:%s\t姓名:%s\t课程:%s\t成绩:%s" % (stu.sid, stu.name, stu.course, stu.score))
# 测试
sm = ScoreManager()
while True:
print("1、屏幕显示所有学生记录")
print("2、输入一个学生记录")
print("3、按学号和课程删除一个学生记录")
print("4、按学号排序并输出所有学生记录")
print("5、按课程排序")
print("6、退出程序")
choice = int(input("请输入您的选择:"))
if choice == 1:
sm.display()
elif choice == 2:
sm.add()
elif choice == 3:
sm.remove()
elif choice == 4:
sm.sort_by_sid()
elif choice == 5:
sm.sort_by_course()
elif choice == 6:
print("程序已退出!")
break
else:
print("输入有误,请重新输入!")
```
我希望这个代码示例可以帮助你完成简单的学生成绩管理程序。
阅读全文