python用链表写图书管理系统
时间: 2023-07-18 19:29:38 浏览: 50
好的,为了实现一个基本的图书管理系统,我们需要定义两个类:一个是书本类 `Book`,另一个是图书馆类 `Library`。
首先,我们来定义 `Book` 类,包含书本的名称、作者和是否被借出的状态:
```python
class Book:
def __init__(self, name, author):
self.name = name
self.author = author
self.is_borrowed = False
self.next = None
```
然后,我们定义 `Library` 类,包含一个链表 `book_list`,用于存储所有的书本。`Library` 类还需要实现以下功能:
- 添加书本
- 删除书本
- 查找书本
- 借出书本
- 归还书本
```python
class Library:
def __init__(self):
self.book_list = None
# 添加书本
def add_book(self, name, author):
new_book = Book(name, author)
if not self.book_list:
self.book_list = new_book
else:
current_book = self.book_list
while current_book.next:
current_book = current_book.next
current_book.next = new_book
# 删除书本
def remove_book(self, name):
current_book = self.book_list
previous_book = None
while current_book:
if current_book.name == name:
if previous_book:
previous_book.next = current_book.next
else:
self.book_list = current_book.next
del current_book
print(f"{name} has been removed from the library.")
return
previous_book = current_book
current_book = current_book.next
print(f"{name} is not in the library.")
# 查找书本
def find_book(self, name):
current_book = self.book_list
while current_book:
if current_book.name == name:
print(f"{name} is in the library.")
return
current_book = current_book.next
print(f"{name} is not in the library.")
# 借出书本
def borrow_book(self, name):
current_book = self.book_list
while current_book:
if current_book.name == name:
if current_book.is_borrowed:
print(f"{name} is already borrowed.")
else:
current_book.is_borrowed = True
print(f"{name} has been borrowed.")
return
current_book = current_book.next
print(f"{name} is not in the library.")
# 归还书本
def return_book(self, name):
current_book = self.book_list
while current_book:
if current_book.name == name:
if current_book.is_borrowed:
current_book.is_borrowed = False
print(f"{name} has been returned.")
else:
print(f"{name} is not borrowed.")
return
current_book = current_book.next
print(f"{name} is not in the library.")
```
现在,我们可以创建一个 `Library` 对象并使用它来管理书本了:
```python
library = Library()
# 添加书本
library.add_book("Python Crash Course", "Eric Matthes")
library.add_book("Fluent Python", "Luciano Ramalho")
library.add_book("Clean Code", "Robert C. Martin")
# 删除书本
library.remove_book("Fluent Python")
# 查找书本
library.find_book("Python Crash Course")
# 借出书本
library.borrow_book("Clean Code")
# 归还书本
library.return_book("Clean Code")
```
这就是一个简单的基于链表实现的图书管理系统。当然,这只是一个基本的版本,你可以根据自己的需求对其进行扩展和改进。