已知每种图书包括三部分信息:ISBN(书号)、书名和价格,现在要求编写程序,用顺序表存储图书信息,实现对图书信息的管理
时间: 2024-05-08 09:15:18 浏览: 122
(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
```
阅读全文