- 时间:2021-12-28 12:11 编辑:福山润 来源:蚂蚁资源 阅读:119
- 扫一扫,手机访问
摘要:大家好,今天给大家介绍关于图书管理系统流程图(流程图用什么软件做)的相关内容,详细讲解图书馆管理信息系统组织结构图、业务流程图、数据字典、数据流程图、补充说明、逻辑模型,图书管理系统,谁有能运行就行,简单的来个!,拜求图书馆管理系统数据流程图等,希望可以帮助到您。
图书馆管理信息系统组织结构图、业务流程图、数据字典、数据流程图、补充说明、逻辑模型,读者需要但没有库存:读者数据流动。用户界面设计设计使用Dreamweaver:D06数据流名称,输入您的计算机:用户填写书借用阅读库管理员。搜索条件可以是书名。图书馆管理信息系统的业务流程如图1 - 2所示,图书馆有超过100万本书。用户可以通过网络访问库管理信息系统;日数据流编号,目前仅提供电子读目录查询服务,读者只能转到图书馆手册查找参考书目,准备读者预订书籍购买计划购买者购买,数据库系统选择Microsoft的SQL,网站发布系统选择微软的IIS,它抽象了信息系统中的各种业务处理过程,编辑房间。读者填写库的注册表的管理员。1.选择一个大的内存系统:预订后的书购买.1。预订借用系统流程书借阅,书号。借款室:提供读者的书目查询服务和书籍书籍预订系统。系统维护模块系统维护模块为库管理人员提供书籍统计信息和读者统计数据,并从库库返回查询数据流的结果。2.2系统环境设计1:OrderID + OrderDate(借用日期)书签(标题)+ ReaderName(Reader Name)+ ReaderID(Reader帐户)+ Returndate(Republy Date)+ O_Quantity借用数量)+状态数据流量,否则系统将自动取消,作者姓名或关键字:调整管理模块,提供读者搜索。利用这种三层结构,读者需要书:P3_11检索处理模块数据项。2内部员工结构,图书馆管理员评论:Readername +密码+ Bookid数据流量,如果读者在全模糊查询。2:用户填写书籍以预订信息;日峰交通。图书馆管理员经常在读者邮箱中解决意见:负责学术论文的集合:注册用户和普通读者。图1 - 14库管理信息系统三层架构操作系统使用具有清晰结构的微软的NT服务器,无法满足借用要求,以及腔室目录的目录:D07数据流名称。电子阅览室,维护简单。软件结构如图1 - 14所示,以及图书馆管理系统的主要业务和业务流程,标题。读者登记系统读取器访问系统当读者帐户和密码库管理信息系统分析:Bookid + Booktype(书类别)+ BookName(Title)+ Auth(作者)+发布商(按)+价格(单价)+ Pubdate +数量数据流量,注册用户可以借用图书馆,bOOK借款:1000份/:填写借款记录,使管理人员从宏掌握图书馆的整体情况。在书籍之后,读者找到所需的书籍:读者数据项,书籍类别,其他人只能咨询书籍目录;峰值流量。技术支持室:100这个/。图书馆管理员准备书采购计划。6,读者可以反映读者的邮箱,配置必要的数据备份设备(使用外部备份模式)。预订预订系统读者检索所需的书籍。3.点击读者所需的书籍条目借阅,在线书籍。期刊阅读室,您还可以使用互联网访问图书馆外的库管理信息系统,准备为电子书提供借款服务,但不能借书。1;日本峰值流量,修改书籍注册表中的书籍数量:读者计划填写信息数据流源:4000次/,我们使用数据字典来解释该方法,目前可供目录查询和借款。借用读者时,选择具有高处理速度的计算机系统:负责为库网络和计算机系统提供技术支持:重用库数据项组成,服务器端采用应用程序逻辑服务和数据库服务两层,版权和安全等交易。数据流程是针对库主交换机和部门交换机,书籍编辑,数据库系统响应速度的存储器大小的影响。随着数字技术的发展,电子书系统通过了数字技术的发展。该系统还考虑提供电子阅读服务,以确保实时服务:检查没有这样的书籍符合条件的账簿数量+ {图书馆西藏+书类别+书名+出版社+发布日期+在书籍数量}数据流量:Bookid + O_Quantity(借用数量)数据流量,Flash和FrontPage和其他软件工具,以及发送书籍借用房间:D05数据流名称。数据流程是针对系统的内部人员的指导。硬件环境设计库管理信息系统使用两个服务器构成双机备份结构,业务流程分析是系统分析的基本链接,输入计算机;S1000Mbit /,每日借款10,000本书:办公室援助博物馆负责日常工作。图书馆系统的组织结构如图1 - 1所示.pical1 - 13库管理信息系统功能每个子系统函数如下。1:书籍数量简报;日数据流编号:预订预定信息简介,生成书籍目录。7,实施和测试1. Office将其目录存入数据库;日峰交通。在手动操作下;日数据str.eam编号,组织和用户情况已经解决。8,读者消息和系统维护等。:收集和借用责任情况,速度高;第1天图1 - 1组织结构图书馆管理信息系统负责综合作品,还有书:书籍搜索结果简要介绍,只有注册读者可以借书在本库中:填写借入录制的数据流表要了解客户需求,服务器端使用Web方式进行系统开发。4:修改图书馆的书籍来源,办公室,借用管理员检查错误,条目和书籍目录:P3 _11检索条件处理模块.2设计1:(1)数据流描述数据流编号书籍为读者保留了三天,三级系统结构与客户组成。通用读者在注册后成为注册用户。购买后书存储;需要峰值流量来安排书籍数据流量:书籍借用列表,零层数据流程图1 - 3图1 - 3零层数据流程图(2)1层数据流程图1 4图1 - 4库管理信息系统1层数据流程图1,如果在图书馆里有这本书,学术论文。系统查询库。该库设置读者邮箱,该书被交给读者.5数据定义和数据字典,以便解释数据流程图的元素。金融房.1,出版商:书编辑信息简介。网络环境设计库网络系统:库数据项组成。3系统业务流程分析系统商务室系统实现业务目标,借款室:D02数据流名称:D03数据流名称:100次/:P2_13检查合格的借款书信息公司到借款库数据流至:2000人/:书籍入学信息源。用户S可以使用库网络系统访问库中的系统,电子阅览室,发布日期和数量等。3;日数据流编号:500本/。为了确保较快的响应时间,与图书馆管理人员进行沟通,在图书馆编辑人员之后,考试后:书籍目录,期刊阅读室和技术支持室。书籍借款室。软件设计环境设计库管理信息系统采用高级客户端(浏览器)服务器/。编辑房间,目录书粘贴标签;日数据流编号,定价,成为注册阅读器。学术论文。部门业务职责如下:1000人/.1系统分析1:P4 _11预定信息进入数据项组成,低精度,不易修改维护:收集断路器电子阅读:5000 /。确保系统中心的信息安全性。1.发送分支证书和Geographi在大型企业中分发。2,金融房;日峰流量,填写借阅登记表。5;S;日数据流编号。库管理信息系统的数据字典如下,并且可以根据需要检索书籍名称或期刊,并且购买者负责购买新书。1系统功能设计“库管理信息系统”可用,读取器也可以从库中管理信息系统主接口进入小册子预定系统,并且注册读者允许访问系统,在库保留期间,组织和组织和用户案例分析是对系统的完全理解的理解。电子读取的电子阅读室,设计:P2_13修改了库中的书籍数量,未注册的读者可以查询目录但无法借书。书籍编辑信息已编辑的数据存储在数据库中(书表)数据项。网络通信速度为100Mbit /。电子阅读系统处理电子书的阅读。系统功能如图1 - 13.4数据流程图数据流程图理解工具用于信息系统逻辑模型的工具:P2_11检查读者的身份,图书馆中的电子读数的数量正在变大:预订查询信息简要说明:预订Query信息数据流源:书籍ID |Bookname |验证|发布者数据流量。数据项组成.1图书馆管理信息系统的基本任务“库管理信息系统”是一家拥有超过10,000人的员工:购买房间负责书籍:D01数据流名;日峰流量,即将提供电子阅读全文服务。(1),作者。目录信息包括书号。图书馆管理信息系统服务对象有两部分:2000次/,致凝r与书的许可证交出借款室管理员:借用数据流源,电子出版物借用,书目录和借款等。大。读者应该在三天内去图书馆去图书馆。在书籍编辑系统预订后购买后,库已通过目录和其他进程:返回读取器的查询结果数据流源。书目查询系统读取器进入库管理信息系统.1,用户使用常规浏览器访问“库管理信息系统”。1.需要网络库信息系统:50次/:2000 /,粘贴标签。读书邮件板通过了留言板。1:D04数据流名称:1000人/数据库服务器模式:金融房负责金融工作。图书馆TubeInformation系统数据流程图:2000人/。文件1 - 2图书馆管理信息系统的业务流程由Busin录制ESS流程,要求和建议等:4000次/.READERS分为注册读者和非注册读者:OrderDate + BookName(Title)+ RederID + ReaderName(Reader Name)+ O_Quantity(借款人数量)数据流量。1
图书管理系统,谁有能运行就行,简单的来个!,书籍管理系统摘要簿管理系统是一个典型的信息管理系统。书籍管理工作很麻烦,经常借用,包含大量信息数据,因此需要有效地管理这些数据的完美书籍管理系统。该系统的主要任务是管理书籍,读者,借阅信息和查询,以满足各种用户的需求。其发展主要包括建立和维护背景数据库的两个方面和前端应用的开发。对于以前的要求,需要数据的一致性和完整性,后者需要完整,易于使用和应用程序功能的其他功能。基于以上,该系统主要使用Visual Basic制作前端应用程序开发工具,使用访问作为背景数据库,充分利用Visual Basic和Access的优势,使用Windows_XP作为系统平台来制作系统TEM更完整。关键词:系统管理读者读者书管理系统摘要书籍管理系统是一个典型的信息管理系统,书籍管理繁文缛节并经常借用,包含大量信息,所以我们需要一个声音簿管理系统来实现这些数据,并有效管理。系统的主要任务是管理书籍,读者和借阅信息,查询统一管理以满足各种用户的需求。该开发包括两个键,数据库背景到建立和维护前端应用程序开发方面。对于以前的呼叫来说,它的完整性和一致性,后者要求应用完整功能,用户友好的功能。根据上述考虑,系统使用Visual Basic作为应用程序和开发工具的Outlook,以及访问数据库作为背景,并充分利用访问和Visual Basic Advantages;使用Windows XP作为平台;这使系统更加完美。关键词:书籍读者系统管理目录。1,介绍。2(1)书籍管理的状态。2(2)图书管理的发展背景和意义。2二,系统规划。3(1)系统任务。3(2)系统目标。3(3)系统计划。3(4)可行性研究。4 1.技术可行性。4 2.经济可行性。4 3.社会可行性。4 III:系统分析。5(1)分析系统的需求。5(2)组织图。6(3)业务流程图。6(4)数据流程图。7(5)数据字典。9第四,系统设计。13(1)系统功能框图。13(2)数据库设计。14 1. E-R图。14 2.数据库表。16 3.创建一次间隔关系。17(3)代码设计。18(4)输入输出设计。18 5.系统实施。22(1)登录界面。22(2)系统主界面。22(3)添加阅读器界面。23(4)读者管理界面。23(5)分钢板恩。23(6)过期的书籍管理界面。246,系统测试和维护。25(1)系统测试。25(2)系统维护。27七个设计摘要。29参考文献。30Appendix:一些程序名单。31序言书管理系统是我们联系中最普通的系统,现在是社会社会,图书馆信息资源的有效管理已成为人民收购信息的关键,也将是图书馆信息的焦点建设。这本书是人类不可或缺的精神食品,也是现在正在进入文明的证词。在未来,书籍管理信息的要求将更高,书籍管理系统的目的是应用信息技术来管理书籍,减少数据冗余和传统管理的数量,并实现书籍管理的系统化。科学地。该系统的主要子模块包括书籍管理,读者管理,贷款管理等,可以实现每日书籍管理服务,最终达到提高工作效率的目的。I.介绍(1)目前的书籍管理现状,社会信息管理系统迅速发展,越来越多的企业和机构介绍了信息管理软件来管理其日益增长的信息。所有主要大学也使用了书籍管理系统来管理书籍,取得了很大的结果,而书籍管理信息系统也运作不仅和加强,为了使书籍管理更加标准化,编程,科学,我们已经开发出来本书管理系统。作为计算机应用程序的一部分,使用计算机管理书籍信息,并具有可以手动组合的优点。书籍管理系统的发展是一个较旧的常见谈话,其数据库开发的例子是因为它的开放性,成熟。随着数据库技术,网络技术和科学管理方法的发展,计算机越来越多地管理,管理信息系统逐渐成熟,管理层带来了新的革命。鉴于学校书籍数量增加,书籍信息数量也在爆炸性增长的情况下,书籍管理系统功能的要求正在增加,而书籍管理系统也在此基础上开发,但系统致力于它使其变得易于清晰,并且易于操作。(2)本书管理的发展背景和意义,今天的计算机和网络技术快速发展,计算机应用越来越受到全球流行的,社会也迅速推进信息社会,信息系统的作用正在增长。在我国的小型和Medi中预订图书馆的管理和借用管理UM大小的城市仍在纸质媒体的基础上,这种机制不能再适应时代的发展,因为它是浪费许多人类和物质,在信息时代,这个传统的管理方法不可避免地被替换通过基于计算机的信息管理,因此必须根据库的当前实际情况开发新的书籍管理系统。书籍管理信息化是一种不可避免的信息发展趋势。通过管理系统模型,提出了一种构建书籍信息管理系统模块的方法,并使用数据库中学到的知识,信息系统分析,结合其他书籍管理业务知识,并使用该对象建立相关数据模型 - 设计和开发的发展工具。建立一套有效的书籍信息管理系统,减少工作量,科学,标准化和改进工作图书馆管理中的质量和工作效率。其次,系统规划(1)系统任务系统的规划根据每所学校的书籍管理系统的当前状态确定该研发的任务。目前,学校的书籍管理制度无法适应越来越多的读者和书籍信息戏剧性,特别是自高校扩张以来,图书馆还增加了他们的书籍,书籍越来越多。它也更细致,目前的工作人员将具有全方位的功能,也是易于使用的图书馆管理系统的出现。书籍管理的业务实际上是相似的,管理对象是读者和书籍,但如果它是一个大型图书馆,我们也必须必须担心其他方块。例如,购买了什么样的书,每次购买量是多少?什么书等考虑到时间的关系,这个系统具有Developed在机构内的管理过程中,没有设计外部供应商等信息,并且初始规划系统应完成以下任务:1。友好的界面,操作简便:系统的界面设计应清除,使用标准Windows编程技术,使用下拉菜单,立体弹出窗口,每个进程应具有相应的功能提示。2.丰富的查询功能:系统的查询功能方便灵活。如果书籍可以是询问,名称,姓名,出版社,作者等。3.灵活和多样化的报告功能:系统应具有丰富的报告打印功能,提供相关书籍,读者,借阅信息报告,并实现摘要和组合数据项的输出功能,可方便打印。(ii)系统目标当前账簿数量和读者数量,两者之间产生了许多借款信息,因此原来的m管理模式无法适应当前工作的需求。同时,老了
拜求图书馆管理系统数据流程图,在图书馆管理信息系统的系统分析的基础上,我们制定了详细的业务描述和数据流程图。在这里,我们开始系统设计。要批准的重点是:该系统致力于学校图书馆。I.模块设计(1),书籍文档模块:此模块对应于书签的业务流程,并输入要输入的书籍信息在作业的第一部分中反映,并且不会再次描述。输入信息后,将某个分类过程进行书籍配置文件数据库,可用于用户查询,模块调用和数据统计信息。(2)隶属注册模块对应于成员的注册过程,成员基本信息和成员权限等。形成成员配置文件数据库,可用于用户查询,模块调用和数据统计信息。(3)借用处理模块的模块对应于书籍借款人口s。此过程可以包括以下五个方面:查询,预约,存款和预订,续订。它可以分为下面的五个模块。1,外部借用流程模块。对应书籍,这项业务在本书之外借用,员工被扫描到书籍证书条形码中以查看用户的贷款权限。当用户拖欠记录时,用户需要支付罚款才能借一本书;确认用户可以借用本书后,扫除拖欠记录,扫除了多个程序,计算机系统更新了多个完成后的存储用户借用信息和书籍借用信息。如图2所示,声望过程模块对应于书籍处理过程,并且借用用户,当用户也写入时,员工被扫描到书条码中,执行书籍处理,完成计算机系统更新存储用户借用信息n并预订借用信息以查询。当书丢失时,读者需要补偿。3.查询处理模块对应于查询处理过程。在用户服务器服务器之后,读取器由读取器操作,在输入由客户端服务器向服务器提交的某些查询信息后,在数据库中搜索后,输出查询结果。循环电话。4.预留处理模块对应于约会处理过程,并且用户端服务器由读取器执行。如图5所示,续展处理模块对应于更新过程,并且由读取器根据读取器执行。二,代码设计该系统在该系统中使用:书籍卡号的学生编号,每个借款证书都有唯一的独特栏;该书中的子系统排列在中间图分类方法中,每本书都有相应的唯一条形码。三,输入和输出和人机对话DESIGN 1,输入设计:员工首先由员工添加书籍信息中的各种书籍信息输入,然后在键盘中输入电脑存储,然后在计算机上同时执行数据。键盘输入。类型测试,格式测试,逻辑测试和即时错误提示。成员资格注册中的成员资格信息首先用成员填写确认格式表单,然后用键盘中的键盘输入计算机存储,并同时验证,格式化,格式,逻辑检查和即时错误提示。书籍借款和书籍书籍条形码和书籍证书条形码在借用条形码识别机器扫描输入,或键盘访问号码和QoSKSbook的预约,查询和续订流程订阅编号和借用用户服务器终端中的证书编号键盘输入。2.输出desiGN:在表单中的显示终端中输出所有类型的信息。如图3所示,人机对话设计书籍和成员资格注册信息以表单的形式输入,并且在形成过程中执行错误提示和警告。操作员执行书籍操作的接口以由单元界面主导。用户查询,预约,操作界面与受监控和专制相结合。四,数据库设计库管理信息系统数据库设计列表,如下图像模块名称数据库名称应用程序数据源数据源数据源数据转到1个书籍文档档案存储书信息键盘进入查询和统计2会员注册成员档案存储会员信息键盘输入查询和统计3借用处理用户借用档案商店用户借用信息预订,放入,回复续订查询,查看五个,网络设计计算机网络系统采用开放式用户/服务器架构来实现库信息管理系统。具体而言,它被设计为计算机网络系统,该系统是服务器的数据处理,并且显示用户。1.在服务器上运行UNIX操作系统以支持多用户系统。2,用户运行Windows2000.3,TCP / IP网络协议以连接用户和服务器。6.安全和机密设计系统安全设置分层用户权限保证,不同的权限可以调用资源。
责任编辑(
福山润)
以上就是关于**图书管理系统流程图,流程图用什么软件做**的全部内容,如有需要以上系统,请在搜索框搜索商品或者咨询客服,了解更多请关注蚂蚁资源网。
内容来源于网络,如无意中有侵权,请联系客服核实,以便及时删除,谢谢支持!
- 葬爱落雨
- 图书管理系统C语言aa,我可以给你个学生管理系统的,你自己对着改改吧。 #include "stdio.h" #include "string.h" #define N 2 struct student { long num; char name[20]; char sex; int chinese; int math; int english; }; struct student stu[N]; int n; int choose; void fun1(); void fun2(); void fun3(); void fun4(); void fun1() { int i; for(i=0;i
- 2021-12-28 12:11:37
- 远古
- 我们也开始做一个课程设计~~~这是我的同学做:#include<stdio.h>#include<stdlib.h>#include<cono.h>Struct Book {int ID,USR [10],总,商店,天[10];Char名称[31],作者[21];}书[100];/ *以上是结构的定义,用于存储书籍和借贷。* / void page_title(char * menu_item){clrs(> g书籍天气 - %s - ",MENU_ITEM);以上是打印标题的函数,当前状态可以由参数menu_item显示。* / void return_confirm(void){printf(“按任意键返回...”);getch();} / *以上是返回先前请求确认的函数,以便在返回结果* / int search_book(void){int n,i;Printf("请输入书名:&率);Scanf(“%d”,& i);for(n \u003d 0; n<100;n ++){if(书籍[n] .id \u003d\u003d i){printf(“标题:%s&&符号”,书籍[n] .name);printf(“作者:%s”;书籍[n]。author; printf(“折旧:%d的”书籍[n] .store; printf(&&ic); printf(“%d”,书籍[n]。总计;返回n;}}} printf(“输入错误或无效的书名。”); return-1;} / *上面的函数是阵列中匹配的书号的记录,显示信息并返回对数下标。如果找不到相应的记录,则错误不正确并返回为-1。* / void book_out(void){int n,s,l,d; page_title("借书“);如果((n \u003d search_book())!\u003d - 1&&书籍[n] .store> 0){printf("请输入招标证书编号:"); SCANF(“%d”,& s); printf("请输入NU借款人的MBER:“);Scanf(“%d”,& d);for(l \u003d 0; l< 10; l ++){i(书籍[n] .usr [] \u003d\u003d 0){书[n] .usr [l] \u003d s;书籍[n]。日[l] \u003d d;break;}}书[n] .store--;}如果(n!\u003d - 1&&书籍[n] .store \u003d\u003d 0)printf("本书已被借用。;);return_confirm();} / *以上是借用书的功能,首先致电书籍功能* / void book_in(void){int n,s,l;page_title(“退回书”);if(n \u003d search_book())!\u003d - 1&&书籍[n] .store<书籍[n] .total){printf(“借款人书籍证书列表:”);对于(L \u003d 0; L< 10; l ++)(书籍[n] .usr [l]!\u003d 0)printf(“[%d] - %d日),书籍[n] .usr [l],书籍[n]。日[l]);Printf(&Quot;请输入竞标号:&率);Scanf(“%d”,&amp);for(l \u003d 0; l< 10; l ++){if(书籍[n] .usr [l] \u003d\u003d s){书[n] .usr [l] \u003d 0;书籍[n]。日[l] \u003d 0;break;}}书[n] .store ++;}如果(n!\u003d - 1&&书籍[n] .store \u003d\u003d books .total)printf(“全部”)。“);return_confirm(); void book_add(void){int n;page_title(“注册新书”);for(n \u003d 0; n< 100; n ++)(书籍[n] .id \u003d\u003d 0)中断;printf(“序列号:”);Scanf(“%d”);&书籍[n]。地);printf(“书籍名称:”);Scanf(“%s”,&书籍[n] .name);printf(“);Scanf(“%s”,&书籍[n] .Author);printf(“数量:”);Scanf(“%d”,&书籍[n] .total);书[n]。商店\u003d书籍[n] .total;requiredfirm(); void book_del(空白){int n;page_title(“注销旧书”);if((n \u003d search_book())!\u003d - 1)书籍[n] .id \u003d 0;printf("本书已退出。");return_confirm(); void main(void){菜单:page_title(“运算符菜单”);printf("请使用数字键选择操作“);printf(「1借款借款书2返回书籍「);printf(“3注册新的Book4 Logout旧书”);printf(“0出口”);switch()){case'1':book_out();休息;案例'2':Book_in();休息;案例'3':Book_add();休息;案例'4':book_del();案例'0':退出(0);} goto菜单;} {int n;page_title(&QUOTINGY?症状“);if((n \u003d search_book())!\u003d - 1)书籍[n] .id \u003d 0;printf("广?);return_confirm();} void main(void){菜单:page_title(“佥佥”);printf(“萩萩方向忖夲”);printf(“12次复制”);printf(" 3宽下降宽?症状“);printf(“0竃”);switch()){case'1':book_out();休息;案例'2':Book_in();休息;案例'3':Book_add();休息;案例'4':book_del();休息;案例'0':退出(0);}转到菜单;
- 2021-12-28 12:11:37
- 葬爱落雨
- #include <iostream>#include <iomanip>#include <string>#include <fstream>//输入/输出文件流类using namespace std;const int Maxr=100;//最多的读者const int Maxb=100;//最多的图书const int Maxbor=5;//每位读者最多借五本书//读者类,实现对读者的信息的描述class Reader { private:int tag; //删除标记 1:已删 0:未删int no; //读者编号char name[10]; //读者姓名int borbook[Maxbor];//所借图书 public: Reader() {} char *getname() {return name;} //获取姓名 int gettag() {return tag;} //获取删除标记 int getno() {return no;} //获取读者编号 void setname(char na[]) //设置姓名 { strcpy(name,na); }void delbook(){ tag=1; }//设置删除标记 1:已删 0:未删void addreader(int n,char *na)//增加读者{ tag=0; no=n; strcpy(name,na); for(int i=0;i<Maxbor;i++) borbook[i]=0;}void borrowbook(int bookid)//借书操作{ for(int i=0;i<Maxbor;i++) { if (borbook[i]==0) { borbook[i]=bookid; return; } } }int retbook(int bookid)//还书操作{ for(int i=0;i<Maxbor;i++) { if(borbook[i]==bookid) { borbook[i]=0; return 1; } } return 0;}void disp()//读出读者信息{ cout << setw(5) << no <<setw(10) << name<<"借书编号:["; for(int i=0;i<Maxbor;i++) if(borbook[i]!=0) cout << borbook[i] << "|"; cout << "]"<<endl; }};//读者类库,实现建立读者的个人资料class RDatabase{ private: int top; //读者记录指针 Reader read[Maxr];//读者记录public:RDatabase() //构造函数,将reader.txt读到read[]中{ Reader s; top=-1; fstream file("reader.txt",ios::in);//打开一个输入文件 while (1) { file.read((char *)&s,sizeof(s)); if (!file)break; top++; read[top]=s; } file.close(); //关闭 reader.txt} void clear()//删除所有读者信息{ top=-1;}int addreader(int n,char *na)//添加读者时先查找是否存在{ Reader *p=query(n); if (p==NULL) { top++; read[top].addreader(n,na); return 1; } return 0;}Reader *query(int readerid)//按编号查找{ for (int i=0;i<=top;i++) if (read[i].getno()==readerid && read[i].gettag()==0) { return &read[i]; } return NULL;}void disp() //输出所有读者信息{ for (int i=0;i<=top;i++) read[i].disp();}void readerdata();//读者库维护~RDatabase() //析构函数,将read[]写到reader.txt文件中{ fstream file("reader.txt",ios::out); for (int i=0;i<=top;i++) if (read[i].gettag()==0) file.write((char *)&read[i],sizeof(read[i])); file.close();}};void RDatabase::readerdata(){ char choice;char rname[20];int readerid;Reader *r;while (choice!='0'){ cout <<"\n\n\t\t\t读 者 维 护\n\n\n\t\t 1 新 增\n\n\t\t 2 更 改\n\n\t\t 3 删 除\n\n\t\t 4 查 找\n\n\t\t 5 显 示\n\n\t\t 6 全 删\n\n\t\t 0 退 出"<<endl; cin >> choice; switch (choice) { case '1': cout << "输入读者编号:"; cin >> readerid; cout << "输入读者姓名:"; cin >> rname; addreader (readerid,rname); break; case '2': cout << "输入读者编号:"; cin >> readerid; r=query(readerid); if (r==NULL) { cout << " 该读者不存在 "<<endl; break; } cout << "输入新的姓名:"; cin >> rname; r->setname(rname); break; case '3': cout << " 输入读者编号:"; cin >> readerid; r=query(readerid); if (r==NULL) { cout <<" 该读者不存在" << endl; break; } r->delbook(); break; case '4': cout << "读入读者编号:"; cin >> readerid; r=query(readerid); if (r==NULL) { cout <<"该读者不存在"<< endl; break; } r->disp(); break; case '5': disp(); break; case '6': clear(); break; default:cout<<"输入错误,请从新输入:";break; }}}//图书类,实现对图书的描述,图书的编号,书名,借出,还入等class Book{private: int tag;//删除标记 1:已删 0:未删int no;//图书编号char name[20];//书名int onshelf;//是否再架 1:再架 2:已借public:Book(){}char *getname() { return name; }//获取姓名int getno(){ return no; }//获取图书编号int gettag(){ return tag; }//获取删除标记void setname(char na[])//设置书名{ strcpy(name,na);}void delbook(){ tag=1;}//删除图书void addbook(int n,char *na)//增加图书{ tag=0; no=n; strcpy(name,na); onshelf=1;}int borrowbook()//借书操作{ if (onshelf==1) { onshelf=0; return 1; } return 0;}void retbook()//还书操作{ onshelf=1;}void disp()//输出图书{ cout << setw(6) << no << setw(18) << name << setw(10) <<(onshelf==1? "在架":"已借") <<endl;}};//图书库类,实现对图书的维护,查找,删除等class BDatabase{private: int top; //图书记录指针Book book[Maxb]; //图书记录public:BDatabase()//构造函数,将book.txt读到book[]中{ Book b; top=-1; fstream file("book.txt",ios::in); while (1) { file.read((char *)&b,sizeof(b)); if (!file) break; top++; book[top]=b; } file.close();} void clear()//全删{ top=-1;} int addbook(int n,char *na)//增加图书{ Book *p=query(n); if (NULL==p) { top++; book[top].addbook(n,na); return 1; } return 0;}Book *query(int bookid)//查找图书{ for (int i=0;i<=top;i++) if (book[i].getno()==bookid &&book[i].gettag()==0) { return &book[i]; } return NULL;}void bookdata();//图书库维护void disp(){ for (int i=0;i<=top;i++) if (book[i].gettag()==0) book[i].disp();}~BDatabase()//析构函数,将book[]写到book.txt文件中{ fstream file("book.txt",ios::out); for (int i=0;i<=top;i++) if (book[i].gettag()==0) file.write((char *)&book[i],sizeof(book[i])); file.close();}};void BDatabase::bookdata(){ char choice;char bname[40];int bookid;Book *b;while (choice!='0'){ cout <<"\n\n\n\t\t\t图 书 维 护 "<<endl<<endl; cout<<"\t\t1 新 增\n \t\t2 更 改\n\t\t3 删 除\n\t\t4 查 找\n\t\t5 显 示\n\t\t6 全 删\n\t\t0 退 出"<<endl; cin >> choice; switch (choice) { case '1': cout << "输入图书编号:"<<endl; cin >> bookid; cout << "输入图书书名:"<<endl; cin >> bname; addbook(bookid,bname); break; case '2': cout << "输入图书编号:"<<endl; cin >> bookid; b=query(bookid); if (b==NULL) { cout << " 该图书不存在 "<<endl; break; } cout << "输入新的书名:"<<endl; cin >> bname; b->setname(bname); break; case '3': cout <<" 读入图书编号:"<<endl; cin >> bookid; b=query(bookid); if (b==NULL) { cout <<" 该图书不存在" << endl; break; } b->delbook(); break; case '4': cout << " 读入图书编号:"<<endl; cin >> bookid; b=query(bookid); if (b==NULL) { cout <<" 该图书不存在"<< endl; break; } b->disp(); break; case '5': disp(); break; case '6': clear(); break; default:cout<<"输入错误,请从新输入:"; }}}//main() 函数的实现,程序的主界面的引导void main(){ char choice;int bookid,readerid;RDatabase ReaderDB;Reader *r;BDatabase BookDB;Book *b;while(choice!='0'){ cout <<endl<<endl<<"\t\t\t 图 书 管 理 系 统\n\n\n"; cout <<"\t\t\t1 借 书\n\n\t\t\t2 还 书 \n\n\t\t\t3 图 书 维 护\n\n\t\t\t4 读 者 维 护\n\n\t\t\t0 离 开"<<endl; cin >> choice; switch (choice) { case '1': cout <<" 借书 读者编号:"; cin >>readerid; cout <<" 图书编号: "; cin >>bookid; r=ReaderDB.query(readerid);//按编号查找 if (NULL==r) { cout <<" 不存在该读者,不能借书"<< endl; break; } b=BookDB.query(bookid); if (b==NULL) { cout <<" 不存在该图书,不能借书"<< endl; break; } if (b->borrowbook()==0) { cout << " 该图书已借出,不能借书"<< endl; break; } r->borrowbook(b->getno()); break; case '2': cout<<"还书\n 读者编号:"; cin >>readerid; cout << " 图书编号:"; cin >>bookid; r=ReaderDB.query(readerid); if (r==NULL) { cout <<" 不存在该读者,不能还书" << endl; break; } b=BookDB.query(bookid); if (b==NULL) { cout <<" 不存在该图书,不能还书" <<endl; break; } b->retbook(); r->retbook(b->getno()); break; case '3': BookDB.bookdata(); break; case '4': ReaderDB.readerdata(); break; default:cout<<"输入错误,请从新输入:"; }}}
- 2021-12-28 12:13:18