python简单图书管理系统

1,创建图书类,包括它的打印函数__str__

2,建立图书管理类,用一个while True循环,并根据用户输入的不用选项来执行不同的函数。

3,初始化图书管理类,并调用它的Menu方法。

代码如下:

复制代码
# 图书管理系统


class Book():
    stu = None

    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:
            self.stu = '未借出'
        elif self.status == 0:
            self.stu = '已借出'
        else:
            self.stu = '状态异常'
        return '书名:《{}》,作者:{},状态:<{}>,位置:{}'.format(self.name, self.author, self.stu,
                                                            self.bookindex)


class BookManage():
    books = []

    def start(self):
        self.books.append(Book('斗罗大陆', '唐家三少', 1, 'ISO9001'))
        self.books.append(Book('大主宰', '天蚕土豆', 1, 'NFS8102'))
        self.books.append(Book('完美世界', '辰东', 1, 'PKA7844'))

    def Menu(self):
        self.start()
        while True:
            print("""
                    图书管理系统
            1.查询图书
            2.增加图书
            3.借阅图书
            4.归还图书
            5.退出系统
            """)
            choice = input("请选择:")

            if choice == '1':
                self.showAllBook()
            elif choice == '2':
                self.addBook()
            elif choice == '3':
                self.borrowBook()
            elif choice == '4':
                self.returnBook()
            elif choice == '5':
                print('欢迎下次使用...')
                break
            else:
                print('请输入正确选择')

    def showAllBook(self):
        for book in self.books:
            print(book)

    def addBook(self):
        name = input('图书名字:')
        author = input('作者:')
        bookindex = input('位置:')
        self.books.append(Book(name, author, 1, bookindex))
        print('图书《{}》增加成功'.format(name))

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

    def borrowBook(self):
        name = input('借阅图书的名字:')
        ret = self.checkBook(name)

        if ret:
            if ret.status == 0:
                print(f'书籍《{name}》已借出')
            else:
                ret.status = 0
                print(f'书籍《{name}》借阅成功')
        else:
            print(f'书籍《{name}》不存在')

    def returnBook(self):
        name = input('归还图书的名字:')
        ret = self.checkBook(name)

        if ret:
            if ret.status == 0:
                ret.status = 1
                print(f'书籍《{name}》归还成功')
            else:
                print(f'书籍《{name}》未借出')
        else:
            print(f'书籍《{name}》不存在')



manager = BookManage()
manager.Menu()
复制代码

 

posted @   天才九少  阅读(432)  评论(0编辑  收藏  举报
编辑推荐:
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
阅读排行:
· winform 绘制太阳,地球,月球 运作规律
· 超详细:普通电脑也行Windows部署deepseek R1训练数据并当服务器共享给他人
· 上周热点回顾(3.3-3.9)
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· AI 智能体引爆开源社区「GitHub 热点速览」
点击右上角即可分享
微信分享提示