设计一个简单的图书借阅管理系统。
2026/4/6 14:12:40 网站建设 项目流程
设计一个简单的图书借阅管理系统。系统初始包含若干本图书每本图书的信息包括 书号字符串 书名字符串 作者字符串 库存数量整数 另外系统需记录借阅记录列表存储每笔借阅的字典。程序通过菜单实现以下功能 查看所有图书以表格形式显示所有图书的书号、书名、作者、库存。 借书输入书号和借阅数量如果库存足够则减少库存并添加一条借阅记录包含书号、书名、借阅数量、借阅日期可简化为当天日期字符串。如果库存不足提示失败。 还书输入书号和归还数量增加对应图书的库存并从借阅记录中删除相应的借阅按先进先出原则或简单按书号匹配。若归还数量大于该书的借出总量则提示错误。 查询某本书的借阅情况输入书号显示该书当前被借出的总数量和所有借阅记录的详情借阅数量、借阅日期。 退出系统结束程序。 要求 数据初始化至少预置 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(请选择你的操作)if choose 1:print( * 50)print(书号\t\t书名\t\t作者\t\t库存)print(- * 50)for key, value in books.items():print(f{key}\t\t{value[name]}\t{value[author]}\t\t{value[stock]})print( * 50)elif choose 2:print(----- 开始借书 -----)book_id input(请输入书号)if book_id in books:if True:borrow_num int(input(请输入借阅数量))if borrow_num 0:print(借阅数量必须大于0)else:if books[book_id][stock] borrow_num:books[book_id][stock] - borrow_numnew_record {book_id: book_id,book_name: books[book_id][name],quantity: borrow_num,date: 2026-04-05}borrow_records.append(new_record)print(借书成功)else:print(库存不足借书失败)else:print(输入的数量不是有效数字)else:print(书号不存在)elif choose 3:print(----- 开始还书 -----)book_id input(请输入书号)if book_id in books:if True:return_num int(input(请输入归还数量))if return_num 0:print(归还数量必须大于0)else:total_borrowed 0for record in borrow_records:if record[book_id] book_id:total_borrowed record[quantity]if return_num total_borrowed:print(归还数量不能大于借出总量还书失败)else:books[book_id][stock] return_numremaining return_numnew_records []for record in borrow_records:if remaining 0:new_records.append(record)continueif record[book_id] book_id:if record[quantity] remaining:remaining - record[quantity]else:record[quantity] - remainingremaining 0new_records.append(record)else:new_records.append(record)borrow_records new_recordsprint(还书成功)else:print(输入的数量不是有效数字)else:print(书号不存在)elif choose 4:print(----- 查询借阅情况 -----)book_id input(请输入要查询的书号)if book_id in books:total 0print(f\n《{books[book_id][name]}》借阅记录)print(- * 40)for record in borrow_records:if record[book_id] book_id:total record[quantity]print(f借阅数量{record[quantity]}借阅日期{record[date]})print(- * 40)print(f当前总共借出{total} 本)else:print(书号不存在)elif choose 5:print(感谢使用图书借阅管理系统再见)breakelse:print(输入无效请输入1-5之间的数字)

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询