python图书管理系统

更新时间:2020-09-28 13:44:57点击次数:329次
图书管理系统
一、使用python面向对象实现一个简单的图书管理系统,要求如下:
1)图书入库,包括图书id、名称、图书数量
2)图书查询,按照输入的图书名称进行查找
3)图书借阅,模拟图书馆借阅书籍的逻辑

#图书管理系统增删改查
class Book(object):
    def __init__(self, id,name,status, amount):
        self.id = id
        self.name = name
        self.status = status
        self.amount= amount

    def __str__(self):
        if self.status == 1:
            stats = '未借出'
        elif self.status == 0:
            stats = '已借出'
        else:
            stats = '状态异常'
        return '编号: 《%s》 名称: %s 状态: <%s> 数量: %s' \
               % (self.id, self.name, stats, self.amount)


class BookManage(object):
    books = []

    def start(self):
        self.books.append(Book(1,'python', 1, '290'))
        self.books.append(Book(2,'c', 1, '452'))
        self.books.append(Book(3,'java',  1, '172'))


    def Menu(self):
        self.start()
        while True:
            print("""
                        图书管理系统
        1.查询图书
        2.查询单个图书
        3.增加图书
        4.借阅图书
        5.归还图书
        6.退出系统
        """)
            choice = input('请选择:')
            if choice == '1':
                self.showAllBook()
            elif choice == '2':
                self.showBook()
            elif choice == '3':
                self.addBook()
            elif choice == '4':
                self.borrowBook()
            elif choice == '5':
                self.returnBook()
            elif choice == '6':
                print('欢迎下次使用...')
                exit()
            else:
                print('请输入正确选择')
                continue
#1、查询图书
    def showAllBook(self):
        for book in self.books:
            print(book)
#2、 查询单个图书
    def addBook(self):
        name = input('请输入要查询图书名称:')
        for book in self.books:
            if name==book.name:
                print('编号: %d 名称: 《%s》 状态: %d 数量: %d'
                      % (book.id,book.name,book.status,book.amount))
                return book
            else:
                print('《%s》没有找到!' % name)
                return None
# 3、增加图书

    def addBook(self):
        id  = int (input('请输入编号'))

        self.books.append(Book(id, input('名称:'), 1, input('存储数量:')))
        print('图书《%》增加成功' % id)
# 4、借阅图书
    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)
        print(ret)

        if ret != None:
            if ret.status == 0:
                print('书籍《%s》已经借出' % name)
            else:
                ret.status = 0
                print('书籍《%s》借阅成功' % name)
        else:
            print('书籍《%d》不存在' % name)

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

        if ret != None:
            if ret.status == 0:
                ret.status = 1
                print('书籍《%s》归还成功' % name)
                print(ret)
            else:
                print('书籍《%s》未借出' % name)
        else:
            print('书籍《%d》不存在' % name)

manager = BookManage()
manager.Menu()

本站文章版权归原作者及原出处所有 。内容为作者个人观点, 并不代表本站赞同其观点和对其真实性负责,本站只提供参考并不构成任何投资及应用建议。本站是一个个人学习交流的平台,网站上部分文章为转载,并不用于任何商业目的,我们已经尽可能的对作者和来源进行了通告,但是能力有限或疏忽,造成漏登,请及时联系我们,我们将根据著作权人的要求,立即更正或者删除有关内容。本站拥有对此声明的最终解释权。

  • 项目经理 点击这里给我发消息
  • 项目经理 点击这里给我发消息
  • 项目经理 点击这里给我发消息
  • 项目经理 点击这里给我发消息