本关任务:已知每种图书包括三部分信息:isbn(书号)、书名和价格,现在要求编写程序,
时间: 2023-05-09 09:03:41 浏览: 197
为了解决这个问题,我们需要先设计一个数据结构来存储每种图书的信息。一个合适的数据结构是一个哈希表。哈希表是一种以键值对形式存储数据的数据结构,可以以O(1)的时间复杂度进行查找、插入和删除操作。
我们可以将图书的ISBN作为键,将书名和价格组成一个元组作为值,然后将所有的键值对存储在哈希表中。这样,我们就可以通过ISBN快速地查找、插入和删除图书的信息。
接下来,我们需要编写程序来实现图书信息的输入和输出。我们可以使用Python编程语言来实现这个程序。首先,我们需要定义一个字典来存储所有的图书信息:
books = {}
接着,我们可以编写一个函数来添加新的图书信息:
def add_book(isbn, title, price):
books[isbn] = (title, price)
然后,我们可以编写一个函数来删除已有的图书信息:
def delete_book(isbn):
del books[isbn]
最后,我们还需要编写一个函数来输出所有的图书信息:
def print_books():
for isbn, (title, price) in books.items():
print("ISBN:", isbn)
print("Title:", title)
print("Price:", price)
这样,我们就能够方便地管理和操作所有的图书信息了。
相关问题
已知每种图书包括三部分信息:ISBN(书号)、书名和价格,现在要求编写程序,用顺序表存储图书信息,实现对图书信息的管理
(1)添加图书信息
(2)删除图书信息
(3)查找图书信息
(4)修改图书信息
(5)显示所有图书信息
具体实现如下:
```python
# 定义图书结构体
class Book:
def __init__(self, isbn, name, price):
self.isbn = isbn
self.name = name
self.price = price
# 定义顺序表类
class SeqList:
def __init__(self):
self.data = []
self.length = 0
# 添加图书信息
def add_book(self, book):
self.data.append(book)
self.length += 1
# 删除图书信息
def delete_book(self, isbn):
for i in range(self.length):
if self.data[i].isbn == isbn:
del self.data[i]
self.length -= 1
return True
return False
# 查找图书信息
def find_book(self, isbn):
for i in range(self.length):
if self.data[i].isbn == isbn:
return self.data[i]
return None
# 修改图书信息
def modify_book(self, isbn, name, price):
book = self.find_book(isbn)
if book:
book.name = name
book.price = price
return True
return False
# 显示所有图书信息
def show_books(self):
for i in range(self.length):
print("ISBN: %s, 书名: %s, 价格: %s" % (self.data[i].isbn, self.data[i].name, self.data[i].price))
# 测试
if __name__ == '__main__':
list = SeqList()
# 添加图书信息
book1 = Book("9787115428028", "Python编程从入门到实践", 79.80)
book2 = Book("9787115427656", "Python核心编程", 89.00)
book3 = Book("9787115425676", "Python网络编程", 69.00)
list.add_book(book1)
list.add_book(book2)
list.add_book(book3)
list.show_books()
# 删除图书信息
list.delete_book("9787115427656")
list.show_books()
# 查找图书信息
book = list.find_book("9787115428028")
if book:
print("找到了该图书,书名为:%s,价格为:%s" % (book.name, book.price))
else:
print("未找到该图书")
# 修改图书信息
if list.modify_book("9787115428028", "Python编程从入门到精通", 99.00):
print("修改成功")
else:
print("修改失败")
list.show_books()
```
输出结果:
```
ISBN: 9787115428028, 书名: Python编程从入门到实践, 价格: 79.8
ISBN: 9787115427656, 书名: Python核心编程, 价格: 89.0
ISBN: 9787115425676, 书名: Python网络编程, 价格: 69.0
ISBN: 9787115428028, 书名: Python编程从入门到实践, 价格: 79.8
ISBN: 9787115425676, 书名: Python网络编程, 价格: 69.0
找到了该图书,书名为:Python编程从入门到实践,价格为:79.8
修改成功
ISBN: 9787115428028, 书名: Python编程从入门到精通, 价格: 99.0
ISBN: 9787115425676, 书名: Python网络编程, 价格: 69.0
```
阅读全文