图书信息管理系统,图书信息的增加,删除,修改,查找,排序,计算
时间: 2023-12-14 14:03:16 浏览: 16
好的,以下是一个简单的 Python 实现图书信息管理系统的示例代码。
```python
class Book:
def __init__(self, title, author, publisher, price, year):
self.title = title
self.author = author
self.publisher = publisher
self.price = price
self.year = year
class Library:
def __init__(self):
self.books = []
def add_book(self, book):
self.books.append(book)
def remove_book(self, title):
for book in self.books:
if book.title == title:
self.books.remove(book)
break
def update_book(self, title, author, publisher, price, year):
for book in self.books:
if book.title == title:
book.author = author
book.publisher = publisher
book.price = price
book.year = year
break
def search_book(self, title):
for book in self.books:
if book.title == title:
return book
return None
def sort_books(self, key):
self.books.sort(key=lambda x: getattr(x, key))
def calculate_total_price(self):
return sum([book.price for book in self.books])
```
该示例代码包含两个类:`Book` 类用于表示图书信息,`Library` 类用于管理所有的图书信息。
`Book` 类有五个属性:`title`、`author`、`publisher`、`price` 和 `year`,分别表示图书的标题、作者、出版社、价格和出版年份。
`Library` 类有一个属性 `books`,是一个存储所有图书信息的列表。该类提供了以下方法:
- `add_book(book)`:添加一本新的图书信息。
- `remove_book(title)`:根据图书标题删除一本图书信息。
- `update_book(title, author, publisher, price, year)`:根据图书标题更新一本图书信息的其他属性。
- `search_book(title)`:根据图书标题查找并返回一本图书信息。
- `sort_books(key)`:按照指定属性排序所有图书信息,`key` 参数可以为 `title`、`author`、`publisher`、`price` 或 `year`。
- `calculate_total_price()`:计算所有图书的总价格。
使用示例:
```python
book1 = Book("Python入门教程", "张三", "清华大学出版社", 49.99, 2020)
book2 = Book("Java编程思想", "李四", "人民邮电出版社", 89.99, 2019)
book3 = Book("C++ Primer", "王五", "机械工业出版社", 99.99, 2018)
library = Library()
library.add_book(book1)
library.add_book(book2)
library.add_book(book3)
print("所有图书信息:")
for book in library.books:
print(book.title, book.author, book.publisher, book.price, book.year)
library.remove_book("C++ Primer")
library.update_book("Python入门教程", "张三", "机械工业出版社", 59.99, 2021)
book = library.search_book("Java编程思想")
print("查找到的图书信息:", book.title, book.author, book.publisher, book.price, book.year)
library.sort_books("price")
print("按价格排序后的图书信息:")
for book in library.books:
print(book.title, book.author, book.publisher, book.price, book.year)
total_price = library.calculate_total_price()
print("所有图书的总价格:", total_price)
```
输出结果:
```
所有图书信息:
Python入门教程 张三 清华大学出版社 49.99 2020
Java编程思想 李四 人民邮电出版社 89.99 2019
C++ Primer 王五 机械工业出版社 99.99 2018
查找到的图书信息: Java编程思想 李四 人民邮电出版社 89.99 2019
按价格排序后的图书信息:
Python入门教程 张三 机械工业出版社 59.99 2021
Java编程思想 李四 人民邮电出版社 89.99 2019
所有图书的总价格: 149.98
```