基于顺序表的图书信息
时间: 2023-12-30 22:04:33 浏览: 35
基于顺序表的图书信息是一种简单的数据结构,它可以用来存储和管理图书信息。以下是基于顺序表的图书信息的实现方法:
1. 定义一个包含图书信息的类Book,包括图书编号、图书名称、作者、出版社、出版日期等信息。
2. 定义一个包含Book对象的顺序表book_list,用于存储所有的图书信息。
3. 实现添加图书信息的方法add_book,将新的图书信息插入到顺序表的末尾。
4. 实现删除图书信息的方法delete_book,根据图书编号在顺序表中查找对应位置的图书信息,并将其删除。
5. 实现查找图书信息的方法find_book,根据图书编号或图书名称依次遍历顺序表中的元素,找到匹配的图书信息。
6. 实现修改图书信息的方法update_book,根据图书编号在顺序表中查找对应位置的图书信息,并将其更新为新的信息。
7. 实现显示所有图书信息的方法show_books,遍历顺序表中的所有元素,并逐个输出图书信息。
下面是Python代码实现:
```python
class Book:
def __init__(self, book_id, book_name, author, publisher, publish_date):
self.book_id = book_id
self.book_name = book_name
self.author = author
self.publisher = publisher
self.publish_date = publish_date
class BookList:
def __init__(self):
self.book_list = []
def add_book(self, book):
self.book_list.append(book)
def delete_book(self, book_id):
for book in self.book_list:
if book.book_id == book_id:
self.book_list.remove(book)
return True
return False
def find_book(self, keyword):
result = []
for book in self.book_list:
if keyword in book.book_id or keyword in book.book_name:
result.append(book)
return result
def update_book(self, book_id, new_book):
for i, book in enumerate(self.book_list):
if book.book_id == book_id:
self.book_list[i] = new_book
return True
return False
def show_books(self):
for book in self.book_list:
print("ID: {}, Name: {}, Author: {}, Publisher: {}, Publish Date: {}".format(
book.book_id, book.book_name, book.author, book.publisher, book.publish_date))
# 示例代码
book_list = BookList()
book_list.add_book(Book("001", "Python基础教程", "Magnus Lie Hetland", "人民邮电出版社", "2017-01-01"))
book_list.add_book(Book("002", "Python编程从入门到实践", "Eric Matthes", "人民邮电出版社", "2018-01-01"))
book_list.add_book(Book("003", "流畅的Python", "Luciano Ramalho", "人民邮电出版社", "2019-01-01"))
book_list.show_books()
# 输出:
# ID: 001, Name: Python基础教程, Author: Magnus Lie Hetland, Publisher: 人民邮电出版社, Publish Date: 2017-01-01
# ID: 002, Name: Python编程从入门到实践, Author: Eric Matthes, Publisher: 人民邮电出版社, Publish Date: 2018-01-01
# ID: 003, Name: 流畅的Python, Author: Luciano Ramalho, Publisher: 人民邮电出版社, Publish Date: 2019-01-01
book_list.delete_book("002")
book_list.show_books()
# 输出:
# ID: 001, Name: Python基础教程, Author: Magnus Lie Hetland, Publisher: 人民邮电出版社, Publish Date: 2017-01-01
# ID: 003, Name: 流畅的Python, Author: Luciano Ramalho, Publisher: 人民邮电出版社, Publish Date: 2019-01-01
result = book_list.find_book("Python")
for book in result:
print("ID: {}, Name: {}, Author: {}, Publisher: {}, Publish Date: {}".format(
book.book_id, book.book_name, book.author, book.publisher, book.publish_date))
# 输出:
# ID: 001, Name: Python基础教程, Author: Magnus Lie Hetland, Publisher: 人民邮电出版社, Publish Date: 2017-01-01
# ID: 003, Name: 流畅的Python, Author: Luciano Ramalho, Publisher: 人民邮电出版社, Publish Date: 2019-01-01
book_list.update_book("003", Book("003", "流畅的Python2", "Luciano Ramalho", "人民邮电出版社", "2020-01-01"))
book_list.show_books()
# 输出:
# ID: 001, Name: Python基础教程, Author: Magnus Lie Hetland, Publisher: 人民邮电出版社, Publish Date: 2017-01-01
# ID: 003, Name: 流畅的Python2, Author: Luciano Ramalho, Publisher: 人民邮电出版社, Publish Date: 2020-01-01
```