假定一个文本文件中包含未指定个数的考试分数,请编写程序实现以下操作。 (1)程序运行时应该提示用户输入一个文件名,并将分数写入到文件中,文件中的分数用空格分隔;(2)从文件中读取分数,以列表的方式打印输出所有的分数,同时计算分数之和、平均数以及最大分数;(3)将分数之和、平均数以及最大分数追加到文件中。
时间: 2024-03-17 21:42:41 浏览: 110
从文本文件输入n个同学的姓名、性别、成绩,按成绩又高到底的顺序输出所有学生信息,分别求出男同学、女同学的平均成绩并输出
4星 · 用户满意度95%
好的,我可以帮您解决这个问题。这个问题需要使用 Python 编程语言来解决。下面是实现的代码:
```python
import os
def write_scores_to_file(file_name):
scores = input("请输入考试分数,用空格分隔:")
with open(file_name, 'w') as f:
f.write(scores)
def read_scores_from_file(file_name):
with open(file_name, 'r') as f:
scores_str = f.read()
scores = [int(score) for score in scores_str.split()]
return scores
def print_scores_info(scores):
total_score = sum(scores)
average_score = total_score / len(scores)
max_score = max(scores)
print("所有分数为:", scores)
print("分数之和为:", total_score)
print("平均分为:", average_score)
print("最高分为:", max_score)
def append_scores_info_to_file(file_name, scores):
total_score = sum(scores)
average_score = total_score / len(scores)
max_score = max(scores)
with open(file_name, 'a') as f:
f.write("\n分数之和为:" + str(total_score))
f.write("\n平均分为:" + str(average_score))
f.write("\n最高分为:" + str(max_score))
def main():
file_name = input("请输入文件名:")
if not os.path.exists(file_name):
print("文件不存在!")
return
write_scores_to_file(file_name)
scores = read_scores_from_file(file_name)
print_scores_info(scores)
append_scores_info_to_file(file_name, scores)
if __name__ == '__main__':
main()
```
上面的代码中,我们使用了 5 个函数:
- `write_scores_to_file(file_name)`:将用户输入的考试分数写入到指定的文件中,文件名由参数 `file_name` 指定。
- `read_scores_from_file(file_name)`:从指定的文件中读取考试分数,以列表的方式返回。
- `print_scores_info(scores)`:打印输出所有的分数,同时计算分数之和、平均数以及最大分数。
- `append_scores_info_to_file(file_name, scores)`:将分数之和、平均数以及最大分数追加到指定的文件中。
- `main()`:主函数,用于执行上述函数。
在 `main()` 函数中,我们首先提示用户输入文件名,然后检查文件是否存在。如果文件不存在,则直接退出程序。如果文件存在,我们就调用 `write_scores_to_file()` 函数将用户输入的考试分数写入到文件中,然后调用 `read_scores_from_file()` 函数从文件中读取分数,以列表的方式返回。接着,我们调用 `print_scores_info()` 函数打印输出所有的分数,同时计算分数之和、平均数以及最大分数。最后,我们调用 `append_scores_info_to_file()` 函数将分数之和、平均数以及最大分数追加到文件中。
以上就是实现这个问题的代码。如果您有任何疑问,可以随时问我。
阅读全文