C项目实践图书管理系统(1)AIAlgorithms

图书管理系统主要用于对大量的图书信息,包括书名、作者、出版社、出版日期、ISBN(书号)等进行增、删、改、查以及保存等操作。同时也包括对用户的管理,用户包括管理员和普通用户两种权限,管理员可以完成全部操作,而普通用户只能对图书进行浏览和查询操作。为保存信息,系统利用文件将图书信息和用户信息都存储在文件中,每次启动系统时,先将数据从文件中读取到单链表中,进行增、删、改、查等操作,在系统退出之前,再将单链表中的数据保存到文件中,有效地将数据进行保存。主要功能描述如下:

(3)新增图书信息,用户根据提示输入图书的书名、作者、出版社、出版日期、ISBN以及页数等数据。输入完一条图书信息,可根据提示继续输入下一条图书信息或继续其它操作,充许用户输入多条信息。输入完图书信息后,以单链表的形式暂时保存在单链表中,等待下一步操作。系统退出之前,将单链表中的全部图书信息保存到文件中。

(4)浏览图书信息,在选择了浏览图书操作后,将图书信息从内存中调出来显示,最后提示是否再次浏览图书信息。如果没有查询到任何信息,则给出提示信息。

(5)查询图书信息,进入查询子菜单,可以分别按书名、作者、出版社、出版日期、ISBN对单链表中的图书信息进行查询,其中按书名、作者、出版社和出版日期这四种查询实现的是模糊查询,按ISBN查询实现的是精确查询。

(6)删除图书信息,首先提示用户输入要删除的图书的ISBN,根据输入的ISBN号在单链表中查找,如果该图书存在,则首先显示该图书的基本信息,并提示用户是否进行删除操作,用户确认删除后,直接删除,如果没有找到,系统给出提示信息。

(7)保存图书信息,将单链表中的图书信息保存到文件中

(8)新增用户信息,只有管理员可以处理这个模块,根据提示信息输入用户名和密码以及权限。输入完一个用户信息后直接返回到主菜单界面,进行其它操作。充许输入多个用户信息,但用户名不充许重复。输入完的信息,在系统退出之前,会保存到文件中。

(10)保存用户信息,将单链表中的用户信息保存到文件中

(11)退出系统,在系统退出之前,保存用户和图书的信息,并释放掉链表,防止内存泄露。

2.总体设计

2.1功能模块设计

系统功能模块主要分为图书信息管理和用户管理两大部分。系统启动时,主函数首先调用init_user()函数对用户模块进行初始化操作,即设定最初的管理员的用户名(admin)和密码(123),并对文件进行初始设置,即用户文件不存在,则创建用户文件。再调用load_users()函数将用户文件中的用户信息加载到用户单链表中。接着调用init_book()函数对图书模块初始化操作,主要完成图书文件的初始设置,即图书文件不存在,则创建图书文件,再调用load_books()函数将图书文件的图书信息加载到图书单链表中。最后调用login()函数判断用户类型,如果是管理员权限,则调用show_admin_menu()函数进入管理员操作界面。如果是普通用户权限,则调用show_user_menu(),进入普通用户操作界面。接下来对模块的功能逐一介绍如下:

2.增加图书信息

系统调用add_book()函数以增加图书信息,调用input_book()函数完成图书信息的输入,将用户输入的信息添加到图书单链表中。输入完成之后提示用户是否继续增加图书的操作,如果用户输入"y"或"Y",则再次调用此函数,实现继续增加图书信息操作。否则返回主菜单界面。

3.浏览图书信息

4.查找图书信息

如果是管理员权限,调用show_search_book_menu()函数,进入管理员查询图书子菜单,可以分别按书名、作者、出版社、出版日期和国际标准书号(ISBN)进行查找,前四项支持模糊查询,只有按ISBN查找是精确查找。

(1)按书名查找

(2)按作者查找

调用search_book_by_author()函数按作者进行查询图书信息,具体操作步骤与按书名查询类似。

(3)按出版社查找

调用search_book_by_publisher()函数按出版社查询图书信息,具体操作步骤与按书名查询类似。

(4)按出版日期查询

调用search_book_by_pubdate()函数按出版日期查询图书信息,具体操作步骤与按书名查询类似。

(5)按ISBN查找

5.删除图书信息

