【学习案例】图书管理系统

图书管理系统代码与逻辑

写完这个你可能会体会到函数的作用:

import time
print("=" * 54)
print("-" * 20 + "图书管理系统V1.3" + "-" * 20)
print("=" * 54)
books = {'西游记': 5,
         '新三国': 8,
         "水浒传": 3,
         "红楼梦": 2
         }
# 学生借书容器
student_books = {}

while True:
    time.sleep(1)
    choice = input(
        """
        请输入您要操作的功能:
            1、查询书籍;
            2、借书;
            3、还书;
            4、显示所有书籍;
            5、退出系统
>>>>
        """
    )

    # 根据书名查询具体书籍
    if choice=='1':
        print("-" * 20 + "查询书籍" + "-" * 20)
        username=input("请输入用户名:")
        if username in student_books:
            print("书名\t\t\t\数量")
            for bookInfo in student_books[username].items():
                print(bookInfo[0]+"\t\t\t"+str(bookInfo[1]))


        else:
            print("您并没有借过书")

        # select_book=input("请输入您要查询的书名:")
        # # 判断书库中是否存在该书
        # if select_book in books:
        #     print("您要查询的书籍是:{}-----{}".format(select_book,books[select_book]))
        # else:
        #     print("没有查询到您要的书籍.")

    # 借书
    elif choice=='2':
        username=input("请输入用户名:")
        if username in student_books:  # 判断该用户是否存在于student_books中,就在原来的基础上添加新书
            borrow_book = input("请输入您想要借的书的名字:")
            # 判断库存中是否有你想要借阅的书籍
            if borrow_book in books:  # 如果书库中有这本书,我们判断书库中书的数量
                if books[borrow_book]>=1:

                    if borrow_book in student_books[username]:  # 如果借过,那就在原来这本书的基础上加1,借书成功;
                        # 库存数量减1
                        books[borrow_book] -= 1
                        # 借书容器中加1
                        student_books[username][borrow_book] += 1
                        print("借书成功1")
                    else:  # 否则为该用户的书库添加一本新书
                        # 更改库存数量
                        books[borrow_book] -= 1
                        # 借书容器中添加新书
                        student_books[username][borrow_book] = 1
                        print("借书成功2")
                else:
                    print("你要的书库存不足")
            else:
                print("书库中没有找到你想要的书")

        else:  # 该用户从来没有借过书,就创建一个新的用户字典,然后将这个用户放入其中
                student_books[username]={}
                borrow_book=input("请输入您想要借的书的名字:")
                if borrow_book in books:  # 查询到了要借的书
                    if books[borrow_book]>=1:  # 可以进行借书
                        # 更改库存数量
                        books[borrow_book]-=1
                        # 更改借书容器
                        student_books[username][borrow_book]=1
                        print("借书成功3")

                    else:
                        print("您查找的书库存不足.")
                else:
                    print("没有找到您要借阅的书籍")


    # 还书
    elif choice=='3':
        username=input("请输入用户名:")
        # 判断该用户是否借过书,如果借过书,打印多有还没归还的书籍;如果,没有借过书,打印一句话提醒用户
        if username in student_books:
            print("您暂时还没归还的书有:")
            for book in student_books[username].items():
                print(book[0]+"\t\t\t"+str(book[1]))
            return_book=input("请输入您要归还的书名:")
            if return_book in student_books[username]:  # 如果该书在还未归还的书中,就去归还
                if student_books[username][return_book]==1:
                    student_books[username].pop(return_book)
                    books[return_book]+=1
                    print("还书成功1")
                else:
                    student_books[username][return_book]-=1
                    books[return_book] += 1
                    print("还书成功2")
                if len(student_books[username])==0:
                    del student_books[username]

            else:  # 如果不在还没归还的书目中,提醒用户
                print("您并没有借过这本书.")
        else:
            print("您还没有借过书.")


    # 显示所有图书
    elif choice=='4':
        print("名称\t\t\t数量")
        for key, value in books.items():
            print("{}\t\t\t{}".format(key, value))

    elif choice=='5':
        # 退出系统
        answer = input("您确定要退出系统吗?[y/n]")
        if answer == 'y' or answer == 'Y':
            print("正在退出系统,请稍后...")
            time.sleep(1)
            print("欢迎下次使用,谢谢!")
            break
    else:
        print("没有您输入的操作,请重新输入:")
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值