Python面向对象编程:设计继承关系的图书管理系统

本教程将引导您使用Python创建一个简单的学校图书管理系统。您将学习如何定义管理员类和学生类,并利用继承和基类的概念来实现代码的简洁性和可重用性。

1. 定义基类 Person

首先,我们创建一个名为 Person 的基类,它包含所有人员(管理员和学生)的共同属性:年龄和姓名。pythonclass Person: def init(self, age, name): self.age = age self.name = name def get_age(self): return self.age def set_age(self, age): self.age = age def get_name(self): return self.name def set_name(self, name): self.name = name

2. 定义管理员类 Manager

接下来,我们定义 Manager 类,它继承自 Person 类,并添加了管理员特有的属性:工号和工资,以及一个管理图书的方法。pythonclass Manager(Person): def init(self, age, name, employee_id, salary): super().init(age, name) self.employee_id = employee_id self.salary = salary def get_employee_id(self): return self.employee_id def set_employee_id(self, employee_id): self.employee_id = employee_id def get_salary(self): return self.salary def set_salary(self, salary): self.salary = salary def manage_books(self): print(f'{self.name} is managing books.')

3. 定义学生类 Student

类似地,我们定义 Student 类,它也继承自 Person 类,并添加了学生特有的属性:学号和所借图书列表,以及借书和还书的方法。pythonclass Student(Person): def init(self, age, name, student_id): super().init(age, name) self.student_id = student_id self.borrowed_books = [] def get_student_id(self): return self.student_id def set_student_id(self, student_id): self.student_id = student_id def borrow_book(self, book, borrow_date): self.borrowed_books.append((book, borrow_date)) print(f'{self.name} borrowed the book '{book}' on {borrow_date}.') def return_book(self, book): for i, (b, _) in enumerate(self.borrowed_books): if b == book: del self.borrowed_books[i] print(f'{self.name} returned the book '{book}'.') return print(f'{self.name} did not borrow the book '{book}'.')

4. 测试程序

最后,我们编写一个简单的测试程序来验证我们创建的类和方法是否按预期工作。pythonmanager = Manager(30, 'John', 'M001', 5000)manager.manage_books() # 输出:John is managing books.print(manager.get_name()) # 输出:Johnprint(manager.get_employee_id()) # 输出:M001print(manager.get_salary()) # 输出:5000

student = Student(20, 'Alice', 'S001')student.borrow_book('Python Crash Course', '2022-01-01') # 输出:Alice borrowed the book 'Python Crash Course' on 2022-01-01.student.return_book('Python Crash Course') # 输出:Alice returned the book 'Python Crash Course'.student.borrow_book('C++ Primer', '2022-02-01') # 输出:Alice borrowed the book 'C++ Primer' on 2022-02-01.print(student.get_name()) # 输出:Aliceprint(student.get_student_id()) # 输出:S001

结论

通过使用继承和基类,我们创建了一个简单但有效的学校图书管理系统。 Person 基类帮助我们避免了代码重复,并使代码更易于维护和扩展。

Python面向对象编程:设计继承关系的图书管理系统

原文地址: https://www.cveoy.top/t/topic/vMr 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录