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.构建高效图书信息管理系统2. 图书数据库设计与规范化 2.1 数据库设计的重要性 2.1.1 数据库设计的目标与原则 在构建图书信息管理系统时,数据库设计是基础和核心环节。有效的数据库设计不仅关系到数据的一致性、完整性和安全性,而且直接影响到系统的性能和维护成本。数据库设计的目标是在满足业务需求的同时,实现数据的高效存储和管理。 https://blog.csdn.net/weixin_35750953/article/details/143825963
2.图书信息管理系统设计任务书20240108194643.docx信息管理图书信息管理系统设计任务书.docx 16页内容提供方:tianya189 大小:33.26 KB 字数:约7.88千字 发布时间:2024-01-11发布于湖北 浏览人气:86 下载次数:仅上传者可见 收藏次数:0 需要金币:*** 金币 (10金币=人民币1元)图书信息管理系统设计任务书.docx 关闭预览 想预览更多内容,点击免费在线预https://m.book118.com/html/2024/0108/7006165101006026.shtm
3.图书管理系统系统设计(精选6篇)图书管理系统设计 1、需求分析 图书管理信息采用文件保存,因而要提供文件的输入输出操作;要实现对图书基本信息的查询,则要提供查找操作(提供按书名、作者名查询两种查询方式)和显示操作;要实现对撤销图书信息的删除则要提供文件记录的删除操作;办理借书或还书手续需要提供修改操作;另外还要提供键盘式选择菜单以实现功能选择https://www.360wenmi.com/f/fileu9ihjn2g.html
4.图书管理系统的设计与实现(关于图书管理系统论文)文化摘要:随着信息技术的飞速发展,传统的图书管理方式难以满足日益增长的图书资源管理与读者服务需求。本文旨在探讨图书管理系统的设计与实现,通过分析图书馆管理业务流程和功能需求,综合运用数据库、软件工程等相关技术,构建一套高效、便捷、智能化的图书管理系统,以提升图书管理效率、优化读者借阅体验,并对系统的测试与应用效果http://www.tnsroot.cn/culture/202411/t20241123_57265.shtml
5.图书管理信息系统的设计与实现工学学士毕业论文图书管理信息系统的设计与实现-工学学士毕业论文 https://bbs.pinggu.org/thread-13125576-1-1.html
6.图书信息管理系统的设计与实现图书信息管理系统的设计与实现 陈捷 开通知网号 【摘要】: 图书管理系统是一种具有典型特征的信息管理系统(MIS),在开发的过程当中主要涉及到后台数据库的构建以及维护,前端应用程序的代码编写等工作。在建立数据库方面要求必须具备数据的完整性以及一致性,在前端应用程序方面则要求应用程序的功能模块满足客户的实际需要,https://cdmd.cnki.com.cn/Article/CDMD-10384-1014142433.htm
7.图书信息管理系统的设计与实现图书信息管理系统的设计与实现 吉林大学 | 周宗强 开通知网号 伴随着国家信息化建设步伐的加快,不断提高各行各业从业人员的文化素质、扩大知识面、拓宽知识结构显得越发重要。广大公民不仅要学习政治理论,专业文化知识的学习也很重要。因此,各单位图书资源的建设力度也空前加大,随着图书资料种类的增加,如何有效提高大https://wap.cnki.net/touch/web/Dissertation/Article/-1014271110.html
8.图书管理信息系统的设计和实现TBECtis图书管理信息系统的设计和实现 端应用程序的开发两个方面。对于前者要求建立起数据一致性和完整性强、数据安全性好的数据库。而对于后者则要求应用程序功能完备,易使用等特点。 本图书管理信息系统是利用计算机管理信息处理的迅速、准确、可靠且具有强大存储能力的突出特点,全面提高图书馆的管理水平和工作效率,并以及时、http://blog.chinaunix.net/uid-20773055-id-577469.html
9.图书管理系统需求报告[2]黄自钦.基于Delphi7的图书信息管理系统的设计与实现[J].轻工科技,20xx,08:72-74. [3]盛芳圆.高校图书馆图书管理系统的设计与实现[J].科技信息,20xx,35:274-275 图书管理系统需求报告8 1. 引言 1.1编写目的 编写本报告的目的是研究本系统的总体需求、实现方案,并分析开发系统的可行性,为决策者提供是否开发https://www.unjs.com/fanwenku/424518.html
10.计算机信息管理论文我国企业的管理,更注重人性管理,加强人际关系的处理,使其发挥更有价值的作用,提高工作质量,对此管理工作,易出现形式化,使其精细化管理达不到精细化,对此加强计算机信息管理,实现理性管理,保证数据输入的精确,从而更好的实现成本控制,实现信息系统化,所要求的精细化管理。https://www.yjbys.com/biyelunwen/fanwen/jisuanji/732691.html
11.基于C语言实现图书管理信息系统设计本文实例为大家分享了图书管理信息系统的设计与实现,供大家参考,具体内容如下 #include<stdio.h> #include<string.h> #define BookSize 100 #define BLHum 50 #define BLHnum 50 #define RRnum 50 /*主数据库文件*/ typedef struct int bno; char bname21; https://www.xiuzhanwang.com/a1/Cyuyan/963.html
12.网站毕业设计选题ASP.NET的网站新闻管理系统设计与实现 【摘要】利用Asp.net和技术开发的网站新闻管理系统,实现了网站新闻的动态管理,使得对信息的管理更加及时、高效,提高了工作效率。同时对系统的开发原理、系统的功能特点和设计方案进行了介绍。【关键词】Asp.net 新闻 管理 数据库随着internet的普及,越来越多的企业建立了自己的wwwhttps://www.diyifanwen.com/w/wangzhanbiyeshejixuanti/
13.2023届电子信息与计算机工程系优秀毕业设计作品毕业设计3. 学生信息管理系统的设计与实现 2019级计算机科学与技术 张科银 本设计旨在设计和实现一个基于Vue框架和SpringCloud框架的学生信息管理系统,以满足高校学生管理工作的需求。分析了学生信息管理系统的发展历程、现状和未来趋势,强调了学生信息管理系统在教育管理中的重要意义。针对系统的用户进行了分析,包括教师和管理员https://www.cdutetc.cn/c/4c068411-751b-4f12-b725-f69e34c010a3.html
14.Python实现图书管理系统设计python这篇文章主要为大家详细介绍了Python实现图书管理系统设计,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下 基于python的tkinter,将图书管理系统的界面进行简单的开发,我在这里使用的方法比较简单理解,但是代码过于繁多。添加、删除及修改并未使用数据库,而是使用了csv文件的读取操作,从而替代https://www.jb51.net/article/240282.htm
15.图书管理系统的设计与实现图书管理系统的设计与实现图书管理系统的设计与实现 图书管理系统的设计与实现一.绪论 (一)课题背景: 随着现代科学技术的进步,人类社会正逐渐走向信息化,图书馆拥有丰富的文献信息资源,是社会系统的重要组成部分,在信息社会中作用愈来愈重要。我国图书馆计算机等信息技术的应用起步于20世纪70年代末期,随着改革开放的步伐https://doc.mbalib.com/view/m/e52e737916a7b18b72dc2d5c3fe30828.html
16.基于RFID的图书管理系统设计AET为了真正实现自动的借还书流程,减少图书管理员的工作量,以上借还书终端均采用触摸显示屏以便读者可以很好地和管理系统进行信息的交互。 3 系统的功能模块分析 图书馆RFID图书管理系统以RnD中间件为纽带。 将先进的RFID技术同图书管理系统有机地结合起来,有效地提高了图书管理的效率、简化了图书管理的流程、降低了图书管http://www.chinaaet.com/article/122522