利用“图书管理系统”更好的理解“结构体” 我本次学习用到的头文件#includestdio.h#includestdlib.h#includestring.h所用到的宏定义在下面会用到#defineNAMESIZE20#defineMANAGERSIZE5定义不同的结构体//书籍的结构体typedefstructBook{charbookname[NAMESIZE];//书名charzuozhe[NAMESIZE];//作者intcount;//库存量}Book;//书的容量typedefstructBookStore{Book*pbooks;intsize;//书籍当前的个数intcapacity;//用来记录存放了多少种类型的书籍容量}BookStore;//管理员typedefstructManager{intid;//工号intpasswd;//账号密码}Manager;//管理员容量typedefstructManagerStore{Manager manager[MANAGERSIZE];intsize;}ManagerStore;//图书馆typedefstructLibrary{ManagerStore ms;BookStore bs;}Library;初始化函数voidInit(Library*p){p-bs.pbooks(Book*)malloc(10*sizeof(Book));//因为当前是Book指针类型,初始为10个Book空间大小assert(p-bs.pbooks);//判断是否为空p-bs.size0;//直接赋值当前是int类型p-bs.capacity10;//当前也是int类型p-ms.size0;//因为是初始化所以当前的员工是0}现在解释一下函数的形参列表里面为什么是“Library*”类型因为定义成“Library*”类型既可以访问Manager也可以访问Book又因为我们是初始化函数需要对两者Book和Manager都进行访问所以我们需要定义为“Library*”类型。注册函数boolRegister(ManagerStore*p,intid,intpasswd){if(p-sizeMANAGERSIZE){//已经存满了返回falsereturnfalse;}//没有存满时p-manager[p-size].idid;p-manager[p-size].passwdpasswd;//不要忘记人员数加一p-size;returntrue;}对于我们的注册函数来说是因为我们只需要对“Manager”进行处理所以定义为“ManagerStore*”类型上架函数//上架图书boolAddBook(BookStore*p,char*bookname,char*zuozhe,intcount){if((p-size)(p-capacity)){//如果两者相等说明空间不足printf(空间不足需要扩容);returnfalse;}//利用拷贝函数将字符串进行拷贝strcpy(p-pbooks-bookname,bookname);strcpy(p-pbooks-zuozhe,zuozhe);p-pbooks[p-size].countcount;//上架几本书p-size;//因为上架图书了所以需要自加returntrue;}同样的道理对于我们的上架函数来说是因为我们只需要对“Book”进行处理所以定义为“BookStore*”类型。今天的分享就到这里感谢大家的观看谢谢大家

相关新闻

最新新闻

大华Java SDK工业级视频集成方案:稳定取流与控制实战

大华Java SDK工业级视频集成方案:稳定取流与控制实战

简介:本资源是面向Java开发者的大华视频监控SDK实战集成包,聚焦Windows平台下基于Java的实时预览、录像回放、PTZ控制与报警事件处理等核心功能开发。资源共3663个文件,包含3548个已编译class文件、76个可参考的Java源码、15个关键本地DLL库&…

2026/9/3 9:10:10
Python操作Excel实战指南:openpyxl与xlrd库详解与自动化应用

Python操作Excel实战指南:openpyxl与xlrd库详解与自动化应用

简介:本资源是一套面向Python初学者与办公自动化开发者的Excel操作实战代码集,聚焦Python3环境下新版.xlsx与旧版.xls文件的读写、格式设置及批量修改等高频需求。资源共2094个文件,以990个Python源码为主干,辅以988个编译缓存文件…

2026/9/3 9:10:10
MATLAB阵列天线仿真:从数学模型到波束扫描与低旁瓣设计实践

MATLAB阵列天线仿真:从数学模型到波束扫描与低旁瓣设计实践

简介:本资源是一套面向无线通信与电磁仿真初学者及工程实践者的MATLAB阵列天线基础仿真工具,聚焦天线方向图绘制、波束形成原理验证与阵列参数快速评估。压缩包为RAR格式,仅含1个核心MATLAB脚本文件(.m),体…

2026/9/3 9:10:10
网络安全入门:从零构建实验环境到掌握核心攻防技能

网络安全入门:从零构建实验环境到掌握核心攻防技能

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

2026/9/3 9:10:10
基于Keepalived实现NTP高可用集群:2秒自动切换实战

基于Keepalived实现NTP高可用集群:2秒自动切换实战

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

2026/9/3 9:10:10
基于FastAdmin与AJAX的同城预约上门服务系统二次开发实战指南

基于FastAdmin与AJAX的同城预约上门服务系统二次开发实战指南

简介:这是一套面向中小型家政服务企业及开发者的技术落地型源码资源,基于FastAdmin后台框架与原生微信小程序构建,完整实现同城预约、上门服务、到店核销三大核心业务闭环,支持自营与多商家联营双模式运营,并具备多城市…

2026/9/3 9:05:10