用Python写一个学员信息管理系统以文件方式进行增删查改
时间: 2023-12-14 18:37:27 浏览: 36
好的,以下是一个简单的学员信息管理系统,包括了增删查改功能,并且以文件方式进行存储:
```python
import os
class Student:
def __init__(self, name, age, gender, grade, phone):
self.name = name
self.age = age
self.gender = gender
self.grade = grade
self.phone = phone
def main():
while True:
menu()
choice = input("请选择操作:")
if choice == '1':
add_student()
elif choice == '2':
del_student()
elif choice == '3':
modify_student()
elif choice == '4':
query_student()
elif choice == '5':
show_all()
elif choice == '0':
print("谢谢使用!")
break
else:
print("输入有误,请重新选择!")
def menu():
print("===============学员信息管理系统===============")
print("1. 添加学员信息")
print("2. 删除学员信息")
print("3. 修改学员信息")
print("4. 查询学员信息")
print("5. 显示所有学员信息")
print("0. 退出系统")
print("=" * 45)
def add_student():
name = input("请输入学员姓名:")
age = input("请输入学员年龄:")
gender = input("请输入学员性别:")
grade = input("请输入学员班级:")
phone = input("请输入学员电话:")
student = Student(name, age, gender, grade, phone)
with open('students.txt', 'a') as f:
f.write(f"{student.name},{student.age},{student.gender},{student.grade},{student.phone}\n")
print("添加成功!")
def del_student():
name = input("请输入要删除的学员姓名:")
if os.path.exists('students.txt'):
with open('students.txt', 'r') as f:
lines = f.readlines()
with open('students.txt', 'w') as f:
for line in lines:
if line.split(',')[0] != name:
f.write(line)
print("删除成功!")
else:
print("学员信息文件不存在!")
def modify_student():
name = input("请输入要修改的学员姓名:")
if os.path.exists('students.txt'):
with open('students.txt', 'r') as f:
lines = f.readlines()
with open('students.txt', 'w') as f:
for line in lines:
if line.split(',')[0] == name:
new_name = input(f"请输入{name}的新姓名:")
new_age = input(f"请输入{new_name}的新年龄:")
new_gender = input(f"请输入{new_name}的新性别:")
new_grade = input(f"请输入{new_name}的新班级:")
new_phone = input(f"请输入{new_name}的新电话:")
f.write(f"{new_name},{new_age},{new_gender},{new_grade},{new_phone}\n")
print("修改成功!")
else:
f.write(line)
else:
print("学员信息文件不存在!")
def query_student():
name = input("请输入要查询的学员姓名:")
if os.path.exists('students.txt'):
with open('students.txt', 'r') as f:
lines = f.readlines()
for line in lines:
if line.split(',')[0] == name:
print(line.strip())
break
else:
print("学员信息不存在!")
else:
print("学员信息文件不存在!")
def show_all():
if os.path.exists('students.txt'):
with open('students.txt', 'r') as f:
lines = f.readlines()
for line in lines:
print(line.strip())
else:
print("学员信息文件不存在!")
if __name__ == '__main__':
main()
```
该程序通过类`Student`来表示学员信息,包括姓名、年龄、性别、班级和电话。使用`while`循环不断显示菜单,并根据用户的选择调用相应的函数。其中,`add_student()`函数用于添加学员信息,将学员信息以逗号分隔的形式写入文件;`del_student()`函数用于删除学员信息,通过读取文件并重写的方式实现;`modify_student()`函数用于修改学员信息,也是通过读取文件并重写的方式实现;`query_student()`函数用于查询学员信息,根据用户输入的姓名查找并输出对应的学员信息;`show_all()`函数用于显示所有学员信息,直接读取文件并输出。
注意,该程序的文件存储方式为将学员信息存储在一个以逗号分隔的文本文件中,每行表示一个学员的信息。在删除和修改学员信息时,需要先读取文件并将内容保存到内存中,然后对内存中的内容进行修改和删除,最后再将修改后的内容写回文件中。