图书管理系统
- 格式:docx
- 大小:71.08 KB
- 文档页数:22
图书管理系统文献综述随着信息技术的不断发展与应用,图书管理系统作为信息管理的重要组成部分,逐渐成为各类图书馆的基础设施之一。
本文将对图书管理系统的相关文献进行综述,探讨其发展现状和未来趋势。
一、图书管理系统的概述1.1 图书管理系统的定义与功能图书管理系统是一种利用计算机技术和信息管理方法,对图书馆的各项业务进行管理、服务和控制的系统。
其主要功能包括图书流通管理、读者管理、书目管理、查询统计、数字资源管理等。
1.2 图书管理系统的发展历程早期的图书管理系统主要以人工操作为主,如人工登记借还书记录、人工编目等。
而随着计算机技术的发展,图书管理系统逐渐实现自动化管理,提高了工作效率和服务质量。
二、图书管理系统的关键技术2.1 数据管理技术图书管理系统的核心在于对图书馆资源和读者信息的管理。
因此,数据管理技术的应用对系统的性能和功能至关重要,如数据库设计与管理、数据安全与备份等。
2.2 网络技术图书管理系统的网络化是当前的发展趋势,它可以实现不同图书馆之间的资源共享和互联互通。
网络技术的应用包括网络架构设计、网络安全等,以确保系统的可靠性和稳定性。
2.3 智能搜索与推荐技术随着图书馆资源的日益增加,如何快速准确地找到所需图书成为了图书管理员和读者面临的挑战。
智能搜索与推荐技术的应用可以根据读者的兴趣和需求,提供个性化的图书推荐与查询服务。
三、图书管理系统的应用案例3.1 图书馆借阅管理系统图书馆借阅管理系统是图书馆管理的重要组成部分,它可以对图书的借还记录进行电子化管理,提供自助借还服务,并实现书目自动整理与编目等功能。
3.2 数字图书馆管理系统数字图书馆管理系统主要用于管理和服务数字资源,如电子书、期刊、论文等。
它提供了在线阅读、检索和下载等功能,为读者提供更加丰富和便捷的阅读体验。
3.3 学校图书管理系统学校图书管理系统是针对学校图书馆的特点和需求而开发的,它实现了师生借阅记录的管理、读者证的制作和管理、图书采购与清算等功能,提高了学校图书馆的管理水平和服务质量。
图书管理系统小结图书管理系统是一个用于管理图书馆图书的软件系统。
它可以记录图书的信息,如书名、作者、出版社等,同时也可以记录读者的借阅信息。
图书管理系统的建立可以提高图书馆的管理效率,加快借还书的速度,提供更好的服务质量。
在图书管理系统的设计中,需考虑以下几个方面:首先,要采用合适的数据库管理系统。
数据库管理系统是图书管理系统的核心,需要使用可靠、高效的数据库软件来存储和管理图书馆的书籍信息。
常见的数据库管理系统有MySQL、Oracle、SQL Server 等。
根据图书馆的规模和需求选取合适的数据库管理系统。
其次,要设计合理的图书分类和索引系统。
图书馆的图书按照一定的分类和排序方式存放,这样方便读者查找所需图书。
在图书管理系统中,要设计好图书分类和索引系统,使读者能方便快捷地查找所需书籍。
还要设计合理的借阅和归还功能。
图书管理系统应该提供方便的借阅和归还功能,读者可以通过系统在线预借书籍,并在到馆后通过系统的自助借还机完成借还书的操作。
借阅过程中应记录读者的借阅信息,包括借阅时间、归还时间等,以便图书馆管理者了解读者的借阅情况。
图书管理系统还应提供图书馆资源管理功能。
图书馆不仅仅是管理图书,还包括其他多种资源,如期刊、报纸、音像资料等。
图书管理系统应该提供对这些图书馆资源的管理功能,使图书馆能够更好地管理和使用这些资源。
此外,图书管理系统还应该提供报表生成和统计分析功能。
图书馆管理者需要了解图书借阅的情况,如每月借还书的数量、热门图书的借阅次数等。
图书管理系统应该能够根据借阅记录,生成各种报表和统计分析结果,以便图书馆管理者对图书借阅情况进行分析和决策。
总之,图书管理系统是一个非常有用的软件系统,可以帮助图书馆提高管理效率,提供更好的服务质量。
它应该具备合理的数据库管理系统、图书分类和索引系统、借阅和归还功能、资源管理功能、报表生成和统计分析功能等。
通过有效的设计和使用,图书管理系统能够使图书馆更加高效、便捷地管理图书馆资源,提供优质的图书馆服务。
图书管理系统工作总结8篇篇1一、引言在过去的一年中,我负责管理和维护图书管理系统的正常运行。
通过不断努力和改进,系统在图书资源的整合、检索、借阅和归还等方面取得了显著成效。
本文将详细介绍图书管理系统的运行情况、管理措施、改进方案以及未来展望。
二、系统运行情况目前,图书管理系统已经实现了图书资源的全面整合,包括图书的录入、检索、借阅和归还等功能。
系统支持多种检索方式,如书名、作者、关键词等,方便用户快速找到所需图书。
同时,系统还具备借阅和归还图书的功能,支持预约借书和自助借还书,大大提高了借阅效率。
在系统运行过程中,我们密切关注用户需求,不断优化系统功能。
例如,针对用户反映的借书流程繁琐问题,我们对借书流程进行了优化,减少了借书步骤,提高了借书效率。
此外,我们还增加了图书推荐功能,根据用户的借阅历史和偏好,推荐相关图书,提升了用户满意度。
三、管理措施为确保图书管理系统的稳定运行,我们采取了一系列管理措施。
首先,我们建立了完善的系统管理制度,明确了各级管理员的职责和权限,确保了系统的规范运行。
其次,我们加强了系统安全防护措施,如设置访问权限、定期更新密码等,保障了系统安全。
此外,我们还定期对系统进行维护和更新,确保了系统的稳定性和可靠性。
四、改进方案尽管图书管理系统在运行过程中取得了显著成效,但我们仍需不断改进以提升用户体验。
针对现有问题,我们提出以下改进方案:一是进一步完善系统功能,如增加图书分类、书评等功能,提升用户检索和借阅体验;二是优化系统界面设计,使界面更加美观、易用;三是加强系统性能监控和优化,确保系统响应速度和稳定性。
五、未来展望随着信息技术的不断发展,图书管理系统将迎来更多发展机遇和挑战。
我们将继续关注行业发展趋势和用户需求变化,不断优化和改进系统功能和性能。
同时,我们也将积极探索与其他系统的互联互通,以实现资源共享和优势互补。
在未来发展中,我们将继续努力提升图书管理系统的水平和服务质量,为用户提供更加便捷、高效的图书借阅体验。
图书管理系统功能
图书管理系统是一种用于管理图书馆和书店等机构的软件系统,具备以下功能:
1. 图书录入功能:包括图书的基本信息录入,如书名、作者、出版社、ISBN号等,还可添加图书封面、图书简介等附加信息。
2. 图书查询功能:用户可以根据关键词、作者、出版社等条件进行图书查询,并可查看图书详细信息,方便用户了解图书情况。
3. 图书借阅功能:用户可以通过系统预定图书、自助借阅和归还图书。
在借阅过程中,系统会自动更新图书的借阅状态,并提醒用户还书日期。
4. 图书续借功能:用户可以在借书期限内申请续借图书,并可以在系统中查看续借记录。
5. 图书预约功能:用户可以根据图书馆的实际情况,在系统中预约图书,方便用户提前获取图书。
6. 图书管理功能:管理员可以对图书信息进行增加、删除、修改和查询等操作,方便管理图书馆的图书资源。
7. 用户管理功能:管理员可以对用户信息进行增加、删除、修改和查询等操作,包括用户的基本信息和借阅记录等。
8. 读者建议功能:用户可以在系统中提出对图书馆服务的建议和意见,方便图书馆改进服务质量。
9. 数据统计功能:系统可以统计和展示图书的借阅情况、预约情况、借阅率等数据,帮助管理员进行决策和管理。
10. 系统安全功能:系统具备用户权限管理和数据备份等安全
功能,保证图书馆数据的安全性和可靠性。
通过以上功能,图书管理系统可以提高图书馆和书店的工作效率,提供更好的服务,方便用户管理图书和进行图书咨询。
图书管理系统完整版1. 引言本文档主要描述了图书管理系统的功能、操作和配置,以帮助用户更好地了解和使用本系统。
本文档适用于图书管理系统的新手用户和潜在用户。
2. 系统概述图书管理系统是一个用于管理图书馆图书、读者和借阅信息的管理工具。
通过本系统,管理员可以方便地管理图书信息、读者信息和借阅记录,提供高效、便捷的图书管理服务。
3. 功能模块图书管理系统主要包括以下功能模块:3.1 图书管理图书管理模块包括图书信息的添加、修改、删除和查询功能。
管理员可以方便地维护图书馆的图书资料。
3.2 读者管理读者管理模块包括读者信息的添加、修改、删除和查询功能。
管理员可以维护读者信息,包括姓名、电话、邮箱等。
3.3 借阅管理借阅管理模块包括借阅信息的添加、修改、删除和查询功能。
管理员可以记录和管理读者的借阅信息,包括借阅时间、归还时间等。
3.4 系统设置系统设置模块包括系统参数的配置,如借阅规则、提醒消息等。
管理员可以根据需要调整系统设置。
4. 操作指南以下各章节将分别介绍各功能模块的操作步骤。
4.1 图书管理操作指南4.1.1 添加图书1.登录系统,进入“图书管理”模块。
2.点击“添加图书”按钮。
3.输入图书相关信息,包括书名、作者、出版社等。
4.选择图书分类,点击“保存”按钮。
4.1.2 修改图书信息1.登录系统,进入“图书管理”模块。
2.在图书列表中找到需要修改的图书,点击“编辑”按钮。
3.修改图书相关信息,点击“保存”按钮。
4.1.3 删除图书1.登录系统,进入“图书管理”模块。
2.在图书列表中找到需要删除的图书,点击“删除”按钮。
3.确认删除后,系统将删除该图书信息。
4.1.4 查询图书1.登录系统,进入“图书管理”模块。
2.在图书列表中,可以通过书名、作者等条件进行搜索。
3.系统将显示匹配的图书列表。
4.2 读者管理操作指南4.2.1 添加读者1.登录系统,进入“读者管理”模块。
2.点击“添加读者”按钮。
图书管理系统图书管理系统是一个用于管理图书馆馆藏资源、管理借阅情况以及提供图书查询服务的信息系统。
它的实现可以帮助图书馆提高工作效率,方便读者进行图书查询和借阅操作。
一、系统简介图书管理系统是基于计算机技术的一种信息管理系统,其核心功能是对图书馆内图书进行分类、录入、存储、查询、借阅和归还等操作。
通过该系统,图书馆管理员可以更好地管理馆藏图书,了解图书的借阅情况,及时进行图书的维护和补充。
同时,读者也可以通过该系统方便地查询所需图书的信息,并进行自助借阅和归还。
二、系统架构图书管理系统通常由服务器端和客户端两部分组成。
服务器端负责数据的存储与处理,客户端为读者和管理员提供操作界面。
客户端可以通过各种终端设备(如电脑、手机等)连接服务器,进行相关操作。
系统的数据存储主要包括图书信息、读者信息、借阅记录等。
图书信息包括书名、作者、出版社、ISBN编号等内容,读者信息包括姓名、学号、借阅情况等内容,借阅记录包括借阅时间、归还时间等信息。
三、系统功能1. 图书录入图书馆管理员可以通过系统将新购得的图书录入到系统中。
录入时需要填写图书的基本信息,并分配相应的图书编号。
2. 图书查询读者可以通过系统查询所需图书的信息。
查询可以根据书名、作者、ISBN等关键字进行,系统将返回符合条件的图书列表。
3. 图书借阅与归还读者可以通过系统自助借阅和归还图书。
借阅时需要输入借阅图书的编号,系统将记录借阅时间并更新借阅状态;归还时需要输入归还图书的编号,系统将记录归还时间并更新借阅状态。
4. 图书续借读者可以通过系统进行图书续借操作。
续借可以延长借阅期限,但通常有数量和期限限制。
5. 逾期管理系统可以自动检测和管理逾期借阅情况。
逾期的读者将会收到相应的提醒,并可能面临一定的逾期罚款。
6. 读者管理系统可以管理读者的基本信息,包括姓名、学号、联系方式等。
同时还可以记录读者的借阅历史,帮助图书馆进行读者服务和统计分析。
四、系统优势与应用1. 提高工作效率图书管理系统可以自动化处理图书借还过程,减少人工操作,提高工作效率。
图书管理系统流程图图书管理系统流程图一、引言图书管理系统是一种实现图书馆资源管理、读者管理和图书借阅归还等功能的软件系统。
本文档旨在详细介绍图书管理系统的流程,并提供相应的流程图说明。
读者可以通过本文档了解图书管理系统的功能和操作流程,从而更好地使用该系统。
二、系统概述图书管理系统是一个综合性的管理平台,主要包括图书馆资源管理、读者管理、图书借阅归还、图书采购等功能。
系统通过信息化技术,提高图书管理的效率和准确性,为读者提供便捷的图书借阅服务。
以下是系统的主要流程。
三、图书馆资源管理流程1、图书采购流程a:馆藏需求确认b:采购申请c:采购审批d:供应商选择e:图书订购f:图书入库2、图书编目流程a:图书验收b:图书入库c:图书信息录入d:图书条码e:图书分类3、图书馆资源管理a:图书查询b:图书分类查看c:图书状态管理d:图书移库e:图书借阅历史查看四、读者管理流程1、注册流程a:填写个人信息b:提交注册申请c:注册审核d:借阅证2、登录流程a:输入账号密码b:账号密码验证c:登录成功3、个人信息管理a:个人信息查看b:个人信息修改c:密码修改五、图书借阅流程1、图书查询a:搜索关键字b:图书查询结果展示2、图书借阅a:图书选择b:借阅申请c:借阅审批d:借阅成功3、图书归还a:归还申请b:图书归还审批 c:归还成功六、图书预约流程1、图书预约a:图书查询b:图书预约申请 c:预约成功2、图书预约取消a:预约记录查看 b:取消预约申请 c:取消预约成功七、图书续借流程1、续借申请a:借阅记录查看b:选择要续借的图书c:续借申请d:续借成功2、续借记录查看八、附件本文档附带以下附件:1、图书管理系统流程图:图示每个流程的具体步骤和流转关系。
九、法律名词及注释1、馆藏需求确认:指根据图书馆对各类图书资源的需求进行确认和组织的工作。
2、采购申请:指图书馆向相关部门或供应商提交采购图书的申请。
3、采购审批:指依据图书馆的采购政策和流程对采购申请进行审查和批准的过程。
图书管理系统工作总结8篇第1篇示例:图书管理系统是一种能够帮助图书馆、书店等机构管理图书馆藏的信息系统。
在过去的一段时间里,我有幸参与了图书管理系统的运营与管理工作,积累了许多宝贵的经验。
在此,我将对这段工作进行总结,希望能够给以后的工作带来一些启示。
在图书管理系统的日常运营中,我认识到了信息化管理的重要性。
通过系统的建立与维护,我们能够方便地查询图书的信息,了解每一本书的借阅情况以及流通情况。
系统还可以帮助我们统计数据、生成报表,帮助管理者更好地了解图书馆的运营状况。
在以后的工作中,我们应该继续加强对图书管理系统的维护,让其能够更好地服务我们的工作。
我还发现了图书管理系统在提高工作效率方面的巨大作用。
通过系统的帮助,我们能够更快速、更准确地处理图书的借还、归还等流程,大大节省了工作时间。
而且,系统还能够帮助我们自动提醒图书的到期归还时间,避免了因忘记归还而产生的问题。
在日后的工作中,我们应该继续发挥图书管理系统的优势,提高工作效率,为读者提供更好的服务。
我在图书管理系统的工作中也学习到了团队合作的重要性。
在系统的建设和维护过程中,需要多个部门的协作,需要各个人员的密切配合。
只有团队齐心协力,才能够顺利完成图书管理系统的建设与运营工作。
在以后的工作中,我们应该加强团队协作,加强沟通与合作,共同努力,实现图书管理系统工作的最佳效果。
通过这段时间的图书管理系统工作,我不仅学到了许多专业知识,还提高了自己的团队合作能力和工作效率。
希望在以后的工作中,能够继续积累经验,不断提升自己,为图书管理系统的运营与发展贡献自己的力量。
【以上内容仅为泛指,如有雷同纯属巧合】。
第2篇示例:图书管理系统工作总结近年来,图书管理系统在图书馆、学校等场所的应用日益普及,成为图书管理和借阅服务的重要工具。
作为图书管理系统的管理员,我在工作中不断总结经验,提高工作效率,为读者提供更好的服务,以下是我对图书管理系统工作的总结和反思。
图书管理系统 Prepared on 22 November 2020C语言程序设计图书管理系统学生:专业:电子信息科学与技术学号:指导老师:设计要求课程设计是对学生的一种全面综合训练,是与课堂听讲、自学和练习相辅相成的、必不可少的一个教学环节。
通常,课程设计中的问题比平时的习题复杂得多,也更接近实际。
课程设计着眼于原理与应用的结合点,使学生学会如何把书上学到的知识用于解决实际问题,培养软件工作所需要的动手能力;另一方面,能使书上的知识变“活”,起到深化理解和灵活掌握教学内容的目的。
题目:图书销售管理系统设计图书信息包括:序号、书名、作者、出版单位、价格。
试设计一图书销售管理系统,使之能提供以下功能:1、系统以菜单方式工作2、图书信息录入功能(图书信息用文件保存)--输入3、图书信息的删除与修改功能4、图书信息浏览功能--输出5、查询功能--算法:按书名/作者查询6、排序功能--算法按书名排序按价格排序1、独立完成2、需随程序设计与实现完成一份描述该过程的报告,供考核时参考。
考核方式:上机面试。
在完成程序和文档后,根据题目要求和同学自行完成的文档,可能考核设计思路、代码分析、修改代码、增加功能、跟踪调试等各方面。
设计思路1.主目录2.录入3.图书查询目录4.排序查询序号排序查询:价格排序查询:5.自定义查询6.全部查询7.修改8.删除9.替换9.购买设计思路1.录入:INSERT()函数,因为录入的数据最后要保存进文件中,以供查询、购买等功能的使用,所以在文件已开始if判断语句打开文件a,打开文件也就定义了指针的位置。
其次输入信息,写代码时我发现,如果使用scanf()函数,每次在输入一个整形或字符时,总会因为敲了一个回车而提前进入下一行代码,影响正常输入。
于是,我在前面加了一个ch=getchar();以接收回车符。
当输入完信息后,使用fwrite();函数将之前已经赋值的结构体变量存入a文件,并用fclose ();关闭文件,防止文件内容被篡改。
在最后加一个switch分支语句以判断是否循环退出,当输入字符‘y’后,自动重复调用INSERT();,否则调用MAINMENU()退到主目录。
2.按功能查询:在按序号(价格)查询时,首先依然是打开之前已经写入要查询内容的文件,然后通过输入要查询的字符串或整形变量与文件内容比较,如果一致则打印输出此数组的其他结构体成员。
具体的比较我使用的是字符串比较函数strcmp(char a[20],char b[20]);或利用if(“int a==int b”)判断整形变量的相等。
如果相等则输出结构体变量的其他成员,否则进入下一循环。
这里的循环用for()实现,有几个变量就比较几次(包括和自己比较)。
3.排序:对于排序,有很多种方法,这里我用的是比较简单的冒泡法。
冒泡法的原理:首先做一个内循环,将数组的第一个值与后面的值分别比较,如果前者小于后者(降序)则交换两值的位置。
然后是外循环,由for实现第二、第三个值分别与其后面的值比较。
最后循环结束后得到交换赋值后的结构体变量,并打印输出。
一般的,外层循环的次数是字符数的n-1次,内循环每次循环是起始比较值后面剩下的字符数。
同样的,字符串我用strcmp(char a[20],char b[20]),整型变量用‘==’。
4.修改:修改功能其实是查询函数SEARCH();和录入函数INSERT();的使用。
首先还是打开文件,然后,利用scanf();接收要修改的数组的任意一个变量,用strcmp();和‘==’比较是否相符,同样这里要使用for()让输入的变量于每一个数组的相同的类型变量进行比较。
若符合则开始进入录入函数给选择的结构体变量分别赋值。
5.删除:如果是全部删除,则给每一个录入的变量赋空值即可。
若是单项删除,首先查询要删除数组的其中一个结构体变量(同修改),如果符合,则赋空值即可。
我用的是复制覆盖的方法,即后从要删除的数组后一个数组开始,分别向前移动一位,这里可以用strcpy(char a[20],char b[20]);字符串复制函数,在这里b把值赋给a,但不改变b的值。
6.购买:购买功能是前面所有功能的综合。
先输入要购买的书的一个关键变量,然后与录入的图书信息比较,如果相符则打印出来。
此时也可以在定义一个结构体变量,用来存放购买图书所要使用的信息。
源代码:#include<>#include<>#include<>#include<>void MAINMENU();void INSERT();void WRITEINFILE();void READFROMFILE(); void SEARCHLIST();void SORTLIST();void LISTBYBNO();void LISTBYPRICE();void SORTBYBNO();void SORTBYNAME();void DIYSEARCH();void SCAN();void SEARCHBYBNO();void SEARCHBYNAME(); void MODIFY();void DELETELIST();void DELETEALL();void DELETEBYBNO();void ENCHANGELIST(); void ENCHANGEBYBNO(); void ENCHANGEBYNAME(); void BUYLIST();void BUY();void EXIT();#define N 1000struct BOOK{int bno;char name[20];char edition[20];char author[20];float price;int storage;}book[N];FILE *fp;char filename[20];上面是头文件~下面是主程序~#include""int i;void main(){int k=0;while(k==0){system("cls");MAINMENU();}}void MAINMENU(){char choice; /*进入系统主目录*/system("cls");printf("*****************************图书管理系统********************************\n");printf(" A.图书录入\n");printf(" B.图书查询\n");printf(" C.修改\n");printf(" D.图书购买\n");printf(" E.退出\n\n\n\n");printf(" 请选择需要的服务:");choice=getchar();switch(choice){case 'a': INSERT();break;case 'b': SEARCHLIST();break;case 'c': MODIFY();break;case 'd': BUYLIST();break;case 'e': EXIT();break;}void EXIT(){char ch;printf("\n\n\t确认退出(Y/N):");ch=getchar();scanf("%c",&ch);switch(ch){case 'y':fclose(fp);exit(0);case 'n':MAINMENU();}}void SEARCHLIST(){system("cls");char choice;printf("******************图书查询********************\n");printf("******************A. 排序查询****************\n");printf("******************B. 自定义查询**************\n");printf("******************C. 查询全部****************\n");printf("******************D. 返回主菜单**************\n");printf("请输入查询的方式:");choice=getchar();scanf("%c",&choice);switch(choice){case 'a':SORTLIST();break;case 'b':DIYSEARCH();break;case 'c':SCAN();break;case 'd':MAINMENU();break;}}void SCAN(){system("cls");if((fp=fopen("a","r"))==NULL)printf("无法打开文件!\n");return;}printf("*****************************图书信息*****************************\n");for(i=0;i<3;i++){fread(&book[i],sizeof(struct BOOK),1,fp);printf("序号:%4d\n",book[i].bno);printf("书名:%4s\n",&book[i].name);printf("作者:%4s\n",&book[i].author);printf("出版社:%3s\n",&book[i].edition);printf("价格:%4f\n",book[i].price);printf("库存量:%3d\n\n",book[i].storage);}printf("按任意键返回查询主菜单!");getch();fclose(fp);}void SORTLIST(){char choice;system("cls");printf("*****************a.按序号排序*********************\n");printf("*****************B.按价格排序*********************\n");printf("*****************C.返回查询菜单*******************\n");printf("请选择查看的方式:");choice=getchar();scanf("%c",&choice);switch(choice){case 'a':SORTBYBNO();break;case 'b':SORTBYNAME();break;case 'c':SEARCHLIST();break;}}void DIYSEARCH(){system("cls");char choice;printf("******************A. 按序号查询****************\n");printf("******************B. 按书名查询****************\n");printf("******************C. 返回查询菜单**************\n");printf("请选择查询的方式:");choice=getchar();scanf("%c",&choice);switch(choice){case 'a':SEARCHBYBNO();break;case 'b':SEARCHBYNAME();break;case 'c':MAINMENU();break;}}void INSERT(){system("cls");char ch,ch1;if((fp=fopen("a","ab+"))==NULL){printf("无法打开文件!\n");return;}ch=getchar();printf("请输入要录入的序号:");scanf("%d",&book[i].bno);ch=getchar();printf("请输入要录入的书名:");scanf("%s",book[i].name);ch=getchar();printf("请输入要录入的作者:");scanf("%s",book[i].author);ch=getchar();printf("请输入要录入的出版社:");scanf("%s",book[i].edition);ch=getchar();printf("请输入要录入的价格:");scanf("%f",&book[i].price);ch=getchar();printf("请输入要录入的库存量:");scanf("%d",&book[i].storage);fwrite(&book[i],sizeof(struct BOOK),1,fp);fclose(fp);printf("\n是否继续录入信息(Y/N)");ch1=getchar();scanf("%c",&ch1);switch(ch1){case 'y':INSERT();break;case 'n':MAINMENU();break;}}void MODIFY(){char ch;system("cls");printf("**************************修改***************************\n");printf("************************A.删除*************************\n");printf("************************B.替换*************************\n");printf("************************C.返回主目录*******************\n\n\n");printf("请选择要使用的功能:");ch=getchar();scanf("%c",&ch);switch(ch){case 'a':DELETELIST();break;case 'b':ENCHANGELIST();break;case 'c':MAINMENU();break;}}void BUYLIST(){char ch;system("cls");printf("**************************商城***************************\n");printf("************************A.购买***************************\n");printf("************************B.返回主目录*********************\n\n\n");printf("请选择要使用的功能:");ch=getchar();scanf("%c",&ch);switch(ch){case 'a':BUY();break;case 'b':MAINMENU();break;}}void BUY(){float totalprice=0;int quantity=0;char ch;int bno,time;char company[20];if((fp=fopen("a","rb"))==NULL){printf("无法打开文件!\n");return;}if((fp=fopen("a","wb"))==NULL){printf("无法打开文件!\n");return;}system("cls");printf("请输入要购买的图书序号:");ch=getchar();scanf("%d",&bno);for(i=0;i<3;i++){if(bno==book[i].bno){printf("请输入要购买的图书数量:");ch=getchar();scanf("%d",&quantity);fread(&book[i],sizeof(struct BOOK),1,fp);book[i].storage=book[i].storage-quantity;totalprice=quantity*book[i].price;printf("请输入购买单位:\n");ch=getchar();scanf("%s",&company);printf("请输入购买时间:\n");ch=getchar();scanf("%d",&time);system(“cls”);printf("*************************************山东大学威海分校出版社购书清单***************************************\n");printf("\t购书单位:%1s 购书时间:%1d\n",&company,time);printf("----------------------------------------------------------------------------------------------------------\n");printf("----------------------------------------------------------------------------------------------------------\n");printf(" 序号书名作者单价购买量\n");printf("%5d%10s%10s%12f%10d\n",book[i].bno,book[i].name,book[i].author,book[i]. price,quantity);printf("----------------------------------------------------------------------------------------------------------\n");printf("\t总价:%4f 剩余库存量:%3d\n",totalprice,book[i].storage);fwrite(&book[i],sizeof(struct BOOK),1,fp);fclose(fp);getch();}}}void DELETELIST(){char ch;system("cls");printf("***************************删除***************************\n");printf("************************A.全部删除*************************\n");printf("************************B.按序号删除*************************\n");printf("************************C.返回修改目录*******************\n\n\n");printf("请选择要使用的功能:");ch=getchar();scanf("%c",&ch);switch(ch){case 'a':DELETEALL();break;case 'b':DELETEBYBNO();break;case 'c':MODIFY();break;}}void DELETEALL(){char ch;system("cls");printf("是否删除全部的图书信息(y/n)");ch=getchar();scanf("%c",&ch);if(ch='y'){if((fp=fopen("a","wb"))==NULL){printf("无法打开文件!\n");return;}for(i=0;i<3;i++){book[i].bno=NULL;memset( book[i].name, 0, sizeof(char)*20 );memset( book[i].author, 0, sizeof(char)*20 );memset( book[i].edition, 0, sizeof(char)*20 );book[i].price=NULL;book[i].storage=NULL;no,&book[i].name,&book[i].author,&book[i].edition,&book[i].price);fwrite(&book[i],sizeof(struct BOOK),1,fp);}}fclose(fp);}void DELETEBYBNO(){int bno,j;system("cls");if((fp=fopen("a","w"))==NULL){printf("无法打开文件!\n");return;}printf("请输入序号:");scanf("%d",&bno);for(i=0;i<3;i++){if(book[i].bno==bno){for(j=0;j<3;j++){book[i].bno=book[i+1].bno;strcpy(book[j].name,book[j+1].name);strcpy(book[j].author,book[j+1].author);strcpy(book[j].edition,book[j+1].edition);book[j].price=book[j+1].price;book[j].storage=book[j+1].storage;}break;}}fwrite(&book[i],sizeof(struct BOOK),1,fp);fclose(fp);printf("删除成功!按任意键返回主菜单!");getch();}void ENCHANGELIST(){char ch;system("cls");printf("**************************替换***************************\n");printf("************************A.通过序号替换*************************\n");printf("************************B.通过书名替换*************************\n");printf("************************C.返回修改菜单*******************\n\n\n");printf("请选择要使用的功能:");ch=getchar();scanf("%c",&ch);switch(ch){case 'a':ENCHANGEBYBNO();break;case 'b':ENCHANGEBYNAME();break;case 'c':MODIFY();break;}}void ENCHANGEBYBNO(){int bno;char ch;int midstorage;char midname[20];char midauthor[20];char midedition[20];float midprice;system("cls");if((fp=fopen("a","w"))==NULL){printf("无法打开文件!\n");return;}printf("请输入序号:");scanf("%d",&bno);for(i=0;i<3;i++){if(book[i].bno==bno){ch=getchar();printf("请输入要修改的书名:");scanf("%s",midname);strcpy(book[i].name,midname);ch=getchar();printf("请输入要修改的作者:");scanf("%s",midauthor);strcpy(book[i].author,midauthor);ch=getchar();printf("请输入要修改的出版社:");scanf("%s",midedition);strcpy(book[i].edition,midedition);ch=getchar();printf("请输入要修改的价格:");scanf("%f",&midprice);book[i].price=midprice;ch=getchar();printf("请输入要修改的库存量:");scanf("%d",&midstorage);book[i].storage=midstorage;}fwrite(&book[i],sizeof(struct BOOK),1,fp);}fclose(fp);printf("修改成功!按任意键返回主菜单!");getch();}void ENCHANGEBYNAME(){char name[20];char ch;int midbno;int midstorage;char midauthor[20];char midedition[20];float midprice;system("cls");if((fp=fopen("a","w"))==NULL){printf("无法打开文件!\n");return;}printf("请输入书名:");scanf("%s",name);for(i=0;i<3;i++){if(strcmp(book[i].name,name)==0){ch=getchar();printf("请输入要修改的序号:");scanf("%d",&midbno);book[i].bno=midbno;ch=getchar();printf("请输入要修改的作者:");scanf("%s",midauthor);strcpy(book[i].author,midauthor);ch=getchar();printf("请输入要修改的出版社:");scanf("%s",midedition);strcpy(book[i].edition,midedition);ch=getchar();printf("请输入要修改的价格:");scanf("%f",&midprice);book[i].price=midprice;ch=getchar();printf("请输入要修改的库存量:");scanf("%d",&midstorage);book[i].storage=midstorage;}fwrite(&book[i],sizeof(struct BOOK),1,fp);}fclose(fp);printf("修改成功!按任意键返回主菜单!");getch();}void SORTBYBNO(){if((fp=fopen("a","rb+"))==NULL){printf("无法打开文件!\n");return;}system("cls");int midstorage;int midbno;int j;int i;char midname[20];char midauthor[20];char midedition[20];float midprice;for(j=0;j<3;j++)for(i=0;i<3-j;i++)if(book[i].bno<book[i+1].bno){fread(&book[i],sizeof(struct BOOK),1,fp);midbno=book[i].bno;book[i].bno=book[i+1].bno;book[i+1].bno=midbno;strcpy(midname,book[i].name);strcpy(book[i].name,book[i+1].name);strcpy(book[i+1].name,midname);strcpy(midauthor,book[i].author);strcpy(book[i].author,book[i+1].author);strcpy(book[i+1].author,midauthor);strcpy(midedition,book[i].edition);strcpy(book[i].edition,book[i+1].edition);strcpy(book[i+1].edition,midedition);midprice=book[i].price;book[i].price=book[i+1].price;book[i+1].price=midprice;midstorage=book[i].storage;book[i].storage=book[i+1].storage;book[i+1].storage=midstorage;}for(i=0;i<3;i++){printf("序号:%4d\n",book[i].bno);printf("书名:%4s\n",&book[i].name);printf("作者:%4s\n",&book[i].author);printf("出版社:%3s\n",&book[i].edition);printf("价格:%4f\n",book[i].price);printf("库存量:%3d\n\n",book[i].storage);}printf("按任意键返回主菜单");getch();}void SORTBYNAME(){system("cls");char ch;int midstorage;int j;int i;int midbno;char midname[20];char midauthor[20];char midedition[20];float midprice;if((fp=fopen("a","r"))==NULL){printf("无法打开文件!\n");return;}for(j=0;j<3;j++)for(i=0;i<3-j;i++)if(book[i].price<book[i+1].price){fread(&book[i],sizeof(struct BOOK),1,fp);midbno=book[i].bno;book[i].bno=book[i+1].bno;book[i+1].bno=midbno;strcpy(midname,book[i].name);strcpy(book[i].name,book[i+1].name);strcpy(book[i+1].name,midname);strcpy(midauthor,book[i].author);strcpy(book[i].author,book[i+1].author);strcpy(book[i+1].author,midauthor);strcpy(midedition,book[i].edition);strcpy(book[i].edition,book[i+1].edition);strcpy(book[i+1].edition,midedition);midprice=book[i].price;book[i].price=book[i+1].price;book[i+1].price=midprice;midstorage=book[i].storage;book[i].storage=book[i+1].storage;book[i+1].storage=midstorage;}for(i=0;i<3;i++){printf("价格:%4f\n",book[i].price);printf("序号:%4d\n",book[i].bno);printf("书名:%4s\n",&book[i].name);printf("作者:%4s\n",&book[i].author);printf("出版社:%3s\n",&book[i].edition);printf("库存量:%3d\n\n",book[i].storage);}ch=getchar();printf("按任意键返回主菜单");getch();}void SEARCHBYBNO(){if((fp=fopen("a","r"))==NULL){printf("无法打开文件!\n");return;}system("cls");int bno;printf("请输入要查询的序号:");scanf("%d",&bno);for(i=0;i<3;i++){fread(&book[i],sizeof(struct BOOK),1,fp);if(book[i].bno==bno){printf("序号:%4d\n",book[i].bno);printf("书名:%4s\n",book[i].name);printf("出版社:%3s\n",book[i].edition);printf("作者:%4s\n",book[i].author);printf("单价:%4f\n",book[i].price);printf("库存量:%3d\n\n",book[i].storage);}}printf("按任意键返回!");getch();}void SEARCHBYNAME(){system("cls");if((fp=fopen("a","r"))==NULL){printf("无法打开文件!\n");return;}char name[20];int i;printf("请输入要查询的姓名:");scanf("%s",name);for(i=0;i<3;i++){fread(&book[i],sizeof(struct BOOK),1,fp);if(strcmp(book[i].name,name)==0){printf("序号:%4d\n",book[i].bno);printf("书名:%4s\n",book[i].name);printf("出版社:%3s\n",book[i].edition);printf("作者:%4s\n",book[i].author);printf("单价:%4f\n",book[i].price);printf("库存量:%3d\n\n",book[i].storage);}}printf("按任意键返回!");getch();}。