编写一个程序,实现以下功能: (1)输入一系列的学生成绩(包括学号、姓名、成绩等数据)存放在文件stud.dat中。 (2)从stud.dat文件中读出这些数据并显示出来。 (3)在stud.dat文件中按姓名进行查询,如输入“李”,则将所有姓李的学生的数据都显示出来。 所编写的程序运行结果示例如下: 选择(1:输入数据 2:输出数据 3:按姓名查找数据 其他退出):1 输入数据 学生人数:5 第1个学生(学号 姓名 成绩):1001 张三 89 第2个学生(学号 姓名 成绩):1002 李四 78 第3个学生(学号 姓名 成绩):1003 王五 92 第4个学生(学号 姓名 成绩):1004 李沅芷 88 第5个学生(学号 姓名 成绩):1005 赵六 56 选择(1:输入数据 2:输出数据 3:按姓名查找数据 其他退出):2 输出数据 学号 姓名 成绩 1001 张三 89 1002 李四 78 1003 王五 92 1004 李沅芷 88 1005 赵六 56 选择(1:输入数据 2:输出数据 3:按姓名查找数据 其他退出):3 输入姓名:李 输出匹配的结果: 学号 姓名 成绩 1002 李四 78 1004 李沅芷 88 选择(1:输入数据 2:输出数据 3:按姓名查找数据 其他退出):3 输入姓名:李四 输出匹配的结果: 学号 姓名 成绩 1002 李四 78 选择(1:输入数据 2:输出数据 3:按姓名查找数据 其他退出):0
时间: 2024-03-24 07:38:32 浏览: 198
好的,这是一个简单的学生成绩管理程序,我可以帮你解决。以下是程序的代码:
```python
import os
def input_data():
# 输入学生人数
n = int(input("学生人数:"))
# 输入学生信息
with open("stud.dat", "w") as f:
for i in range(n):
line = input(f"第{i + 1}个学生(学号 姓名 成绩):")
f.write(line + "\n")
def output_data():
# 输出学生信息
print("学号 姓名 成绩")
with open("stud.dat", "r") as f:
for line in f:
print(line, end="")
def search_data():
# 按姓名查询学生信息
name = input("输入姓名:")
print("学号 姓名 成绩")
with open("stud.dat", "r") as f:
for line in f:
if name in line:
print(line, end="")
def main():
while True:
print("选择(1:输入数据 2:输出数据 3:按姓名查找数据 其他退出):", end="")
choice = input()
if choice == "1":
input_data()
elif choice == "2":
output_data()
elif choice == "3":
search_data()
else:
break
if __name__ == "__main__":
main()
os.remove("stud.dat")
```
这个程序包含三个函数:`input_data()`、`output_data()` 和 `search_data()`,分别实现输入数据、输出数据和按姓名查找数据的功能。`main()` 函数则是程序的主函数,通过循环读取用户的选择并调用相应的函数来实现不同的功能。最后,程序还会删除存储学生成绩的文件 `stud.dat`。
阅读全文