面对对象编程——用Python写一个图书管理系统

本文介绍如何使用Python进行面向对象编程,通过实例展示了创建一个简单的图书管理系统的代码和运行结果。

问题描述

    图书管理系统
    1.查询图书
    2.增加图书
    3.借阅图书
    4.归还图书
    5.退出系统

代码如下

# 书:书名,作者,状态,位置
# 管理系统:
class Book(object):

    def __init__(self, name, author, status, bookindex):
        self.name = name
        self.author = author
        self.status = status
        self.bookindex = bookindex

    def __str__(self):
        if self.status == 1:
            stats = '未借出'
        elif self.status == 0:
            stats = '已借出'
        else:
            stats = '状态异常'
        return '书名: 《%s》 作者: %s 状态: <%s> 位置: %s' \
               % (self.name, self.author, stats, self.bookindex)


class BookManage(object):
    books = []

    def start(self):
        self.books.append(Book('python', 'guido', 1, 'ISO9001'))
        self.books.append(Book('c', '谭浩强', 1, 'NFS8102'))
        self.books.append(Book('java', 'westos', 1, 'PKA7844'))
        # 0:借出 1:存在
        # python 1
 
### Python面向对象设计的图书馆管理系统示例 #### 类的设计与实现 为了构建一个功能完整的图书馆管理系统,需要定义几个核心类来描述系统中的实体及其行为。 #### 定义`Book`类 该类负责存储每本书的信息以及提供操作这些信息的方法。书籍具有基本属性如书名、作者和ISBN编号等,并且能够记录其借阅状态。 ```python class Book: def __init__(self, title, author, isbn): self.title = title # 书名 self.author = author # 作者 self.isbn = isbn # ISBN号 self.borrowed = False # 是否已借出标志,默认未借出 def borrow_book(self): """尝试借阅一本书""" if not self.borrowed: print(f"{self.title} 已成功借出.") self.borrowed = True else: print(f"对不起,《{self.title}》当前已被他人借走.") def return_book(self): """归还一本已经借出去的书""" if self.borrowed: print(f"{self.title} 已经被归还.") self.borrowed = False else: print(f"《{self.title}》并未处于借出状态.") ``` #### 创建`Library`类管理多本图书 此部分实现了对多个`Book`实例的操作集合体——即整个图书馆的功能逻辑;比如增加新书入库或是遍历显示现有藏书中每一项的具体详情等功能都由它完成。 ```python from typing import List class Library: def __init__(self): self.books: List[Book] = [] # 初始化为空列表 def add_book(self, book: Book): """向图书馆添加新的书籍.""" self.books.append(book) print(f"'{book.title}' 成功加入到图书馆收藏中.") def show_books(self): """打印所有可用书籍的信息.""" if len(self.books) == 0: print("目前没有可查阅的书籍.") else: for idx, b in enumerate(self.books, start=1): status = "已借出" if b.borrowed else "可供借阅" print(f"[{idx}] {b.title}, by {b.author}. ({status})") # 测试代码片段如下所示: if __name__ == "__main__": lib = Library() python_intro = Book('Python入门', '张三', '978-7-121-3645') ai_guide = Book('人工智能指南', '李四', '978-7-121-3646') lib.add_book(python_intro) lib.add_book(ai_guide) lib.show_books() python_intro.borrow_book() # 借阅'Python入门' python_intro.return_book() # 归还'Python入门' lib.show_books() ``` 上述代码展示了如何利用Python面向对象特性建立一个简易版的图书馆管理系统[^1][^2]。在这个例子中,不仅体现了面向对象编程的核心概念(如封装、继承),同时也展现了实际应用时可能遇到的一些具体场景模拟,例如借书流程控制等。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值