当前位置: 首页 > article >正文

设计一个简单的图书借阅管理系统。

设计一个简单的图书借阅管理系统。系统初始包含若干本图书每本图书的信息包括 书号字符串 书名字符串 作者字符串 库存数量整数 另外系统需记录借阅记录列表存储每笔借阅的字典。程序通过菜单实现以下功能 查看所有图书以表格形式显示所有图书的书号、书名、作者、库存。 借书输入书号和借阅数量如果库存足够则减少库存并添加一条借阅记录包含书号、书名、借阅数量、借阅日期可简化为当天日期字符串。如果库存不足提示失败。 还书输入书号和归还数量增加对应图书的库存并从借阅记录中删除相应的借阅按先进先出原则或简单按书号匹配。若归还数量大于该书的借出总量则提示错误。 查询某本书的借阅情况输入书号显示该书当前被借出的总数量和所有借阅记录的详情借阅数量、借阅日期。 退出系统结束程序。 要求 数据初始化至少预置 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之间的数字)

相关文章:

设计一个简单的图书借阅管理系统。

设计一个简单的图书借阅管理系统。系统初始包含若干本图书,每本图书的信息包括: 书号(字符串) 书名(字符串) 作者(字符串) 库存数量(整数) 另外,系…...

解决IDE性能瓶颈与代码补全效率问题:TabNine AI引擎架构优化与生产环境部署实践

解决IDE性能瓶颈与代码补全效率问题:TabNine AI引擎架构优化与生产环境部署实践 【免费下载链接】TabNine AI Code Completions 项目地址: https://gitcode.com/gh_mirrors/ta/TabNine TabNine是一款基于人工智能的全语言代码自动补全工具,通过深…...

TabNine终极指南:如何利用AI代码补全彻底改变你的开发体验

TabNine终极指南:如何利用AI代码补全彻底改变你的开发体验 【免费下载链接】TabNine AI Code Completions 项目地址: https://gitcode.com/gh_mirrors/ta/TabNine 在当今快节奏的软件开发世界中,效率是每个开发者追求的核心目标。TabNine作为一款…...

突破生态限制:AirPods跨平台解决方案全解析

突破生态限制:AirPods跨平台解决方案全解析 【免费下载链接】AirPodsDesktop ☄️ AirPods desktop user experience enhancement program, for Windows and Linux (WIP) 项目地址: https://gitcode.com/gh_mirrors/ai/AirPodsDesktop 一、价值定位&#xff…...

Cloudflare防火墙实战:5个高效规则提升网站安全与性能

1. Cloudflare防火墙:你的网站安全第一道防线 第一次接触Cloudflare防火墙时,我完全被它强大的功能震撼到了。作为一个免费工具,它能拦截90%以上的恶意流量,这简直是小站长的福音。记得去年我的个人博客突然遭遇一波CC攻击&#x…...

AI+社科:当机器学习遇见人类社会,一场静悄悄的革命

AI社科:当机器学习遇见人类社会,一场静悄悄的革命 社会科学的传统研究,常依赖于抽样调查与理论推演,如同“盲人摸象”。如今,AI的介入正将我们带入一个“上帝视角”的时代——通过分析亿万人的数字足迹,我们…...

Kratos 的config.proto 修改后 windows 下重新生成

protoc --proto_path. --proto_path./third_party --go_outpathssource_relative:. internal/conf/conf.proto...

我的第一个AI同事:用不到100行Python代码,让GPT-4帮你自动写周报和整理会议纪要

我的第一个AI同事:用不到100行Python代码,让GPT-4帮你自动写周报和整理会议纪要 每天下午5点,我的邮箱总会准时弹出十几封会议邀请,而周五的周报deadline就像悬在头顶的达摩克利斯之剑。直到某个加班的深夜,当我第23次…...

AI+经济学:当因果推断遇上强化学习,如何重塑政策与市场?

AI经济学:当因果推断遇上强化学习,如何重塑政策与市场?当经济学家还在为模型的假设争论不休时,AI已经学会了从数据洪流中直接“阅读”经济的脉搏。这不是替代,而是一场工具箱的全面升级。引言 在数字经济时代&#xff…...

Windows下Qt集成libcurl:从零搭建网络请求环境与实战验证

