题目: 编程实现查找优异生的功能——用户输入多个学生的成绩,输出总分最高的学生姓名和各科成绩 要求: 设计一个学生类(Student),包括 1)属性:姓名(name),数学成绩(mscore),语文成绩(cscore),英语成绩(escore); 2)方法: 构造方法,来构造每个具体的学生对象 计算总成绩方法getSum(self),返回三个成绩的和 获得优异生姓名,数学成绩,语文成绩,英语成绩的方法getBest(self),返回4个结果内容(优异生姓名,数学成绩,语文成绩,英语成绩) 输入格式: 通过4行输入: 第一行输入多个学生姓名,以空格分隔 第二行输入多个数学成绩,以空格分隔 第三行输入多个语文成绩,以空格分隔 第四行输入多个英语成绩,以空格分隔 注意:学生姓名个数要和成绩个数保持一致 输出格式: 在一行中,输出总分最高的学生及其各科科目成绩,以空格分隔。
时间: 2023-12-13 12:06:47 浏览: 206
以下是 Python 代码实现:
```python
class Student:
def __init__(self, name, mscore, cscore, escore):
self.name = name
self.mscore = mscore
self.cscore = cscore
self.escore = escore
def getSum(self):
return self.mscore + self.cscore + self.escore
def getBest(self):
return self.name, self.mscore, self.cscore, self.escore
names = input().split()
math_scores = list(map(int, input().split()))
chinese_scores = list(map(int, input().split()))
english_scores = list(map(int, input().split()))
students = []
for i in range(len(names)):
student = Student(names[i], math_scores[i], chinese_scores[i], english_scores[i])
students.append(student)
max_sum = max([student.getSum() for student in students])
best_student = [student.getBest() for student in students if student.getSum() == max_sum][0]
print(f"{best_student[0]} {best_student[1]} {best_student[2]} {best_student[3]}")
```
代码逻辑如下:
1. 定义了一个 `Student` 类,包含姓名和数学、语文、英语成绩属性,以及计算总成绩方法和获取优异生信息的方法。
2. 读入每个学生的姓名和三科成绩,创建 `Student` 对象并添加到 `students` 列表中。
3. 计算所有学生的总成绩,找出最高成绩并记录对应的学生信息。
4. 输出最高成绩学生的姓名和三科成绩。
阅读全文