从文件中读取分数存入数组,数组的下标就是对应的学生序号。输入序号,输出其对应的分数。 将分数加10分后将学号信息和最后分值都重新写入新的文件中。新文件名字为自己的学号。 要求:要求用自定义函数完成。
时间: 2023-06-16 18:04:18 浏览: 107
以下是一个可能的实现:
```python
def read_scores(filename):
scores = {}
with open(filename, 'r') as f:
for line in f:
parts = line.strip().split()
student_id = int(parts[0])
score = int(parts[1])
scores[student_id] = score
return scores
def write_scores(filename, scores):
with open(filename, 'w') as f:
for student_id, score in scores.items():
f.write(f"{student_id} {score}\n")
def add_10_to_score(scores, student_id):
scores[student_id] += 10
filename = "scores.txt"
scores = read_scores(filename)
student_id = int(input("请输入学生序号:"))
if student_id in scores:
score = scores[student_id]
print(f"学号为{student_id}的分数为{score}")
add_10_to_score(scores, student_id)
new_filename = f"{student_id}.txt"
write_scores(new_filename, scores)
else:
print("输入的学生序号不存在!")
```
这个程序首先定义了三个函数:
- `read_scores`:从指定的文件中读取分数,并返回一个字典,其中键是学生序号,值是分数。
- `write_scores`:将给定的分数字典写入指定的文件中,每行一个学生的信息,格式为“学生序号 分数”。
- `add_10_to_score`:将给定学生的分数加10分。
然后,程序从文件中读取分数,接着让用户输入要查询的学生序号。如果输入的序号存在,程序输出该学生的分数,并将其分数加10分,然后将整个分数字典写入新的文件中,文件名为该学生的学号。如果输入的学生序号不存在,程序输出一个错误信息。
请注意,这个程序的实现是比较简单的,没有进行太多的错误处理和输入检查,例如用户输入非法字符的情况。在实际应用中,需要根据具体的需求进行适当的修改和完善。
阅读全文