编写一个程序,处理某班3门课程的成绩,它们是语文、数学和英语。先输入学生人数(最多为50个人),然后按编号从小到大的顺序依次输入学生成绩,最后统计每门课程全班的总成绩和平均成绩以及每个学生课程的总成绩和平均成绩。
时间: 2024-04-30 07:19:51 浏览: 45
对学生成绩统计并计算的程序
5星 · 资源好评率100%
以下是 Python 代码实现:
```python
num = int(input("请输入学生人数:"))
scores = []
for i in range(num):
print("请输入第 %d 个学生的成绩:" % (i+1))
chn = float(input("语文成绩:"))
math = float(input("数学成绩:"))
eng = float(input("英语成绩:"))
scores.append({'id': i+1, 'chn': chn, 'math': math, 'eng': eng})
# 计算每个学生的总成绩和平均成绩
for s in scores:
s['total'] = s['chn'] + s['math'] + s['eng']
s['avg'] = s['total'] / 3
# 计算每门课程的总成绩和平均成绩
chn_total = math_total = eng_total = 0
for s in scores:
chn_total += s['chn']
math_total += s['math']
eng_total += s['eng']
chn_avg = chn_total / num
math_avg = math_total / num
eng_avg = eng_total / num
# 输出结果
print("学号\t语文\t数学\t英语\t总成绩\t平均成绩")
for s in scores:
print("%d\t%.1f\t%.1f\t%.1f\t%.1f\t%.1f" % (s['id'], s['chn'], s['math'], s['eng'], s['total'], s['avg']))
print("总分\t%.1f\t%.1f\t%.1f" % (chn_total, math_total, eng_total))
print("平均分\t%.1f\t%.1f\t%.1f" % (chn_avg, math_avg, eng_avg))
```
运行示例:
```
请输入学生人数:3
请输入第 1 个学生的成绩:
语文成绩:80
数学成绩:90
英语成绩:70
请输入第 2 个学生的成绩:
语文成绩:85
数学成绩:95
英语成绩:75
请输入第 3 个学生的成绩:
语文成绩:90
数学成绩:85
英语成绩:80
学号 语文 数学 英语 总成绩 平均成绩
1 80.0 90.0 70.0 240.0 80.0
2 85.0 95.0 75.0 255.0 85.0
3 90.0 85.0 80.0 255.0 85.0
总分 255.0 270.0 225.0
平均分 85.0 90.0 75.0
```
阅读全文