编程处理n个学生m门课程的成绩,课程名称、学生的学号、姓名、各课程成绩及n和m的值均从键盘接收,用自定义函数实现,每个学生的信息用字典保存
时间: 2023-05-24 10:07:27 浏览: 111
n = int(input("请输入学生个数:"))
m = int(input("请输入课程门数:"))
def read_scores(n, m):
scores = []
for i in range(n):
student = {}
student['id'] = input("请输入第%d个学生的学号:" % (i+1))
student['name'] = input("请输入第%d个学生的姓名:" % (i+1))
student['scores'] = []
for j in range(m):
score = float(input("请输入第%d个学生的第%d门课成绩:" % (i+1, j+1)))
student['scores'].append(score)
scores.append(student)
return scores
scores = read_scores(n, m)
print(scores)
相关问题
编程处理n个学生m门课程的成绩,课程名称、学生的学号、姓名、各课程成绩及n和m的值均从键盘接收
这道题需要使用多维数组来保存学生的成绩信息。以下是一个可能的解法:
```python
n = int(input("请输入学生人数:"))
m = int(input("请输入课程门数:"))
# 初始化二维数组,第一维表示学生,第二维表示课程
scores = [[0]*m for i in range(n)]
# 从键盘接收学生信息和成绩
for i in range(n):
print("请输入第{}个学生的信息:".format(i+1))
student_id = input("学号:")
name = input("姓名:")
for j in range(m):
course_name = input("请输入第{}门课程的名称:".format(j+1))
score = float(input("请输入{}的{}成绩:".format(name, course_name)))
scores[i][j] = score
# 输出所有学生的成绩信息
for i in range(n):
print("学号:{},姓名:{},成绩:{}".format(student_id, name, scores[i]))
```
这个程序首先从键盘接收学生人数和课程门数,并初始化一个n x m的二维数组`scores`,用于保存学生的成绩信息。接下来使用嵌套循环,从键盘逐个输入学生的信息、课程名称和成绩,并将其保存到相应的位置。最后,再使用循环打印出所有学生的成绩信息。
编程处理n个学生m门课程的成绩,课程名称、学生的学号、姓名、各课程成绩及n和m的值均从键盘接收,用自定义函数实现
首先,我们需要定义一个学生类,可以包含学号、姓名、各门课程的成绩等属性和方法。接下来,我们定义一个处理成绩的函数,可以接收输入的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)
```
请注意,上述实现仅为可能的实现之一。具体的实现方式可能会因编程语言、输入输出格式和其他需求而有所不同。
阅读全文