图书管理系统普通用户逾期交费代码
时间: 2023-06-26 17:09:52 浏览: 44
以下是一个简单的图书管理系统普通用户逾期交费的代码示例:
```python
# 假设已经实现了一个名为 Book 的类来表示书籍
class User:
def __init__(self, name, id):
self.name = name
self.id = id
self.books = [] # 用户借阅的书籍
self.fine = 0 # 用户欠的罚款金额
def borrow_book(self, book):
self.books.append(book)
def return_book(self, book):
if book in self.books:
self.books.remove(book)
if book.is_overdue():
self.fine += book.compute_fine()
def pay_fine(self, amount):
self.fine -= amount
class Book:
def __init__(self, title, author, due_date):
self.title = title
self.author = author
self.due_date = due_date
def is_overdue(self):
return datetime.now() > self.due_date
def compute_fine(self):
days_overdue = (datetime.now() - self.due_date).days
return days_overdue * 0.1 # 每天罚款0.1元
# 示例用法:
user = User("张三", "001")
book1 = Book("Python编程从入门到实践", "Eric Matthes", datetime(2021, 12, 31))
book2 = Book("深入浅出MySQL", "姜承尘", datetime(2022, 1, 15))
user.borrow_book(book1)
user.borrow_book(book2)
# 用户归还书籍
user.return_book(book1)
user.return_book(book2)
# 用户查看欠款
print(user.fine)
# 用户交纳罚款
user.pay_fine(2.5)
print(user.fine)
```
在这个示例中,我们定义了一个 User 类来表示系统中的普通用户,每个用户可以借阅多本书籍并且需要在规定日期前归还。如果用户逾期归还书籍,则需要付出罚款。当用户归还一本书籍时,我们首先检查是否逾期,如果逾期则计算罚款并把罚款金额添加到用户的账户上。如果用户想要交纳罚款,则可以通过调用 pay_fine 方法来减少欠款金额。