基于C++语言实现图书管理系统
代码功能分析该程序是一个简单的图书管理系统基于C实现采用结构体数组存储图书信息支持添加、删除、查找、清空、修改和显示图书功能。以下是核心模块的说明和优化建议关键功能模块数据结构Person结构体存储单本图书信息书名、价格、编号。Arraybooks结构体管理图书数组包含最大容量MAX和当前数量length。功能函数addBooks: 添加新图书检查数组是否已满。dalateBooks: 按书名删除图书移动后续元素覆盖被删项。isExist: 检查书名是否存在返回索引或-1。CheckBook: 按书名查找并输出图书信息。cleanbooks: 清空图书数组重置length。changebooks: 按书名修改图书信息。showbooks: 遍历输出所有图书信息。交互逻辑main函数通过while循环和switch实现菜单驱动。mean函数打印功能菜单。代码实现#include iostream#include stringusing namespace std;#define MAX 1000struct Person {string name;int price;string number;};struct Arraybooks {struct Person book[MAX];int length;};void mean();int outSystem();void addBooks(Arraybooks* abs);void dalateBooks(Arraybooks* abs);int isExist(Arraybooks* abs, string name);void CheckBook(Arraybooks* abs);void cleanbooks(Arraybooks* abs);void showbooks(Arraybooks* abs);void changebooks(Arraybooks* abs);int main() {int x;Arraybooks abs;abs.length 0;while (true) {mean();cin x;switch (x) {case 1:addBooks(abs);break;case 2:dalateBooks(abs);break;case 3:CheckBook(abs);break;case 4:cleanbooks(abs);break;case 5:changebooks(abs);break;case 6:showbooks(abs);break;case 0:outSystem();break;}}return 0;}void addBooks(Arraybooks* abs) {if (abs-length MAX) {cout 书籍已满 endl;}else {string name;cout 请输入书籍的名字: endl;cin name;abs-book[abs-length].name name;int price;cout 请输入书的价格 endl;cin price;abs-book[abs-length].price price;string num;cout 请输入书的编号 endl;cin num;abs-book[abs-length].number num;abs-length;cout 添加成功 endl;}}int isExist(Arraybooks* abs, string name) {for (int i 0; i abs-length; i) {if (abs-book[i].name name) {return i;}}return -1;}void dalateBooks(Arraybooks* abs) {cout 请输入你要删除的书籍 endl;string name;cin name;int ret isExist(abs, name);if (ret ! -1 ret ! abs-length - 1) {abs-book[ret].name abs-book[ret 1].name;abs-book[ret].number abs-book[ret 1].number;abs-book[ret].price abs-book[ret 1].price;for (int i ret 2; i abs-length; i) {abs-book[i - 1].name abs-book[i].name;abs-book[i - 1].number abs-book[i].number;abs-book[i - 1].price abs-book[i].price;abs-length--;}cout 删除成功 endl;}else if(ret ! 1 ret abs-length - 1) {abs-length--;}else {cout 查无此书 endl;}}void CheckBook(Arraybooks* abs) {cout 输入你要查找的书籍 endl;string name;cin name;int ret isExist(abs, name);if (ret ! -1) {cout 书名为 abs-book[ret].name \t;cout 书价格为 abs-book[ret].price \t;cout 书编号为 abs-book[ret].number endl;}else {cout 查无此书 endl;}}void cleanbooks(Arraybooks* abs) {abs-length 0;cout 清理完成 endl;}void changebooks(Arraybooks* abs) {cout 输入你要修改的图书 endl;string name;cin name;int ret isExist(abs, name);if (ret ! -1) {cout 请输入名字 endl;string name;cin name;abs-book[ret].name name;cout 请输入价格 endl;int price;cin price;abs-book[ret].price price;cout 请输入编号: endl;string num;cin num;abs-book[ret].number num;}else {cout 查无此书 endl;}}void showbooks(Arraybooks* abs) {if (abs-length 0) {cout 书架为空 endl;}else {for (int i 0; i abs-length; i) {cout 书籍名字 abs-book[i].name \t;cout 书籍价格 abs-book[i].price \t;cout 书籍编号 abs-book[i].number endl;}}}int outSystem() {cout 欢迎下次使用 endl;return 0;}void mean() {cout ************************* endl;cout *******1、加入图书******** endl; //OKcout *******2、按名删除图书***** endl;//OKcout *******3、按名查找图书***** endl;//OKcout *******4、清空图书架******* endl;//OKcout *******5、修改图书名******* endl;cout *******6、显示图书架******* endl;//OKcout *******0、退出系统********* endl; //OKcout ************************** endl;}

相关新闻

什么是Go语言突变测试?go-mutesting让你的测试质量提升300%的终极指南

什么是Go语言突变测试?go-mutesting让你的测试质量提升300%的终极指南

什么是Go语言突变测试?go-mutesting让你的测试质量提升300%的终极指南 【免费下载链接】go-mutesting Mutation testing for Go source code 项目地址: https://gitcode.com/gh_mirrors/go/go-mutesting Go语言突变测试(Mutation Testing&#xf…

2026/10/5 11:57:12 阅读更多 →
SynologyCloudflareDDNS脚本原理解析:从域名解析到IP自动更新的完整流程

SynologyCloudflareDDNS脚本原理解析:从域名解析到IP自动更新的完整流程

SynologyCloudflareDDNS脚本原理解析:从域名解析到IP自动更新的完整流程 【免费下载链接】SynologyCloudflareDDNS 📜 Cloudflare DDNS script for Synology 项目地址: https://gitcode.com/gh_mirrors/sy/SynologyCloudflareDDNS SynologyCloudf…

