设计一个学生类stu,属性包括姓名、学号、成绩,方法包括show()输出学生信息; 设计一个班级管理类manage,属性包括保存学生对象的列表,方法包括addstu()实现添加学生信息、sortstu()按照学号或成绩排序(若学号或成绩相等则按输入顺序输出)、showclass()输出所有学生信息。 输入3名学生的信息以及排序条件,定义1个manage类对象manager及stu类对象,实现将学生信息进行升序排序并输出
时间: 2024-02-16 21:04:25 浏览: 141
好的,我来为您解答这个问题。
首先,我们定义学生类stu,代码如下:
```python
class stu:
def __init__(self, name, id, score):
self.name = name
self.id = id
self.score = score
def show(self):
print('姓名:', self.name, '学号:', self.id, '成绩:', self.score)
```
其中,__init__方法用于初始化学生对象的姓名、学号、成绩属性,show方法用于输出学生信息。
接下来,我们定义班级管理类manage,代码如下:
```python
class manage:
def __init__(self):
self.stu_list = []
def addstu(self, stu_obj):
self.stu_list.append(stu_obj)
def sortstu(self, sort_key):
if sort_key == 'id':
self.stu_list.sort(key=lambda x: x.id)
elif sort_key == 'score':
self.stu_list.sort(key=lambda x: x.score)
else:
print('排序关键字错误!')
def showclass(self):
for stu_obj in self.stu_list:
stu_obj.show()
```
其中,__init__方法用于初始化班级管理对象的学生列表属性,addstu方法用于添加学生信息到学生列表中,sortstu方法用于按照学号或成绩排序,showclass方法用于输出所有学生信息。
最后,我们来实现将学生信息进行升序排序并输出。
```python
# 输入3名学生的信息
stu1 = stu('张三', '001', 85)
stu2 = stu('李四', '003', 90)
stu3 = stu('王五', '002', 80)
# 定义班级管理类对象manager
manager = manage()
# 将3名学生信息添加到班级管理类对象manager中
manager.addstu(stu1)
manager.addstu(stu2)
manager.addstu(stu3)
# 按照学号排序并输出所有学生信息
manager.sortstu('id')
manager.showclass()
# 按照成绩排序并输出所有学生信息
manager.sortstu('score')
manager.showclass()
```
输出结果如下:
```
姓名: 张三 学号: 001 成绩: 85
姓名: 王五 学号: 002 成绩: 80
姓名: 李四 学号: 003 成绩: 90
姓名: 王五 学号: 002 成绩: 80
姓名: 张三 学号: 001 成绩: 85
姓名: 李四 学号: 003 成绩: 90
```
可以看到,我们成功地实现了将学生信息进行升序排序并输出的功能。
阅读全文