Python图书借阅管理系统实战
# 题目描述# 设计一个简单的图书借阅管理系统。系统初始包含若干本图书每本图书的信息包括# 书号字符串# 书名字符串# 作者字符串# 库存数量整数# 另外系统需记录借阅记录列表存储每笔借阅的字典。程序通过菜单实现以下功能# 查看所有图书以表格形式显示所有图书的书号、书名、作者、库存。# 借书输入书号和借阅数量如果库存足够则减少库存并添加一条借阅记录包含书号、书名、借阅数量、借阅日期可简化为当天日期字符串。如果库存不足提示失败。# 还书输入书号和归还数量增加对应图书的库存并从借阅记录中删除相应的借阅按先进先出原则或简单按书号匹配。若归还数量大于该书的借出总量则提示错误。# 查询某本书的借阅情况输入书号显示该书当前被借出的总数量和所有借阅记录的详情借阅数量、借阅日期。# 退出系统结束程序。# 要求# 数据初始化至少预置 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}# ]today 2026-04-03 str1 ------图书借阅管理系统------ 1、查看所有图书 2、借书 3、还书 4、查询某种书的借阅情况 5、退出程序 请选择(1-5): --------------------------- books { B001: {name: Python编程, author: 张三, stock: 5}, B002: {name: 数据结构, author: 李四, stock: 3}, B003: {name: 算法导论, author: 王五, stock: 0} } while True: print(str1) choose input(请输入你要选择的功能) # 查看所有图书以表格形式显示所有图书的书号、书名、作者、库存。 if choose 1: print(f书号书名作者库存) for id,info in books.items(): print(f{id}{info[name]}{info[author]}{info[stock]}) # 借书输入书号和借阅数量如果库存足够则减少库存 # 并添加一条借阅记录包含书号、书名、借阅数量、借阅日期 # 可简化为当天日期字符串。如果库存不足提示失败。 elif choose 2: id input(请输入书号) if id not in books: print(该图书不存在) continue num int(input(请输入借阅数量)) if num 0: print(请输入正确数量) else : if books[id][stock] num: print(f库存不足当前库存为{books[id][stock]}) continue books[id][stock] - num jieshu { book_id:id, book_name: books[id][name], quantity: num, date: today } jieshu.append(jieshu) print(借书成功) print(f《{books[id][name]}》库存剩余{books[id][stock]}) # 还书输入书号和归还数量增加对应图书的库存 # 并从借阅记录中删除相应的借阅按先进先出原则或简单按书号匹配。 # 若归还数量大于该书的借出总量则提示错误。 elif choose 3: id input(请输入书号) if id not in books: print(图书不存在) continue total 0 for r in jieshu: if r[book_id] id: total r[quantity] if total 0: print(没有借阅记录) continue num int(input(请输入归还数量)) if num 0: print(数量没有大于1) continue if num total: print(f归还数量不能超过借出总量{total}) continue need num i0 while ilen(jieshu) and need 0: r jieshu[i] if r[book_id] id: if r[quantity] need: need - r[quantity] del jieshu[i] else: r[quantity] - need need 0 else: i 1 books[id][stock] num print(f还书成功《{books[id][name]}》当前库存{books[id][stock]}) # 查询某本书的借阅情况输入书号 # 显示该书当前被借出的总数量和所有借阅记录的详情 # 借阅数量、借阅日期。 elif choose 4: id input(请输入书号) if id not in books: print(图书不存在) continue records [] for r in jieshu : if r[book_id] id: records.append(r) if not records: print(f《{books[id][name]}》没有借阅记录) continue total 0 for r in records: total r[quantity] print(f\n《{books[id][name]}》 累计借出{total} 本) print(f{借阅日期}{借阅数量}) for r in records: print(f{r[date]}{r[quantity]}) # 退出系统结束程序。 elif choose 5: print(程序已退出) break else: print(输入错误请输入 1-5)
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2497458.html
如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!