1. 为什么选择Qtlibcurl组合 在Windows平台开发带网络功能的Qt应用时,你可能纠结过该用QNetworkAccessManager还是第三方库。我做过十几个跨平台项目,实测下来libcurl有三大不可替代的优势: 首先是对HTTPS的完美支持。Qt自带的网络模块在Wi…...

GetQzonehistory:一键备份QQ空间所有说说,让青春记忆永不丢失

GetQzonehistory:一键备份QQ空间所有说说,让青春记忆永不丢失 【免费下载链接】GetQzonehistory 获取QQ空间发布的历史说说 项目地址: https://gitcode.com/GitHub_Trending/ge/GetQzonehistory 你是否曾经翻看QQ空间,发现早期的说说已…...

【AI理论学习】深入解析词向量训练:从CBOW到Skip-Gram的实战对比

1. 词向量基础:从One-hot到分布式表示 第一次接触词向量时,我和大多数人一样被各种术语绕晕了。直到用实际项目踩过坑才明白,词向量本质上就是让计算机"理解"词语含义的数学工具。想象你教小朋友认字,既可以通过死记硬背…...

OpenClaw效率对比:Qwen3-32B私有镜像vs云端API任务执行速度

OpenClaw效率对比:Qwen3-32B私有镜像vs云端API任务执行速度 1. 测试背景与设计思路 去年在部署个人自动化工作流时,我遇到了一个关键决策点:应该将OpenClaw对接本地部署的Qwen3-32B模型,还是使用云端API服务?这个问题…...

UniApp 集成 Cesium 实战:RenderJS 通信优化与性能调优

1. UniApp集成Cesium的挑战与解决方案 在移动端开发轻量级GIS应用时,很多开发者会选择UniApp作为跨平台框架,同时利用Cesium实现三维地图渲染。但实际集成过程中,最让人头疼的就是性能问题。我去年做过一个林业巡检项目,需要在手机…...

手把手教你用Python的basemap标注旅行足迹(含常见安装问题解决)

用Python绘制个性化旅行地图:从安装到创意标记全指南 每次翻开相册,那些泛黄的机票和模糊的景点门票总让我想起走过的路。但有没有更科技感的方式记录旅行足迹?今天我们就用Python的basemap工具,把你的旅行故事变成一幅交互式世界…...

告别EEPROM!用FRAM FM25W256给你的GD32F303项目做个不掉电的‘记事本’(附SPI配置避坑指南)

告别EEPROM!用FRAM FM25W256给你的GD32F303项目做个不掉电的‘记事本’(附SPI配置避坑指南) 在嵌入式系统开发中,数据存储一直是个让人头疼的问题。想象一下,你花了几个月调试的工业控制器,因为一次意外断电…...

效率提升利器:快马一键生成极域电子教室自动化部署与校验脚本

效率提升利器:快马一键生成极域电子教室自动化部署与校验脚本 在IT运维和软件测试工作中,批量部署软件是再常见不过的任务了。就拿极域电子教室来说,每次新版本发布或者需要大规模安装时,手动操作不仅耗时耗力,还容易…...

Modbus协议避坑指南:Java处理浮点数数据的3个关键细节

Modbus协议避坑指南:Java处理浮点数数据的3个关键细节 在工业自动化系统中,温度、压力等模拟量的精确采集往往依赖于Modbus协议与PLC设备的稳定通讯。当Java开发者尝试从这些设备读取浮点数数据时,常会遇到数值解析异常、精度丢失或字节序错…...

DeepAnalyze模型量化部署实战:减小50%显存占用

DeepAnalyze模型量化部署实战:减小50%显存占用 1. 引言 你是不是遇到过这样的情况:好不容易找到一个强大的AI模型,比如最近很火的DeepAnalyze数据分析大模型,结果发现自己的显卡根本跑不起来?8GB显存的消费级显卡只能…...

软件驱动与应用开发-RK3588实战

一、RK3588设备树关键配置 1.1 I2C与SPI引脚复用配置 dts // 文件: rk3588-smart-monitor.dts / {// I2C2: 使用GPIO4_B1/B2 (功能3)&i2c2 {status = "okay";clock-frequency = <400000>;pinctrl-0 = <&i2c2m0_xfer>;pinctrl-names = "d…...

