Python学生信息管理系统,实现显示所有学生信息,增,删,改,查,保存信息,恢复信息,退出系统等功能,包含字典,列表,元组,文件读写操作
时间: 2024-03-25 12:42:05 浏览: 48
好的,这是一个关于Python学生信息管理系统的问题。这个系统需要实现以下功能:
1. 显示所有学生信息
2. 增加学生信息
3. 删除学生信息
4. 修改学生信息
5. 查找学生信息
6. 保存学生信息到文件
7. 从文件中恢复学生信息
8. 退出系统
下面是一个简单的实现示例:
```
# 定义学生信息类
class Student:
def __init__(self, name, age, gender):
self.name = name
self.age = age
self.gender = gender
def __str__(self):
return "姓名:{},年龄:{},性别:{}".format(self.name, self.age, self.gender)
# 定义学生信息管理系统
class StudentManagementSystem:
def __init__(self):
self.students = {}
# 显示所有学生信息
def show_all_students(self):
if not self.students:
print("暂无学生信息")
else:
for student_id, student_info in self.students.items():
print("学生ID:{},学生信息:{}".format(student_id, student_info))
# 增加学生信息
def add_student(self):
name = input("请输入学生姓名:")
age = input("请输入学生年龄:")
gender = input("请输入学生性别:")
student = Student(name, age, gender)
student_id = id(student)
self.students[student_id] = student
print("学生信息已添加,学生ID为:{}".format(student_id))
# 删除学生信息
def delete_student(self):
student_id = int(input("请输入要删除的学生ID:"))
if student_id in self.students:
del self.students[student_id]
print("学生信息已删除")
else:
print("未找到该学生信息")
# 修改学生信息
def update_student(self):
student_id = int(input("请输入要修改的学生ID:"))
if student_id in self.students:
name = input("请输入学生姓名:")
age = input("请输入学生年龄:")
gender = input("请输入学生性别:")
student = Student(name, age, gender)
self.students[student_id] = student
print("学生信息已修改")
else:
print("未找到该学生信息")
# 查找学生信息
def search_student(self):
student_id = int(input("请输入要查找的学生ID:"))
if student_id in self.students:
print("学生信息为:{}".format(self.students[student_id]))
else:
print("未找到该学生信息")
# 保存学生信息到文件
def save_to_file(self):
with open("students.txt", "w") as f:
for student_id, student_info in self.students.items():
f.write("{}\n{}\n".format(student_id, student_info))
# 从文件中恢复学生信息
def recover_from_file(self):
try:
with open("students.txt", "r") as f:
lines = f.readlines()
for i in range(0, len(lines), 2):
student_id = int(lines[i].strip())
student_info = eval(lines[i + 1])
self.students[student_id] = student_info
print("学生信息已恢复")
except FileNotFoundError:
print("未找到存储学生信息的文件")
# 退出系统
def exit_system(self):
self.save_to_file()
print("已保存学生信息,感谢使用学生信息管理系统")
exit()
# 主程序
if __name__ == '__main__':
sms = StudentManagementSystem()
sms.recover_from_file()
while True:
print("""
1. 显示所有学生信息
2. 增加学生信息
3. 删除学生信息
4. 修改学生信息
5. 查找学生信息
6. 退出系统
""")
choice = input("请输入要操作的序号:")
if choice == "1":
sms.show_all_students()
elif choice == "2":
sms.add_student()
elif choice == "3":
sms.delete_student()
elif choice == "4":
sms.update_student()
elif choice == "5":
sms.search_student()
elif choice == "6":
sms.exit_system()
else:
print("输入有误,请重试")
```
这个系统中,`Student` 类表示学生信息,包括姓名、年龄和性别。`StudentManagementSystem` 类表示学生信息管理系统,包括各种操作方法,如显示所有学生信息、增加学生信息、删除学生信息、修改学生信息、查找学生信息、保存学生信息到文件、从文件中恢复学生信息和退出系统。在 `__init__` 方法中,我们初始化了一个空字典 `students` 用于存储学生信息。在主程序中,我们首先从文件中恢复学生信息,然后通过循环打印出操作菜单,根据用户输入的操作序号执行相应的操作。在退出系统时,我们将学生信息保存到文件中,然后退出程序。
阅读全文