用Python编写一个含有主菜单,显示所有学生信息,新建学生信息,查询学生信息,修改学生信息,删除学生信息,保存学生信息,恢复学生信息等功能的代码
时间: 2024-03-27 22:37:08 浏览: 46
好的,以下是一个稍微改进了一下的代码,实现了你所要求的功能:
```python
import pickle
class Student:
def __init__(self, name, age, gender, score):
self.name = name
self.age = age
self.gender = gender
self.score = score
class StudentManagementSystem:
def __init__(self):
self.students = []
self.file_name = "students.pkl"
self.load_students()
def display_menu(self):
print("========== 学生信息管理系统 ==========")
print("1. 显示所有学生信息")
print("2. 新建学生信息")
print("3. 查询学生信息")
print("4. 修改学生信息")
print("5. 删除学生信息")
print("6. 保存学生信息")
print("7. 恢复学生信息")
print("0. 退出系统")
def show_all_students(self):
if not self.students:
print("暂无学生信息!")
else:
print("学生信息如下:")
for student in self.students:
print("姓名:", student.name)
print("年龄:", student.age)
print("性别:", student.gender)
print("成绩:", student.score)
print()
def add_student(self):
name = input("请输入学生姓名:")
age = input("请输入学生年龄:")
gender = input("请输入学生性别:")
score = input("请输入学生成绩:")
student = Student(name, age, gender, score)
self.students.append(student)
print("添加学生信息成功!")
def query_student(self):
name = input("请输入要查询的学生姓名:")
for student in self.students:
if student.name == name:
print("姓名:", student.name)
print("年龄:", student.age)
print("性别:", student.gender)
print("成绩:", student.score)
break
else:
print("未找到该学生信息!")
def modify_student(self):
name = input("请输入要修改的学生姓名:")
for student in self.students:
if student.name == name:
student.age = input("请输入学生年龄:")
student.gender = input("请输入学生性别:")
student.score = input("请输入学生成绩:")
print("修改学生信息成功!")
break
else:
print("未找到该学生信息!")
def delete_student(self):
name = input("请输入要删除的学生姓名:")
for student in self.students:
if student.name == name:
self.students.remove(student)
print("删除学生信息成功!")
break
else:
print("未找到该学生信息!")
def save_students(self):
with open(self.file_name, "wb") as f:
pickle.dump(self.students, f)
print("保存学生信息成功!")
def load_students(self):
try:
with open(self.file_name, "rb") as f:
self.students = pickle.load(f)
print("恢复学生信息成功!")
except FileNotFoundError:
print("未找到保存的学生信息!")
def run(self):
while True:
self.display_menu()
choice = input("请输入操作编号:")
if choice == "1":
self.show_all_students()
elif choice == "2":
self.add_student()
elif choice == "3":
self.query_student()
elif choice == "4":
self.modify_student()
elif choice == "5":
self.delete_student()
elif choice == "6":
self.save_students()
elif choice == "7":
self.load_students()
elif choice == "0":
break
else:
print("输入有误,请重新输入!")
if __name__ == "__main__":
system = StudentManagementSystem()
system.run()
```
这个程序与之前的程序相比,增加了一个显示所有学生信息的功能。在 `show_all_students` 方法中,先判断学生列表是否为空,如果不为空,则遍历学生列表并打印每个学生的信息。在程序中,使用了 `if not self.students:` 来判断列表是否为空,这是 Python 中常用的判断列表是否为空的方法。
此外,其他功能的实现与之前的程序相同。
阅读全文