定义一个学生类, 包含学生的学号、 姓名和年龄等基本信息, 将学生信息写入二进 制文件 student. dat 中, 实现对学生信息的显示、 查询和删除等基本功能。
时间: 2024-02-03 20:13:47 浏览: 66
以下是一个可能的实现:
```python
import pickle
class Student:
def __init__(self, id, name, age):
self.id = id
self.name = name
self.age = age
def save_students(students):
with open("student.dat", "wb") as f:
pickle.dump(students, f)
def load_students():
try:
with open("student.dat", "rb") as f:
students = pickle.load(f)
except FileNotFoundError:
students = []
return students
def add_student():
id = input("请输入学生学号:")
name = input("请输入学生姓名:")
age = input("请输入学生年龄:")
student = Student(id, name, age)
students = load_students()
students.append(student)
save_students(students)
print("学生信息添加成功。")
def show_students():
students = load_students()
if not students:
print("学生信息为空。")
else:
for student in students:
print("学号:{},姓名:{},年龄:{}".format(student.id, student.name, student.age))
def find_student():
id = input("请输入要查找的学生学号:")
students = load_students()
for student in students:
if student.id == id:
print("学号:{},姓名:{},年龄:{}".format(student.id, student.name, student.age))
break
else:
print("找不到该学生。")
def delete_student():
id = input("请输入要删除的学生学号:")
students = load_students()
for i, student in enumerate(students):
if student.id == id:
del students[i]
save_students(students)
print("学生信息删除成功。")
break
else:
print("找不到该学生。")
while True:
print("1. 添加学生信息")
print("2. 显示所有学生信息")
print("3. 查找学生信息")
print("4. 删除学生信息")
print("5. 退出程序")
choice = input("请输入要进行的操作:")
if choice == "1":
add_student()
elif choice == "2":
show_students()
elif choice == "3":
find_student()
elif choice == "4":
delete_student()
elif choice == "5":
break
else:
print("无效的操作,请重新输入。")
```
在这个实现中,我们定义了一个 `Student` 类来表示学生,其中包含学号、姓名和年龄三个属性。 `save_students` 和 `load_students` 函数分别用于将学生信息保存到二进制文件中和从二进制文件中读取学生信息。 `add_student` 函数用于添加一个新的学生信息,它会先读取已有的学生信息,然后将新的学生信息添加到列表中,最后再将整个列表保存到文件中。 `show_students` 函数用于显示所有学生信息,它会读取文件中的学生信息并逐一打印出来。 `find_student` 函数用于查找指定学生的信息,它会读取文件中的学生信息并逐一比较学号,找到对应的学生信息后打印出来。 `delete_student` 函数用于删除指定学生的信息,它会读取文件中的学生信息并逐一比较学号,找到对应的学生信息后将其从列表中删除,最后再将整个列表保存到文件中。
程序主体部分使用一个循环来实现用户交互,根据用户输入的选项调用相应的函数。如果用户输入的选项无效,则会提示重新输入。
阅读全文