题目描述设计一个简单的图书借阅管理系统。系统初始包含若干本图书每本图书的信息包括书号字符串书名字符串作者字符串库存数量整数另外系统需记录借阅记录列表存储每笔借阅的字典。程序通过菜单实现以下功能查看所有图书以表格形式显示所有图书的书号、书名、作者、库存。借书输入书号和借阅数量如果库存足够则减少库存并添加一条借阅记录包含书号、书名、借阅数量、借阅日期可简化为当天日期字符串。如果库存不足提示失败。还书输入书号和归还数量增加对应图书的库存并从借阅记录中删除相应的借阅按先进先出原则或简单按书号匹配。若归还数量大于该书的借出总量则提示错误。查询某本书的借阅情况输入书号显示该书当前被借出的总数量和所有借阅记录的详情借阅数量、借阅日期。退出系统结束程序。要求数据初始化至少预置 3 本图书和若干条借阅记录可手动在代码中定义。菜单循环用户输入 1~5 选择功能。对用户输入做简单的有效性检查如书号不存在、数量非法等。参考代码python# 初始化图书库存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}]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、退出程序 请选择(1-5): --------------------------- while True: print(str1) choose input(请输入编号(1-5):) if choose 1: print(f{书号},{书名},{作者},{库存数量}) for book_id, info in books.items(): print(f{book_id},{info[name]},{info[author]},{info[stock]}) elif choose 2: book_id input(请输入要借阅的书号) if book_id not in books: print(该图书不存在) continue while True: quantity_str input(请输入借阅数量) if quantity_str: quantity int(quantity_str) if quantity 0: break print(请输入大于0的整数!) book_info books[book_id] if book_info[stock] quantity: print(借书失败) continue books[book_id][stock] - quantity new_record { book_id: book_id, book_name: book_info[name], quantity: quantity } borrow_records.append(new_record) print(f借书成功已借阅《{book_info[name]}》{quantity}本) elif choose 3: book_id input(请输入要归还的书号) if book_id not in books: print(该图书不存在) continue total_borrowed sum([r[quantity] for r in borrow_records if r[book_id] book_id]) if total_borrowed 0: print(无记录) continue while True: quantity_str input(请输入归还数量) if not quantity_str: print(请输入正确的数字) continue quantity int(quantity_str) if quantity 0: break print(数量必须大于0!) books[book_id][stock] quantity quantity_1 quantity new_records [] for record in borrow_records: if record[book_id] book_id and quantity_1 0: if record[quantity] quantity_1: quantity_1 - record[quantity] else: record[quantity] - quantity_1 quantity_1 0 new_records.append(record) else: new_records.append(record) borrow_records[:] new_records print(f还书成功《{books[book_id][name]}》已归还{quantity}本) elif choose 4: book_id input(请输入书号) if book_id not in books: print(该图书不存在) continue book_records [] r for r in borrow_records: if r[book_id] book_id: total 0 print(f《{books[book_id][name]}》 当前借出总数{total}) if not book_records: print(暂无借阅记录) else: print(f{借阅数量}{借阅日期}) for r in book_records: print(f{r[quantity]}本{r[date]}) elif choose 5: print(系统已退出) break else: print(输请输入1-5之间的数字!)欢迎提出我的不足和我讨论如何优化