下面是一个综合实践项目,结合文件操作和异常处理,实现一个简单的学生管理系统。
class Student:
def __init__(self, id, name, age, grade):
self.id = id
self.name = name
self.age = age
self.grade = grade
def __str__(self):
return f"ID: {self.id}, Name: {self.name}, Age: {self.age}, Grade: {self.grade}"
class StudentManager:
def __init__(self, file_path):
self.file_path = file_path
self.students = []
self.load_students()
def load_students(self):
try:
with open(self.file_path, "r", encoding="utf-8") as f:
for line in f:
parts = line.strip().split(",")
if len(parts) == 4:
student = Student(parts[0], parts[1], int(parts[2]), parts[3])
self.students.append(student)
except FileNotFoundError:
print(f"文件 '{self.file_path}' 不存在,将创建新文件")
except Exception as e:
print(f"加载学生数据时发生错误: {e}")
def save_students(self):
try:
with open(self.file_path, "w", encoding="utf-8") as f:
for student in self.students:
f.write(f"{student.id},{student.name},{student.age},{student.grade}\n")
except Exception as e:
print(f"保存学生数据时发生错误: {e}")
def add_student(self, student):
self.students.append(student)
self.save_students()
def remove_student(self, student_id):
for i, student in enumerate(self.students):
if student.id == student_id:
del self.students[i]
self.save_students()
return True
return False
def list_students(self):
if not self.students:
print("没有学生数据")
else:
for student in self.students:
print(student)
if __name__ == "__main__":
manager = StudentManager("students.txt")
student1 = Student("S001", "Alice", 18, "A")
student2 = Student("S002", "Bob", 19, "B")
manager.add_student(student1)
manager.add_student(student2)
print("所有学生:")
manager.list_students()
manager.remove_student("S001")
print("删除后的学生:")
manager.list_students()