系统调用delete_book()函数完成图书信息的删除操作。首先提示用户输入要删除的图书的ISBN信息,然后查询是否存在该ISBN信息的图书,如果不成功,则给出提示信息,如果查询成功,则提示是否确认删除,如果用户输入"Y"或"y",则删除该图书信息,否则返回主菜单界面。

6.保存图书信息

系统调用save_books()函数来保存图书信息。调用save_books_to_file()函数,完成将图书单链表中的图书信息保存到图书文件中。

7.新增用户信息

8.查找用户信息

系统调用search_user(0函数完成用户信息的查找操作。首先提示用户输入要查找的用户名,然后调用find_user()函数,查找该用户是否存在,如果该用户不存在,给出相应的提示信息。如果存在,则调用show_suer()函数显示该用户的信息,并充许对该用户信息进行更新或删除操作。提示用户按d/D键删除该用户信息,按u/U键更新该用户信息。根据用户的输入进行相应的操作,调用delete_user()函数删除用户信息,调用update_user()函数更新用户信息。所以查找用户信息结束后可分别选择调用delete_user()函数或update_user()函数或者什么都不做。

9.更新用户信息

在查询用户之后,调用update_user(0函数对该用户进行更新操作,首先调用input_user()函数输入用户信息,接着调用find_user()函数查找输入的用户名是否已经存在。由于用户名不充许重复,如果用户输入的用户名已存在,则给出相应的提示信息,如不存在,则进行更新操作。

10删除用户信息

在查询用户信之后,充许调用delete_user()函数对该用户进行删除操作,首先提示用户是否确认删除,如果用户输入"Y"或"y”,则删除该用户信息,否则提示用户继续查找操作。

11.保存用户信息

系统调用save_users()函数保存用户信息,调用save_uses_to_file()函数,将用户单链表中数据保存到文件中。

12.退出系统

不同权限的用户退出系统调用不同的函数来完成。

1.管理员退出系统

管理员权限退出系统调用admin_exit()函数。首先提示用户是否确定退出,如果用户输入"Y"或"y",再调用save_users_to_file()函数,将用户链表中的数据保存到用户文件中,调用clear_users()函数清空用户链表,最后调用save_books_to_file()函数将图书链表中的数据保存到文件中,调用clear_books()函数清空图书链表,用户输入的不是"Y"或"y",则不退出。

2.普通用户权限退出系统

普通用户权限退出系统调用user_exit()函数。首先提示用户是否确定退出,如果用户输入"y"或"Y",则调用clear_users()函数清空用户链表,调用clear_books()函数清空图书链表,如果不是输入的"Y'或"y"则不退出系统。

2.2系统处理流程

1.进入管理员主菜单界面,充许用户输入1-9之间的数值进行相应的操作,如果输入其它字符,则提示输入有误,并提示重新输入。

若输入1,则调用add_book()函数,进行新增图书信息操作。

若输入2,则调用view_book()函数,浏览图书信息

若输入3,则调用show_search_book_menu()函数进入查询子菜单界面,菜单充许用户输入1-6之间的数值进行相应的操作。如果输入1,则按书名查找,输入2,则按作者查找,输入3,则按出版社查找,输入4,则按出版日期查找,这四种查找方式支持模糊查找,如输入5则按ISBN号进行精确查找,输入6则返回主菜单界面。

若输入4,则调用delete_book()函数,进行删除图书信息操作。

若输入5,则调用save_books()函数,保存图书信息

若输入6,则调用add_user()h函数,新增用户信息

若输入7,则调用search_user()函数,进行查找用户信息操作,对于查找到的用户信息,充许进行更新(update_user())和删除(delete_user())操作。

若输入8,则调用save_users()函数,保存用户信息,

若输入9,则调用admin_exit()hans,退出系统。

若输入1,则调用view_book函数,浏览图书信息

若输入2,则调用search_book_by_name()函数,按书名查询图书信息

若输入3,则调用search_book_by_author()函数,按作者查询图书信息

若输入4,则调用search_book_by_publisher()函数,按出版社查询图书信息

若输入5,则调用search_book_by_pubdate()函数,按出版日期查询图书信息

若输入6,则调用search_book_by_isbn()函数,按ISBN号精确查找图书洗洗脑

若输入7,则调用user_exit()函数退出系统。

2.3详细设计与系统实现

首先通过vs新建win32ConsoleApplication,然后选择Emptyproj,单击Finished完成BookMng项目创建

首先定义5个常量,分别用来定义书名、出版社、出版日期、作者和ISBN的最大长度。具体定义如下:

//Structdefintiontypedefenum_USER_TYPE{ADMIN=0,//代表管理员USER//普通用户}USER_TYPE;.csharpcode,.csharpcodepre{font-size:small;color:rgba(0,0,0,1);font-family:consolas,"CourierNew",courier,monospace;background-color:rgba(255,255,255,1)}.csharpcodepre{margin:0}.csharpcode.rem{color:rgba(0,128,0,1)}.csharpcode.kwrd{color:rgba(0,0,255,1)}.csharpcode.str{color:rgba(0,96,128,1)}.csharpcode.op{color:rgba(0,0,192,1)}.csharpcode.preproc{color:rgba(204,102,51,1)}.csharpcode.asp{background-color:rgba(255,255,0,1)}.csharpcode.html{color:rgba(128,0,0,1)}.csharpcode.attr{color:rgba(255,0,0,1)}.csharpcode.alt{background-color:rgba(244,244,244,1);width:100%;margin:0}.csharpcode.lnum{color:rgba(96,96,96,1)}接下来需要定义一个结构体类型_user_info来描述用户的基本信息,使用typedef自定义一个新类型user_info。新类型中共3个成员,即用户名,密码和用户权限。具体实现如下:

typedefstruct_user_info{charusername[MAX_USERNAME];//用户名charpassword[MAX_PASSWORD];//密码USER_TYPEuser_type;//用户类型,0为管理员,1为普通用户}user_info;.csharpcode,.csharpcodepre{font-size:small;color:rgba(0,0,0,1);font-family:consolas,"CourierNew",courier,monospace;background-color:rgba(255,255,255,1)}.csharpcodepre{margin:0}.csharpcode.rem{color:rgba(0,128,0,1)}.csharpcode.kwrd{color:rgba(0,0,255,1)}.csharpcode.str{color:rgba(0,96,128,1)}.csharpcode.op{color:rgba(0,0,192,1)}.csharpcode.preproc{color:rgba(204,102,51,1)}.csharpcode.asp{background-color:rgba(255,255,0,1)}.csharpcode.html{color:rgba(128,0,0,1)}.csharpcode.attr{color:rgba(255,0,0,1)}.csharpcode.alt{background-color:rgba(244,244,244,1);width:100%;margin:0}.csharpcode.lnum{color:rgba(96,96,96,1)}为了将单个用户信息串联起来,下面再来定义一个单链表节点结构。即定义一个结构体类型_user,使用typedef自定义一个新类型user,其成员为存储用户基本信息的结构体变量和指向下一个用户的指针变量,共2个成员。具体实现如下:

THE END
1.图书管理系统系统设计(精选6篇)图书管理系统设计 1、需求分析 图书管理信息采用文件保存,因而要提供文件的输入输出操作;要实现对图书基本信息的查询,则要提供查找操作(提供按书名、作者名查询两种查询方式)和显示操作;要实现对撤销图书信息的删除则要提供文件记录的删除操作;办理借书或还书手续需要提供修改操作;另外还要提供键盘式选择菜单以实现功能选择https://www.360wenmi.com/f/fileu9ihjn2g.html
2.图书管理系统设计与实现—看这篇就够了腾讯云开发者社区图书管理系统设计与实现 图书馆人员结构复杂,人员数量有限,涉及方面很广,如果还使用手工操作处理图书借阅问题,工作将非常繁琐,需要大量的人力、物理、财力,极大的浪费了资源,对于图书管理人员来说,图书馆管理包括图书信息管理、图书类别管理、借阅信息管理、管理员信息管理等等。而这些项目在过去靠手工操作,需要手工记录这些https://www.cloud.tencent.com/developer/article/1697988
3.图书管理系统详细设计图书管理系统详细设计 1.引言 1.1编写目的 详细设计文档对总体设计的进一步细粒化,给出目标系统,对每个具体模块,类等局部元素详细设计,及图书管理系统的相关功能更加详细的描述,通过详细设计可以在此基础上顺利完成图书借阅信息的的编码。 本报告的预期读者为项目管理人,图书管理员,系统管理员,学生,软件开发工程师等。https://www.jianshu.com/p/8c202e800984
4.软件工程图书管理系统的详细设计图书管理系统软件工程本详细设计说明书旨在为图书管理系统的开发提供清晰的设计蓝图。通过详细描述系统各个模块的设计思路、输入输出参数、流程逻辑和接口规范,确保开发团队在实现系统功能时有明确的指导依据。同时,本说明书将作为系统维护和升级的参考文档,为后续的系统优化和问题排查提供必要的信息支持。 https://blog.csdn.net/weixin_74092648/article/details/142053568
5.概要设计详细设计范例(图书管理系统)20241022.docPAGE PAGE 51文档编号: 版本号:V文档名称:概要设计说明书项目名称:图书管理系统引言:1.1 编写目的:确定图书馆管理系统的总体设计总体结构模块设计接口设计为详细设计奠定基础.1.2 项目背景:说明:本项目的名称:图书管理系https://www.renrendoc.com/paper/355464046.html
6.图书管理系统详细设计说明.doc文档介绍:该【图书管理系统详细设计说明 】是由【lajie】上传分享,文档一共【25】页,该文档可以免费在线阅读,需要了解更多关于【图书管理系统详细设计说明 】的内容,可以使用淘豆网的站内搜索功能,选择自己适合的文档,以下文字是截取该文章内的部分文字,如需要获得完整电子版,请下载此文档到您的设备,方便您编辑和打印https://m.taodocs.com/p-966032126.html
7.〖图书管理系统〗详细设计说明书20231114213704.docx管理系统〖图书管理系统〗详细设计说明书.docx 86页内容提供方:文档查询,农业合作 大小:445.68 KB 字数:约2.57万字 发布时间:2023-11-18发布于内蒙古 浏览人气:98 下载次数:仅上传者可见 收藏次数:0 需要金币:*** 金币 (10金币=人民币1元)〖https://max.book118.com/html/2023/1114/5124201342011010.shtm
8.Java课程设计基于JavaSwing的图书管理系统以mysql最新版本8为例: 总结 通过图书管理系统这次设计,可以了解到开发一个项目,可以把它分成若干个小模块,分别有着不同的功能;然后分别为每个模块设计所需要的类;最后分步实现每个模块的功能。可以对Java流程开发程序流程有了整体的认识,为以后javaweb开发的学习奠定了基础。https://www.bilibili.com/read/mobile/24323835/
9.电子图书馆(图书借阅系统):图书借阅管理的功能模块根据登录人员5.1 课程设计总结 5.2 心得体会 参考文献 致谢 电子图书馆(图书借阅系统) 介绍 图书借阅管理的功能模块根据登录人员的不同可分为普通用户和管理员。普通用户登录后可以查看所有图书、查询图书、查看最新的图书列表和自己的图书借阅记录。而管理员登录后不但可以进行关于图书的操作,还可以管理所有的普通用户,添加删除普通https://gitee.com/hehe8/library
10.图书管理系统详细设计方案经管文库(原现金交易图书管理系统详细设计方案 https://bbs.pinggu.org/thread-13097557-1-1.html
11.C++实现简单版图书管理系统C语言图书管理系统是一个可以记录图书借记和存储的工具。本教程主要利用C++来实现一个图书管理系统系统中需要实现的功能如下:添加书籍:向图书管理系统中添加新书,信息包括(书名、书的价格、书的编号)最多记录1000本显示书籍:显示图书的所有书籍信息书籍删除:按照书名进行删除指定书籍https://www.jb51.net/article/252194.htm
12.承德市人民政府专项规划承德市绿色建筑专项规划(2020~2025年坚持合理布局、分步实施、统筹安排、有序推进,抓好绿色建筑提质、建筑能效提升、建造方式革新、绿色产业培育、技术创新驱动、典型示范带动,促进建筑由“浅绿”到“深绿”、从单体到街区(社区)等区域单元,从规划、设计、建造到运行管理,从绿色建筑到装配式建筑、绿色建材,把绿色发展理念延伸至建筑全领域、全过程及全产业https://www.chengde.gov.cn/art/2021/9/2/art_10609_793714.html
13.数据库课程设计报告—图书借阅管理系统.doc数据库课程设计报告—图书借阅管理系统,数据库课程设计报告(一) ——图书借阅管理系统本报告包含三部分,简要摘录参见下属。本文共42页,1.3万余字系统概述图书馆管理系统是一些单位不可缺少的部分,书籍是人类不可缺少的精神食粮,尤其对一些学校来说,尤其重要。所以图书馆管理系统应该能够为用户提供充足的信息和快捷的http://www.queshao.com/docs/34523/
14.软件技术的职业生涯规划书(精选16篇)④具有详细设计能力。 ⑤熟悉系统测试工具,对系统问题具有改善的能力。 ⑥能够带领2个以上员工开展工作,成功领导过3个以上不少于5人月的项目/模块的团队项目。 ⑦了解质量管理体系和项目管理知识。 (4)软件工程师 ①获得高级程序员资格2年以上;或满足高级程序员级别标准,4年以上相关行业工作经验。 https://www.wenshubang.com/zhiyeguihuafanwen/2963928.html
15.系统说明书Word模板系统说明书Word模板下载熊猫办公网站共为您提供10000个系统说明书设计素材以及精品系统说明书Word模板下载,汇集全球精品流行的系统说明书Word完整版模板,下载后直接替换文字图片即可使用,方便快捷的不二选择。https://m.tukuppt.com/wordmuban/xitongshuomingshu.html
16.图书管理系统流程图书管理系统的开发过程包括:调研和计划;需求分析;软件计划;编码和模块测试;总体测试;确认和评审;交付使用。接下来,小编为您分享了图书管理系统流程,仅供参考! 图书管理系统流程 篇1 系统功能结构设计 综合考虑系统的逻辑模型和设计系统目标的要求绘制的系统功能结构 https://www.jy135.com/guanli/162184.html
17.图书管理系统中UML图分析与设计UML统一建模语言相信大家有所了解,它是如何使用的呢,这里通过基于B/S模式的图书管理系统中UML图的分析与设计这个实例来向大家介绍一下,欢迎大家一起来学习。 本节向大家介绍一下基于B/S模式的图书管理系统中UML图的分析与设计,主要包括图书管理系统用例分析和系统静态建模两部分内容,相信通过本节的介绍你对UML图有更https://www.51cto.com/article/204739.html
18.学校图书馆建设方案范文(通用9篇)把图书室建设好和管理好,使之能够真正成为知识宝库,那么图书室将不会再是摆设,建设与管理好图书室,需要从以下几点下功夫。 1、优化藏书结构 图书室工作的职能发挥,有赖于高质量的藏书结构。如果图书结构比例失调,品牌单一,实用性差,要发挥其作用也就可想而知了。要优化藏书结构必须制定系统的藏书建设计划,拟定以符https://www.oh100.com/a/202210/5351165.html
19.工程项目计划书7篇在确定课题前,我们特地上网看了一下当前比较热门的课题,最多的为学校的图书管理系统,但这个太过于大众化,做的人比较多,而且我们也一直在使用,所以难度不大。后来我们发现销售方面还算是比较热门,而且做的人不多,对于我们来说,也比较新鲜,因为毕竟我们现阶段都没有接触到,所以根据我们的综合讨论,觉得现社会有很多的https://www.ruiwen.com/gongwen/jihuashu/1377544.html
20.个人实习报告(通用15篇)4、提高管理科学化水平,完善道路交通组织管理系统 主要包括路网车流组织方案预评价模型研制;路网运行状态实时监控技术;路上意外事件的紧急处置手段与实施方案;停车管理对策(各类停车车位规划设计标准、建设与管理责任主体的划分、停车设施布局、公用停车车位收费标准及体内停车管理办法等)。 https://www.yjbys.com/shixi/shixibaogaofanwen/1516810.html
21.数字化校园建设方案(精选11篇)2、图书管理系统 配备激光扫描器识别条形码,具有完善的采编、流通、典藏、期刊管理、公共查询、资产清查、压缩备份等功能。 3、售餐系统 学生和教职员工只需预先充值在其IC卡中,就餐买菜时,在售饭机感应区的有效距离内出示其卡,由售货员在售饭机上预设或输入消费额,确认后便可完成本此交易。有详细的消费记录 ,https://www.fwsir.com/fanwen/html/fanwen_20150925101805_312174.html