m0_67989888 2022-06-01 20:00 采纳率: 66.7%
浏览 86
已结题

用python怎么做呀

图书管理系统
问题描述:设计一个计算机管理系统完成图书管理基本业务。基本要求:
1、每种书的登记内容包括书号、书名、著作者、现存量和库存量;
2、对书号建立索引表(线性表)以提高查找效率;
3、系统主要功能如下:
(1)采编入库:新购一种书,确定书号后,登记到图书帐目表中,如果表中已有,则只将库存量增加;
(2)借阅:如果一种书的现存量大于0,则借出一本,登记借阅者的书证号和归还期限,改变现存量;
(3)归还:注销对借阅者的登记,改变该书的现存量。

  • 写回答

3条回答 默认 最新

  • 不会长胖的斜杠 后端领域新星创作者 2022-06-01 20:28
    关注

    楼上发的这个可以吗

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
  • 天际的海浪 2022-06-01 20:11
    关注
    评论
  • 请叫我问哥 Python领域新星创作者 2022-06-02 01:09
    关注

    不需要大改,你的代码里可以把status当做库存量。不过题目要求按线性表的方式存储,所以要建立字典,还有要记录借阅卡,所以再增加一个借阅卡的字典。

    import datetime
    
    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 = {}
        borrow_card = {}
        def start(self):
            self.books['ISO9001']=Book('好心眼巨人', '罗尔德达尔', 1, 'ISO9001')
            self.books['NFS8102']=Book('女巫', '罗尔德达尔', 1, 'NFS8102')
            self.books['PKA7844']=Book('昆虫记', '法布尔', 1, 'PKA7844')
            # 0:借出 1:存在
            # python 1
            # c 1
            # java 1
    
        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('欢迎下次使用...')
                    exit()
                else:
                    print('请输入正确选择')
                    continue
    
        def showAllBook(self):
            for book in self.books.values():
                print(book)
    
        def addBook(self):
            book_id = input('书号:')
            name = input('图书名称:')
            if self.books.get(book_id):
                self.books[book_id].status += 1
            else:
                self.books[book_id] = Book(name, input('作者:'), 1, input('存储位置:'))
            print('图书《%s》增加成功' % name)
     
        def checkBook(self, name): #name是返回值
            for book in self.books.values():
                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:#如果书籍的状态为0,说明此书已借出
                    print('书籍《%s》已经借出' % name)
                else:
                    card = input('请输入借书卡号:')
                    today = datetime.date.today()
                    if self.borrow_card.get():
                        self.borrow_card[card][name] = today + datetime.timedelta(30)
                    else:
                        self.borrow_card[card] = {name: today + datetime.timedelta(30)}
                    ret.status -= 1##借出后显示书籍的数量减一
                    print('书籍《%s》借阅成功' % name)
            else:
                print('书籍《%s》不存在' % name)
     
        def returnBook(self):
            name = input('归还图书名称:')
            ret = self.checkBook(name)
            if ret != None:
                #if ret.status == 0:
                card = input('请输入借书卡号:')
                del self.borrow_card[card][name]
                ret.status += 1
                print('书籍《%s》归还成功' % name)
                print(ret)
                #else:
                #    print('书籍《%s》未借出' % name)
            else:
                print('书籍《%s》不存在' % name)
    
    manager = BookManage()
    manager.Menu()
    
    评论
查看更多回答(2条)

报告相同问题?

问题事件

  • 系统已结题 6月10日
  • 已采纳回答 6月2日
  • 创建了问题 6月1日

悬赏问题

  • ¥15 怎么使请求通过cors
  • ¥15 WDM 驱动ACPI 相关疑问
  • ¥15 prism 跨窗体共享数据绑定 wpf
  • ¥15 hdl designer突然用不了系统的moduleware组件,请问有人遇到或者怎么解决吗?
  • ¥15 0基础计算机毕设,应该从哪开始?
  • ¥60 使用DKT40脑图划分ROI区域
  • ¥15 有偿解决C51单片机液晶屏12864显示问题
  • ¥15 IDEA构建失败?怎么搞
  • ¥15 求该题的simpson,牛顿科特斯matlab代码,越快越好
  • ¥35 如何编译arm板子的gcc