定义一个包含图书信息(书号、书名、价格)的顺序表,包括以下10项常用的基本操作:图书信息表的创建和输出、排序、修改、逆序存储、最贵图书的查找、最爱图书的查找、最佳位置图书的查找、新图书的入库、旧图书的出库、图书去重。(上传运行结果截图)
时间: 2024-09-18 14:16:24 浏览: 74
1.基于顺序存储结构的图书信息表的创建和输出 2..基于顺序存储结构的图书信息表的排序 3.基于顺序存储结构的图书信息表的修改
为了创建一个包含图书信息的顺序表,我们通常会选择结构体或类来表示每本书,并定义一个数组或列表来存储这些对象。这里是一个简单的Python示例:
```python
class Book:
def __init__(self, isbn, title, price):
self.isbn = isbn
self.title = title
self.price = price
class Library:
def __init__(self):
self.books = []
# 创建并输出图书
def add_book(self, isbn, title, price):
new_book = Book(isbn, title, price)
self.books.append(new_book)
print(f"添加了新书:{isbn}, {title} - {price}")
# 输出所有图书
def list_books(self):
for i, book in enumerate(self.books):
print(f"{i+1}. {book.isbn}: {book.title} - {book.price}")
# 排序图书
def sort_books(self, key='price'):
self.books.sort(key=lambda x: getattr(x, key))
# 修改图书信息
def update_book_price(self, isbn, new_price):
for book in self.books:
if book.isbn == isbn:
book.price = new_price
break
# 逆序存储
def reverse_storage(self):
self.books.reverse()
# 查找最贵/最爱/最佳位置的图书
def find_most_expensive(self):
return max(self.books, key=lambda x: x.price)
def find_favourite(self, criteria): # 这里假设有一个函数返回书籍是否是最爱
pass # 实现根据特定条件筛选最爱图书
def find_best_position(self, isbn): # 根据某个标准判断最佳位置,例如按价格从高到低排序后的第一个位置
sorted_books = sorted(self.books, key=lambda x: x.price, reverse=True)
return sorted_books[0].isbn if sorted_books and sorted_books[0].isbn == isbn else None
# 新图书入库/旧图书出库
def add_new_book(self, isbn, title, price):
self.add_book(isbn, title, price)
def remove_book(self, isbn):
self.books = [book for book in self.books if book.isbn != isbn]
# 图书去重
def remove_duplicates(self):
self.books = list(set(self.books)) # 使用集合去除重复元素,注意这是丢失顺序的
# 示例操作
library = Library()
library.add_book('001', 'Python入门', 49.99)
library.list_books()
```
这只是一个基础的例子,实际应用中可能需要根据需求扩展更多功能。上传运行结果截图通常是针对特定平台和环境的,如果你是在命令行环境中运行这段代码,就没有实际的图片可以截取。你可以尝试运行上述代码并观察控制台输出的结果。
阅读全文