用python做一个简单的图书借阅管理系统

张开发
2026/4/9 9:50:46 15 分钟阅读

分享文章

用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}]books { B001: {ming: Python编程, zuozhe: 杜科伟, kucun: 5}, B002: {ming: 数据结构, zuozhe: 宋志廷, kucun: 3}, B003: {ming: 算法导论, zuozhe: 郭友军, kucun: 0} } jilu [] while True: print( 图书借阅管理系统 ) print(1 查看所有图书) print(2 借书) print(3 还书) print(4 查询借阅情况) print(5 退出系统) choice input(请输入1-5:) if choice 1: print(\n----- 所有图书 -----) for bianhao in books: print(书号:, bianhao, 书名:, books[bianhao][ming], 作者:, books[bianhao][zuozhe], 库存:, books[bianhao][kucun]) print() elif choice 2: bianhao input(输入书号) if bianhao not in books: print(书号不存在\n) continue shuliang_str input(输入借阅数量) if not shuliang_str.isdigit(): print(请输入数字\n) continue shuliang int(shuliang_str) if shuliang 0: print(数量错误\n) continue if books[bianhao][kucun] shuliang: print(库存不足\n) continue books[bianhao][kucun] - shuliang temp { shubianhao: bianhao, shuming: books[bianhao][ming], shuliang: shuliang, riqi: 2026-04-07 } jilu.append(temp) print(借书成功\n) elif choice 3: bianhao input(输入书号) if bianhao not in books: print(书号不存在\n) continue shuliang_str input(输入归还数量) if not shuliang_str.isdigit(): print(请输入数字\n) continue shuliang int(shuliang_str) if shuliang 0: print(数量错误!\n) continue zong 0 for item in jilu: if item[shubianhao] bianhao: zong item[shuliang] if shuliang zong: print(还书数量不能超过借出数量\n) continue books[bianhao][kucun] shuliang xin_jilu [] for item in jilu: if item[shubianhao] ! bianhao: xin_jilu.append(item) jilu xin_jilu print(还书成功\n) elif choice 4: bianhao input(输入书号) if bianhao not in books: print(书号不存在\n) continue zong 0 print(\n----- 借阅记录 -----) for item in jilu: if item[shubianhao] bianhao: zong item[shuliang] print(数量:, item[shuliang], 日期:, item[riqi]) print(总借出, zong, \n) elif choice 5: print(退出成功) break else: print(没有此选项\n)

更多文章