**发散创新:基于CUDA的GPU加速图像卷积运算实战详解**在现代计算机视觉与深度学习领域,**图像处理

发散创新&#xff1a;基于CUDA的GPU加速图像卷积运算实战详解 在现代计算机视觉与深度学习领域&#xff0c;图像处理任务的性能瓶颈往往集中在CPU端计算效率不足。尤其是在大规模图像数据集上进行卷积操作时&#xff0c;传统串行算法难以满足实时性需求。本文将深入探讨如何利用…...

保姆级教程:用AntV L7快速搭建可交互的3D地图(附四川地图JSON数据下载)

从零构建3D地图可视化&#xff1a;AntV L7实战指南与四川地貌呈现 第一次看到3D地图在城市规划、气象监测或商业分析中的应用时&#xff0c;那种立体数据跃然屏上的震撼感&#xff0c;让我立刻想动手尝试。作为蚂蚁集团推出的地理空间数据可视化引擎&#xff0c;AntV L7确实能让…...

vector收尾

vector深度剖析及模拟实现使用memcpy拷贝问题int main() { bite::vector<bite::string> v; v.push_back("1111"); v.push_back("2222"); v.push_back("3333"); return 0; }问题分析&#xff1a; memcpy是内存的二进制格式拷贝&#xff0c;…...

告别90%无效操作:3个让文档获取效率倍增的反直觉方案

告别90%无效操作&#xff1a;3个让文档获取效率倍增的反直觉方案 【免费下载链接】kill-doc 看到经常有小伙伴们需要下载一些免费文档&#xff0c;但是相关网站浏览体验不好各种广告&#xff0c;各种登录验证&#xff0c;需要很多步骤才能下载文档&#xff0c;该脚本就是为了解…...

2026山东大学软件学院项目实训(一)

Vue 3工程化实践与组件设计 核心任务概述 本次项目实训聚焦Vue 3前端工程化配置与全局组件开发&#xff0c;目标是通过模块化设计提升代码复用率&#xff0c;并建立规范的前后端协作流程。核心任务包括&#xff1a; 使用Pinia实现全局状态管理基于Ant Design Vue完成响应式布…...

5分钟解锁全网视频下载:为什么res-downloader能让你的数字生活更自由?

5分钟解锁全网视频下载&#xff1a;为什么res-downloader能让你的数字生活更自由&#xff1f; 【免费下载链接】res-downloader 视频号、小程序、抖音、快手、小红书、直播流、m3u8、酷狗、QQ音乐等常见网络资源下载! 项目地址: https://gitcode.com/GitHub_Trending/re/res-…...

QQ空间历史说说一键导出终极指南:GetQzonehistory完整备份解决方案

QQ空间历史说说一键导出终极指南&#xff1a;GetQzonehistory完整备份解决方案 【免费下载链接】GetQzonehistory 获取QQ空间发布的历史说说 项目地址: https://gitcode.com/GitHub_Trending/ge/GetQzonehistory 你是否曾想永久保存QQ空间里的青春记忆&#xff1f;那些深…...

FanControl中ADLXWrapper初始化失败解决方案

FanControl中ADLXWrapper初始化失败解决方案 【免费下载链接】FanControl.Releases This is the release repository for Fan Control, a highly customizable fan controlling software for Windows. 项目地址: https://gitcode.com/GitHub_Trending/fa/FanControl.Releases…...

绝地求生压枪难题如何破解?5个核心技巧让罗技鼠标宏成为你的制胜法宝

绝地求生压枪难题如何破解&#xff1f;5个核心技巧让罗技鼠标宏成为你的制胜法宝 【免费下载链接】logitech-pubg PUBG no recoil script for Logitech gaming mouse / 绝地求生 罗技 鼠标宏 项目地址: https://gitcode.com/gh_mirrors/lo/logitech-pubg 还在为绝地求生…...

百度网盘秒传链接全平台解决方案:告别漫长等待,实现文件瞬间转移

百度网盘秒传链接全平台解决方案&#xff1a;告别漫长等待&#xff0c;实现文件瞬间转移 【免费下载链接】baidupan-rapidupload 百度网盘秒传链接转存/生成/转换 网页工具 (全平台可用) 项目地址: https://gitcode.com/gh_mirrors/bai/baidupan-rapidupload 你是否曾因…...