【无标题】Python第二次作业

# 题目描述
# 设计一个简单的图书借阅管理系统。系统初始包含若干本图书,每本图书的信息包括:
# 书号(字符串)
# 书名(字符串)
# 作者(字符串)
# 库存数量(整数)
# 另外,系统需记录借阅记录(列表,存储每笔借阅的字典)。程序通过菜单实现以下功能:
# 查看所有图书:以表格形式显示所有图书的书号、书名、作者、库存。
# 借书:输入书号和借阅数量,如果库存足够则减少库存,并添加一条借阅记录
# (包含书号、书名、借阅数量、借阅日期(可简化为当天日期字符串))。如果库存不足,提示失败。
# 还书:输入书号和归还数量,增加对应图书的库存,并从借阅记录中删除相应的借阅
# (按先进先出原则,或简单按书号匹配)。若归还数量大于该书的借出总量,则提示错误。
# 查询某本书的借阅情况:输入书号,显示该书当前被借出的总数量和所有借阅记录的详情(借阅数量、借阅日期)。
# 退出系统:结束程序。
# 要求:
# 数据初始化:至少预置 3 本图书和若干条借阅记录(可手动在代码中定义)。
# 菜单循环,用户输入 1~5 选择功能。
# 对用户输入做简单的有效性检查(如书号不存在、数量非法等)。
# 参考代码
# python
# 初始化图书库存
import datetime

books = {
    "B001": {"name": "Python编程", "author": "张三", "stock": 5},
    "B002": {"name": "数据结构", "author": "李四", "stock": 3},
    "B003": {"name": "算法导论", "author": "王五", "stock": 0}
}

# 初始化借阅记录
borrow_records = [
    {"book_id": "B001", "book_name": "Python编程", "quantity": 1, "date": "2026-03-25"},
    {"book_id": "B002", "book_name": "数据结构", "quantity": 2, "date": "2026-03-26"}
]
str1="""
======================
1:查看所有图书
2:借书
3:还书
4:查询借阅情况
5:退出
=======================
"""
while True:
    choose=input("请输入数字1-5")
    if choose=="1":
        print(str1)
        for book_id in books:
            book=books[book_id]
            print(f"{book_id}{book['name']}{book['author']}{book['stock']}")
    elif choose == "2":
        print("借书")
        books_id = input("请输入书号")
        if books_id in books:
            stock = int(input("请输入借阅数量"))
            if stock > 0:
                book = books[books_id]
                if stock > book["stock"]:
                    print("当前库存不足,借书失败")
                else:
                    book["stock"] -= stock
                    day = datetime.date.today()
                    borrow_records.append({
                        "book_id": books_id,
                        "book_name": book["name"],
                        "quantity": stock,
                        "date": day
                        })
                    print(f"借书成功:{book["name"]},借出{stock}本")

            else:
                print("请输入正确的数量")
                continue
        else:
            print("该书不存在")
    elif choose == "3":
            print("还书")
            books_id = input("请输入书号")
            is_cunzai = False
            for i in borrow_records:
                if i["book_id"] == books_id:
                    is_cunzai = True
                    break
                else:
                    print("该书未被借阅")
            if is_cunzai:
                stock = int(input("请输入数量"))
                if stock > 0:
                    for i in borrow_records:
                        if i["book_id"] == books_id and i["quantity"] == stock:
                            books[books_id]["stock"] += stock
                            index = 0

                            for k in borrow_records:
                                if k["book_id"] == i["book_id"] and k["quantity"] == i["quantity"]:
                                    borrow_records.pop(index)
                                    index += 1
                                    break
                            print(f"{k["book_name"]}归还成功")
                else:
                    print("请输入正确的数量")
    elif choose == "4":
        print("查询借阅情况")
        books_id = input("请输入书号")
        is_cunzai = False
        for i in borrow_records:
            if i["book_id"] == books_id:
                is_cunzai = True
                break
            else:
                print("该书未被借阅")
        if is_cunzai:
            sum = 0
            for i in borrow_records:
                if i["book_id"] == books_id:
                    print(i["book_name"], i["quantity"], i["date"])
                    sum += i["quantity"]
            print(f"借出总数为{sum}")
    elif choose=="5":
        print("退出成功")
        break
    else:
        print("输入错误,请输入1-5之间的数字!")
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值