编程处理n个学生m门课程的成绩,课程名称、学生的学号、姓名、各课程成绩及n和m的值均从键盘接收,用自定义函数实现
时间: 2023-05-24 14:07:07 浏览: 103
首先,我们需要定义一个学生类,可以包含学号、姓名、各门课程的成绩等属性和方法。接下来,我们定义一个处理成绩的函数,可以接收输入的n和m值,以及学生信息和成绩,然后输出各门课程的平均分和每个学生的总分以及平均分。
以下是可能的Python代码实现:
```python
class Student:
def __init__(self, id, name, scores):
self.id = id
self.name = name
self.scores = scores
def total_score(self):
return sum(self.scores)
def avg_score(self):
return sum(self.scores) / len(self.scores)
def process_scores(n, m):
students = []
for _ in range(n):
id = input("请输入学号:")
name = input("请输入姓名:")
scores = []
for i in range(m):
score = input(f"请输入第{i+1}门课程的成绩:")
scores.append(int(score))
students.append(Student(id, name, scores))
course_scores = [sum(s.scores) for s in students]
course_avg = sum(course_scores) / (n * m)
print(f"各门课程的平均分为:{course_avg}")
for s in students:
total = s.total_score()
avg = s.avg_score()
print(f"{s.name}的总成绩为:{total},平均分为:{avg}")
```
在上面的代码中,我们首先定义了一个学生类,包含了学号、姓名、成绩等属性和总成绩和平均分等方法。然后,在处理函数中,我们接受输入的几个值,并逐个输入每个学生的信息和成绩,构建一个学生对象列表。接下来,我们用列表推导式求出每门课程的总成绩,以及所有成绩的平均分,并输出到屏幕上。最后,我们遍历每个学生对象,求出其总成绩和平均分,并逐个输出到屏幕上。
要使用该函数,我们只需要调用它并传入n和m的值:
```python
n = int(input("请输入学生人数:"))
m = int(input("请输入课程数:"))
process_scores(n, m)
```
请注意,上述实现仅为可能的实现之一。具体的实现方式可能会因编程语言、输入输出格式和其他需求而有所不同。
相关推荐
![7z](https://img-home.csdnimg.cn/images/20210720083312.png)
![](https://img-home.csdnimg.cn/images/20210720083646.png)
![docx](https://img-home.csdnimg.cn/images/20210720083331.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)