用链表实现图书管理系统
时间: 2023-12-23 22:04:41 浏览: 164
C语言期末大作业-用链表实现图书管理系统
5星 · 资源好评率100%
可以使用链表来实现一个简单的图书管理系统。每本书可以表示为一个节点,节点包含图书的相关信息,并且通过链表的方式链接起来。
首先,我们可以定义一个图书类,该类包含以下属性:
- 书名
- 作者
- 出版社
- ISBN号
- 是否借出
然后,我们定义一个链表类,该类包含以下属性和方法:
- 头节点:指向第一个图书节点
- 尾节点:指向最后一个图书节点
- 添加图书:在链表末尾添加一个新的图书节点
- 删除图书:根据ISBN号找到并删除对应的图书节点
- 查找图书:根据书名或作者查找对应的图书节点
- 借出图书:根据ISBN号将对应的图书节点的借出状态设置为已借出
- 归还图书:根据ISBN号将对应的图书节点的借出状态设置为未借出
- 展示所有图书:遍历链表并打印所有图书的信息
下面是一个示例的代码实现:
```python
class Book:
def __init__(self, title, author, publisher, isbn):
self.title = title
self.author = author
self.publisher = publisher
self.isbn = isbn
self.borrowed = False
class LinkedList:
def __init__(self):
self.head = None
self.tail = None
def add_book(self, book):
if not self.head:
self.head = book
self.tail = book
else:
self.tail.next = book
self.tail = book
def remove_book(self, isbn):
current = self.head
previous = None
while current:
if current.isbn == isbn:
if current == self.head:
self.head = current.next
else:
previous.next = current.next
if current == self.tail:
self.tail = previous
break
previous = current
current = current.next
def find_book(self, keyword):
matches = []
current = self.head
while current:
if keyword in [current.title, current.author]:
matches.append(current)
current = current.next
return matches
def borrow_book(self, isbn):
current = self.head
while current:
if current.isbn == isbn:
current.borrowed = True
break
current = current.next
def return_book(self, isbn):
current = self.head
while current:
if current.isbn == isbn:
current.borrowed = False
break
current = current.next
def display_books(self):
current = self.head
while current:
print(f'Title: {current.title}')
print(f'Author: {current.author}')
print(f'Publisher: {current.publisher}')
print(f'ISBN: {current.isbn}')
print(f'Borrowed: {"Yes" if current.borrowed else "No"}')
print('---------------')
current = current.next
```
使用这个链表实现的图书管理系统,你可以按需添加、删除、查找、借出、归还和展示图书。你可以根据需要自定义其他方法或功能来满足你的具体需求。
阅读全文