2026/9/27 17:12:45 阅读更多 →
Arnis 使用全攻略:如何把真实世界一键搬进 Minecraft

Arnis 使用全攻略:如何把真实世界一键搬进 Minecraft

Arnis 使用全攻略:如何把真实世界一键搬进 Minecraft 【免费下载链接】arnis Generate any location from the real world in Minecraft with a high level of detail. 项目地址: https://gitcode.com/GitHub_Trending/ar/arnis 你大概想象过这样的场景&…

2026/9/27 0:02:30 阅读更多 →

最新新闻

智能体开发权威指南:从工具调用到工作流编排的工程实践

智能体开发权威指南:从工具调用到工作流编排的工程实践

做智能体开发这两年,我最大的感受是:圈子里聊“智能体”的人多,真正把智能体做出稳定价值的少。标题虽然是“权威指南(二)”,但我更愿意把它当成一份工程笔记来写——因为权威不权威,最后看的还…

2026/10/5 12:42:45 阅读更多 →
无人机电网巡检落地:从航拍数据到AI缺陷识别闭环

无人机电网巡检落地:从航拍数据到AI缺陷识别闭环

简介:面向电力与能源行业的无人机AI电网巡检平台解决方案PPT,适合电网运维人员、无人机技术团队及方案规划者参考。内容针对人工巡检效率低、安全隐患大、数据精度不足等痛点,融合5G低延时回传、多光谱传感、RTKIMU高精度定位与AI智能诊断&am…

2026/10/5 12:42:45 阅读更多 →
openrig:统一装配Claude Code与Codex的YAML配置与npm分发方案

openrig:统一装配Claude Code与Codex的YAML配置与npm分发方案

1. 从 openrig 这个标题说起:它到底想解决什么问题 第一次看到 openrig 这个词,我脑子里蹦出来的第一反应是“open”加“rig”的组合。rig 在英文里有“装配、搭建、装置”的意思,在工程语境里常指把一堆零散部件组合成一套能跑起来的系统。所…

2026/10/5 12:42:45 阅读更多 →
AI工程从零实战:客服工单自动分类系统全流程

AI工程从零实战:客服工单自动分类系统全流程

如果你打开招聘网站搜“AI工程师”,你会发现大部分岗位描述长得像同一个模板:熟悉PyTorch、会训模型、懂部署、有落地经验。但真上线做项目时,很多人卡住的点反而不是那些花哨的模型结构,而是环境怎么搭、数据怎么洗、训练挂了怎么…

2026/10/5 12:42:45 阅读更多 →
AI安全实战指南:从提示注入到数据隐私的防护框架

AI安全实战指南:从提示注入到数据隐私的防护框架

如果你最近正在做AI应用开发,比如给公司接一个大模型API,或者正在搭一个能自动操作内部系统的AI Agent,那你大概率已经碰到过这类问题:明明给模型加了系统指令,却被用户一句话绕开;生成的图片和文案里带着奇…

2026/10/5 12:42:45 阅读更多 →
嵌入式C语言AES实现:轻量、可审计、生产可用

嵌入式C语言AES实现:轻量、可审计、生产可用

1. 为什么在嵌入式与资源受限场景下,C语言实现AES比调用OpenSSL更值得深挖AES(Advanced Encryption Standard)不是个新鲜词,但真正把它“揉碎了、嚼烂了、亲手焊进代码里”的人,远比想象中少。我第一次在STM32F407上跑…

2026/10/5 12:41:45 阅读更多 →

日新闻

马斯克杀回智能体战场,Grok 4.5万亿参数撑腰,Cursor接手数字白领项目:用TaoToken统一Key跑通多模型Agent工作流

马斯克杀回智能体战场,Grok 4.5万亿参数撑腰,Cursor接手数字白领项目:用TaoToken统一Key跑通多模型Agent工作流

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/5 0:00:22 阅读更多 →
AI编程工具插件机制详解:plugin.json配置与加载失败排查指南

AI编程工具插件机制详解:plugin.json配置与加载失败排查指南

1. 从“plugins”这个词说起:它到底在解决什么问题如果你最近在折腾 AI 编程工具,尤其是 Cursor、Codex CLI、Claude Code 这类带 CLI 的编辑器或命令行助手,那你大概率绕不开一个词——plugins。这个词本身不新鲜,从浏览器到 IDE…

2026/10/5 0:00:23 阅读更多 →
第26课:OpenClaw|日志审计与问题诊断:把日志链路改到 TaoToken 的排查清单

第26课:OpenClaw|日志审计与问题诊断:把日志链路改到 TaoToken 的排查清单

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/5 0:00:23 阅读更多 →

周新闻

KT148A语音芯片外挂8002D功放的工程实践指南

KT148A语音芯片外挂8002D功放的工程实践指南

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/5 5:06:42 阅读更多 →
LLC谐振变换器增益公式推导:从FHA等效到完整归一化表达式

LLC谐振变换器增益公式推导:从FHA等效到完整归一化表达式

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/5 1:10:22 阅读更多 →
ARM架构深度解析:从RISC设计理念到交叉编译实战

ARM架构深度解析:从RISC设计理念到交叉编译实战

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/5 3:06:17 阅读更多 →

月新闻

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/4 11:40:45 阅读更多 →
Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/4 9:43:54 阅读更多 →
黑夜航拍船只数据集训练YOLOV5模型全流程解析

黑夜航拍船只数据集训练YOLOV5模型全流程解析

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/4 20:14:29 阅读更多 →