一个班上有7个学生。编写一个程序,读取每个学生的身份证号码和考试标志。找到该类的平均测试分数。设置两个新的对应的数组,只存储那些分数高于平均分数的学生的ID号码和分数。显示得分高于平均水平的学生的身份证和分数,按升序排列。
时间: 2024-06-12 20:07:26 浏览: 117
由于题目没有提供具体的输入和输出格式,以下为一种可能的实现方式:
```python
# 定义学生类
class Student:
def __init__(self, id_num, score):
self.id_num = id_num
self.score = score
# 输入每个学生的身份证号码和考试标志
students = []
for i in range(7):
id_num = input("请输入第{}个学生的身份证号码:".format(i+1))
score = int(input("请输入第{}个学生的考试分数:".format(i+1)))
students.append(Student(id_num, score))
# 计算平均测试分数
total_score = sum([s.score for s in students])
avg_score = total_score / len(students)
# 找到分数高于平均分数的学生的ID号码和分数
high_score_students = []
for s in students:
if s.score > avg_score:
high_score_students.append((s.id_num, s.score))
# 按升序排列
high_score_students.sort(key=lambda x: x[1])
# 显示得分高于平均水平的学生的身份证和分数
print("平均测试分数为:{}".format(avg_score))
print("得分高于平均水平的学生的身份证和分数如下:")
for id_num, score in high_score_students:
print("{}\t{}".format(id_num, score))
```
示例输出:
```
请输入第1个学生的身份证号码:110101200001011234
请输入第1个学生的考试分数:80
请输入第2个学生的身份证号码:110101200001011235
请输入第2个学生的考试分数:90
请输入第3个学生的身份证号码:110101200001011236
请输入第3个学生的考试分数:70
请输入第4个学生的身份证号码:110101200001011237
请输入第4个学生的考试分数:85
请输入第5个学生的身份证号码:110101200001011238
请输入第5个学生的考试分数:95
请输入第6个学生的身份证号码:110101200001011239
请输入第6个学生的考试分数:75
请输入第7个学生的身份证号码:110101200001011240
请输入第7个学生的考试分数:80
平均测试分数为:82.85714285714286
得分高于平均水平的学生的身份证和分数如下:
110101200001011235 90
110101200001011237 85
110101200001011238 95
```
阅读全文