图书馆管理系统接口设计(图书馆管理系统设计内容)

网友投稿 531 2022-12-31


本篇文章给大家谈谈图书馆管理系统接口设计,以及图书馆管理系统设计内容对应的知识点,希望对各位有所帮助,不要忘了收藏本站喔。 今天给各位分享图书馆管理系统接口设计的知识,其中也会对图书馆管理系统设计内容进行解释,如果能碰巧解决你现在面临的问题,别忘了关注本站,现在开始吧!

本文目录一览:

图书馆管理系统设计论文

21世纪,人类社会正面临知识经济和信息社会的急剧变革,世界各个角落的人们都强烈地感受到新时代的冲击与震撼。下面是我为大家整理的图书馆管理系统设计论文,供大家参考。

图书馆管理系统设计论文篇一

图书管理系统设计

图书馆管理系统设计论文摘要

【摘要】本文介绍了利用ASP+Access编写图书管理系统的实现主要步骤与部分技术代码。

图书馆管理系统设计论文内容

【关键字】ASP;Access

随着计算机 网络技术 的普及和发展,现已逐渐进入信息化社会。人们对信息和数据的利用与处理也已进入自动化、网络化和社会化的阶段,因此,开发基于网络平台的图书管理信息系统已经成为图书管理部门的必要因此,我按照图书管理部门的需要,采用ASP+Acces实现了此图书管理系统。

一、ASP+Access

ASP是Active Server Page的缩写,意为“动态服务器页面”。ASP是微软公司开发的代替CGI脚本程序的一种应用,它可以与数据库和 其它 程序进行交互,是一种简单、方便的编程工具。

Microsoft Office Access(前名 Microsoft Access)是由微软发布的关联式数据库管理系统。它结合了Microsoft Jet Database Engine 和 图形用户界面两项特点,是 Microsoft Office的成员之一。

由于Access存储方式简单,易于维护管理、移植性好,所以本系统采用ASP做为编程工具、Access做数据库来开发

二、系统模块

此系统共分为八大模块,包括图书简介、 规章制度 、图书录入、归还图书、图书查询、新购图书、未归图书、系统维护。名模块的功能如下:

一图书简介:把图书进行分类和定义索书号,以方便查询。

二规章制度:主要介绍图书管理的订购、借阅、归还等制度。

三图书录入:对新购图书按书名、作者、分类、编号等图书信息进行录入。

四图书归还:此模块是图书管理员对归还的图书,按照图书编号进行入库管理。

五图书查询:按图书信息一些主要字段对数据库进行查询并显示。

六新购图书:查询某一时间段以后所购买的图书并显示。

七未归图书:显示未归的图书,并分页显示。

八系统维护:对数据库进行备份和恢复。

三、设计数据库

此图书管理系统数据库里主要有以下几个表:

User:用来存储图书管理员的用户名和密码。字段为user、pwd。

Menu:存储程序主页面的菜单名称和链接地址。字段为ID、父菜单ID、位置、URl、字体颜色、菜单项。

Bookinfo:用来存储图书的各种信息。字段为书名、作者、图书分类、图书编号、索书号、出版社、版期版次、购入日期、价格、排架号、是否借阅、借阅日期、应归还日期、借阅科室、借阅人、备注。

Dept:用来存储科室名称。字段为dept。

四、程序设计

一登录模块及Session的使用

由于此系统有些功能是不允许普通用户使用的,如图书录入、图书归

还等模块,所以本系统采用以管理员登录的方式,来判断是何种用户使用本系统,如果是普通用户,点击“以普通用户登录”,就可以使用本系统,但图书录入、归还图书和系统维护等模块不能使用。

由于有些功能模块不允许普通用户使用,故在登录模块程序语句定义一个Session:Session("UserAcc") = Trim(rs("User"))。 Session在计算机中,尤其是在网络应用中,称为“会话”,用于保持状态的基于 Web 服务器的 方法 。Session 允许通过将对象存储在 Web 服务器的内存中在整个用户会话过程中保持任何对象。因此,在限制普通用户使用并用If判断Session("UserAcc")是否为空即可。

二表单验证

在图书录入模块中,需要填写图书的各种信息,在提交表单时如果某

些信息为空,IE就会显示出错,因此,在提交表单之前对表单进行验证,JavaScript 可用来在数据被送往服务器前对 HTML 表单中的这些输入数据进行验证,只需编写一个函数就可以实现。函数如下

function checkinput() {

if (frm.bookname.value=='') {

alert('请输入书名');

frm.bookname.focus();

return false;

}

}

在提交按钮代码中加入OnSubmit="Return checkinput()"就可以完成对表单的验证了。

三数据库连接

对于Access数据库,一个文件就是一个数据库,所以可以利用数据驱动程序直接访问数据,这种方法需要利用动态连接字符串建立一个连接,具体连接字符如下:

Dim conn, connstr,db

db="./data/tushu.mdb"

connstr="Provider=Microsoft.Jet.OLEDB.4.0;DataSource="Server.MapPath(db)

Set conn=Createobject("ADODB.Connection")

conn.Open connstr

这样就可连接数据了,再用SQL语句就可以读取表中数据了:

Set rs=CreateObject("ADODB.RecordSet")

sql="Select * From bookinfo"

rs.Open sql,conn,1,3

四对数据库的操作

连接好数据库后,我们就可以对表bookinfo的记录进增加、删除、修改等操作了。具体代码及释义如下:

(1):增加:

bianhao=Trim(Request("bianhao"))

sql="Select * From bookinfo Where 图书编号='" bianhao "'"

rs.Open sql,conn,1,3

If rs.recordcount<0 Then

Response.Write "此图书编号已存在,请重新输入"

Response.Write "

"

Response.Write ""

Response.Write "返 回"

Else

注:在增加信息时,必须检索图书编号是否唯一,如不唯一会出给出提示:“此图书编号已存在,请重新输入”

rs.addnew

rs("书名")=trim(request("bookname"))

