9. 有10个学生,每个学生的数据包括学号、姓名、3门课程的成绩,从键盘输入10个学生数据,用三个函数分别实现下列功能: ①计算每个学生的3门课程的平均分数并输出; ②计算每门课程的平均分数并输出; ③输出最高平均分数的学生数据(包括学号、姓名、3门课程成绩、平均分数)。
时间: 2023-12-16 21:27:28 浏览: 29
以下是针对题目的三个函数的Python实现,可以实现计算每个学生的3门课程的平均分数并输出,计算每门课程的平均分数并输出,输出最高平均分数的学生数据包括学号、姓名、3门课程成绩、平均分数)。
```python
class Student:
def __init__(self, number, name, score):
self.number = number
self.name = name
self.score = score
def setScore(self, score):
self.score = score
def average(self):
return sum(self.score) / len(self.score)
def setNumber(self, number):
self.number = number
def getNumber(self):
return self.number
def setName(self, name):
self.name = name
def getName(self):
return self.name
def setMath(self, math):
self.score[0] = math
def getMath(self):
return self.score[0]
def setEnglish(self, english):
self.score[1] = english
def getEnglish(self):
return self.score[1]
def setChinese(self, chinese):
self.score[2] = chinese
def getChinese(self):
return self.score[2]
def calculateAverageScore(students):
for student in students:
print("学生{}的三门课程平均分数为:{}".format(student.getName(), student.average()))
def calculateAverageScoreByCourse(students):
mathScore = 0
englishScore = 0
chineseScore = 0
for student in students:
mathScore += student.getMath()
englishScore += student.getEnglish()
chineseScore += student.getChinese()
print("数学平均分数为:{}".format(mathScore / len(students)))
print("英语平均分数为:{}".format(englishScore / len(students)))
print("语文平均分数为:{}".format(chineseScore / len(students)))
def findHighestAverageScoreStudent(students):
highestAverageScore = 0
highestAverageScoreStudent = None
for student in students:
averageScore = student.average()
if averageScore > highestAverageScore:
highestAverageScore = averageScore
highestAverageScoreStudent = student
print("平均分数最高的学生是:{},学号为{},三门课程成绩为{},平均分数为{}".format(highestAverageScoreStudent.getName(), highestAverageScoreStudent.getNumber(), highestAverageScoreStudent.score, highestAverageScore))
```
以下是主函数的实现,可以从键盘输入10个学生数据,并调用上述三个函数实现题目要求的功能。
```python
if __name__ == '__main__':
students = []
for i in range(10):
number = int(input("请输入第{}个学生的学号:".format(i + 1)))
name = input("请输入第{}个学生的姓名:".format(i + 1))
mathScore = int(input("请输入第{}个学生的数学成绩:".format(i + 1)))
englishScore = int(input("请输入第{}个学生的英语成绩:".format(i + 1)))
chineseScore = int(input("请输入第{}个学生的语文成绩:".format(i + 1)))
student = Student(number, name, [mathScore, englishScore, chineseScore])
students.append(student)
calculateAverageScore(students)
calculateAverageScoreByCourse(students)
findHighestAverageScoreStudent(students)
```
相关推荐
![rar](https://img-home.csdnimg.cn/images/20210720083606.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)