c++用链表实现图书管理系统
时间: 2023-05-29 22:07:07 浏览: 157
链表可以用来实现图书管理系统的书籍存储和查询功能。可以定义一个Book类来表示一本书,该类包含书名、作者、ISBN号、出版社等属性。定义一个BookList类来存储所有书籍,该类包含一个链表来存储所有的Book对象。BookList类可以提供添加、删除、查找、排序等功能。
示例代码:
```python
class Book:
def __init__(self, title, author, isbn, publisher):
self.title = title
self.author = author
self.isbn = isbn
self.publisher = publisher
class Node:
def __init__(self, data=None, next=None):
self.data = data
self.next = next
class BookList:
def __init__(self):
self.head = Node()
def add_book(self, book):
new_node = Node(book)
cur = self.head
while cur.next != None:
cur = cur.next
cur.next = new_node
def remove_book(self, isbn):
cur = self.head
while cur.next != None:
if cur.next.data.isbn == isbn:
cur.next = cur.next.next
return
cur = cur.next
print("Book not found.")
def find_book(self, isbn):
cur = self.head
while cur.next != None:
if cur.next.data.isbn == isbn:
return cur.next.data
cur = cur.next
print("Book not found.")
def display_books(self):
cur = self.head
while cur.next != None:
cur = cur.next
print("Title:", cur.data.title, "Author:", cur.data.author, "ISBN:", cur.data.isbn, "Publisher:", cur.data.publisher)
def sort_books(self):
books = []
cur = self.head
while cur.next != None:
books.append(cur.next.data)
cur = cur.next
books.sort(key=lambda book: book.title)
self.head = Node()
for book in books:
self.add_book(book)
```
使用示例:
```python
booklist = BookList()
book1 = Book("The Great Gatsby", "F. Scott Fitzgerald", "978-0743273565", "Scribner")
book2 = Book("To Kill a Mockingbird", "Harper Lee", "978-0446310789", "Grand Central Publishing")
book3 = Book("1984", "George Orwell", "978-0451524935", "Signet Classics")
booklist.add_book(book1)
booklist.add_book(book2)
booklist.add_book(book3)
booklist.display_books()
booklist.remove_book("978-0446310789")
booklist.display_books()
booklist.find_book("978-0743273565")
booklist.sort_books()
booklist.display_books()
```