- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
第13章 综合案例目录 CONTENT13.1 图书管理系统0113.2 代码实现0201 图书管理系统13.1.1 需求分析本图书管理系统是对图书信息进行集中管理,需要具备如下功能。 (1)录入图书,可录入单本图书的编号、图书名、作者名等相关信息。 (2)查询图书,按照输入选项进行相应的查询。 (3)图书列表,输出所有图书的编号、图书名、作者名、出版社、类别、出版时间、 价格。 (4)删除图书,输入图书编号删除该图书的所有信息。 (5)修改图书,输入图书编号修改除编号外的该图书的其他信息。 (6)图书排序,按照输入选项进行排序。 (7)退出系统,输入退出选项,退出登录界面。13.1.2 数据结构设计图书管理系统使用链表作为基本的存储结构。一本图书的属性包括图书编号(ID)、书 名(bookname)、作者(author)、出版社(press)、图书类别(category)、出版日期(date)、 价格(price)等信息,这些属性可以放在一个结构体中,具体实现代码如下所示。13.1.3 系统功能模块 首先,运行系统会输出一个登录界面,当用户输入的用户名与密码匹配时,进入主界面。 用户根据主界面来选择菜单选项。当选择某项时,会转到子函数中去执行,服务结束后,会 从子函数中返回到菜单选项,当选择退出系统时,程序结束,图书管理系统的各模块功能如 图 13.1 所示。 查看流程图可知,系统共有 7 个大功能模块,只要分别实现这 7 个功能模块即可完成大 部分的工作。 02 代码实现13.2.1 登录界面与主界面printIndexPage()函数用来输出登录界面,具体实现代码如下所示。 13.2.1 登录界面与主界面打印主界面在 printHeader()函数中实现,具体实现代码如下所示。 13.2.2 录入图书信息insertBook ()函数实现录入单本图书信息的功能,具体实现代码如下所示。分析: 如上述示例中,第 9~23 行代码通过 while 循环输入图书编号,直到输入的编号不存在, 分析: 结束循环。第 24~41 行代码输入相应的图书信息。第 44~51 行代码为相应的链表结点成员 赋值。 13.2.2 录入图书信息在 insertBook()函数中,checkBookID()函数用来检查图书编号是否已经存在,具体实现 代码如下所示。 分析: 如上述示例中,第 6~13 行代码中,如果 p 不为 NULL,执行循环,循环体中,当添加 的编号存在时,结束循环,否则使 p 指向下一个结点。第 14~17 行代码中,如果 p 为 NULL, 函数返回 0,表示添加的编号在链表中不存在。第 18~21 行代码中,如果 p 不为 NULL, 函数返回 1,表示添加的编号在链表中存在。 13.2.3 图书信息查询query()函数用来进行图书信息的查询,本图书管理系统支持按照图书编号、名称、类别、 作者以及出版时间进行查询。query()函数的实现代码如下所示。分析: 上述示例中,第 5~13 行代码用来输出图书查询界面。第 15~37 行代码通过 switch 语 句实现多分支选择。13.2.3 图书信息查询query()函数用来进行图书信息的查询,本图书管理系统支持按照图书编号、名称、类别、 作者以及出版时间进行查询。query()函数的实现代码如下所示。分析:第 8~13 行代码通过 while 循环接受用户输入,直到用户输入的整数在 0 到 maxoption 之间退出循环。第 14 行代码表示函数返回用户输入的选项。13.2.3 图书信息查询在此仅提供根据图书 ID 进行查询的 queryByBookID()函数示例,queryByName()函数、 queryByCategory() 函 数 、 queryByAuthor() 函 数 、 queryByDate() 函 数 的 实 现 可 以 参 考 queryByBookID()函数的代码。queryByBookID()函数的具体实现代码如下所示。 分析:第 10~17 行代码中,如果 p 不为 NULL,执行循环。循环体中,当输入的编号在链表 中存在时,结束循环,否则使 p 指向下一个结点。第 18~21 行代码中,如果 p 为 NULL, 表示没有找到要查找的图书编号。第 22~29 行代码中,如果 p 不为 NULL,表示找到要查 找的图书编号并通过 printf()函数打印到屏幕上。13.2.4 图书信息列表listBook()函数通过遍历整张链表列出全部书目,具体实现代码如下所示。分析:第 5~9 行代码中,如果链表头结点为空,表示没有图书,通过 return 返回。第 10~18 行代码通过 printf()函数输出全部图书信息。13.2.5 删除图书信
您可能关注的文档
- 数据新闻 第6章 其他数据新闻制作工具.pptx
- 《短视频策划、拍摄与制作》教学课件第1章短视频概述.pptx
- Altium Designer 19 电子线路板设计与制作PPT课件(共6章)第1章概述.pptx
- Altium Designer 19 电子线路板设计与制作PPT课件(共6章)第2章稳压电源电路的制图与制板.pptx
- Altium Designer 19 电子线路板设计与制作PPT课件(共6章)第3章人体感应灯电路的制图与制板.pptx
- Altium Designer 19 电子线路板设计与制作PPT课件(共6章)第4章抢答器电路的制图与制板.pptx
- Altium Designer 19 电子线路板设计与制作PPT课件(共6章)第5章3D打印机主控板的制图与制板.pptx
- Altium Designer 19 电子线路板设计与制作PPT课件(共6章)第6章电子秤仪表的制图与制板.pptx
- C语言程序设计PPT课件(共13章)第1章C 语言概述.pptx
- C语言程序设计PPT课件(共13章)第2章数据类型.pptx
- Excel数据分析教程-课件第1章数据获取与准备.pptx
- Excel数据分析教程-课件第2章数据透视.pptx
- Excel数据分析教程-课件第3章模拟运算.pptx
- Excel数据分析教程-课件第4章函数的应用.pptx
- Excel数据分析教程-课件第5章应用加载宏.pptx
- Excel数据分析教程-课件第6章图表的应用.pptx
- Excel数据分析教程-课件第7章控件和宏的应用.pptx
- Excel数据分析教程-课件第8章VBA和Python的应用.pptx
- Java Web 基础PPT课件(共12章)第八章-AJAX.pptx
- Java Web 基础PPT课件(共12章)第二章-JSP 基础语法.pptx
原创力文档


文档评论(0)