Python实现简易图书馆借阅系统:从需求到代码详解

Ruby
Ruby
发布时间:2026-10-15| 5人浏览过
原创

本文介绍如何使用Python编写一个简易的图书馆借阅系统。通过定义Book和BookManager类,实现书籍信息的存储、查询、借出与归还功能。文章结合具体案例,详细解析代码逻辑,帮助初学者掌握面向对象编程在小型项目中的应用。

项目背景与需求分析

本次实践任务将结合人文关怀,构建一个图书管理程序。首先,我们需要明确项目的核心需求,由项目发起人阐述其初衷与目标。

朋作为大学班级的文娱委员,观察到同学们普遍希望丰富课余阅读生活,但往往面临选书困难的问题。

经过深思熟虑,朋发起了一项“流浪图书”计划:鼓励同学们捐赠闲置的优质书籍,建立一个小型精品图书库,供同学们免费借阅和流转。

为了有效管理这一计划中的书籍借阅状态,朋需要一个简易的图书管理系统。该系统需具备以下核心功能:

Python代码实现详解

具体实现代码如下:

class Book:
    def __init__(self,name,author,recommend,state=0):
        self.name= name
        self.author= author
        self.recommend= recommend
        self.state= state

    def __str__(self):
        if self.state==0:
            status='未借出'
        elif self.state==1:
            status='已借出'
        return '名称:《%s》 作者:%s 推荐语: %s状态:%s '    %(self.name,self.author,self.recommend,status)

class BookManager:
    books=[]

    def check_book(self,name):
        for book in self.books:
            if book.name ==name:
                return book
        else:
            return None

    def __init__(self):
        book1 = Book('惶然录','费尔南多·佩索阿','一个迷失方向且濒于崩溃的灵魂的自我启示,一首对默默无闻、失败、智慧、困难和沉默的赞美诗。')
        book2 = Book('以箭为翅','简媜','调和空灵文风与禅宗境界,刻画人间之缘起缘灭。像一条柔韧的绳子,情这个字,不知勒痛多少人的心肉。')
        book3 = Book('心是孤独的猎手','卡森·麦卡勒斯','我们渴望倾诉,却从未倾听。',1)
        self.books.append(book1)
        self.books.append(book2)
        self.books.append(book3)

    def manu(self):
        print('欢迎使用流浪图书管理系统,每本沉默的好书都是一座流浪的岛屿,希望你有缘发现并着陆,为精神家园找到一片栖息地。\n')
        while True:
         choice = int(input('''欢迎使用本图书馆借阅系统!请选择您需要的服务:
                        1.查询所有书籍
                        2.添加书籍
                        3.借阅书籍
                        4.归还书籍
                        5.退出系统
                        请输入数字选择对应的功能:
         '''))
         if choice ==1:
            self.show_all_book()
            #显示每本书的信息
         elif choice ==2:
            self.add_book()
         elif choice ==3:
            self.lend_book()
            #借阅书籍
         elif choice ==4:
            self.return_book()
            #归还书籍
         elif choice ==5:
            print('感谢使用本系统,学海无涯,祝君成功!')
            break
    def show_all_book(self):
        for book in self.books:
            print(book)

    def add_book(self):
        new_name = input('请输入书籍名称:')
        new_author =  input('请输入作者名称:')
        new_comment = input('请输入书籍推荐语:')
        # 获取书籍相应信息,赋值给属性
        new_book = Book(new_name, new_author, new_comment)
        # 传入参数,创建Book类实例new_book 
        self.books.append(new_book)
        # 将new_book添加到列表books里
        print('书籍录入成功!\n')

    def lend_book(self):
        borrow_name =input('请输入书籍名称:')
        res = self.check_book(borrow_name)
        if res!=None:
                if res.state == 1:
                    print('书已经被借出去啦,下次再来吧')
                else:
                    print('您可以借走本书')
                    res.state ==1
        else:
            print('本图书馆没有这本书呢')

    def return_book(self):
        return_name =input('请输入书籍名称:')
        res = self.check_book(return_name)
        if res!=None:
            if res.state ==0:
                print('本书还未借出哦!')
            else:
                print('归还成功!')
        else:
            print('本图书馆没有这本书哦')

manager =BookManager()
manager.manu()

以上即为本文的全部内容,希望能为读者的学习提供有益参考。欢迎继续支持本站,获取更多技术分享。

相关标签:

免责声明:本文内容仅供参考,不代表本站观点。转载或引用请注明出处。

Python 相关产品和应用

全部下载
Selenium

Selenium

4.51.0 · Windows

用于浏览器自动化和 Web 测试的 Python 工具。

scikit-learn

scikit-learn

1.9.1 · Windows

常用 Python 机器学习算法与模型评估工具库。

Black

Black

26.10.1 · Windows

强调一致性的 Python 自动代码格式化工具。

Ruff

Ruff

0.17.1 · macOS

由 Rust 编写的高速 Python 代码检查和格式化工具。

pytest

pytest

9.1.1 · Windows

简洁而强大的 Python 自动化测试框架。

FastAPI

FastAPI

0.146.0 · Windows

高性能 Python API 框架,支持类型提示和自动接口文档。

Flask

Flask

3.1.3 · Windows

轻量灵活的 Python Web 应用框架。

Django

Django

6.1.2 · Windows

成熟的 Python Web 框架,适合构建内容站点和业务系统。

Spyder

Spyder

6.1.7 · Windows

面向科学计算与数据分析的 Python 集成开发环境。

SciPy

SciPy

1.18.1 · Windows

面向科学、工程和技术计算的 Python 算法库。