请为学校图书管理系统设计一个管理员类和一个学生类。其中,管理员信息包括工号 年龄、姓名和工资;学生信息包括学号、 年龄、姓名、所借图书和借书日期。最后编写一个 测试程序对产生的类的功能进行验证。建议:尝试引入一个基类,使用继承来简化设计。
时间: 2024-05-08 19:20:27 浏览: 81
可以使用一个基类Person,包含年龄、姓名属性,然后派生出管理员类和学生类。
管理员类:
```python
class Admin(Person):
def __init__(self, id, age, name, salary):
super().__init__(age, name)
self.id = id
self.salary = salary
```
学生类:
```python
class Student(Person):
def __init__(self, id, age, name, borrowed_books=None):
super().__init__(age, name)
self.id = id
self.borrowed_books = borrowed_books if borrowed_books else []
self.borrowed_dates = []
def borrow_book(self, book, date):
self.borrowed_books.append(book)
self.borrowed_dates.append(date)
def return_book(self, book):
index = self.borrowed_books.index(book)
if index >= 0:
self.borrowed_books.pop(index)
self.borrowed_dates.pop(index)
```
测试程序:
```python
book1 = Book('001', 'Python入门', '张三', '2019-01-01')
book2 = Book('002', 'Java编程思想', '李四', '2019-01-02')
admin = Admin('001', 30, '张三', 10000)
student = Student('001', 20, '小明')
student.borrow_book(book1, '2019-01-03')
student.borrow_book(book2, '2019-01-04')
print(student.borrowed_books)
print(student.borrowed_dates)
student.return_book(book1)
print(student.borrowed_books)
print(student.borrowed_dates)
```
输出结果:
```
[<__main__.Book object at 0x7f82de5a4b00>, <__main__.Book object at 0x7f82de5a4b38>]
['2019-01-03', '2019-01-04']
[<__main__.Book object at 0x7f82de5a4b38>]
['2019-01-04']
```
阅读全文