有10个学生,每个学生的数据包括学号、姓名、性别,若为男生,还有1500米成绩、标枪成绩、跳高成绩和100米成绩,若为女生,还有800米成绩、立定跳远成绩和100米成绩。从键盘输入10个学生数据,要求输出每个学生的平均成绩(包括学号、姓名、性别,平均成绩)。 输入格式: 输入共10行,表示10个学生数据,性别分别为m(男生)和f(女生)。 输出格式: 输出也是10行,输出每个学生的学号、姓名、性别,平均成绩 (格式:%5d%10s%3c%4d)。
时间: 2023-11-04 19:19:09 浏览: 66
好的,我知道了。这是一个关于学生成绩计算的问题。下面是一个简单的解决方案:
```python
#定义一个数据结构,用来保存学生的信息
class Student:
def __init__(self, id, name, gender, score):
self.id = id
self.name = name
self.gender = gender
self.score = score
# 定义一个函数,用来计算每个学生的平均成绩
def get_avg_score(student):
if student.gender == 'm':
avg_score = (student.score['1500m'] + student.score['标枪'] + student.score['跳高'] + student.score['100m']) / 4
else:
avg_score = (student.score['800m'] + student.score['立定跳远'] + student.score['100m']) / 3
return avg_score
# 主程序
students = [] # 用来保存所有学生的信息
for i in range(10):
id = int(input("请输入学号:"))
name = input("请输入姓名:")
gender = input("请输入性别(m/f):")
score = {}
if gender == 'm':
score['1500m'] = float(input("请输入1500米成绩:"))
score['标枪'] = float(input("请输入标枪成绩:"))
score['跳高'] = float(input("请输入跳高成绩:"))
score['100m'] = float(input("请输入100米成绩:"))
else:
score['800m'] = float(input("请输入800米成绩:"))
score['立定跳远'] = float(input("请输入立定跳远成绩:"))
score['100m'] = float(input("请输入100米成绩:"))
student = Student(id, name, gender, score)
students.append(student)
# 输出每个学生的信息及平均成绩
for student in students:
avg_score = get_avg_score(student)
print("%5d%10s%3c%4d" % (student.id, student.name, student.gender, avg_score))
```
这个程序首先定义了一个`Student`类,用来保存每个学生的信息。然后定义了一个`get_avg_score()`函数,用来计算每个学生的平均成绩。最后,在主程序中,先输入10个学生的信息,然后输出每个学生的信息及平均成绩。