rs(“作者")=trim(request("author"))

……

rs.update

end if

Response.Redirect "addbook.html"

end if

set rs=nothing

(2)删除

本系统“删除”图书记录功能在查询模块中执行,但必须以管理员身份登录,才能显示对记录进行操作的功能:

删除记录采用SQL中的delete语句,代码如下:

bh=Request("bianhao")

If bh<"" Then

conn.Execute "Delete From bookinfo Where 图书编号='" bh "'"

End If

(3)修改

修改只需rs.update命令即可完成,这里不再赘述。

(4)查询

本系统有精确查询、模糊查询、分类查询、编号查询、索书号查询、借阅人查询共六种方法。用SQL中select…where…就可以完成查询功能。如按分类查询:

tiaojian=Trim(request("tiaojian"))

Set rs=CreateObject("ADODB.RecordSet")

sql="select * from bookinfo where 图书分类= '" tiaojian "' order by 图书编号 desc"

rs.Open sql,conn,1,1

五、小结

此图书管理基本上可以实现图书管理的大部份工作,实现图书的计算机管理,方便借阅人员查询和借阅图书,更好的利用图书资源,把图书管理员从手工记录管理图书中解脱出来,提高了工作效率。

图书馆管理系统设计论文文献

[1]伍云辉. 程序天下 电子工业出版,2008

[2]武延军,赵彬.精通ASP网络编程. 人民邮电出版社,2000

[3][美]Michael Moncur JavaScript 入门经典 人民邮电出版,2007

图书馆管理系统设计论文篇二

图书管理信息系统设计

图书馆管理系统设计论文摘要

提要作为信息资源的集散地,图书馆在高校中的作用是尤为重要的,而图书馆传统人工管理方式已经无法快速、高效地应付日益增长的信息数据。随着计算机技术的飞速发展,使各行各业在计算机技术应用方面得到了广泛的普及和使用。因此,图书管理信息系统也以方便、快捷、费用低的优点正慢慢地进入人们的生活,将传统的图书管理方式彻底解脱出来,从而使人们有更多的时间来获取信息、了解信息、掌握信息,更好地发挥图书馆强大的资源优势。

图书馆管理系统设计论文内容

关键词:图书管理信息系统;数据库应用;Visual Foxpro语言;windows HC

中图分类号:G251文献标识码:A

图书管理系统是典型的信息管理系统(MIS),其开发主要包括后台数据库的建立和维护以及前端应用程序的开发两个方面。对于前者要求建立起数据一致性和完整性强、数据安全性好的库;而对于后者则要求应用程序功能完备,易使用等特点。本是从我校图书馆的馆藏规模和实际操作流程程出发,针对图书馆管理的现状,经过详细的系统调查,结合效用和成本多方要素。利用Visual Foxpro6.0作为开发工具,为图书馆开发出的一个实用的单机版图书馆管理信息系统。全文共分为五部分,其分别为绪论、系统分析阶段、系统设计阶段、系统实施阶段、系统测试。

一、绪论

(一)系统开发背景。目前,在一些高校图书管理中,师生查找图书都是采用传统的查询方法,让读者在图书分类架上一本本地去查找,这样不仅很难找到自己所需要的图书,而且费时费力。而图书管理员在办理借书登记、查询读者借书记录时,管理人员必须在借书记录上一个个去查找,而要找到借书记录并删除该记录是件很麻烦的事情。每当新书入库时,图书管理员既要填写新书入库卡片,又要填写新书入库账目,不仅工作量大,而且在新书入库后要经历较长的时间方能借出。另外,因图书数量有限,必须对图书实行限量借阅,因此要实施弹性借书方法是件很困难的事。

为提高图书查询效率,减少系部图书管理员的工作负担,有必要开发一个小型图书管理软件来对图书实施有效管理。该系统应具备以下功能:(1)能对各类图书实行分类管理;(2)提供必要的读者信息;(3)能进行各种高级查询;(4)具有图书检索功能等。这样,不仅能较好地帮助读者在最短的时间内找到自己所需要的图书书目、编号,而且能让图书管理员以最高的效率办理借阅手续。

(二)数据库概述。从20世纪五十年代中期开始,计算机的应用由科学研究部门逐步扩展至企业、行政部门。至六十年代,数据处理成为计算机的主要应用。数据库技术作为数据管理技术,是计算机软件领域的一个重要分支,产生于六十年代末。现已形成相当规模的理论体系和实用技术。

数据库(Database)DB是统一管理的相关数据的集合。

数据库管理系统(Database Managerment System)DBMS是位于用户和 操作系统 之间的一层数据管理软件,为用户或应用程序提供访问DB的方法,包括DB的建立、查询、更新及各种数据控制。

数据库系统(Database System)DBS是实现有组织地、动态地存储大量关联数据,方便多用户访问的计算机软、硬件和数据资源组成的系统,即采用了数据库技术的计算机系统。

数据库技术是一门研究数据库的结构、存储、管理和使用的软件学科。

二、系统分析阶段

(一)系统可行性分析。系统可行性分析包括:技术的可行性、经济可行性、法律因素可行性。

技术可行性:结合本校图书馆规模和平时业务量的具体情况,本系统采用Visual Foxpro6.0作为开发平台,可以很容易实现图书馆相关信息的记录、维护、检索,并且可以在不添加任何设备的情况下,以较少的人力较快地完成系统的设计,实现系统的功能。

经济可行性:不需要额外开支,用现有的人力物力就可实现,软件成本很低。

法律可行性研究:研究在系统开发过程中可能涉及的各种合同、侵权、责任以及各种与法律相抵触的问题。

(二)系统需求分析

1、图书管理信息系统的总体功能要求。简单的图书管理系统主要包括下面的功能:①借书处理:完成读者借书这一业务流程,核心为快速检索到学生需要的书籍。②还书处理:完成读者还书这一业务流程。③新书上架:完成新书资料的录入工作。④旧书下架:完成图书资料的删除工作。⑤读者查询:根据读者号,查询读者借阅情况,能够对读者的基本信息资料进行管理。⑥相关帮助:便于新的系统使用者能够快速掌握该系统的使用操作。

2、图书管理信息系统的性能需求。①要求有较强的 系统安全 性,对一定范围和程度内用户的错误操作有相应的系统自我保护功能。②系统的维护时间不能超过系统总运行时间的千分之五,系统每次的维护时间不能超过系统总运行时间的千分之一,系统的故障恢复时间不得超过系统故障时间的百分之五。③其他性能要求以其相关或类似的系统为参考。

三、系统设计阶段

(一)系统功能模块设计。鉴于以上各项功能要求,将该系统划分为以下六个模块:

1、图书信息模块。对图书的基本信息进行录入、删除、修改以前信息和进行简单查询功能。

2、查询检索模块。可对书目的基本信息进行检索,其查询条件可以是按分类检索;也可以是按照作者名、图书名称或出版社进行检索。同时,也可对读者的基本信息进行检索,查阅其借阅信息。

3、读者管理模块。对读者的基本信息进行录入管理,可自动生成会员代号,可自动记录会员的借阅信息。

4、数据维护模块。可对数据库中的各项基本数据信息进行数据备份和数据恢复,并可实现数据备份文件存贮路径的自由选择。

5、报表输出模块。对图书的基本信息、会员的基本信息、会员的借阅信息等数据可按照查询条件的不同按要求打印输出。

6、帮助模块。可以提供关于图书管理信息系统各项操作的详细帮助信息,并可实现对不同操作的定点帮助提示。

(二)数据库设计

1、数据描述

(1)静态数据描述。①图书一级分类表:包括一个数据表。其中的主要信息有:分类编号和一级分类名称。一级分类中将图书共分五大类,具体分类方法、编号和分类名称参照国家统一分类方法的规定。②图书二级分类表:包括五个数据表。其中的主要信息有:二级分类的编号和分类名称。二级分类中将图书共分为二十二个小类,并分别隶属于一级分类的五个大类中,其具体分类方法、编号和分类名称参照国家统一分类方法的有关规定。③图书明细分类表:包括二十二个数据表。其中的主要信息有:明细分类的编号和分类名称。明细分类又将二十二个小类明细的分为若干细小类别,其具体的分类方法、编号和分类名称参照国家统一分类方法的有关规定。

以上数据均按国家统一规定设置录入,不能做太大改变,分类名称可以有一定的缩略但不能影响其原有的意义。系统设计完成后不可以通过录入、删除的方式进行修改。

(2)动态数据

①图书的基本数据。包括一个数据表。其中的主要数据有图书编号:是对录入图书的统一编号,以便唯一区别图书;图书名称:图书出版时的封面印刷名称;作者:图书的编写者或编写单位或组织;出版社:出版发行该册图书的发行单位;录入日期:该册图书入库的时间;借阅次数:该图书总的被借阅次数;类别编号:给图书所属的明细分类的类别号,它应与明细分类表中的图书的类别编号一致;简介:对该册图书的内容总体概括介绍。

②读者基本数据:包括一个数据表。其中的主要数据有:读者代号:读者的统一编号,由系统自动生成,唯一的标示一个会员的身份;姓名:读者的真实姓名;电话:读者的有效联系电话,可选择填写;地址:读者的有效联系地址,可选择填写;身份证号:读者的身份证号码,可选择填写;注册日期:读者本人正式注册成功时的日期(为系统自动填写)。备注:读者的个人其他资料。

以上两部分数据的录入具有一定的界面,并提供修改的方式。还提供随时的查询,对查询结果有相应的显示和打印输出,对全体的数据可进行备份与恢复。

③借阅记录。包括一个数据表。其中的主要数据有:读者代号、图书编号、借阅日期。这些数据信息都是由系统自动填写。此表中的所有数据不提供修改方式,只供查阅、显示和打印输出。可以对全体数据进行备份和恢复。

④登录密码。包括一个数据表。其主要数据有:管理员代号、密码、权限。

2、数据库描述。该系统建立一个数据库,其中包括三十二个数据表。全部用Visual Foxpro实现。其中,部分数据表的结构和联系如图1所示。(图1)其他分类数据表的连接通过“下级分类表名”实现连接调用。

3、数据采集。对于图书分类数据表的信息参照国家图书分类方法;对于图书基本信息数据可通过对现存图书进行分类录入;对于读者方面的信息数据可以在系统运行使用中获得。

(三)用户界面设计。本系统设计原则:1、界面美观、操作方便并能高效率地完成工作;2、界面根据用户需求设计;3、界面能引导用户操作的功能,并能提供一些帮助功能。

主要的用户界面有:1、登录界面;2、主表单界面;3、各类信息查询;4、读者信息管理列表;5、图书信息管理列表等。

四、系统实施阶段

(一)计算机系统的性能和软硬件环境。在软件方面本系统运行平台为Windows2000专业版,开发工具采用易学易用的软件开发工具Visual Foxpro6.0。因Visual Foxpro6.0在应用程序的开发上具有灵活、效率高等特点和使用简便的数据库管理功能。硬件要求:Inter PentiumⅢ、128M内存、40G硬盘等。

(二)编写程序。依据各阶段的开发文档,使用Visual Foxpro6.0进行程序编写。此系统的编码设计(表单设计、代码设计、变量定义、控件的定义)严格按照大众化的标准和风格。

对于系统的帮助功能的实现,则使用windows help compiler来单独编译,最后通过Visual Foxpro提供的接口命令(set help to)和系统相连。帮助文件的数据字典、源代码见附件。

五、系统测试

测试的步骤主要有以下三个方面:1、单元测试:采用的是白盒测试法,检查模块控制结构的某些特殊路径;2、综合测试:采用的是自顶向下集成法;3、确认测试包括:功能测试、性能测试。

有关图书馆管理系统设计论文推荐:

1. 图书管理系统毕业论文

2. 浅谈图书馆管理论文

3. 关于图书馆设计论文

4. 图书馆管理毕业论文范文

5. 有关图书馆结构设计论文

6. 图书馆管理论文

图书馆管理系统设计??

8.某高校图书馆管理信息系统的分析、设计与实施
某高校图书馆藏书200余万册,拥有包括在校学生、教职员工在内的读者2万余名,每天的借阅量近万册。在手工操作方式下,图书的编目和借阅等工作量大、准确性低且不易修改维护,读者借书只能到图书馆手工方式查找书目,不能满足借阅需求。因此,需要建立图书管理信息系统,以实现对读者借阅、图书采购和保管等工作的信息化管理,并实现文献的电子化检索和阅读。
图书馆由馆长负责全面工作,下设办公室、技术部、信息咨询部、文献建设部、流通部、阅览部。各部门的主要功能是:
(1) 办公室:负责本馆的行政和总务工作。
(2) 技术部:负责图书馆计算机系统的开发、维护和多功能电子阅览室、多媒体制作室、视听室的管理。
(3) 信息咨询部:负责国际联机检索、光盘检索、手工检索查新和资源共享等工作。
(4) 文献建设部:负责图书、期刊、电子文献的采购、编目和典藏工作。
(5) 流通部:负责图书借阅流通工作。
(6) 阅览部:负责各个阅览室的管理工作。
图书馆管理系统所要实现主要功能和业务流程如下:
(1) 读者信息管理。读者分为学生读者和教职工读者两类,读者访问系统时将检验读者账号和密码,只有具有合法身份的读者才允许进入系统。读者的信息包括读者类型信息、读者借阅信息、读者预约信息、读者罚款信息等。
(2) 书目查询。读者进入图书管理系统后,可以根据需要检索书名或期刊。检索条件可以是书名、图书编号、作者姓名或关键字等条件,如果查询信息不确切还可以进行模糊查询。
(3) 图书采编。由文献建设部相关人员根据读者需求情况、书籍出版情况等定期进行书籍采购。图书采购入库经过编目等处理后,将其目录存入数据库,提供给读者检所使用。目录信息包括图书编号、图书类别、书名、作者、出版社、定价、出版日期、数量等。
(4) 图书借阅。可办理读者借阅、还书、续借等手续。读者查找到所需图书后,到图书馆办理借阅手续,借阅期限为60天,借阅期满后可续借一次,续借期为30天。办理借阅手续之前要先查询读者所借图书是否超额,如果超额,则不能办理。学生读者最多可借10册,教工读者最多可借15册。读者还书时要先查询是否超期,如果超期则进入罚款程序。
(5) 图书预约。读者检索到需要的图书后,如果该图书均已被借出,则可进行图书预约,当该图书归还后通知预约读者前来办理借阅手续,该图书可为预约读者保留三天,如果读者在三天内未办理借阅手续,则取消预约资格。
(6) 电子读物管理。电子读物管理处理电子读物的阅览、检索、下载等事务。
(7) 系统维护。为图书管理人员提供图书统计信息和读者统计信息,以便于管理人员从宏观上掌握图书馆运行的总体状况。

设计题目:2、图书信息管理系统设计

图书馆管理信息系统图书馆管理系统接口设计的开发设计
摘要:本应用程序以普通图书馆为开发对象, 采用’ 语言为开发平台, 可以完成图书馆管理系统的基本工作, 主要任务是对读者注册、图书信息登记、数据维护、借阅图书、归还图书、查询信息和报表输出进行计算机管理。
关键词:图书馆图书馆管理系统接口设计,管理信息系统图书馆管理系统接口设计,开发设计
图书馆在正常运营中总是面对大量的读者信息、书籍信息以及两者相互作用产生的借书信息、还书信息。因此需要对读者资源、书籍资源、借书信息、还书信息进行管理, 及时图书馆管理系统接口设计了解各个环节中信息的变更, 有利于提高管理效率。
目前市面上流行的图书管理软件不少。但是,对于企业、事业单位的图书管理来说, 不需要太大型的数据库系统。只需要一个操作方便、功能实用、能满足图书馆日常管理工作需求的系统。我的目标就是在于开发一个功能实用、用户操作方便、简单明了的图书馆管理系统软件。
本应用程序以普通图书馆为开发对象, 可以完成图书馆管理系统的基本工作, 主要任务是对读者注册、图书信息登记、数据维护输人记录、修改记录、删除记录、借阅图书、归还图书、查询信息和报表输出进行计算机管理。
一、系统需求分析
1、系统目标设计。
通过一个图书馆管理信息系统, 使图书馆的信息管理工作系统化、规范化、自动化, 从而达到提高管理效率的目的。
2、开发设计思想。
本系统的开发设计思想。
系统应符合图书馆信息管理的规定, 满足图书馆日常管理的工作需要, 并达到操作过程中的直观、方便、实用、安全等要求系统采用模块化程序设计方法, 既便于系统功、能的各种组合和修改, 又便于未参与开发的技术维护人员补充、维护
系统应具备数据库维护功能, 及时根据用户需求进行数据的添加、删除、修改、查询等操作。
3、系统功能分析
书籍信息的输人、修改, 包括总编号、分类号、单价、书名、作者、出版单位。
书籍信息的查询, 包括按编号查、按书名查、按作者查, 应当选择一种方式之后即可显示出所查图书的详细信息总编号、分类号、单价、书名、作者、出版单位。
读者信息的输入、修改, 包括借书证号、姓名、性别、职称、单位、地址
读者信息的查询, 包括按借书证号查、按读者姓名查, 当选择一种方式之后即可显示出所查读者的详细信息姓名、性别、借书证号、单位、职称、地址。
借书信息的输人包括借书证号、总编号、借书日期当前系统日期、应还日期限期为巧天。归还图书, 把读者借书信息借阅记录从借阅数据库表中删除。
报表输出、包含图书、读者、借阅三个报表, 可以完成预览和打印输出所有图书、读者和借阅记录的功能。
二、系统总体结构设计
(1)系统功能模块图
(2)数据库设计
数据库需求分析
在仔细分析调查有关图书馆管理信息需求的基础上, 得到如图所示的本系统所处理的数据流程。
针对一般图书馆管理信息系统的需求, 通过对图书馆管理工作过程的内容和数据流程分析, 设计如下面所示的数据项和数据结构。
图书信息包括的数据项有总编号、分类号、单价、书名、作者、出版单位等。
读者信息, 包括的数据项有借书证号、姓名、性别、职称、单位、地址等。
借阅信息, 包括的数据项有借书证号、总编号、借书日期、应还日期等。
(2)数据库概念结构设计
根据上面的设计规划出的实体有图书实体、读
者实体、借阅实体。
(3)数据库逻辑结构设计
图书馆管理信息系统数据库中的各个表格的设
计结果如下面表格所示。每个表格表示在数据库中
的一个数据表。
图书表
列名 数据类型 长度
总编号 字符型 6
分类号 字符型 6
单价 数值型 6(含2个小数位)
书名 字符型 40
作者 字符型 40
出版单位 字符型 40
(4)数据库结构的实现
实现数据库的逻辑结构有两种方式一种是直接使用的项目管理器来实现, 一种是利用其数据库系统中的以之工具实现的。在开发中我采用了第一种方法实现数据库结构。首先创建项目, 然后创建项目的数据库, 最后建立数据表。

C++:图书管理系统设计

以前做的,可以参考一下
//***********************
//图书馆管理系统
//***********************
#include<stdio.h
#include<string.h
#include<malloc.h
#define null 0
#define max 65536
static int n;
//*********************
// 图书结构体
//*********************
typedef struct
{
char num[10]; //书号
char name[9]; //书名
char addr[31]; //作者
int Nowcounter; //现存量
int Allcounter; //总库存量
}datatype;
datatype *x[max]; //定义两个指针数组
datatype *p;
//*****************************
//图书功能函数列表
//*****************************
void redo(); //主递归函数
void creatlist(datatype *x[]); //图书建立函数
int menu_select(); //功能菜单函数
void find(datatype *x[],int n); //查找函数
void delnode(datatype *x[]); //插入函数
void printlist(datatype *x[]); //显示函数
void jieyue(datatype *x[],int n); //借阅函数
void guihuan(datatype *x[],int n); //归还函数
//*****************************
//主递归函数程序
//*****************************
void redo()
{
int i=0,j,n1,k=0,flage;
for( ; ;)
{
switch( menu_select())
{
case 1: //选项1的实现
printf("***********************\n");
printf("* 图书的建立 *\n");
printf("***********************\n");
creatlist(x);
break;
case 2: //选项2的实现
printf("***********************\n");
printf("* 新图书信息的添加 *\n");
printf("***********************\n");
printf(" 插入的个数:");
scanf("%d",n1); //输入插入新图书的个数
for(i=0;i<n1;i++)
{
flage=0;
p=(datatype *)malloc(sizeof(datatype)); //分配一个节点空间
printf(" 书名: ");
scanf("%s",p-name); //输入插入书的书名
if(flage==0)
{
for(j=0;j<n;j++)
{
if(strcmp(x[j]-name,p-name) == 0 )//调用比较函数查看书名是否已知
{
x[j]-Allcounter++;
x[j]-Nowcounter++;
flage=1;
}

}

if(flage==0)
{
n++;
printf(" 第 %d 个图书数据:\n",n); //插入新的图书
p=(datatype *)malloc(sizeof(datatype));
x[n-1]=p;
printf(" 书名:");
scanf("%s",x[n-1]-name); //输入书名
printf(" 编号:");
scanf(" %s",x[n-1]-num); //输入书号
printf(" 作者:");
scanf(" %s",x[n-1]-addr); // 输入作者名
printf(" 总库存量: ");
scanf("%d",x[n-1]-Allcounter); //输入总库存量
x[n-1]-Nowcounter=x[n-1]-Allcounter;
}
}
}
break;
case 3:
printf("***********************\n");
printf("* 图书信息的查询 *\n");
printf("***********************\n");
find(x,n);
break;
case 4:
printf("************************\n");
printf("* 图书信息的删除 *\n");
printf("************************\n");
delnode(x);
break;
case 5:
printf("************************\n");
printf("* 图书信息的显示 *\n");
printf("************************\n");
printlist(x);
break;
case 6:
printf("************************\n");
printf(" 图书的借阅\n");
printf("************************\n");
jieyue(x,n);
break;
case 7:
printf("************************\n");
printf(" 图书的归还\n");
printf("************************\n");
guihuan(x,n);
break;
case 0:
printf("\t 谢谢使用,再见! \n");
return;
}
}
}
//*************************
//主函数程序
//*************************
void main ()
{
redo(); //调用主递归函数
}
//*************************
//功能菜单函数
//*************************
int menu_select()
{
int i;
printf(" 欢迎进入图书管理系统!\n");
printf("===========================\n");
printf(" 1. 图书信息的采集\n");
printf(" 2. 新图书的插入\n");
printf(" 3. 图书信息的查询\n");
printf(" 4. 图书的删除\n");
printf(" 5. 图书的显示\n");
printf(" 6. 图书的借阅\n");
printf(" 7. 图书的归还\n");
printf(" 0. 退出管理系统\n");
printf("===========================\n");
printf(" 请选择0-7: ");
scanf("%d",i);
while(i<0||i7)
{
printf("\n\t输入出错,重选0-7: ");
scanf("%d",i);
}
return i;
}
//********************************
// 建立链表图书建造函数
//********************************
void creatlist(datatype *x[])
{
int i;
printf(" 请输入要建立图书的个数:");
scanf("%d",n);
for(i=0;i<n;i++)
{
printf(" 第 %d 个图书数据:\n",i+1);
p=(datatype *)malloc(sizeof(datatype)); //分配一个节点空间
x[i]=p;
printf(" 书名:"); //输入图书各项内容
scanf("%s",x[i]-name);
printf(" 编号:");
scanf(" %s",x[i]-num);
printf(" 作者:");
scanf(" %s",x[i]-addr);
printf(" 总库存量: ");
scanf("%d",x[i]-Allcounter);
x[i]-Nowcounter=x[i]-Allcounter;
}
}

//**********************************
// 查找函数程序
//*********************************
void find(datatype *x[],int n)
{

char num[10];
char name[9];
int t,i;
printf("=================\n"); //输出查找方式
printf(" 1.按编号查询 \n");
printf(" 2.按书名查询 \n");
printf("=================\n");
printf(" 请选择 : ");
scanf("%d",t); //输入选择信息
if(t==1)
{
printf(" 请输入要查找者的编号: ");
scanf("%s",num); //输入书号
for(i=0;i<n;i++)
{
if(strcmp(x[i]-num,num)==0) //调用strcmp函数
{
printf(" 编号 书名 作者 现库存量 总库存量\n"); //输出要查询书的信息
printf(" %-10s%-10s%-10s%-10d%-10d\n",x[i]-num,x[i]-name,x[i]-addr,x[i]-Nowcounter,x[i]-Allcounter);
}
else
continue;
}
}
else
{
printf(" 请输入要查询的书名: ");
scanf("%s",name); // 输入书名
for(i=0;i<n;i++)
{
if(strcmp(x[i]-name,name)==0)
{
printf("编号 书名 作者 现库存量 总库存量\n"); //输出要查询书的信息
printf(" %-10s%-10s%-10s%-10d%-10d\n",x[i]-num,x[i]-name,x[i]-addr,x[i]-Nowcounter,x[i]-Allcounter);
}
else
continue;
}
}
}
//******************************
//删除函数程序
//******************************
void delnode(datatype *x[])
{
char num1[10],name1[10]; //定义两个字符数组
int i,j,m=1,p;
printf(" 1.按编号删除\n"); //输出选择方式
printf(" 2.按书名删除\n");
printf(" 3.返回\n");
printf(" 请选择:\n");
scanf("%d",p); //输入选择信息
if(p3||p<1)
{
printf(" 您的输入有误,请重新输入!\n");
scanf("%d",p); //重新输入选择信息
}
switch(p) //实现删除程序
{
case 1:
printf(" 输入要删除书的编号:\n");
scanf(" %s",num1);
for(i=0;i<n;i++)
{
if(strcmp(x[i]-num,num1)==0) //调用strcmp函数
{
m=0;
n--;
for(j=i;j<n;j++)
x[j]=x[j+1]; //将该书信息删除
printf(" 该书已删除!\n");
}
}
if(m==1)
printf(" 没有这样的的图书\n");
break;
case 2:
printf(" 输入要删除书的名字:\n");
scanf("%s",name1);
for(i=0;i<n;i++)
{
if(strcmp(x[i]-name,name1)==0) //调用strcmp函数
{
m=0;
n--;
for(j=i;j<n;j++) //将该书信息删除
x[j]=x[j+1];
printf(" 该书已删除!\n");
}
}
if(m==1)
printf(" 没有这样的的图书\n");
break;
case 3:
break;

}
}
//////////////////////////
////借阅函数程序
/////////////////////////
void jieyue(datatype *x[],int n)
{
int i,m=1,p;
char name1[10],num1[10]; //定义两个字符数组
printf(" 1.按名字借阅\n"); //输出选择方式
printf(" 2.按编号借阅\n");
printf(" 3.返回\n");
printf(" 请选择\n");
scanf("%d",p); //输入选择信息
if(p3||p<1)
{
printf(" 您的输入有误!\n");
scanf("%d",p); //重新输入选择信息
}
switch(p) //实现查询程序
{
case 1:
printf(" 请输入你要的书的名字!\n");
scanf("%s",name1); // 输入书名
for(i=0;i<n;i++)
{
if(strcmp(x[i]-name,name1)==0) //调用strcmp函数
{
m=0;
if(x[i]-Nowcounter!=0)
x[i]-Nowcounter--;
printf(" 借书成功!\n");
if(x[i]-Nowcounter==0)
printf(" 这本书已经没有了 \n");
}
}
if(m==1)
printf(" 您要的书不存在!\n");
break;
case 2:
printf(" 请输入你要的书的编号!\n");
scanf("%s",num1); // 输入书号
for(i=0;i<n;i++)
{
if(strcmp(x[i]-num,num1)==0) //调用strcmp函数
{
m=0;
if(x[i]-Nowcounter!=0)
x[i]-Nowcounter--; //现存书数量减1
printf(" 借书成功!\n");
if(x[i]-Nowcounter==0)
printf(" 这本书已经没有了 \n");
}
}
if(m==1)
printf(" 您要的书不存在!\n");
break;
case 3:
break;
}
}
///////////////////////
/////归还程序
//////////////////////
void guihuan(datatype *x[],int n)
{
int i,q,m=1;
char name1[10],num1[10]; //定义两个字符数组
printf(" 1.按书名归还\n"); //输出可选择方式
printf(" 2.按书号归还\n");
printf(" 3.返回\n");
printf(" 请选择\n");
scanf("%d",q); //输入选择信息
if(q3||q<1)
{
printf(" 您的输入有误!\n");
scanf("%d",q); //重新输入选择信息
}
switch(q) //实现归还程序
{
case 1:
printf(" 输入归还书的书名: ");
scanf("%s",name1); // 输入书名
for(i=0;i<n;i++)
{
if(strcmp(x[i]-name,name1)==0)
{
m=0;
x[i]-Nowcounter++;
printf("此书归还成功!\n");
printf("此书的存储情况\n");
printf("编号 书名 作者 现存量 总存量\n");
printf("===============================================\n");
printf(" %-10s%-10s%-10s%-10d%-10d\n",x[i]-num,x[i]-name,x[i]-addr,x[i]-Nowcounter,x[i]-Allcounter);
printf("===============================================\n");
}
if(strcmp(x[i]-name,name1)==0)
continue;
}
if(m==1)
printf("此书不是图书馆的!\n");
break;
case 2:
printf("输入归还书的书号\n");
scanf("%s",num1); // 输入书号
for(i=0;i<n;i++)
{
if(strcmp(x[i]-num,num1)==0)
{
m=0;
x[i]-Nowcounter++; //显存书增加1
printf("此书归还成功!\n");
printf("此书的存储情况\n");
printf("编号 书名 作者 现存量 总存量\n");
printf("==============================================\n");
printf(" %-10s%-10s%-10s%-10d%-10d\n",x[i]-num,x[i]-name,x[i]-addr,x[i]-Nowcounter,x[i]-Allcounter);
printf("==============================================\n");
}
if(strcmp(x[i]-num,num1)==0) //调用strcmp函数
continue;
}
if(m==1)
printf("此书不是图书馆的!\n");
break;
case 3:
break;
}
}
//**************************************
// 输出程序
//**************************************
void printlist(datatype *x[])
{
int i;
printf("编号 书名 作者 现存量 总存量\n"); //输出图书各项信息
for(i=0;i<n;i++)
{
printf(" %-10s%-10s%-10s%-10d%-10d\n",x[i]-num,x[i]-name,x[i]-addr,x[i]-Nowcounter,x[i]-Allcounter);
}
printf("===============================================\n");
}
求采纳为满意回答。

用C语言写个图书馆系统

下面可以参考参考!
完整的C语言图书管理系统
#include <stdlib.h
#include <stdio.h
#include <conio.h
#include "graphics.h"
#include "math.h"
#define m 1
struct data
{ int year;
int month;
int day;
};
struct ReaderNode
{
char num[20];
struct data bro;
struct data back;
};
struct BookNode
{
char title[15];
char writer[15];
int currentnum;
int totalnum;
char brief[30];
struct ReaderNode reader[20];
};
struct TreeNode
{
int n;
struct TreeNode *prt;
int key[2*m];
struct BookNode *rec[2*m];
struct TreeNode *link[2*m+1];
};
struct BookNode *InputNode();
struct TreeNode *mbsearch(struct TreeNode *bth,int x,int *k,int *flag);
struct TreeNode *mbinsert(struct TreeNode *bth);
struct TreeNode *mbdel(struct TreeNode *bth);
void OutputNode(struct TreeNode *bth);
void borrow(struct TreeNode *bth);
void payback(struct TreeNode *bth);
char menu(void);
struct TreeNode *mbsearch(struct TreeNode *bth,int x,int *k,int *flag)
{
struct TreeNode *p,*q;
p=bth; *flag=0; q=p;
while( (p!=NULL) (*flag==0) )
{
*k=1;q=p;
while( (*k < q-n) ( q-key[*k-1] < x) ) *k=*k+1;
if( q-key[*k-1]==x) *flag=1;
else if( ( *k==q-n ) ( q-key[*k-1] < x) ) {p=q-link[*k];p-prt=q;}
else { p=q-link[*k-1]; p-prt=q;*k=*k-1;}
}
return(q);
}
struct TreeNode *mbinsert(struct TreeNode *bth)
{
int flag,j,k,t;
int y,x,z;
struct TreeNode *p,*q,*u,*s;
struct BookNode *r,*l;
clrscr();
printf("\n\tPlease input the book you want to insert: ");
scanf("%d",x);
q=mbsearch(bth,x,k,flag);
if(flag==1)
{
printf("\n\tHas %d this kind of book,do you want to add another?(y/n)\n",(q-rec[k-1])-totalnum);
z=getch();
if(z=='y'||z=='Y')
{
(q-rec[k-1])-totalnum++; (q-rec[k-1])-currentnum++;
printf("\n\tNow total has %d this kind of book,",(q-rec[k-1])-totalnum);
printf("\n\tand current has %d in the library.",(q-rec[k-1])-currentnum);
}
return(bth);
}
r=InputNode(bth);
if(bth==NULL)
{
bth=p=(struct TreeNode *)malloc(sizeof(struct TreeNode));
p-n=1; p-key[0]=x; p-rec[0]=r;p-prt=NULL;
for(j=1;j<=2*m+1;j++) p-link[j-1]=NULL;
return(p);
}
p=NULL; t=0;
while(t==0)
{
if(k==q-n) {y=x;l=r;u=p;}
else
{
y=q-key[q-n-1]; l=q-rec[q-n-1];u=q-link[q-n];
for(j=(q-n)-1; j=k+1; j--)
{
q-key[j]=q-key[j-1];q-rec[j]=q-rec[j-1];q-link[j+1]=q-link[j];
}
q-key[k]=x;q-rec[k]=r;q-link[k+1]=p;
if(p!=NULL) p-prt=q;
}
if(q-n<2*m)
{
q-n=(q-n)+1;
t=1;
q-key[(q-n)-1]=y; q-rec[(q-n)-1]=l; q-link[q-n]=u;
if(u!=NULL) u-prt=q;
}
else
{
p=(struct TreeNode *)malloc(sizeof(struct TreeNode));
p-n=m; q-n=m; p-prt=q-prt;
x=q-key[m];r=q-rec[m];
for(j=1;j<=m-1;j++)
{
p-key[j-1]=q-key[m+j];p-rec[j-1]=q-rec[m+j];p-link[j-1]=q-link[m+j];
if(q-link[m+j]!=NULL) (q-link[m+j])-prt=p;
}
p-link[m-1]=q-link[2*m];
p-link[m]=u;
p-key[m-1]=y;
p-rec[m-1]=l;
if(u!=NULL) u-prt=p;
for(j=m+2;j<=2*m+1;j++)
{
q-link[j-1]=NULL;p-link[j-1]=NULL;
}
if(q-prt==NULL)
{
s=(struct TreeNode *)malloc(sizeof(struct TreeNode));
s-key[0]=x; s-rec[0]=r;
s-link[0]=q; s-link[1]=p;
s-n=1; s-prt=NULL; q-prt=s; p-prt=s;
for(j=3;j<=2*m+1;j++) s-link[j-1]=NULL;
bth=s; t=1;
}
else
{
q=q-prt; k=1;
while((k<=q-n)(q-key[k-1]<x)) k=k+1;
k=k-1;
}
}
}
return(bth);
}
struct TreeNode *mbdel(struct TreeNode *bth)
{
int flag,j,k,t;
int x,y;
struct TreeNode *u,*s,*p,*q;
struct BookNode *r,*l;
clrscr();
printf("\n\tPlease input the book you want to delete: ");
scanf("%d",x);
q=mbsearch(bth,x,k,flag);
if(flag==0) { printf("\n\tThe book is not exist!\n"); return(bth);}
p=q-link[k];
if(p!=NULL)
{
while(p-link[0]!=NULL) p=p-link[0];
q-key[k-1]=p-key[0];
q-rec[k-1]=p-rec[0];
k=1;q=p;
}
for(j=k;j<=q-n-1;j++)
{
q-key[j-1]=q-key[j];
q-rec[j-1]=q-rec[j];
}
q-n=q-n-1;
while ((q!=bth)(q-n<m))
{
p=q-prt;j=1;
while(p-link[j-1]!=q) j=j+1;
if((j<=p-n)((p-link[j])-nm))
{
s=p-link[j];
y=s-key[0];
l=s-rec[0];
u=s-link[0];
for(k=1;k<=s-n-1;k++)
{
s-key[k-1]=s-key[k];
s-rec[k-1]=s-rec[k];
s-link[k-1]=s-link[k];
}
s-link[s-n-1]=s-link[s-n];
s-link[s-n]=NULL;
s-n=s-n-1; q-n=q-n+1;
q-key[q-n-1]=p-key[j-1];
q-rec[q-n-1]=p-rec[j-1];
q-link[q-n]=u;
p-key[j-1]=y;
p-rec[j-1]=l;
if(u!=NULL) u-prt=q;
}
else if((j1)((p-link[j-2])-nm))
{
s=p-link[j-2];
q-n=q-n+1;
q-link[q-n]=q-link[q-n-1];
for(k=q-n-1;k=1;k--)
{
q-key[k]=q-key[k-1];
q-rec[k]=q-rec[k-1];
q-link[k]=q-link[k-1];
}
q-key[0]=p-key[j-2];
q-rec[0]=p-rec[j-2];
u=s-link[s-n];
q-link[0]=u;
if(u!=NULL) u-prt=q;
p-key[j-2]=s-key[s-n-1];
p-rec[j-2]=s-rec[s-n-1];
s-link[s-n]=NULL;
s-n=s-n-1;
}
else
{
if(j==p-n+1)
{ q=p-link[j-2]; s=p-link[j-1]; j=j-1;}
else s=p-link[j];
q-key[q-n]=p-key[j-1];
q-rec[q-n]=p-rec[j-1];
t=q-n+1;
for(k=1;k<=s-n;k++)
{ q-key[t+k-1]=s-key[k-1];
q-rec[t+k-1]=s-rec[k-1];
u=s-link[k-1];
q-link[t+k-1]=u;
if(u!=NULL) u-prt=q;
}
u=s-link[s-n]; q-link[t+s-n]=u;
if(u!=NULL) u-prt=q;
q-n=2*m;
free(s);
for(k=j;k<=p-n-1;k++)
{
p-key[k-1]=p-key[k];
p-rec[k-1]=p-rec[k];
p-link[k]=p-link[k+1];
}
p-n=p-n-1; s=q; q=p;
}
}
if((q==bth)(q-n==0))
{ free(bth); bth=s; bth-prt=NULL;
if(s-n==0) {bth=NULL; free(s); }
}
printf("\n\tThe book has been delete !");
return(bth);
}
struct BookNode *InputNode()
{
struct BookNode *p;
int i;
p=(struct BookNode *)malloc(sizeof(struct BookNode));
clrscr();
fflush(stdin);
printf("\n\tInput the title: ");
gets(p-title);
printf("\n\tInput the writer: ");
gets(p-writer);
printf("\n\tInput the book current amount: ");
scanf("%d",p-currentnum);
printf("\n\tInput the book total amount: ");
scanf("%d",p-totalnum);
fflush(stdin);
printf("\n\tInput the book brief instruction: ");
gets(p-brief);
for(i=0;i<20;i++)
(p-reader[i]).num[0]='\0';
return(p);
}
void OutputNode(struct TreeNode *bth)
{
struct TreeNode *q;
struct BookNode *p;
int k;
int x;
int flag;
clrscr();
printf("\n\tPlease input the book you want to search: ");
scanf("%d",x);
q=mbsearch(bth,x,k,flag);
if(flag==1)
{
p=q-rec[k-1];
printf("\n\tTitle: %s",p-title);
printf("\n\tWriter: %s",p-writer);
printf("\n\tCurrentAmount: %d",p-currentnum);
printf("\n\tTotalAmount: %d",p-totalnum);
printf("\n\tBriefIntroduction: %s\n",p-brief);
}
else printf("\n\tThis book is not exist!");
}
void borrow(struct TreeNode *bth)
{
struct TreeNode *q;
struct BookNode *p;
struct ReaderNode *r;
int i,k, x, flag,t;
clrscr();
printf("\n\tPlease input the book you want to borrow: ");
scanf("%d",x);
q=mbsearch(bth,x,k,flag);
if(flag==1)
{
p=q-rec[k-1];
printf("\n\tDo you want this book ?(y/n)");
printf("\n\tTitle: %s",p-title);
printf("\n\tWriter: %s",p-writer);
printf("\n\tCurrentAmount: %d",p-currentnum);
printf("\n\tTotalAmount: %d",p-totalnum);
printf("\n\tBriefIntroduction: %s",p-brief);
t=getch();
if(t=='y'||t=='Y')
{
if( (p-currentnum)==0) printf("\n\tSorry,this book has all borrow out...");
else
{
clrscr();
for(i=0;i<20;i++) if( (p-reader[i]).num[0]=='\0') break;
printf("\n\tPlease input your certificate number: ");
scanf("%s",(p-reader[i]).num);
printf("\n\tPlease input the borrow data: ");
printf("\n\tYear: ");
scanf("%d",((p-reader[i]).bro.year));
printf("\tMonth: ");
scanf("%d",((p-reader[i]).bro.month));
printf("\tDay: ");
scanf("%d",((p-reader[i]).bro.day));
printf("\n\tPlease input the payback data: ");
printf("\n\tYear: ");
scanf("%d",((p-reader[i]).back.year));
printf("\tMonth: ");
scanf("%d",((p-reader[i]).back.month));
printf("\tDay: ");
scanf("%d",((p-reader[i]).back.day));
p-currentnum--;
printf("\n\tYou have borrow the book.");}
}
}
else printf("\n\tThis book is not exist!");
}
void payback(struct TreeNode *bth)
{
struct TreeNode *q;
struct BookNode *p;
int i,k, x, flag,t,j;
int year,month,day,d;
float pay;
char temp[20];
clrscr();
printf("\n\tPlease input the book you want to payback: ");
scanf("%d",x);
q=mbsearch(bth,x,k,flag);
if(flag==1)
{
p=q-rec[k-1];
printf("\n\tDo you want to payback this book ?(y/n)");
printf("\n\tTitle: %s",p-title);
printf("\n\tWriter: %s",p-writer);
printf("\n\tCurrentAmount: %d",p-currentnum);
printf("\n\tTotalAmount: %d",p-totalnum);
printf("\n\tBriefIntroduction: %s",p-brief);
t=getch();
if(t=='y'||t=='Y')
{
if( (p-currentnum) =(p-totalnum) )
printf("\n\tYou want to offer a more book ??\n");
else
{
clrscr();
printf("\n\tPlease input your certificate number: ");
scanf("%s",temp);
j=0;
for(i=0;i<20;i++)
{
if(! (strcmp(temp,(p-reader[i]).num))) {j=1;break;}
}
if(j==0) {printf("\n\tYou haven't borrow this book.");return;}
printf("\n\tToday is:");
printf("\n\tYear: ");
scanf("%d",year);
printf("\tMonth: ");
scanf("%d",month);
printf("\tDay: ");
scanf("%d",day);
d=0;
if(year<(p-reader[i]).back.year) d=1;
if(year<=(p-reader[i]).back.year month<(p-reader[i]).back.month) d=1;
if(year<=(p-reader[i]).back.year month<=(p-reader[i]).back.month day<(p-reader[i]).back.day) d=1;
if(d==0)
{
clrscr();
pay=(year-(p-reader[i]).back.year)*365+(month-(p-reader[i]).back.month)*30+(day-(p-reader[i]).back.day);
printf("\n\tYou borrow this book is in %d-%d-%d",(p-reader[i]).bro.year,(p-reader[i]).bro.month,(p-reader[i]).bro.day);
printf("\n\tYou should pay it back in %d-%d-%d",(p-reader[i]).back.year,(p-reader[i]).back.month,(p-reader[i]).back.day);
printf("\n\tToday is %d-%d-%d",year,month,day);
printf("\n\n\tSo you have go out the payback day");
printf("\n\tYou have to pay %2.1f Yuan.",0.1*pay);
}
(p-reader[i]).num[0]='\0';
p-currentnum++;
printf("\n\tYou have payback the book.");
}
}
}
else printf("\n\tYou want to payback an inexistence book ???");
}
donghua()
{int graphdriver=VGA;
int graphmode=VGAHI;
int i,j;
registerbgidriver(EGAVGA_driver);
initgraph(graphdriver,graphmode,"");
clrscr();
for(i=0;i<=150;i+=5)
{setcolor(i);
textbackground(RED);
settextstyle(0,0,2);
outtextxy(100,i+140,"Liberary management System");
delay(10000000);
clrscr();
}
setcolor(RED);
outtextxy(50,200,"Loading");
delay(100000000000);
outtextxy(50,200,"Loading.");
delay(100000000000);
outtextxy(50,200,"Loading..");
delay(100000000000);
outtextxy(50,200,"Loading...");
delay(100000000000);
outtextxy(50,200,"Loading....");
delay(100000000000);
outtextxy(50,200,"Loading.....");
delay(100000000000);
outtextxy(50,200,"Loading......");
delay(100000000000);
outtextxy(50,200,"Loading.......");
delay(100000000000);
outtextxy(50,200,"Loading........");
delay(100000000000);
outtextxy(50,200,"Loading.........");
delay(100000000000);
outtextxy(50,200,"Loading..........");
delay(100000000000);
outtextxy(50,200,"Loading...........");
outtextxy(50,200,"Loading............");
delay(100000000000);
for(i=0;i<=10;i++)
delay(100000000000);
clrscr();
}
char menu(void)
{
clrscr();
window(1,1,80,25);
textmode(MONO);
textbackground(BLACK);
textcolor(5);
printf("\n\t ****************************************************");
printf("\n\t ***** Welcome to Liberary management System *****");
printf("\n\t ****************************************************");
printf("\n\t ****************************************************");
printf("\n\t *1.Add a book *");
printf("\n\t ****************************************************");
printf("\n\t *2.Delete a book *");
printf("\n\t ****************************************************");
printf("\n\t *3.Search a book *");
printf("\n\t ****************************************************");
printf("\n\t *4.Borrow a book *");
printf("\n\t ****************************************************");
printf("\n\t *5.Payback a book *");
printf("\n\t ****************************************************");
printf("\n\t *0.exit *");
printf("\n\t ****************************************************");
printf("\n\t please select: ");
return getch();
}
bofangdonghua()
{int graphdriver=VGA;
int graphmode=VGAHI;
int i,j;
char c;
registerbgidriver(EGAVGA_driver);
initgraph(graphdriver,graphmode,"");
/*************shi fou bo fang dong hua?**************/
printf:{setcolor(RED);
settextstyle(3,0,5);
outtextxy(100,30,"bo fang dong hua?");
outtextxy(150,80,"Yes");
outtextxy(300,80,"No");
c=getch();
if(c=='Y'||c=='y')
{donghua();
menu();
}
else
if(c=='N'||c=='n')
menu();
else
{setcolor(GREEN);
settextstyle(3,0,8);
outtextxy(200,240,"Error!");
delay(10000000000);
clrscr();
goto printf;
}
}
/**************************************/
}
void main()
{
char c,t;
int x;
int k,flag,p=1;
struct TreeNode *bth=NULL;
bofangdonghua();
while(1)
{
c=menu();
putch(c);
getch();
switch(c)
{
case '1': bth=mbinsert(bth);

break;
case '2': bth=mbdel(bth);

break;
case '3': OutputNode(bth);
break;
case '4': borrow(bth);
break;
case '5': payback(bth);
break;
case '0': clrscr();
printf("\n\tDo you want to return ?(y/n)");
t=getch();
if(t=='y'||t=='Y') exit(0);
break;
defult :break;
}
printf("\n\tPress any key to the main menu....");
getch();
}
} 关于图书馆管理系统接口设计和图书馆管理系统设计内容的介绍到此就结束了,不知道你从中找到你需要的信息了吗 ?如果你还想了解更多这方面的信息,记得收藏关注本站。 图书馆管理系统接口设计的介绍就聊到这里吧,感谢你花时间阅读本站内容,更多关于图书馆管理系统设计内容、图书馆管理系统接口设计的信息别忘了在本站进行查找喔。

版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:spring Profile如何为不同环境提供不同的配置支持
下一篇:不了解这12个语法糖,别说你会Java
相关文章

 发表评论

暂时没有评论,来抢沙发吧~