用类写一个图书管理系统
时间: 2023-11-30 22:19:24 浏览: 21
下面是一个简单的图书管理系统的类定义示例:
```python
class Book:
def __init__(self, title, author, isbn):
self.title = title
self.author = author
self.isbn = isbn
self.checked_out = False
def __str__(self):
return f"{self.title} by {self.author}"
def check_out(self):
if self.checked_out:
print("This book is already checked out.")
else:
self.checked_out = True
print("Book checked out successfully.")
def check_in(self):
if not self.checked_out:
print("This book is already checked in.")
else:
self.checked_out = False
print("Book checked in successfully.")
class Library:
def __init__(self):
self.books = []
def add_book(self, book):
self.books.append(book)
def remove_book(self, book):
self.books.remove(book)
def search_books(self, title=None, author=None, isbn=None):
results = []
for book in self.books:
if (not title or book.title.lower().startswith(title.lower())) and \
(not author or book.author.lower().startswith(author.lower())) and \
(not isbn or book.isbn == isbn):
results.append(book)
return results
```
在上面的代码中,我们定义了两个类:`Book` 和 `Library`。`Book` 类表示一本书,包含了书的标题、作者、ISBN 号和当前是否已被借出。`Library` 类表示一个图书馆,包含了一组书籍,并提供了添加、删除和搜索书籍的功能。
我们可以使用以下代码创建一些书籍,并将其添加到图书馆中:
```python
book1 = Book("The Great Gatsby", "F. Scott Fitzgerald", "978-0141182636")
book2 = Book("To Kill a Mockingbird", "Harper Lee", "978-0060935467")
book3 = Book("1984", "George Orwell", "978-0451524935")
library = Library()
library.add_book(book1)
library.add_book(book2)
library.add_book(book3)
```
然后,我们可以使用以下代码搜索图书馆中的书籍,并对其中一本书进行借出和归还操作:
```python
# 搜索书籍
results = library.search_books(title="the great")
for book in results:
print(book)
# 借出书籍
book1.check_out()
# 归还书籍
book1.check_in()
```
相关推荐
![rar](https://img-home.csdnimg.cn/images/20210720083606.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![rar](https://img-home.csdnimg.cn/images/20210720083606.png)