python实现score.txt文件中存放着某班学生的计算机课成绩,包含学号、平时成绩、期末成绩三列。请根据平时成绩占40%,期末成绩占60%的比例计算总评成绩,并按学号、总评成绩两列写入另一个文件scored.txt中。同时在屏幕上输出学生总人数,按总评成绩计算90分以上、80~89分、70~79分、60~69分、60分以下各成绩区间的人数和班级总平均分(取两位小数)。
时间: 2023-11-04 20:58:58 浏览: 259
Python实现学生成绩管理系统
好的,这是一个稍微复杂一些的python编程问题。下面是代码:
```python
# 读取score.txt文件,并计算总评成绩
with open('score.txt', 'r') as f:
lines = f.readlines()
scores = []
for line in lines:
stu_id, daily_score, final_score = line.split()
total_score = int(daily_score) * 0.4 + int(final_score) * 0.6
scores.append((stu_id, total_score))
# 写入scored.txt文件,并输出各成绩区间人数和平均分
with open('scored.txt', 'w') as f:
f.write("学号\t总评成绩\n")
above_90, between_80_89, between_70_79, between_60_69, below_60 = 0, 0, 0, 0, 0
total_score = 0
for score in scores:
f.write(score[0] + '\t' + str(score[1]) + '\n')
if score[1] >= 90:
above_90 += 1
elif score[1] >= 80:
between_80_89 += 1
elif score[1] >= 70:
between_70_79 += 1
elif score[1] >= 60:
between_60_69 += 1
else:
below_60 += 1
total_score += score[1]
total_count = len(scores)
average_score = total_score / total_count
f.write("总人数:%d\n" % total_count)
f.write("90分以上:%d\n" % above_90)
f.write("80~89分:%d\n" % between_80_89)
f.write("70~79分:%d\n" % between_70_79)
f.write("60~69分:%d\n" % between_60_69)
f.write("60分以下:%d\n" % below_60)
f.write("平均分:%0.2f" % average_score)
print("总人数:", total_count)
print("90分以上:", above_90)
print("80~89分:", between_80_89)
print("70~79分:", between_70_79)
print("60~69分:", between_60_69)
print("60分以下:", below_60)
print("平均分:%.2f" % average_score)
```
程序首先读取score.txt文件,计算每个学生的总评成绩,并保存在一个列表中。然后,程序打开scored.txt文件,并依次写入每个学生的学号和总评成绩,同时统计各成绩区间人数和总平均分。最后,程序在屏幕上输出各成绩区间人数和平均分。
需要注意的是,写入文件时,我们使用了字符串格式化操作,用%d和%f分别代表整数和浮点数,%.2f表示保留两位小数。
阅读全文