瑞天图书管理系统手册

时间:2019-05-14 14:41:15下载本文作者:会员上传
简介:写写帮文库小编为你整理了多篇相关的《瑞天图书管理系统手册》,但愿对你工作学习有帮助,当然你在写写帮文库还可以找到更多《瑞天图书管理系统手册》。

第一篇:瑞天图书管理系统手册

北创软件

瑞天图书管理系统标准版

第1章 快速入门..............................................................................3 第1节 系统简介..................................................................................3 第2节 条码知识..................................................................................4 第3节 解决方案..................................................................................6 第4节 操作流程..................................................................................8 第2章 各菜单功能介绍..................................................................9 第1节 主工具栏介绍...........................................................................9 第2节 系统设置................................................................................10 备份管理 导入数据 系统界面 系统参数 切换用户 修改密码 暂时离开 用户管理 系统初始化 数据库连接管理 读卡器设置 退出系统 第3节 资料管理................................................................................25 类别资料维护 书籍资料管理 期刊资料管理 其他物品管理 读者资料管理 资料下架管理 批量删除管理 快速新增资料

北创软件

瑞天图书管理系统标准版

资料打印 数据自动生成 第4节 常用操作................................................................................46 借阅管理 帐务管理 会员管理 办卡管理 押金充值 备忘管理 借阅查询 预借详情 借阅流水 逾期列表 统计分析 数据盘点单条码验证第3章 技术支持............................................................................60

北创软件

瑞天图书管理系统标准版

第1章 快速入门

第1节 系统简介

《瑞天图书管理系统标准版》是一款功能非常强大的图书管理软件,本系统在继承以往系统版本优点的基础上做了进一步优化;在功能上,本系统不仅包含图书管理的常用功能(如书籍管理、期刊管理、物品管理、读者管理、借、还、预借、续借图书和统计分析等等功能),而且还增加了条码的生成和打印功能(不仅为使用者省去了购买价格昂贵的条码专用打印机的费用,而且条码产生更方便,与系统结合更紧密)。

本系统具有操作简单,易学易用的特点。在开发过程中,我们总结了多年使用电脑管理图书馆业务的经验,注意到工作人员在使用电脑时容易发生的人为错误,因而使系统具有较强的容错和排错功能,而且本系统自带了一些常用的资料库(如中图分类库,出版社库等,系统会自动根据图书的标准ISBN码检索出当前图书的出版社名称和出版地点等,从而实现图书的自动录入的功能),使得用户在录入图书资料时更轻松;系统也自带了通用数据导入功能,可以非常简单地把用户以前的已有资料或者通过采集器采集到的数据资料导入到本系统中,避免了大量的重复劳动。经过长时间的不断测试和完善,系统的安全性和稳定性得到保证。

本系统可以配合条码扫描枪使用,操作会更流畅,更简单。

技术简介: 本系统采用Adaptive Server Anywhere数据库、C/S结构,;可运行于 Windows98/WindowsNT/2000/Xp/2003/vista/win7平台,有良好的兼容性、先进性与扩充性;可在线升级。

系统特点:操作简单、界面清晰、功能强大、运行稳定快速、系统资源占用少。

北创软件

瑞天图书管理系统标准版

第2节 条码知识

条码是由一组按一定编码规则排列的条、空符号,用以表示一定的字符、数字及符号组成的信息;是为实现对信息的自动扫描而设计的;它是实现快速、准确而可靠地采集数据的有效手段。

条形码按码制不同可分有很多种,这里只针对最常用的,也是与本系统所用条码相关的一些条形码进行简要介绍说明:

1、UPC码:1973年,美国率先在国内的商业系统中应用于UPC码之后加拿大也在商业系统中采用UPC码。UPC码是一种长度固定的连续型数字式码制,其字符集为数字0~9。它采用四种元素宽度,每个条或空是1、2、3或4倍单位元素宽度。UPC码有两种类型,即UPC-A码和UPC-E码。

2、EAN码:1977年,欧洲经济共同体各国按照UPC码的标准制定了欧洲物品编码EAN码,与UPC码兼容,而且两者具有相同的符号体系。EAN码的字符编号结构与UPC码相同,也是长度固定的、连续型的数字式码制,其字符集是数字0~9。它采用四种元素宽度,每个条或空是1、2、3或4倍单位元素宽度。EAN码有两种类型,即EAN-13码和EAN-8码。3、39码:39码是第一个字母数字式码制。1974年由Intermec公司推出。它是长度可比的离散型自校验字母数字式码制。其字符集为数字0—9,26个大写字母和7特殊字符(“+”、“-”、“*”、“/”、“%”、“$”、“.”),共43个字符。每个字符由9个元素组成,其中有5个条(2个宽条,3个窄条)和4个空(1个宽空,3个窄空),是一种离散码。

本系统所采用的条码:

1、ISBN码(10位):

国际标准书号(International Standard Book Number,简称 ISBN),是为应图书出版、管理的需要,并便于国际间出版品的交流与统计所发展的一套国际统一的编号制度,由一组冠有[ISBN]代号(978)的十位数码所组成,用以识别出版品所属国别地区或语言、出版机构、书名、版本及装订方式。这组号码也可以说是图书的代表号码。国际标准书号有助于简化图书发行及管理手续,便于出版品4 统计及国际交流。世界各地的出版机构、书商、及图书馆都可以利用国际标准书

北创软件

瑞天图书管理系统标准版

号迅速而有效的识别某一本书及其版本、装订形式。不论原书是以何种文字书写,都可用电报或电话传真订购,并以电脑作业处理。

制作条码时,EAN码中图书类的代码是978,即只要将EAN的国家代码部分改为978,再重新计算检查码,即为ISBN条码,其余处理均相同。简单来说,ISBN与EAN的对应关系为:978 + ISBN前9码 + EAN检查码。

2、ISSN码(8位):

国际标准期刊号(International Standard Serial Number,简称 ISSN),是根据国际标准组织 1975年制订之 ISO-3297 的规定,由设于法国巴黎的国际期刊资料系统中心(International Serial Data System-ISDS International Center)所赋予申请登记的每一种刊物一个具有识别作用且通行国际间的统一编号。

「期刊」是指任何一系列定期或不定期连续出版的刊物,它们通常以一定的刊名发行,以「年月日」,「年月」或数字标明卷、号、期数。市面上常见的期刊、杂志、丛刊、年刊等大都属于国际标准期刊号的编号与编码范围。每一种期刊在注册登记时,就得到一个永久专属的 ISSN,一个 ISSN 只对应一个刊名;而一个刊名也只有一个 ISSN。所以当该刊名变更时,就得另申请一个 ISSN。如果期刊停刊,那么被删除的 ISSN 也不会被其他期刊再使用。因此,国际期刊资料系统中心在分配 ISSN 时,必须为该期刊编订一个有别于其他期刊刊名的识别题名(Key Title)。

每组 ISSN 系由八位数字构成,分前后两段,每段四位数,其中后段的最末一位数字为检查号,如:ISSN 0211 9153。制作条码时,将ISBN码中的「978」部份更改为「977」即为ISSN码。ISSN与EAN的对应关系为:977 + ISSN前7码 + 00 + EAN检查码。

3、EAN13码(13位):

标准码共13位数,系由「国家代码」3位数,「厂商代码」4位数,「产品代码」5位数,以及「检查码」1位数组成。

4、39码(位数不限):

39码是西元1974年发展出来的条码系统,是一种可供使用者双向扫描的分散式条码,也就是说相临两资料码之间,必须包含一个不具任何意义的空白(或细

北创软件

瑞天图书管理系统标准版

白,其逻辑值为0),且其具有支援文数字的能力,故应用较一般一维条码广泛,目前较主要利用于工业产品、商业资料及医院用的保健资料,它的最大优点是码数没有强制的限定,可用大写英文字母码,且检查码可忽略不计。

标准的39码是由起始安全空间、起始码、资料码、可忽略不计的检查码、终止安全空间及终止码所构成。

特别提示:虽然按照对应条码的组合原理,本系统可以把用户自定义的资料编码转变成正常ISBN、ISSN码和EAN13码,但是条码本身并不同于正规的商品条码,几乎没什么意义,所以它只能作为一种普通编码(跟39码一样)来使用。

第3节 解决方案

使用本系统时有几点方案可供参考

一、配合条码扫描枪的情况:

1、当前没有现成的图书资料和读者资料库档案,所有资料均需录入:

建议录入图书资料时,可以利用本系统的条码打印功能,设置成自己所需的自定义条形码编号,然后把条形码打印在不干胶纸上,接着把条形码贴在图书上,最后再录入书籍信息,这样就可以确保每本图书资料上都有唯一的条形码,并且把这个唯一的条形码编号作为书籍编号;对于读者资料,每个读者均可按其编号或者卡号生成条形码,打印到不干胶标贴上,然后贴在借书证上即可。2、已经有大量的现成资料:

在这种情况下,您可以利用本系统的“数据导入”功能把各种资料对应地导入到我们的系统中.因为要配合条码扫描枪使用,所以需要每个资料上都有条形码,解决方案如下:假如原来的系统中所有资料的编号均是正规的条码编号且条码编号没有重复(资料上本身自带的),那您可以省去打印条码的步骤;假如原先的资料编号是自定义的,那么也没关系,可以利用本系统自带的条码生成和打印功能,把原先的所有资料的编号全部以条形码的方式打印出来,然后贴在对应的资料上即可。6

北创软件

瑞天图书管理系统标准版

3、假如您的图书馆对图书编号有特殊要求,比如每本书(虽然其中可能有相同的书籍,即ISBN码一样)都要有自己唯一的编号,这时候用资料自带的条码编号显然是不能达到您的要求了;不过没关系,您可以自行按照您的方式先定义,等所有资料录入完成之后,再利用我们系统自带的条码生成和打印功能,把您所自定义的每一个资料编号都以条码的方式打印出来,然后您在对应的帖在资料上,即可达到您所需要的效果了。

注意:因为合法的ISBN、ISSN或者EAN13码(39码产生方式比较随意一些,所以不在此范围内)均有自己的一套组合原理(即有自己的数据位和验证位),不是随便的一串字符串就可以称为合法的ISBN、ISSN或者EAN13码的;所以,若您需要合法的ISBN、ISSN或者EAN13码做条码时,最好使用本系统的自定义条码产生功能,这样就可以产生大量合法的条形码编码,然后再用这些编码作为资料的编码,便可真正得到您所需要的类型条形码。总结:

按以上方法录入完所有资料后,在日后的借阅管理时,您只要用条码扫描抢就可以完成借还工作了,而且出错频率比手工操作要小几万倍,从而达到效率高、速度快的效果。

二、无条码扫描枪的情况:

因为您以后的借阅管理操作可能是手工输入,所以假如需要自定义编码时,您可以让编码简单一点,比如:0001、0002„„,等输入完成后,您就可以进行操作了,而且在任何时候,只要您想配合条码扫描枪使用的话,就可以使用我们系统自带的条码生成和打印功能,把资料编号以条码的方式打印出来,贴在对应的资料上就可以了。其实本系统有很多人性化的设计,比如自动选择功能等,即使您不配合条码扫描枪使用,操作速度和效率同类的其他软件高的多。

北创软件

瑞天图书管理系统标准版

第4节 操作流程

初次正式投入使用本系统时,为了能比较顺利的使用本系统,建议您最好按照以下步骤顺序进行操作:

1、界面设置

把系统的标题和背景以及是否含租金功能等设置成您所喜欢的模式;

2、系统初始化

第一次使用时最好不要保留那些您不需要的数据,即取消复选框的选中状态;

3、系统参数设置

设置好系统常用的信息,以便日后调用;

4、系统用户管理

设置好系统的操作用户、密码及相关权限;

5、基础资料类别管理

设置好读者等级信息,否则相关读者无法租借资料;添加或修改其他类别资料;

6、读者资料管理

您可以逐一的输入读者信息,也可以通过系统的“数据导入”功能把现有的读者资料导入到本系统中;

7、书籍、期刊资料管理

您可以逐一的输入书籍资料、期刊资料、物品资料,也可以通过系统的“数据导入”功能把现有的资料导入到本系统中;

以上所有步骤完成后,您就可以正常的进行图书的借还管理了。北创软件

瑞天图书管理系统标准版

第2章 各菜单功能介绍

第1节 主工具栏介绍

显示导航栏:显示或隐藏系统左边的导航控制窗口;

出借资料:将馆内的资料借出给读者(对应系统菜单项[常用操作]——>[借阅管理]——>[借出资料]);

归还资料:将读者所借出的资料归还到馆内(对应系统菜单项[常用操作]——>[借阅管理]——>[归还资料]);

关闭子窗口:当有很多子窗口打开时,一次性关闭所有已经打开的子窗口,可以用此按钮来替代逐一关闭子窗口(对应系统菜单项[窗口]——>[关闭所有]);

退出本系统:关闭本图书管理系统(对应系统菜单项[系统设置]——>[退出系统]); 帮助:显示系统操作帮助(对应系统菜单项[帮助]——>[帮助])。

北创软件

瑞天图书管理系统标准版

第2节 系统设置

 备份管理

创建备份:给系统做一个完整的备份,方法如下:

用鼠标点击[创建备份]按钮(或同时按[ALT+O]键),出现目录选择框: 北创软件

瑞天图书管理系统标准版

然后选择您想要备份到的目录(您可以自己事先创建好一个目录,以便以后在需要此备份包时能很快找到自己备份文件在电脑中的位置),按[确定]后系统便自动进行数据备份。

导入备份:用鼠标点击[导入备份]按钮(或同时按[ALT+I]键),出现如下文件选择框:

选择您想要导入的备份(此为您之前创建的备份包),然后按[打开]按钮,系统便自动进行导入备份作业。返回:退出系统备份功能。

北创软件

瑞天图书管理系统标准版

 导入数据

如果您已经有大量现成的资料数据,可使用本系统的导入功能代替手工输入。导入的数据可为多种电子格式,如Excel电子表格、文本文档或者MARC等文件格式,若有一些特殊格式我们的软件无法导入,您可以试着通过其自身功能把其导出成此软件可以识别的格式(比如:文本格式、Excel格式或DBF格式等,软件系统一般都支持导出成这些格式文件)。

当选择[导入数据]后出现如上对话框(解释如下):

1、书籍资料导入:当选择此项后,按软件提示操作后将会把您所选择的数据文件(可以是Excel、Text、DBF等格式)导入到本系统的书籍资料中,从而减少了大量的人工录入工作。

2、期刊资料导入:当选择此项后,按软件提示操作后将会把您所选择的数据文件(可以是Excel、Text、DBF等格式)导入到本系统的期刊资料中,从而减少了大量的人工录入工作。北创软件

瑞天图书管理系统标准版

3、物品资料导入:当选择此项后,按软件提示操作后将会把您所选择的数据文件(可以是Excel、Text、DBF等格式)导入到本系统的其他资料中,从而减少了大量的人工录入工作。

4、读者资料导入:当选择此项后,按软件提示操作后将会把您所选择的数据文件(可以是Excel、Text、DBF等格式)导入到本系统的读者资料中,从而减少了大量的人工录入工作。

5、导入数据格式是Marc格式:如果所导入的数据是MARC格式,就一定要选择此选项,否则无法正常导入MARC格式的数据;很多不同的图书馆之间一般比较习惯通过此种数据格式来达到数据共享的目的。

6、导入数据第一行是标题:当此复选框处于选中状态时,表示当前所导入的数据中第一行是列标题,将显示在导入框的列标题位置,但不会被导入到我们的系统中;当此复选框处于非选中状态时,表示当前所导入的数据中第一行不是列标题,不会显示在导入框的列标题位置(列标题会被初始化为形如:Value_1,Value_2...),而且第一行会被导入到本系统中。

所有的数据资料导入步骤其实比较类似,在此以[读者资料导入]举例说明: 1、选中[读者资料导入]单选框,并选中[导入文件包含标题]复选框,点击[下一步],出现[选择要到入的文件]对话框:

按提示选择您将要导入的文件(注意要预先在文件类型中选择格式),然后按[打开]按钮,进入如下界面:

北创软件

瑞天图书管理系统标准版

上图是已导入数据的临时存放形式,请您先审核导入数据文件是否正确.2、当确认所导入数据文件正确后,按[下一步]继续进入如下图:

左边字段是您将要导入的数据库文件字段内容,右边字段是我们系统中对应字段,在此步应该确保字段的映射正确,因为如果映射不正确可能会给后期的操作和使用带来麻烦。

若映射正确,即可进入[下一步]: 北创软件

瑞天图书管理系统标准版

3、此步是最后一次审核了(如上图),您可以在某些内容不妥的地方进行适当的修改(当列宽度不够显示时,您可以让鼠标停留在该数据上,即可显示内容提示,当然您可以通过调节列的宽度全部来看清数据内容)。假如一切正常的话,您就可以按[完成]进行最后导入工作了。如果映射正确的话,那么就会提示[导入完成],并且会提示已经导入的记录数量(若导入不成功,一般是因为导入的资料编号重复或者跟已经存在的资料编号,请注意检查)。

 系统界面

此功能可以修改软件的显示属性,包括软件标题、背景图片、背景颜色等,以下将详细介绍:

北创软件

瑞天图书管理系统标准版

当选择界面设置后出现如上图,以下将针对上图的各项功能分别做解释: 1、自定义本系统标题:此项用于修改标题,输入后按[确定],本系统的标题就会变成您刚刚设置的文字。

2、自定义背景图路径:设置背景图片的路径,您也可以按右边的浏览按钮进行浏览,查找您所需要的图片,此处背景图片支持多种图片格式。

3、显示系统背景图片:此处用于设置自定义的图片是否显示,如果要显示图片请选择[是],否则选择[否],当图片不显示时,将会显示您所设置的背景颜色,否则将显示图片代替背景颜色。

4、背景颜色:设置当前背景图不显示时,本系统所显示的背景颜色,点击颜色框可以自定义颜色。

5、读者界面类型设置:如果是学校使用此系统,就设置成[学校版];如果是企业单位使用此系统,则设置成[单位版];两个版本的区别主要在于读者的某些属性不一样,而在功能上没有任何区别;比如在[学校版]中的读者属性有[读者学校]、[读者专业]等,如果是[单位版]则相应的属性变成了[单位名称]和[单位科室]等等。

6、包含租金管理功能:如果选择了“是”含有租金功能,然后就可以在“系统设置”里点击“借阅参数”按钮,那么就可以设置每逾期一天罚款金额、读者预借资料有效期、书籍、期刊和物品的日租金。

北创软件

瑞天图书管理系统标准版

 系统参数

此功能可以设置和修改一些系统常用的参数,以下将详细介绍:

当选择系统参数设置后出现如上图,以下将针对上图的各项分别做解释: 1、还书每逾期一天罚款:此项用于设置当读者持所借图书过期归还时,每超过还书期限一天应该罚款的金额。

2、读者预借资料有效期:设置读者预借某本书的有效时间,即从预借那天开始,过多少天后预借记录自动清除,以免预借读者因种种原因长期没有借所预借的资料,从而耽误其他读者的对该资料的借阅操作。

3、每次启动本系统时自动打开逾期列表:选中当前的复选框,表示每当打开本图书管理系统时会自动显示那些已经过期的借阅情况。

4、开机时自动启动数据库服务器:若当前系统为服务器端时,每次启动计算机后,是否直接启动本系统的数据库服务器(不是本系统,而是本系统所连接的数据库服务器),以便其他客户端能正常的连接该计算机上的服务器。

北创软件

瑞天图书管理系统标准版

5、无人操作自动进入离开状态:这是一个安全设置,当自己离开后一段时间里(具体时间可以自己设定),系统自动进入离开状态,用于防止别人在未经许可的情况下动自己的系统,本功能有点像屏幕保护程序,进入离开状态后需要密码才能返回当前系统。

 切换用户

用于更换当前登陆者的身份。注意,假如是多用户同时操作,请确保同一用户名在不同客户端不要重复登陆。

 修改密码

用于更换当前登陆者的登陆密码,按提示填入旧密码和新密码就可以实现密码的修改操作。18

北创软件

瑞天图书管理系统标准版

 暂时离开

系统里有当前正在查看或编辑的内容,如果退出系统那么当前内容会丢失,所以不方便退出系统,这时您可以利用该功能;并且此功能有屏幕保护的作用,可以有效的防止别人在未授权的情况下修改您的数据。

该功能主要用于用户临时离开时,当前用户再次进入系统时,须输入当前用户的密码,如果密码不对则不能进入系统。

因为此处功能是[用户暂时离开],即表示当前用户还会来,里面的数据还需要用,所以在当前状态不能切换用户,即进入系统时只能输入当前用户的密码。

 用户管理

用于对用户进行添加、修改、删除、权限修改等操作,此功能需要超级用户权限才能使用。

北创软件

瑞天图书管理系统标准版

下面分别介绍: a、添加用户

单击管理管理窗口中按钮[添加用户],即可出现下图:

填好您需要的内容,按[确定]即可完成用户的添加工作。

b、修改用户

选择您想要修改的用户名后,单击管理管理窗口中按钮[修改用户],即可出现下图: 20

北创软件

瑞天图书管理系统标准版

修改好您需要的内容,按[确定]即可完成用户的修改工作。

c、删除用户

选择您想要删除的用户名后,单击管理管理窗口中按钮[删除用户],即可完成删除工作。

注意:不能删除当前正在登陆使用的用户名。

d、修改权限

选择您想要修改权限的用户名后,单击管理管理窗口中按钮[修改权限],即可出现下图:

北创软件

瑞天图书管理系统标准版

设置相应的权限,点击[确定]即可完成权限设置。

这里注意,不能修改[超级用户]和当前用户的权限。

 系统初始化

进行此步要求慎重,最好能事先备份系统,以便防止有用数据永久丢失!

系统初始化时,您可以有选择的保留某些数据,特别要注意是,选中的资料是表示需要保留的,如果您想删除所有的资料信息,必须不选中所有的复选框(如上图所示,是表示保留所有信息进行初始化,这样做的好处是只删除系统中所有的资料借阅情况而不删除任何基础资料,因为大部分情况下用户只是想初始化系统里面的借阅情况而并非想删除以前辛辛苦苦录入的数据资料,除非确定了该系统中的已有数据确实没有用才会删除)。如上图,单击[确定],系统提示输入超级用户的密码,验证完成后即可进行系统初始化工作。

用户刚刚投入使用该系统时一般会使用本功能,以便清除系统中没有用的数据。22

北创软件

瑞天图书管理系统标准版

 数据库连接管理

A、单机版设置

假如您只需要在一台机子上使用本系统,无需联网操作,您就可以使用该功能把本系统设置成[单机版],方法如下图:

单击[确定]即可完成设置。

说明:作为单机版使用时,您也可以把系统设置成服务器端,这样系统可以正常运行,但每次启动该系统的时间比单机版稍慢一些。

B、网络版设置

假如您需要在多台机子上联网使用本系统,您就可以使用该功能把本系统设置成[网络版],其中网络版设置又包括服务器端设置和客户端设置,下面将分别介绍:

1、服务器端设置:

北创软件

瑞天图书管理系统标准版

按上图,选择网络版,第一个下拉列表选择[服务器端],然后在“服务器名称”处给您所设的服务器自定义取个名字(比如叫[ServerName],在客户端的设置中将会引用此名称),单击[确定]即可完成设置。

(注:给服务器取名字时要注意,假如您所在的局域网内同时有多台服务器,请保证您所取的名称不与其他服务器重名,否则您的设置将无法完成。)

至此,服务器端设置完成。

2、客户端设置

按上图,选择网络版,第一个下拉列表选择[客户端],然后在服务器名称处写上您想要连接的服务器名称(比如叫[ServerName],在服务器端的设置的名称),单击[确定]即可完成设置(如果不在同一个局域网内则需要输入服务器的IP地址)。24

北创软件

正在运行,否则您的设置将无法完成。)

瑞天图书管理系统标准版

(注:填写要连接的服务器名字时要注意,一定要保证所在的局域网存在该服务器名称,且服务器至此,客户端设置完成。

 读卡器设置

此功能是配合COM接口的读卡器使用的。详细设置情况按读卡器实际情况设置就可以了。

 退出系统

本功能是退出本图书管理系统。

第3节 资料管理

 类别资料维护

此处可以设置读者资料或者借阅资料所引用的内容,包括读者等级,出版社资料,图书分类,以下分别介绍: 1、读者等级管理:

北创软件

瑞天图书管理系统标准版

在窗口的正下方有不同功能的按钮,功能如下:

新增:增加一个读者等级的内容;

修改:修改一个已经存在的读者等级内容;

删除:删除一个已经存在的读者等级内容;

刷新:重新从库中获取等级内容,以便查看其他客户端是否正在更改此等级信息;

退出:退出当前的类别管理界面,返回系统。

2、出版社资料管理: 北创软件

瑞天图书管理系统标准版

在窗口的正下方有不同功能的按钮,功能如下:

新增:增加一个出版社的内容;

修改:修改一个已经存在的出版社内容;

删除:删除一个已经存在的出版社内容;

刷新:重新从库中获取出版社内容,以便查看其他客户端是否正在更改此出版社信息;

退出:退出当前的类别管理界面,返回系统。

3、图书类别管理:

北创软件

瑞天图书管理系统标准版

在窗口的右下方有不同功能的按钮,功能如下:

增加同级类别:增加一个与指定类别同级的类别,即新增类别与当前指定类别处于同一个目录层次;

增加下级类别:增加一个指定类别的下级类别,即新增类别处于当前指定类别的子类别;

修改当前类别:修改当前所指定的类别信息。

删除当前类别:删除当前所指定的类别;

退出当前界面:退出当前的类别管理界面,返回系统。

 书籍资料管理

选择此功能时,出现下图: 北创软件

瑞天图书管理系统标准版

在本窗口正上方的工具栏上有各种按钮的图标,这些按钮所执行的功能只作用于在其正下方的书籍资料内容,在书籍资料内容的下方是描述当前书籍窗口中当前书籍资料的详细明细情况,可以点击对应的按钮进行相应的操作。

针对每一条书籍资料记录,下面都有详细的明细窗口,包括:

1、当前借阅状态:用于记录当前书籍被出借的情况; 2、借阅流水情况:用于记录当前书籍以往的所有借阅日志; 3、重要历史备忘:用于记录当前书籍相关的一些事情。

下面针对书籍管理的主工具条作一些说明(如下图):

北创软件

1、添加:新增一条新的书籍资料记录;

瑞天图书管理系统标准版

2、修改:修改一条已经存在的书籍资料记录; 3、删除:删除一条已经存在的书籍资料记录;

4、下架:当库内有某些书籍因为某些特殊原因而暂时停止外借时,就可以用此处的下架功能。此功能不会删除所选择的书籍资料,所以在任何时候都可以将下架的书籍资料重新上架流通;

5、筛选:可以根据用户设定的条件把需要的书籍资料过滤出来;

6、刷新:在很多情况下(比如网络操作),可能数据已经更新了,但当前系统不能及时显示,您可以通过刷新来完全显示;

7、列选:当前如果资料的列项比较多,但是您不需要这么详细的列资料,或者打印是不需要如此多的列,您可以通过此操作来设置您所需要的列项; 8、预览:查看打印效果,可以调节列宽,以便按您所需要的格式打印;注意,如果系统没有安装打印机的话,预览可能会不正常,而且打印预览中的某些项可能设置不了;

9、导出:把当前正在显示的记录导出成您所需要的格式(比如Excel格式等),注意,被隐藏的列也能被正常导出;10、退出:退出当前书籍管理窗口。北创软件

 期刊资料管理

选择此功能时,出现下图:

瑞天图书管理系统标准版

在本窗口正上方的工具栏上有各种按钮的图标,这些按钮所执行的功能只作用于在其正下方的期刊资料内容,在期刊资料内容的下方是描述当前期刊窗口中当前期刊资料的详细明细情况,可以点击对应的按钮进行相应的操作。

针对每一条期刊资料记录,下面都有详细的明细窗口,包括:

1、当前借阅状态:用于记录当前期刊被出借的情况; 2、借阅流水情况:用于记录当前期刊以往的所有借阅日志; 3、重要历史备忘:用于记录当前期刊相关的一些事情。

因为期刊管理主工具条的功能操作方法跟书籍管理非常类似,所以具体可以参考书籍管理中工具条的操作说明,为了节省篇幅,这里略。

北创软件

瑞天图书管理系统标准版

 其他物品管理

选择此功能时,出现下图:

在本窗口正上方的工具栏上有各种按钮的图标,这些按钮所执行的功能只作用于在其正下方的物品资料内容,在物品资料内容的下方是描述当前物品窗口中当前物品资料的详细明细情况,可以点击对应的按钮进行相应的操作。

针对每一条期刊资料记录,下面都有详细的明晰,包括:

4、前借阅状态:用于记录当前物品被出借的情况; 5、借阅流水情况:用于记录当前物品以往的所有借阅日志; 6、重要历史备忘:用于记录当前物品相关的一些事情。

北创软件

瑞天图书管理系统标准版

因为物品管理主工具条的功能操作方法跟书籍管理非常类似,所以具体可以参考书籍管理中工具条的操作说明,为了节省篇幅这里略。

 读者资料管理

选择此功能时,出现下图:

在本窗口正上方的工具栏上有各种按钮的图标,这些按钮所执行的功能只作用于在其正下方的读者资料内容,在读者资料内容的下方是描述当前读者窗口中当前读者资料的详细明细情况,可以点击对应的按钮进行相应的操作。

针对每一条读者资料记录,下面都有详细的明细窗口,包括:

1、当前借阅状态:用于记录当前读者借阅资料的情况; 2、借阅流水情况:用于记录当前读者以往的所有借阅日志; 3、提前预借情况:用于记录当前读者提前预定要借阅的资料信息; 4、重要历史备忘:用于记录当前期刊相关的一些事情。

北创软件

瑞天图书管理系统标准版

下面针对读者管理的主工具条作一些说明(如下图):

1、添加:新增一条新的读者资料记录; 2、修改:修改一条已经存在的读者资料记录; 3、删除:删除一条已经存在的读者资料记录;

4、筛选:可以根据用户设定的条件把需要的读者资料过滤出来;

5、刷新:在很多情况下(比如网络操作),可能数据已经更新了,但当前系统不能及时显示,您可以通过刷新来完全显示;

6、列选:当前如果资料的列项比较多,但是您不需要这么详细的列资料,或者打印是不需要如此多的列,您可以通过此操作来设置您所需要的列项; 7、预览:查看打印效果,可以调节列宽,以便按您所需要的格式打印;注意,如果系统没有安装打印机的话,预览可能会不正常,而且打印预览中的某些项可能设置不了;

8、导出:把当前正在显示的记录导出成您所需要的格式(比如Excel格式等),注意,被隐藏的列也能被正常导出; 9、退出:退出当前书籍管理窗口。

北创软件

瑞天图书管理系统标准版

 资料下架管理

相关解释:

上架选中资料:将所有选中的资料重新上架,上架后的资料可以被读者正常借阅;

删除选中资料:将当前所有选中的资料彻底从系统中删除(当确认当前所有选中的资料都没有用了,就可以进行此步操作);

筛选:可以根据用户设定的条件把需要的读者资料过滤出来;

刷新:在很多情况下(比如网络操作),可能数据已经更新了,但当前系统不能及时显示,您可以通过刷新来完全显示;

北创软件

瑞天图书管理系统标准版

预览:查看打印效果,可以调节列宽,以便按您所需要的格式打印;注意,如果系统没有安装打印机的话,预览可能会不正常,而且打印预览中的某些项可能设置不了;

导出:把当前正在显示的记录导出成您所需要的格式(比如Excel格式等),注意,被隐藏的列也能被正常导出;

退出:退出当前下架管理窗口。

批量删除管理

在[批量删除管理]界面您可以根据自己的具体要求批量删除书籍、期刊、物品、读者以及借阅日志记录。

北创软件

快速新增资料

瑞天图书管理系统标准版

此功能包括:新增读者、新增书籍、新增期刊、新增物品,对应的每个功能都有一个快捷键,因为本功能无须打开相应的资料管理窗口,从而避免了获取大量资料信息的过程,节省了操作时间(数据量越大,效果越明显),达到快速新增的目的。

 资料打印

1、读者当前借阅打印

此功能用于打印读者当前借阅情况,可以筛选您需要的资料进行打印输出。2、读者借阅日志

此功能用于打印读者当前借阅日志,可以筛选您需要的资料进行打印输出。

3、资料当前借阅打印

此功能用于打印资料当前被借阅的情况,可以筛选您需要的资料进行打印输出。

4、资料借阅日志

此功能用于打印资料借阅日志的情况,可以筛选您需要的资料进行打印输出。

5、库资料条码打印

选择此功能时,出现下图:

北创软件

瑞天图书管理系统标准版

您可以在本窗口中把对应的资料编号转换成您所需要的条形码图形(如39码、ISBN码等),然后就可以打印输出了。在打印页面设置中设置好条码的宽度和相互距离,以便能更准确的打印到输出材料上。

6、自定义资料条码打印

以下我们将对Code 39码和EAN13码的产生分别作说明:

1、39码的产生

在常用条码条码选择中选择“Code 39码”,如下图:

北创软件

瑞天图书管理系统标准版

然后点击[添加条码],出现下图,按要求填上数据后按[确定]即可进行添加条码的操作

[确定]后出现:

北创软件

瑞天图书管理系统标准版

至此,Code 39码产生完成,剩下的就是打印输出了。

2、Ean13码(ISBN/ISSN)的产生

在常用条码选择中选择“Code 39码”,如下图:

北创软件

瑞天图书管理系统标准版

然后点击[添加条码],出现下图,按要求填上数据后按[确定]即可进行添加条码的操作

[确定]后出现:

北创软件

瑞天图书管理系统标准版

至此,Ean13码(ISBN/ISSN)的产生完成,剩下的就是打印输出了。

7、库资料书标打印 选择此功能时,出现下图:

北创软件

瑞天图书管理系统标准版

您可以在本窗口中把对应的资料书标转换成您喜欢的组合方式(如分类号与书架号、书架号与资料编号、书架号与出版年等组合而成),然后就可以打印输出了。在打印书标之前可以先设置好页边距、书标的宽度和相互距离等以便能更准确的打印到输出材料上。书标产生后您可以点击[颜色]按钮自定义设置书标颜色。

8、自定义书标打印

北创软件

标的操作。

瑞天图书管理系统标准版

点击[添加新书标],出现下图,按自己要求填上数据后按[确定]即可进行添加书

书标生成后,您还可以点击[颜色修改]按钮自定义设置书标颜色。

数据自动生成

注:此项操作会批量更改数据,一般用于图书馆刚刚建库并使用本系统的时候进行操作。

北创软件

瑞天图书管理系统标准版

相关解释:

1.自动生成书架位置:当您选择次功能,并且选择了“索书号内容”那么系统会自动根据您选择的索书号[内容]批量产生索书号。

2.根据标准ISBN自动生成出版社:当您选择此功能,那么系统会根据书籍的ISBN码自动批量产生出版社名称和地点信息,您也可以选择是否“覆盖已有的出版社”。

3.根据分类号自动生成类别名称:当您选择此功能,那么系统会根据书籍的分类号自动批量产生书籍的类别名称。您也可以选择是否覆盖已有类别名称。

北创软件

瑞天图书管理系统标准版

第4节 常用操作

 借阅管理

此功能包括借出资料、归还资料、续借资料和预借资料功能,界面如下图:

相关解释:

执行操作:执行相应的借阅操作;

清空数据:清空当前借阅窗口内的所有数据;

北创软件

瑞天图书管理系统标准版

编号切换:借阅资料的编号和ISBN/ISSN码进行切换,以便用户选择一种比较适合自己管理的借阅方法(F2键或者用鼠标单击资料编号输入框上方的小图标可以实现切换功能)。

卡号切换:当前读者编号和读者卡号相互切换,以便操作(用鼠标单击读者编号输入框上方的小图标可以实现切换功能);

读者列表:打开当前读者列表,以便用户选择; 资料列表:打开当前资料列表,以便用户选择;

显示读者照片:如果读者在入库时添加了对应的读者相片,那么[显示照片]复选框若选中,则会显示对应读者的照片;

自定天数:如果选中[自定天数]复选框,则借出资料时所借出的天数是按照自己设定的天数登记的;如果不选中[自定天数]复选框,则借出资料时所借出的天数是按照对应读者的等级所限制的最大天数登记的,若会员等级是无限制,则默认的天数是9999天;

今日借还日志:记录当天当前用户的所有操作日志,如果想看其他的时间段,可以利用本系统的借阅流水查看功能。

暂时离开:打开暂时离开界面; 退出窗口:退出当前界面.47 北创软件

 帐务管理

瑞天图书管理系统标准版

此处是进行处理读者支付款项事件的操作,读者所有因借阅过期、资料丢失、资料损坏、读者支付等所产生的款项记录都可以在此进行处理,界面如下图:

点击[罚款]按钮后出现:

北创软件

当于存款了)。

瑞天图书管理系统标准版

按要求可以做相应的操作(假如选择[其他原因],罚款金额是负数的话,那就相 会员管理

此处主要用于对读者进行挂失、解挂失、停用、启用和注销等操作,界面如下图:

按提示要求就可以做相应的操作。

 办卡管理

此处是进行办卡、换卡和注销卡等操作的功能,界面如下图:

北创软件

瑞天图书管理系统标准版

按提示要求就可以做相应的操作。

 押金充值

此处是进行押金充值操作的功能,界面如下图

按提示要求就可以做相应的操作。

第二篇:图书管理系统

图书管理系统源代码

#include #include class Book{ // 书籍基类 protected: char Title[40];// 书名 long Code;// 条码 int Type;// 0表示书,1表示杂志 public: Book();Book(char *title,long code);void SetCode(long code){ Code = code;} void SetTitle(char* tl){ strcpy(Title,tl);} void SetType(bool type){Type = type;} int GetType(){ return Type;} long GetCode(){ return Code;} virtual void Show();// 显示书的信息 friend ostream& operator<<(ostream& , Book&);// 重载插入运算符 friend istream& operator>>(istream& is, Book&);// 重载提取运算符 Book *Next;// 为创建每个读者所借书链表而定义指针 };class Item :public Book{ //书的款目 // char Title[40];// 书名 char Author[20];// 著者名 char IndexCode[10];// 分类号 // long Code;// 条码 public: Item();Item(char *author,char *title,char *index,int code);Item(Item &);void SetAuthor(char*);void SetIndexCode(char*);virtual void Show();// 显示书的信息 friend ostream& operator<<(ostream& os, Item&);// 重载插入运算符 friend istream& operator>>(istream& is, Item&);// 重载提取运算符 public: };class Magazine:public Book { //杂志类 int Volume;enum LANG {CHINESE=1,ENGLISH} Lang;// 枚举变量,确定语言类别 public: Magazine():Book(){Volume = 0;Lang = CHINESE;Type = 1;} Magazine(char *title,int vol,LANG lang,int code);Magazine(Magazine&);void SetVolume(int vol){Volume = vol;} void SetLang(int lang){Lang =(LANG)lang;} virtual void Show();// 显示杂志的信息 friend ostream& operator<<(ostream& os, Magazine&);// 重载插入运算符 friend istream& operator>>(istream& is, Magazine&);// 重载提取运算符 };class Reader{ // 读者信息类 char Name[20];// 姓名 char Position[20];// 职务 int Age;// 年龄 long Code;// 借书证号 Book* items;// 所借书链表 public: Reader();Reader(char *name,char *posi,int age,int code);// Reader(Reader&);~Reader();long GetCode(){return Code;} void SetName(char*);void SetPosition(char*);void SetAge(int);void SetCode(long);void AddBook(Item);// 添加所借书 void AddBook(Magazine);// 添加所借杂志 void DelBook(Book it);// 还书后减少所借书 void ShowBooks();// 显示所借书 void Show();// 显示读者信息 friend ostream& operator<<(ostream& os, Reader&);// 重载插入运算符 friend istream& operator>>(istream& is, Reader&);// 重载提取运算符 public: int Counter;//计数器,统计所借书数目 };class Manager{ // 管理员类 char Name[20];// 姓名 int Age;// 年龄 int Code;// 工号 friend class Library;// 将图书馆类声明为友元 public: Manager(){} Manager(char*,int,int);long GetCode(){ return Code;} void Show();friend ostream& operator<<(ostream& os, Manager&);// 重载插入运算符 friend istream& operator>>(istream& is, Manager&);// 重载提取运算符 };class Loan { // 借阅信息类 int Type;// 0表示书,1表示杂志 Item item;// 借阅书 Magazine mag;// 借阅杂志 Reader reader;// 借阅者 Manager manager;// 借书操作员 int Code;friend class Library;// 将图书馆类声明为友元 public: Loan(){ } Loan(Loan & l);int GetCode(){ return Code;} void Show();friend ostream& operator<<(ostream& os, Loan&);// 重载插入运算符 friend istream& operator>>(istream& is, Loan&);// 重载提取运算符 };、、、、、、、、、、、、、、、、、、、、、、、#include #include class Reader;template class DblList;template class DblNode{ public: T Info;//数据域 DblNode *llink,*rlink;//前驱(左链)、后继(右链)指针 public: DblNode(T data);//一般结点 DblNode();//头结点 T GetInfo(){return Info;};friend class DblList;friend class Library;};templateclass DblList{ DblNode *head,*current;public: DblList();~DblList();void Insert(const T& data);DblNode* Remove(DblNode* p);void Print();int

Length();//计算链表长度 DblNode *Find(T data);//搜索数据与定值相同的结点 DblNode* Find(int data);//按某个关键字查找 void MakeEmpty();//清空链表 void ShowList();//显示链表各结点 friend istream& operator>>(istream&, DblList&);// 重载输入流运算符 friend ostream& operator<<(ostream& os, DblList& dlist);// 重载输出流运算符 friend class Library;//其它操作 };template DblNode::DblNode(){ llink=rlink=NULL;} template DblNode::DblNode(T data){ info=data;llink=NULL;rlink=NULL;} template DblList::DblList(){//建立表头结点 head=new DblNode();head->rlink=head->llink=head;current=NULL;} template DblList::~DblList(){ MakeEmpty();//清空链表 delete head;} template void DblList::MakeEmpty(){ DblNode *tempP;while(head->rlink!=head){ tempP=head->rlink;head->rlink=tempP->rlink;//把头结点后的第一个节点从链中脱离 tempP->rlink->llink=head;//处理左指针 delete tempP;//删除(释放)脱离下来的结点 } current=NULL;//current指针恢复 } template void DblList::Insert(const T & data){//新节点在链尾 current=new DblNode;current->Info=data;current->rlink=head;//注意次序 current->llink=head->llink;head->llink->rlink=current;head->llink=current;//最后做 } template DblNode* DblList::Remove(DblNode* p){ // 删除结点 current=head->rlink;while(current!=head&¤t!=p)current=current->rlink;if(current==head)current=NULL;else{//结点摘下 p->llink->rlink=p->rlink;p->rlink->llink=p->llink;p->rlink=p->llink=NULL;} return current;} template DblNode* DblList::Find(T data){ // 按结点查找 current=head->rlink;while(current!=head&¤t->Info!=data)current=current->rlink;if(current==head)current=NULL;return current;} template DblNode* DblList::Find(int data){ // 按数据值查找结点 current=head->rlink;int temp =current->Info.GetCode();while(current!=head&&temp!=data){ current=current->rlink;temp = current->Info.GetCode();} if(current==head)current=NULL;return current;} template void DblList::Print(){ // 输出链表 current=head->rlink;while(current!=head){ cout<Info<<'t';current=current->rlink;} cout< int DblList::Length(){ // 取得链表长度 int count=0;current=head->rlink;while(current!=head){ count++;current=current->rlink;} return count;} template void DblList::ShowList(){ // 输出链表各结点 int count=0;current=head->rlink;while(current!=head){ current->GetInfo().Show();current=current->rlink;} return;} template istream& operator>>(istream& is, DblList &dlist){ int len;T tt;// 定义局部变量读入一个结点 is>>len;for(int i= 0;i>tt;dlist.Insert(tt);} return is;} template ostream& operator<<(ostream& os, DblList &dlist){ DblNode *tempP;int len = dlist.Length();os<rlink;while(tempP!=dlist.head){ // 循环输出链表各结点 os<Info;tempP = tempP->rlink;} return os;} #include “class.h” #include “dblist.h” #include class Library{ // 封装图书馆流通业务的类 DblList item;// 在馆图书链表 DblList mag;// 在馆杂志链表 DblList reader;// 读者链表 DblList loan;// 借阅信息链表 DblList manager;// 管理员信息链表 int itemNum;// 记录在馆图书数目 int magNum;// 记录在馆杂志数目 int readerNum;// 记录读者数目 int loanNum;// 记录借阅信息数目 int managerNum;// 记录管理员数目 ofstream itemFileOut;// 文件流对象,保存图书馆书籍数据 ifstream itemFileIn;// 文件流对

象,读入图书馆书籍数据 ofstream magFileOut;// 文件流对象,保存图书馆杂志数据 ifstream magFileIn;// 文件流对象,读入图书馆杂志数据 ofstream readerFileOut;// 文件流对象,保存图书馆读者数据 ifstream readerFileIn;// 文件流对象,读入图书馆读者数据 ofstream loanFileOut;// 文件流对象,保存图书馆借阅信息数据 ifstream loanFileIn;// 文件流对象,读入图书馆借阅信息 ofstream managerFileOut;// 文件流对象,保存图书馆管理员数据 ifstream managerFileIn;// 文件流对象,读入图书馆管理员数据 public: Library();// 构造函数 ~Library();//析构函数 void Run();// 图书馆类的运行函数 void CreateBibliotheca();// 创建书目 void CreateReader();// 创建读者库 void CreateManager();// 创建管理员信息 int ShowMainMenu();// 显示主菜单函数 void Borrow();// 借书操作 void Return();// 还书操作 void Require();// 查询操作 void SaveInfo();// 保存图书馆信息 void OpenInfo();// 读入图书馆信息 };

第三篇:图书管理系统

目录

第一章 绪论.....................................................................................................................................1 第二章 需求分析..............................................................................................................................2

2.1任务概述............................................................................................................................2

2.1.1 图书管理系统完成的主要目标...........................................................................2 2.1.2用户的特点............................................................................................................3 2.2需求规定............................................................................................................................3

2.2.1对功能的规定........................................................................................................3 2.2.2读者管理功能........................................................................................................4 2.2.3系统管理功能........................................................................................................4

第三章 概要设计.............................................................................................................................4

3.1总体设计............................................................................................................................4

3.1.1系统目标设计........................................................................................................4 3.1.2系统功能分析........................................................................................................5 3.2系统设计思想.....................................................................................................................5 3.3 系统模块功能解析............................................................................................................5 第四章 详细设计.............................................................................................................................6

4.1程序设计说明....................................................................................................................6

4.1.1用户登录模块........................................................................................................6 4.1.2用户添加模块........................................................................................................7 4.1.3书籍查询模块........................................................................................................8 4.1.4图书借阅模块........................................................................................................9 4.1.5图书归还模块......................................................................................................10 4.1.6新书入库模块......................................................................................................11 第五章 编码与测试.......................................................................................................................13 5.1各功能模块的实现...........................................................................................................13 5.2 测试.................................................................................................................................19 5.2.1借阅卡管理测试..................................................................................................19 5.2.2书籍管理测试......................................................................................................19 5.2.3系统管理测试......................................................................................................19 结束语.............................................................................................................................................20 致

谢...........................................................................................................................................21 参考文献.........................................................................................................................................21

图书管理系统

摘要:本文介绍了在VB6.0环境下采用“自上而下地总体规划,自下而上地应用开发”的策略开发一个管理信息系统的过程。通过分析传统的人工管理图书馆的不足,创建了一套行之有效的计算机管理图书馆的方案。文章详细介绍了图书管理信息系统的系统分析部分,包括可行性分析、组织机构分析、管理职能分析、业务流程分析、数据流程分析、数据字典、处理描述等等;系统设计部分主要介绍了系统功能设计和数据库设计;系统实现部分列出了几个主要的程序框图,并附带了一些主要的窗口和程序。关键字:图书管理系统,VB6.0,sqlserver2000,信息系统

Library Management System Abstract:This article introduces the detailed process of exploring a management information system under the environment of VB6.0, utilizing “Top-Bottom” overall plan and a strategy according to “Bottom-Top” application and exploitation.That is to establish a set of effective scheme for library management by computer, through analyzing disadvantages of traditional library management by human resources.This article emphasizes on three sections.The system analysis section of library management information includes feasible analysis, organizing organs analysis, management function analysis, technological process of business analysis, technological process of data analysis, data dictionary, disposal description and the like.The system design section mainly focuses on system function design and data base design.And the system realization section has provided several major program charts, together with the main windows and programs.Key words: library management system, VB6.0,information system

第一章 绪论

随着人类社会的发展,人类对知识的需求也不断地增长。在这种形势下,书籍就渐渐地成为人们获取并增长知识的主要途径,而图书馆就自然而然地在人们的生活中占据了一定的位置,如何科学地管理图书馆不但关系到读者求知的方便程度,也关系到图书馆的发展,因此,开发一套完善的图书馆管理系统就必不可

少了。

图书馆管理系统是典型的信息管理系统,其开发主要包括后台数据库的建立和维护以及前端的应用程序的开发两个方面。对于前者要求建立数据的一致性和完整性,对于后者则要求应用程序功能的完备,易用等的特点。基于上述考虑本系统主要利用VB6.0作前端的应用开发工具,利用sqlsever 作为后台的数据库,利用WINDOWS作为系统平台开发的图书管理系统。另外本图书馆管理系统利用软件工程化思想和方法,总体上是采用结构化生命法进行系统分析和设计的,而系统实现等步骤则采用了原型法和面对对象的方法

系统开发的总目标是实现内部图书借阅管理的系统化、规范化和自动化。能够对图书进行注册登记,也就是将图书的基本信息(如:书名、作者、价格等)预先存入数据库中,供以后检索。能够对借阅人进行注册登记,包括记录借阅人的姓名、地址、电话等信息。提供方便的查询方法。如:以书名、作者、出版社、出版时间(确切的时间、时间段、某一时间之前、某一时间之后)等信息进行图书检索,并能反映出图书的借阅情况;以借阅人编号对借阅人信息进行检索;以出版社名称查询出版社联系方式信息。提供统计分析功能。可以展现出图书类型比例、库存与借出比例。提供旧书销毁功能,对于淘汰、损坏、丢失的书目可及时对数据库进行修改。能够对使用该管理系统的用户进行管理,按照不同的工作职能提供不同的功能授权。提供较为完善的差错控制与友好的用户界面,尽量避免误操作。图书馆的基本功能就是为读者提供借阅服务,读者通过借阅这一过程,可以把图书带出图书馆,从而使读者能够更方便的浏览图书。借书过程中,图书管理员要对读者的借书资格进行审查,对符合借书条件的读者,允许其借书,对其借书记录进行登记;对没有借书资格的读者,禁止其借书。

在VB6.0环境下采用“自上而下地总体规划,自下而上地应用开发”的策略开发一个管理信息系统的过程。通过分析传统的人工管理图书馆的不足,创建了一套行之有效的计算机管理图书馆的方案。文章详细介绍了图书管理信息系统的系统分析部分,包括可行性分析、组织机构分析、管理职能分析、业务流程分析、数据流程分析、数据字典、处理描述等等;系统设计部分主要介绍了系统功能设计和数据库设计;系统实现部分列出了几个主要的程序框图,并附带了一些主要的窗口和程序。

第二章 需求分析

2.1任务概述

2.1.1 图书管理系统完成的主要目标

进入系统前需要身份认证、用户名、密码、输入正确方可进入。用户可以根据需要进行书库管理。用户可以进行借书证的办理、查询、挂失等操作。用户可

以添加账户和修改密码。2.1.2用户的特点

最终用户包括读者(具有借阅卡的人)、图书管理员,鉴于此软件应用于大学图书管理,读者基本都是在校大学生即校职工和领导,图书管理员都是接受过高等教育的职工,因此他们都懂得运用基本的计算机知识。大学图书管理系统的使用频度很高,假如一个一万人的大学来讲,每天图书馆的平均日流量为1.5万。因此,该软件的可靠性、可用性、可维护性显得尤为重要。

2.2需求规定

2.2.1对功能的规定

1、图书信息查询/借书信息查询:图书馆主要向读者提供图书借阅的服务。读者为了借阅图书,一般情况下,需要在借书之前查询所要借阅的图书情况,所以图书馆需要为读者提供图书查询功能。例如,读者可能想借阅某方面的书,但不知道图书馆在该方面有哪些图书可供借阅,所以需要对图书馆的图书进行查询;或者,读者知道想借阅的图书信息,但不知道该图书馆是否有该书或不知道图书在图书馆的位置、是否被借出、是否可以借阅等信息,这也需要使用图书查询功能。一般的图书查询中,读者是通过图书登记卡、浏览图书登记卡中的信息得到图书信息的。经过图书查询,读者获得图书馆是否有自己想要的图书,该图书的简单信息以及图书在图书馆的借阅位置等信息。

2、新书入库:为了能正常运行,图书馆要及时更新馆藏图书。对于新书,要购进,供读者借阅;所以要设计到图书的批量入库。对于批量入库,图书管理员要批量登记图书的信息,包括书名ID、ISBN、图书名称、作者、出版社、单价、入库时间、图书总量、现存总量等。

3、借阅图书/归还图书:图书馆的基本功能之一就是为读者提供借阅服务,读者通过借阅这一过程,可以把图书带出图书馆,从而使读者能够更方便的浏览图书。借书过程中,图书管理员要对读者的借书资格进行审查,对符合借书条件的读者,允许其借书,对其借书记录进行登记;对没有借书资格的读者,禁止其借书。具体的步骤如下:读者向图书管理员提交请求和图书借阅卡,图书管理员检查读者提供的借阅卡,如果该借阅证真实准确,读者已经借阅的图书并没有超过允许借书量,而且读者没有逾期未还的图书,则允许读者借书,否则,读者不能从图书馆借书。读者拿到要借阅的图书,同时拿到自己的借阅卡,借书过程完毕。当借阅图书的数量超过5本或者出现未按期归还图书的情况,则不好进行借阅处理。图书馆的另一基本功能就是为读者提供还书服务,读者在一本图书借阅期满之前把该图书还给图书馆,一般的还书步骤如下:读者把所借的图书和自己的借阅卡交给图书管理员。图书管理员对图书进行检查,看有无损坏,如果出现图书的损坏情况,读者应进行相应的赔偿。图书管理员查看是否超过规定借阅期限,如果已经过期,则读者要按规定交纳罚金。图书管理员进行登记,同时把还书信息记入借阅卡。读者拿回自己的借阅卡,还书过程借书。读者逾期未归还图书超过三天,将按照每本每天进行一定的罚款。

4、书籍挂失:对图书由于丢失而不能即时还书的情况,读者要即时到图书管理员进行登记,确保图书信息的更新。进行书籍挂失的步骤一般如下:读者将所丢图书信息告诉图书管理员并将借阅卡交给图书管理员。图书管理员对该图书信息进行登记,并按图书的价格,要求读者进行相应赔偿。图书管理员将信息记入借阅卡。读者拿回自己的借阅卡,挂失功能结束。

2.2.2读者管理功能

1、办理借阅卡:图书馆向读者提供借阅服务,读者必须具有有效凭证方可借阅。因此,读者必须办理借阅卡获取有效凭证。读者在办理借阅卡时,必须输入个人有关注册信息,包括读者姓名、性别、出生日期、家庭住址、身份证号码、电话号码等信息。系统根据读者提供的信息,办理借阅卡并生成个人帐号、读者可自行修改密码。

2、借阅卡信息查询;图书馆在正常运营中要面对大量的读者信息,需要掌握每个读者的信息,即时准确的掌握读者的基本情况,这些是图书馆运营的保证。读者要进行信息查询,可以通过系统将自己的借阅卡账户、密码输入系统,系统通过核对找到读者的信息。如果读者的信息正确,系统将读者的信息包括读者姓名、性别、出生日期、家庭住址、身份证号码、电话号码等信息。如果读者的信息不正确,系统将提示错误,并且系统设定,当错误次数超过5次时,系统将不予查询。

3、借阅卡挂失:对借阅卡的丢失要即时进行挂失处理,以防止其他人盗用自己的有效信息并出现私自借书等行为。借阅卡挂失的一般步骤可分为:读者将挂失情况即时到图书管理员处进行登记,并填写登记单。图书管理员将读者情况进行登记挂失,注销借阅卡的信息,并咨询读者是否重新办理。若读者需重新办理,则重新填写相关信息,系统自动生成心的借阅卡信息记录,读者重新设置帐号即密码,并交纳相应的费用。若读者不需办理,则系统将信息注销。读者获得新的图书借阅卡。

2.2.3系统管理功能

1、注册管理员:为了对图书馆管理系统进行管理,图书馆需要若干名图书管理员进行管理,在图书管理员对系统进行管理之前必须进行注册功能,以确定管理员身份。对管理员进行注册,系统生成相应信息。其中管理员的基本信息包括:成员ID、密码等。系统管理员每次登陆前输入自己的ID与密码,系统对其信息进行核实,如基本信息正确,则系统管理员可进行系统管理功能,若系统检查不正确,则系统管理员不可以进行相应的操作。

2、修改密码:服务图书馆管理员可能由于某些原因,如电脑中毒导致管理员密码的泄露,为避免图书管理信息遭到破坏,系统具有修改密码的功能,确保图书管理功能的安全性。

3、退出功能:系统管理员每次离开必须进行退出功能,确保管理功能不被他人所用,这样更方便图书管理系统出现问题时,找到责任人。

第三章 概要设计

3.1总体设计

3.1.1系统目标设计

系统开发的总目标是实现内部图书借阅管理的系统化、规范化和自动化。能够对图书进行注册登记,也就是将图书的基本信息(如:书名、作者、价格等)

预先存入数据库中,供以后检索。能够对借阅人进行注册登记,包括记录借阅人的姓名、地址、电话等信息。提供方便的查询方法。如:以书名、作者、出版社、出版时间(确切的时间、时间段、某一时间之前、某一时间之后)等信息进行图书检索,并能反映出图书的借阅情况;以借阅人编号对借阅人信息进行检索;以出版社名称查询出版社联系方式信息。提供统计分析功能。可以展现出图书类型比例、库存与借出比例。提供旧书销毁功能,对于淘汰、损坏、丢失的书目可及时对数据库进行修改。能够对使用该管理系统的用户进行管理,按照不同的工作职能提供不同的功能授权。提供较为完善的差错控制与友好的用户界面,尽量避免误操作。3.1.2系统功能分析

根据以上功能,将图书管理系统的数据分为:数据输入部分:主要包括图书基本信息的录入、借阅人基本信息的录入、用户基本信息的录入。数据输出部分:主要是各种统计查询,包括:根据图书信息(如书名、作者、出版社等)查阅图书及其借阅信息、统计输出图书类型比例等。数据处理部分:主要涉及借阅和归还的处理,如一本书借出后,必须在数据

库中将该书标记为已借出,以防出现数据库中有书但图书馆无书的情况;一本书归还后,同样必须在数据库中将其标记为已经归还,以便再次借出。

概念设计阶段主要任务和目标是根据需求分析的结果,包括一般联系实体,画出对应的ER图。对于复杂的系统,通常首先要对它的各功能模进行分析,然后再把它的功能结构图画出来,便是设计和优化。功能分析之后,再根据各个岗位、各个用户对数据和使用权限的不同要求作出局部ER图,然后再把各个局部ER图综合起来形成统一的整体ER图。

3.2系统设计思想

1、图书管理系统是典型的信息管理系统(MIS),其开发主要包括后台数据库的建立和维护以及前端应用程序的开发两个方面。图书管理系统使用的是SQL Server2000的数据管理系统和以Visual Basic6.0为开发工具。

2、首先进行系统设计分析,系统设计主要包括系统功能分析、系统模块设计以及运行环境的选择、系统实现过程。

3、然后根据系统功能分析设计出需要的数据库,绘制系统数据流图与总结数据字典、设计数据库结构。

4、最后在实现各个功能模块时,采用先模块后系统集成的方式,即各系统功能模块分别独立设计和调试,在创建系统主窗体时才将各个功能模块通过主窗体菜单系统集成到一起,最后进行系统整体的设计和调试。

3.3 系统模块功能解析

(1)系统设计分析

本图书管理系统主要有以下功能: 图书征订:包括图书征订数据的录入、修改、删除与审校等功能。图书编目:包括图书数目信息的录入、修改、删除功能。图书典藏:包括新书分配、库室调配等功能。

图书流通:包括图书借阅、续借、图书返还,图书书目的查询的功能。系统用户管理:包括系统用户数据的录入、修改与删除等功能。

读者数据管理:包括读者类别管理,读者个人数据的录入、修改和删除功能。(2)系统功能分析

权限功能:权限功能设置的对象为高级管理员、普通管理员、读者。高级管 删除所有信息;普通管理员只能对授权范围内进行相应修改及删除;读者 只能查询借阅记录和图书书目不能修改。

录入功能:为普通管理员提供相应的录入功能,为高级管理员提供对所有信息的录入功能。

查询功能:为所有用户提供查询的功能,可查询允许范围内的所有信息。维护功能:为普通管理员提供查询及相应的修改,删除功能,为高级管理提 供对所有信息的修改删除功能。

打印功能:可打印图书征订计划。

退出功能:各个功能模块和主窗体都设有关闭命令按钮,可方便地退出各模 块或系统。

第四章 详细设计

4.1程序设计说明

4.1.1用户登录模块

1.程序描述:此程序用于用户登陆的至用户界面,程序通过输入用户的ID,用户密码的正确性来实现对验证用户的真实性。2.功能:实现用户的登录功能

3.性能:用户通过输入用户ID,用户名和密码进行用户登陆,通过认证后,用户

即可进入用户界面。

4.输入项:输入用户ID,用户名,密码5.输出项:用户主页面。流程逻辑如图所示:

输入用户名和密码N数据库是否打开Y连接失败返回N用户名和密码是否正确Y输入次数是否超过5次YN重新输入密码关闭数据库返回登陆成功进入主界面

图4-1用户登录流程逻辑

4.1.2用户添加模块

1.程序描述:此程序用于添加新的用户,用户通过向数据库内输入必要的信息来注册成为新的用户,才通过一系列的验证之后,即注册成为真正的用户。

2.功能:实现对用户的添加功能。

3.性能:查询新用户的用户名是否存在,若存在则停止添加返还数据库;若用户不存在,则进行添加,并进行注册,注册成功后返回。

4.输入项:输入用户的详细信息,包括姓名,出生日期,性别,地址,身份证号码,电话号码等信息。

5.输出项:若添加成功,则输出提示用户注册成功界面;若未成功,则提示输出未成功原因界面。

6.流程逻辑如下图所示:

输入用户信息N判断数据库是否打开提示连接失败返回Y查询数据库中是否有该用户Y提示已经存在该用户关闭数据库并返回N向数据库中添加新用户提示注册成功返回

图4-2用户添加模块流程逻辑

4.1.3书籍查询模块

1.程序描述:此程序用于实现用户对想要借阅的查询功能。用户通过输入相应的图书信息来查询,数据库根据用户提供的信息来搜索,最后给出客户相应的图书信息。

2.功能:实现图书查询功能。

3.性能:对进行想要查询的书籍进行搜索,若存在此书则显示该书的详细信息;若不存在此书,则提示没有此书并返回。

4.输入项:输入图书的详细信息,包括图书名称,书籍ID,图书作者,出版社,单价等信息。

5.输出项:若输入的图书存在即输出图书详细信息界面;若输入的图书不存在则显示图书不存在界面。

6.流程逻辑如下图所示:

输入图书信息判断数据库是否打开Y查询是否有该书YN连接失败返回N关闭数据库返回显示该书的信息关闭数据库返回 图4-3图书查询模块流程

4.1.4图书借阅模块

1.程序描述:此程序用于图书的借阅,用户通过登录自己的借阅ID后,对需要借阅的图书进行借阅操作,如果符合借阅的要求,则可进行借阅。2.功能:实现对图书的书籍借阅功能。

3.性能:首先验证借阅者输入的借阅ID是否存在,若存在进行下一步;若不存在则返回。

4.若借阅ID存在,则检查此借阅ID是否借阅书籍超出4本,若超出则提示超出借阅数目,返回;若没有超出,则进行下一操作。

5.对想要借阅的图书ID进行搜索,若此书不存在,则提示此书不存在;若此书存在则进行下一步操作。

将借阅者借阅的数量増一,将数据库中此书数量减一,同时提醒借阅成功,然后返回。

6.输入项:输入借阅证的ID,图书ID 7.输出项:若借阅证ID正确且图书ID正确且符合借阅要求,则输出提示借阅成功界面;若存在借阅ID或图书ID或不符合借阅要求等问题,则输出提示没有借阅成功原因的界面。8.流程逻辑如下图

输入书籍ID和借阅IDN数据库是否打开YN借阅卡ID是否存在YY判断借阅ID是否借书超出4本提示超出最大借书数量关闭数据库返回提示不存在该借阅者关闭数据库返回数据库连接失败返回NN数据库中是否存在书籍IDY将借阅者的借书数量加1提示不存在该书籍关闭数据库返回将书籍的数量减1提示借书成功关闭数据库返回 图4-4图书借阅模块

4.1.5图书归还模块

1.程序描述:此程序用于图书的归还,用户在登录自己的ID之后,用户可以对需要归还的图书进行操作,如果符合归还要求,则可以将图书归还。2.功能:实现对图书的书籍归还功能。

3.性能:首先验证借阅者输入的借阅ID是否存在,若存在进行下一步;若不存在则返回。

对想要归还的图书ID进行搜索,若此书不存在,则提示此书不存在;若此书存在则进行下一步操作。将借阅者借阅的数量减一,将数据库中此书数量加一,同时提醒借阅归还,然后返回。

4.输入项:输入借阅证ID和图书ID 5.输出项:若借阅证ID和图书ID正确,则输出提示图书归还成功界面;若借阅证ID或图书ID不正确,则输出提示没有成功原因的界面。

6.流程逻辑如下图:

输入书籍ID和借阅IDN数据库是否打开YN借阅卡ID是否存在YN提示不存在该书籍关闭数据库返回提示不存在该借阅者关闭数据库返回数据库连接失败返回数据库中是否存在书籍IDY将借阅者的借书数量减1将书籍的数量加1提示还书成功关闭数据库返回 图4-5图书归还模块

4.1.6新书入库模块

1.程序描述:此程序用户对新进图书的入口登记处理。用户可以将新书的详细信息进行输入,保存在数据库中后,新书即登记成功。

2.功能;实现新进图书入库功能。

3.性能:对数据库查询是否已存在此书,若存在则将此书数量加一,提示添加成功;若没有此书,则将此书的基本信息存入数据库,并提示添加书籍成功。

4.输入项:输入新书的书籍ID,书名,作者,出版社,单价等信息。

5.输出项:若添加成功,则输出提示新书添加成功界面;若没有添加成功,输出提示未成功原因界面。

6.流程逻辑如下图

输入书籍信息N数据库是否打开关闭数据库返回Y是否已经存在Y该书将该书的数量加1提示添加书籍成功关闭数据库N将该书信息存入数据库是否是第一条N记录提示添加书籍成功关闭数据库返回Y提示添加第一本书籍关闭数据库返回图4-6新书入库模块

返回

第五章 编码与测试

5.1各功能模块的实现

(1)用户登录窗体

图5-1 用户登录窗体

用户登录代码:

Const MaxLogTimes As Integer = 3 Private Sub cmdcancel_Click()

If MsgBox(“是否真的退出系统登录?”, vbYesNo, “登录验证”)= vbYes Then

Unload Me

End If End Sub Private Sub cmdok_Click()

Static intLogTimes As Integer

intLogTimes = intLogTimes + 1

If intLogTimes > MaxLogTimes Then

MsgBox “超过登录次数!”, vbCritical, “登录验证”

Else

With Library_Manage.rsSysUsers

.Open

If.RecordCount > 0 Then

.MoveFirst

.Find “编号=” & Trim(txtLog(0))& “"

If.EOF Then

MsgBox Trim(txtLog(0))& ”不是系统用户,请检查输入!“, vbCritical, ”登录验证“

txtLog(0).SetFocus

txtLog(0).SelStart = 0

txtLog(0).SelLength = Len(txtLog(0))

ElseIf.Fields(”口令“)<> Trim(txtLog(1))Then

MsgBox ”口令错误,请检查输入口令!“, vbCritical, ”登录验证“

txtLog(1).SetFocus: txtLog(1)= ”“

Else

CurrentUserNum =.Fields(编号)

CurrentUserPassword =.Fields(”口令“)

CurrentUserStatus =.Fields(”权限“)

MsgBox ”欢迎使用常州信息学院管理系统!“, vbInformation, ”登陆成功!“

Unload Me

End If

End If

.Close

End With

End If End Sub Private Sub Form_Load()

SysLogon.BackColor = RGB(192, 210, 270)End Sub(2)用户管理窗体界面

图5-2 用户管理窗体

用户管理窗体代码 '保存

Private Sub cmdSave_Click()

Dim objcopy As New Recordset

If Trim(txtNum)= ”“ Then

MsgBox ”不能为空!“, vbCritical, ”系统用户管理“

txtNum.SetFocus

txtNum.SelStart = 0

txtNum.SelLength = Len(txtNum)

ElseIf Len(Trim(txtPwd))<> 6 Then

MsgBox ”用户口令须为6位字符串!“, vbCritical, ”系统用户管理“

txtPwd.SetFocus

txtPwd.SelStart = 0

txtPwd.SelLength = Len(txtPwd)ElseIf Not txtAuth Like ”[0,1]“ Then

MsgBox ”用户权限必须为0或1“, vbCritical, ”系统用户管理“

txtAuth = ”“

txtAuth.SetFocus Else

Set objcopy = Library_Manage.rsSysUsers.Clone '对错?

With objcopy

If.RecordCount > 0 Then

.MoveFirst

.Find ”编号“ & Trim(txtNum)& ”“

If Not.EOF And.AbsolutePosition <> Library_Manage.rsSysUsers.AbsolutePosition Then

MsgBox ”编号:“ & Trim(txtNum)& ”已被使用,请选择其他编号!“, vbCritical, ”系统用户管理“

txtNum.SetFocus

txtNum.SelStart = 0

txtNum.SelLength = Len(txtNum)

Exit Sub

Else

'保存记录

Library_Manage.rsSysUsers.Update

MsgBox ”数据保存成功!“, vbInformation, ”系统用户管理“

cmdAdd.Enabled = True

cmdDel.Enabled = True

isAdding = False: picNavigation.Enabled = True

End If

End With End If End Sub Private Sub Form_Load()

cmdMove(0).Value = True End Sub(3)读者数据管理窗体界面

图5-3 读者数据管理窗体

读者数据管理窗体代码

Library_Manage.Library_Manage_Con.Execute ”TRUNCATE TABLE 读者类别“

With Library_Manage.ReaderType

If.State = adStateClosed Then.Open

.AddNew

.Fields(”编号“)= ”0“

.Fields(”名称“)= ”特殊“

.Fields(”借书量“)= Val(txtSp(1))

.Fields(”借书期“)= Val(txtSp(2))

.Fields(”有效期“)= Val(txtSp(3))

.Update

.AddNew

.Fields(”编号“)= ”1“

.Fields(”名称“)= ”馆员“

.Fields(”借书量“)= Val(txtL(1))

.Fields(”借书期“)= Val(txtL(2))

.Fields(”有效期“)= Val(txtL(3))

.Update

.AddNew

.Update

.AddNew

.Fields(”编号“)= ”2“

.Fields(”名称“)= ”教师“

.Fields(”借书量“)= Val(txtT(1))

.Fields(”借书期“)= Val(txtT(2))

.Fields(”有效期“)= Val(txtT(3))

.Update

.AddNew

.Fields(”编号“)= ”3“

.Fields(”名称“)= ”学生“

.Fields(”借书量“)= Val(txtS(1))

.Fields(”借书期“)= Val(txtS(2))

.Fields(”有效期“)= Val(txtS(3))

.Update

End With End Sub Private Sub Form_Load()cmdMove(0).Value = True End Sub Private Sub SSTab1_DblClick()End Sub(4)图书征订管理窗体

图5-4 图书征订管理窗体

图书征订管理代码

txtPubDate.SelLength = Len(txtPubDate)

ElseIf Trim(txtAuthor)= ”“ Then

MsgBox ”作者不能为空!“, vbCritical, ”图书征订管理“

txtAuthor.SetFocus

txtAuthor.SelStart = 0

txtAuthor.SelLength = Len(txtAuthor)

ElseIf Val(txtNum)= ”“ Then

MsgBox ”正的数量无效!“, vbCritical, ”图书征订管理“

txtNum.SetFocus

txtNum.SelStart = 0

txtNum.SelLength = Len(txtNum)

ElseIf Not IsDate(txtDate)= ”“ Then

MsgBox ”作者不能为空!“, vbCritical, ”图书征订管理“

txtDate.SetFocus

txtDate.SelStart = 0

txtDate.SelLength = Len(txtDate)

Else

'保存记录

Library_Manage.rsBooksOrder.Update

MsgBox ”数据保存成功!“, vbInformation, ”图书征订管理“

cmdAdd.Enabled = True: cmdDel.Enabled = True

cmdExam.Enabled = True: cmdRefresh.Enabled = True

isAdding = False: picNavigation.Enabled = True

End If End Sub Dim objcopy As Recordset Private Sub cmbOut_Click()

AddListOut

End Sub Private Sub cmdAddAll_Click(Index As Integer)'选择全部条码

ListItem_Add lstPre(Index), LstIn(Index), Index, True End Sub Private Sub cmdAddOne_Click(Index As Integer)'选择当前条码

ListItem_Add lstPre(Index), LstIn(Index), Index, False End Sub Private Sub cmdExit_Click()

If LstIn(0).ListCount > 0 Then

If MsgBox(”你选定了部分新书准备入库,但没执行保存操作“ & vbCr & ”是否要执行保存操作?“, vbCritical + vbYesNo, ”图书典藏管理“)= vbYes Then

SSTab1.Tab = 0

cmdSave.Value = True

End If

ElseIf LstIn(1).ListCount > 0 Then

If MsgBox(”你选定了部分新书准备入库,但没执行保存操作“ & vbCr & ”是否要执行保存操作?“, vbCritical + vbYesNo, ”图书典藏管理“)= vbYes Then

SSTab1.Tab = 1

cmdSave.Value = True

End If

End If

Unload Me End Sub '刷新新书或调出库室条码列表

Private Sub cmdRefresh_Click(Index As Integer)

Select Case Index

Case 0 '刷新新书列表

With Library_Manage.rsBooksBibli

If.State = adStateClosed Then.Open

.Requery

End With

AddListNew

Case 1 '刷新库室条码列表

With Library_Manage.rsBooksStore

If.State = adStateClosed Then.Open

.Requery

End With

AddListOut

End Select End Sub Public Sub AddListNew()

lstPre(0).Clear

With Library_Manage.rsBooksBibli

If.State = adStateClosed Then.Open

If.RecordCount > 0 Then

.MoveFirst

While Not.EOF

lstPre(0).AddItem.Fields(”条码“)

.MoveNext

Wend

Else

lstPre(0).AddItem ”当前无待分配新书"

End If End With End Sub 5.2 测试

5.2.1 借阅卡管理测试

进度安排测试办理借阅证信息,检查个人账号、读者可自行修改密码。测试查询借阅卡信息的正确性,包括输入的读者信息等。测试借阅卡挂失功能,包括读者信息等。

5.2.2 书籍管理测试

进度安排:测试新书入库信息的正确性。测试借书、还书功能信息正确性。测试书籍挂失信息的正确性。测试图书信息查询的正确性。测试借书信息查询的正确性。

5.2.3 系统管理测试

进度安排测试注册管理员信息的正确性。测试修改密码信息的正确性。

结束语

对于这篇论文我有不少心得体会。这次是对我们掌握所学知识的一次考核。它可以让我们了解自己一学期里的学习情况,有助于在今后的学习中加以改进。通过这次上机实验,我发现了自己对数据库和vb语言掌握的并不牢,有的知识点根本就不懂。这都要怪自己在平时的学习过程中不够用心,不懂的地方也没有及时的去搞懂,课后也没怎么花时间去研究。这次实验我觉得自己不仅学到了很多软件设计方面的知识,也让我巩固了以前所学的知识以及看到了自己以前学习中的不足之处。

在今后的学习过程中,我一定会认真学习专业课程,再也不能像以前那样迷迷糊糊的,课后要多花时间去研究一些有关编程方面的题目,不懂的地方及时把它弄懂。以后自己还要多动手编写一些程序。在这里我要感谢学校能提供这么一个宝贵的机会,我们可以把课堂上所学的理论知识运用到实践中去,把书上的东西变成我们自己的。这个机会既让我们学习巩固了知识,也让我们发现了自己的不足之处。特别要感谢我们的指导老师,正因为有了您的帮助我们才可以完成实验。我也希望今后还会有更多的机会让我们去实践,去充实自己。

致 谢

在本次设计的过程中,老师们给了我们很大的帮助。不仅使我们在规定时间内完成了系统的设计,同时还使我们学到了很多有益的知识和宝贵的经验在此,我谨向他们表示最衷心的感谢。感谢老师的指导,使我们充分利用软件工程,VB,数据库原理开发出自己的项目.在开发的过程中使我体会到了工程化开发方法和瀑布模型利用的重要性,在此还要感谢所有合作参与项目开发的同学们这次毕业设计的成功离不开所有参与的同学们的帮助和支持,是他们让我知道了团队工作的重要.参考文献

1、陶宏才.数据库原理及设计[M].北京:清华大学出版社.2004.2、陆丽娜.软件工程 [M].北京:经济科学出版社.1999

3、郝志恒、刘舫.Visual Basic 6.0 编程篇[M] 北京:电子工业出版社 2004

4、刘世峰.数据库基础与应用[M] 北京: 中央电大出版社 2003

5、吴斌、鲁大林.Visual Basic+SQL Sever数据库应用系统开发[M] 北京:机械工程出版社 2008

6、邱李华.SQL Server 2000 数据库应用教程[M] 北京:人民邮电出版社 2007

7、钟军.Visual Basic数据库高级实例导航[M] 北京:清华大学出版社 2003

8、赵松涛.Visual Basic+SQL Server 2000 系统开发实录[M] 北京: 机械工业出版社 2007

第四篇:图书管理系统

图书管理系统

背景:当今时代是飞速发展的信息时代,在各行各业中离不开信息处理,这正是计算机被广泛应用于信息管理系统的环境。计算机的最大好处在于利用它能够进行信息管理。使用计算机进行信息控制,不仅提高了工作效率,而且大大提高了其安全性。

随着图书馆的藏书、管理人员、读者数量的不断增多,如何对书籍以及读者信息、读者借阅信息进行管理成为一个难题。图书涉及大量的数据处理,如果用手工来完成庞大的数据处理,不仅费时费力,还容易出错。为了满足图书管理的需要,急需要一套图书管理系统来完成这项工作。作为计算机应用的一部分,使用计算机对图书信息进行管理,具有手工管理所无法比拟的优点。例如:检索迅速、查找方便、可靠性高、存储量大、保密性好、寿命长、成本低等。这些优点能够极大地提高图书管理的效率,也是图书馆信息的科学化、正规化管理的重要条件。因此将详细分析一个图书馆系统地实现过程。从需求分析、架构设计、系统建模、详细设计、代码实现逐步展开分析,整个过程按照软件实际流程进行。

意义:通过学习JAVA语言,又加深对面向对象分析,确定问题域中的对象及对象间关系,并建立起问题域的对象模型。面向对象的设计方法是一种进行程序设计的新方法,它吸取了结构化程序设计的先进思想,为解决程序结构过于复杂而产生。它的思想是在进行程序设计时,把整个问题分成由相关部分组成的组,每个组考虑和组相关的代码和数据,同时这些分组将按层次关系组织起来,每个分组转换为对象的独立单元。面向对象的程序设计语言都具有多态性、继承性、封装性等特点。学习以后对JAVA程序设计有了深入的了解,JAVA语言程序设计要求结构紧凑,概念准确。

实践项目:图书管理系统。

主要完成这个项目的,可以实现图书系统的系统化和自动化,帮助图书管理人员更好更高效地完成图书管理工作。需求分析:图书管理系统需要满足三方面的需求,这三个方面分别是图书借阅者、图书馆工作人员和图书馆管理人员。图书借阅者的需求是查询图书馆所存的图书、个人借阅情况及个人信息的修改;图书馆工作人员对图书借阅者的借阅及还书要求进行操作,同时形成借书或还书记录;图书馆管理人员的功能最复杂,包括对图书借阅者、图书进行管理和维护,及系统状态的查看、维护。

图书借阅者可直接查看图书馆图书情况,如果图书借阅者根据本人借书证号和密码登录系统,还可以进行本人借书情况的查询并维护部分个人信息。一般情况下,图书借阅者只应该查询和维护本人的借书情况和信息,若查询和维护其他借阅者的借书情况和信息,就要知道其他图书借阅者的借书证号和密码。这些是很难得到的,特别是密码,所以不但满足了图书借阅者的要求,还保护了图书借阅者的个人隐私。

图书馆工作人员有修改图书借阅者借书和还书记录的权限,在此模块中,图书馆工作人员可以为图书借阅者加入借书记录或是还书记录。

图书馆管理人员功能的信息量大,数据安全性和保密性要求最高。本功能实现对图书信息、借阅者信息、总体借阅情况信息的管理和信息查看及维护。图书馆管理员可以浏览、查询、添加、删除、修改图书的基本信息;浏览、查询、添加、删除和修改图书借阅者的基本信息,但不能添加、删除和修改借阅信息,这部分功能应该由图书馆工作人员执行,但是,删除某条图书借阅者基本信息记录时,应实现对该图书借阅者借阅记录的级联删除。

功能如下:⑴书籍管理部分:主要包括读者类别和书籍信息管理两部分。其中,书籍类别管理包括添加书籍类别、修改书籍类别等;书籍信息管理包括书籍信息的添加、书籍信息的修改、书籍信息的查询、书籍信息的删除等。

⑵读者管理部分:主要包括读者类别管理和读者信息管理两部分。其中,读者类别管理包括添加读者类

别、修改读者类别等;读者信息管理包括添加读者信息、修改读者信息、删除读者信息、查询读者信息等。

⑶借阅管理部分:主要包括借书信息管理和还书信息管理两部分。其中,借书信息管理包括借书信息的添加、借书信息的修改、借书信息的查询等;还书信息管理部分包括还书信息的添加、还书信息的修改、还书信息的查询等。

⑷系统管理部分:包括修改系统用户密码、增加新用户以及退出系统等

所以,该图书管理系统能够是图书管理员方便地管理图书馆内的多种事务,让图书馆工作人员更有效地

为读者提供借阅、归还书籍的服务,也能够为读者提供查询书籍信息、个人借阅信息。

数据库流程分析:

1.数据处理流程

数据库或数据表结构确定之后,在实际的数据处理程序设计之前需要对所处理的数据处理流程作必要的分析。所谓对数据处理流程作必要的分析是指找出各数据之间的主要关系,数据存取的主要走向。另外,在实际的数据处理过程中还会有些细节问题。在遇到这些细节问题时,及时处理即可。并且,有些细节问题不是在做数据处理流程分析时事先都能预料的。对于现在这个数据处理系统来说,最主要的工作实际就是三项:

1)读者信息的基本情况及时录入数据库;

2)要将读者查询情况及时录入数据库;

3)对读者操作情况进行汇总。

整体数据流:管理员通过密码进入系统,分别对上述几大功能逐一实现。

在数据关系简单的情况下对数据处理,可以在将数据库设计好之后直接设计程序。但是按正规的数据库管理系统的设计程序,无论要处理的数据关系复杂与否都应在做程序设计之前做好数据的流程分析。

2.管理窗体

创建该窗体,根据相关操作可以完成个人信息、图书信息、管理操作、系统设置等功能实现,在图书信息里可以进行图书查询、图书借阅、图书归还、图书续借等功能。

总结:图书管理系统可以有效的省去很多的认为登记错误,并且能够节省广大的师生宝贵时间。另一方面,图书

馆里系统具有界面清晰,操作方便,功能少而使用,实现图书馆工作的自动化,减少手工劳动量带来的数据遗漏,误报等人为因素,提高工作效率,也增强系统的通用性。但是完善的系统也会有所弊处,有计算机操控的系统,一旦系统出现问题,整个图书馆的借阅系统也会跟着瘫痪,带来不便。所以,也要经常的去维护系统,这样才能给我们提供一个安全的信息处理方法。

管理信息系统创建,首先数据库在一个管理系统中占有非常重要的地位,数据库设计的好坏将直接对应用系

统的效率以及实现的效果产生影响。合理的数据库结构设计可以提高数据存储的效率,以确保数据的完整性和一致性。设计数据库系统时应该首先充分了解用户各个方面的需求,包括现有的以及将来可能增加的需求。数据库设计一般包括如下几个步骤:数据库需求分析;数据库逻辑结构设计;数据库概念结构设计;数据库物理设计。设计中详细的总结了该系统的系统设计部分,包括功能模块设计、数据库结构设计等。系统设计为整个程序构建了骨架,各个功能模块实现各个细节部分。通过本次课程设计知道了各种数据之间的相互关系,并在操作中用适当的SQL语句和存储过程实现。本系统还实现了VB通过ODBC对SQL的数据库快递、高效访问和更新功能。

通过这次课程设计懂得了理论与实际相结合是很重要的,只有理论知识是远远不够的,只有把所学的理论知识与实践相结合起来,从理论中得出结论,才能真正为社会服务,从而提高自己的实际动手能力和独立思考的能力。在设计的过程中遇到问题,可以说得是困难重重,难免会遇到过各种各样的问题,同时在设计的过程中发现了自己的不足之处,对以前所学过的知识理解得不够深刻,掌握得不够牢固,通过这次课程设计之后,一定把以前所学过的知识重新温故。

在程序设计与代码编写阶段我们遇到了很多的问题,由于我们组中的人大部分都是第一次开发数据库系统,所以对数据库开发的流程不熟息,而且在数据库的与编程系统的连接方面也遇到了很多的问题。

第五篇:图书管理系统

七个文件

1.book.txt存放书籍

2.borrower.txt存放借阅信息

3.chenwen.txt 存放开始信息

4.mima.txt存放密码 5.qianyan.txt前言

6.student.txt存放学生信息

7.yuyue.txt 存放预约信息

#include #include #include void guanliyuan();void youke();typedef struct borrower{ struct borrower *next;struct borrower *front;int book;int stu;

int times;

int sum;}Borr;typedef struct stus{ int numbers;char mark[40];

char name[40];

char xueyuan[40];

int sum;

struct stus *next;

struct stus *front;}Stus;typedef struct books{ struct books *front;int numbers;char name[40];char author[40];char type[40];char publisher[40];int sum;int cun;struct books *next;}Books;void chenwenxie4();void chenwen();void time();void time1();void fangkuang();void printstudent1(Stus *head);Borr* buildborrowerlist();Books* buildbookslist();Stus* buildstudentlist();Books* insertbook(Books *head1,Books *pa);Stus* insertstudent(Stus *head2,Stus *pb);Borr* insertborrower(Borr *head3,Borr *pc);Books* chenwensousou11(Books* head11,int num11);Books* chenwensousou12(Books* head12,char name12[]);Books* chenwensousou13(Books* head13,int num13);Books* chenwensousou15(Books* head22,char name22[]);Stus* chenwensousou21(Stus* head21,int num21);Stus* chenwensousou22(Stus* head22,char name22[]);Stus* chenwensousou23(Stus* head23,int num23);Borr* chenwensousou31(Borr* head31,int num31);Borr* chenwensousou32(Borr* head32,int num32);Borr* chenwensousou33(Borr* head33,int num33);Borr* chenwensousou34(Borr* head34,int num34);Books* deletebook1(Books *head,int num);Stus* deletestudent1(Stus *head,int num);Borr* deleteborrower1(Borr *head,int num);Borr* deleteborrower2(Borr *head,int num);Books* booksorting11(Books *head);Books* booksorting12(Books *head);Stus* studentsorting21(Stus *head);Stus* studentsorting22(Stus *head);Borr* borrowersorting31(Borr *head);Borr* borrowersorting32(Borr *head);Borr* borrowersorting33(Borr *head);Books* chenwensousou14(Books* head12,char type[]);void printbook(Books *head);void printborrower(Borr *head);void chenwendu1(Books *head);void chenwendu2(Stus *head);void chenwendu3(Borr *head);Books* chenwenxie1();Stus* chenwenxie2();Stus* chenwenxie22();Borr* chenwenxie3();Borr* yuyuexie();void yuyuedu(Borr *head);Books bookcreat();Stus studentcreat();Borr borrowercreat();void time2();void qingkong();void qingkong1();void qingkong2();void qingkong3();int yanzheng(Books* head,int num);int yanzheng1(Stus* head,int num);int yanzheng2(Borr* head,int num);int yanzheng3(int num);void bianli(Books *head1,Stus *head2,Borr *head3);void sousuo(Books *head1,Stus *head2,Borr *head3);void paixu(Books *head1,Stus *head2,Borr *head3);void mimadu(char a[]);void sousuo1(Borr *headborrower);char* mimaxie();void qingkong4();void tishi1();void tishi2();int main(){ int n=0,i;char choice=3,ch[40],ch1[3]=“是”,cw;printf(“████████████▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉█▉n”);time();

printf(“█┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓█n”);time();

printf(“█┃******************欢迎进入河南工业大学图书管理系统********************* ┃▉n”);time();

printf(“█┗━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┛█n”);time();

printf(“████████████▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉██n”);

for(i=0;i<25;i++)

time();system(“cls”);chenwen();chenwenxie4();while(1){

scanf(“%s”,ch);

if(strcmp(ch,ch1)==0)

break;

else{

system(“cls”);

printf(“████████████▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉█▉n”);

printf(“█┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓█n”);

printf(“■┃〓〓〓〓〓〓〓对不起,你尚未同意该协议,不能使用该系统〓〓〓〓〓〓〓〓〓┃█n”);

printf(“█┗━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┛█n”);

printf(“█ ▓▓▓▓▓▓▓▓▓▓我已阅读并同意该协议?(是/否)▓▓▓▓▓▓▓▓▓▓▓▓ ▉n”);

printf(“████████████▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉█▉n”);

} } getchar();system(“cls”);while(n==0){ printf(“ ┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓n”);printf(“ ┃ ▼▲▼▲▼▲▼▲▼欢迎进入河南工业大学图书管理系统 ▼▲▼▲▼▲▼▲▼

┃n”);printf(“ ┣━━━━━━━━━━━┳━━━━━━━━━━━━━┳━━━━━━━━━━┫n”);printf(“ ┃

★(0)退出

★(1)管理员登录

★(2)学生登录

┃n”);printf(“ ┣━━━━━━━━━━━┻━━━━━━━━━━━━━┻━━━━━━━━━━┫n”);printf(“ ┃

▂▃▄▅▆▇█▉▊▋▌●●● 请输入选择●●●▌▋▊█▉▇▆▅▄▃▂

┃n”);

printf(“ ┗━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┛n”);

if(scanf(“%c”,&choice)&&choice>='0'&&choice<='2'){

scanf(“%c”,&cw);

if(cw!='n'){

tishi2();

while(cw!='n'){

scanf(“%c”,&cw);

}

continue;

}

switch(choice){

case '0':system(“cls”);

chenwen();

return 0;

case '1':guanliyuan();

break;

case '2':youke();

break;

}

}

else{

tishi2();

while(choice!='n'){

scanf(“%c”,&choice);

}

} } printf(“████████████▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉█▉n”);time();

printf(“█┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓█n”);time();

printf(“█┃******************谢谢使用河南工业大学图书管理系统********************* ┃▉n”);time();

printf(“█┗━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┛█n”);time();

printf(“████████████▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉██n”);

for(i=0;i<25;i++)

time();system(“cls”);return 0;} void guanliyuan(){

char choice,choice1,choice2,cw;

int f=1;int n=0,j=3,l=0,a=0,g=0;

char *ppp=(char *)malloc(40*sizeof(char));Books *headbook=chenwenxie1(),*pa=NULL,*book;Stus *headstudent=chenwenxie2(),*pb=NULL,*stu;Borr *headborrower=chenwenxie3(),*pc=NULL,*headyuyue=yuyuexie(),*yu;char p[40];p[0]='4',p[1]='3',p[2]='1',p[3]='5',p[4]='c',p[5]='w';

ppp=mimaxie();system(“cls”);printf(“

┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓n”);printf(“

┃◆◆◆◆◆◆◆◆◆◆◆◆欢迎管理员登陆◆◆◆◆◆◆◆◆◆◆◆◆┃n”);printf(“

┣━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┫n”);printf(“

┃▁▂▃▄▅▆▇█▉▊▋▌▌请输入密码▍▌▋▊▉█▇▆▅▄▃▂▁┃n”);printf(“

┣━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┫n”);printf(“

┃ ▓▓▓▓▓▓▓▓▓▓★你一共有3次机会★▓▓▓▓▓▓▓▓▓▓▓┃n”);printf(“

┗━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┛n”);

g=0;

while(n==0){

scanf(“%s”,p+6);

if(strcmp(ppp,p)==0){

getchar();

l=0;

system(“cls”);

while(1){

printf(“ ┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓n”);

printf(“ ┃*****************************您享有的操作*******************************┃n”);

printf(“ ┃************************************************************************┃n”);

printf(“ ┣━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┫n”);

printf(“ ┃ ★(0)返回上级 ★(1)创建列表 ★(2)插入(借还)★(3)删除(借还)★(4)遍历

┃n”);

printf(“ ┣━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┫n”);

printf(“ ┃

★(5)排序

★(6)搜索

★(7)修改密码

★(8)保存

★(9)清空文件

┃n”);

printf(“ ┣━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┫n”);

printf(“ ┃▉▉▉▉▉▉▉▉▉▉▉▉▉●●●请输入选择●●●▉▉▉▉▉▉▉▉▉▉▉▉┃n”);

printf(“ ┗━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┛n”);

if(scanf(“%c”,&choice)&&choice>='0'&&choice<='9'){

scanf(“%c”,&cw);

if(cw!='n'){

tishi2();

while(cw!='n'){

scanf(“%c”,&cw);

}

continue;

}

switch(choice){

case '0':

system(“cls”);

break;

case '1':{

system(“cls”);

while(n==0){

printf(“ ┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓n”);

printf(“ ┃*****************************您享有的操作*******************************┃n”);

printf(“ ┃************************************************************************┃n”);

printf(“ ┣━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┫n”);

printf(“ ┃

★(0)返回上级

★(1)创建图书链表 ★(2)创建学生链表 ★(3)创建借阅链表

┃n”);

printf(“ ┣━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┫n”);

printf(“ ┃▉▉▉▉▉▉▉▉▉▉▉▉▉●●●请输入选择●●●▉▉▉▉▉▉▉▉▉▉▉▉┃n”);

printf(“ ┗━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┛n”);

if(scanf(“%c”,&choice1)&&choice1>='0'&&choice1<='3'){

scanf(“%c”,&cw);

if(cw!='n'){

tishi2();

while(cw!='n'){

scanf(“%c”,&cw);

}

continue;

}

switch(choice1){

case '0':

system(“cls”);

break;

case '1':headbook=buildbookslist();

g=1;

break;

case '2':headstudent=buildstudentlist();

g=1;

break;

case '3':headborrower=buildborrowerlist();

g=1;

break;

}

}

else{

system(“cls”);

printf(“ ┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓n”);

printf(“ ┃▓▓▓▓▓▓▓▓▓▓▓▓▓▓对不起,您的输入有误▓▓▓▓▓▓▓▓▓▓▓▓┃n”);

printf(“ ┗━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┛n”);

while(choice1!='n'){

scanf(“%c”,&choice1);

}

}

if(choice1=='0'){

break;

}

}

}

break;

case '2': {

system(“cls”);

while(n==0){

printf(“ ┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓n”);

printf(“ ┃*****************************您享有的操作*******************************┃n”);

printf(“ ┃************************************************************************┃n”);

printf(“ ┣━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┫n”);

printf(“ ┃

★(0)返回上级

★(1)插入图书信息 ★(2)插入学生信息

★(3)插入借阅信息 ┃n”);

printf(“ ┃________________________________________________________________________┃n”);

printf(“ ┣━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┫n”);

printf(“ ┃▉▉▉▉▉▉▉▉▉▉▉▉▉●●●请输入选择●●●▉▉▉▉▉▉▉▉▉▉▉▉┃n”);

printf(“ ┗━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┛n”);

if(scanf(“%c”,&choice1)&&choice1>='0'&&choice1<='3'){

scanf(“%c”,&cw);

if(cw!='n'){

tishi2();

while(cw!='n'){

scanf(“%c”,&cw);

}

continue;

}

switch(choice1){

case '0':

system(“cls”);

break;

case '1':{

system(“cls”);

if(headbook==NULL){

printf(“ ┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓n”);

printf(“ ┃ 〓〓〓〓〓〓〓〓〓〓〓图书链表为空,请先创建图书链表〓〓〓〓〓〓〓〓〓〓┃n”);

}

else{

printf(“ ┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓n”);

printf(“ ┃*****************************您享有的操作*******************************┃n”);

printf(“ ┃************************************************************************┃n”);

printf(“ ┣━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┫n”);

printf(“ ┃████████████请输入你要插入的图书信息████████████┃|n”);

printf(“ ┣━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┫n”);

printf(“ ┃

★1.编号

★2.书名

★3.作者

★4.类型

★5.出版社

★(6)库存

┃n”);

printf(“ ┣━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┫n”);

printf(“ ┃▲▼●◆■★▼▲★■◆请依次输入(用空格隔开)▍▌▋▊▉█▇▆▅▄▃▂▁┃n”);

printf(“ ┗━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┛n”);

if((pa=(Books *)malloc(sizeof(Books)))==NULL){

printf(“Not able to allocate memory.n”);

exit(1);

}

while(scanf(“%d”,&pa->numbers)&&scanf(“%s”,pa->name)&&scanf(“%s”,pa->author)&&scanf(“%s”,pa->type)&&scanf(“%s”,pa->publisher)&&scanf(“%d”,&pa->cun)){

getchar();

system(“cls”);

headbook=insertbook(headbook,pa);

printf(“ ┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓n”);

printf(“ ┃▓▓▓▓▓▓▓▓▓▓▓▓▓▓恭喜你,插入成功▓▓▓▓▓▓▓▓▓▓▓▓▓▓┃n”);

l=1;

break;

}

if(l==0){

tishi2();

getchar();

}

}

l=0;

break;

}

case '2':{

if(headstudent==NULL){

system(“cls”);

printf(“ ┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓n”);

printf(“ ┃

██████████学生链表为空,请先创建学生链表██████████ ┃n”);

}

else{

system(“cls”);

printf(“ ┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓n”);

printf(“ ┃*****************************您享有的操作*******************************┃n”);

printf(“ ┃************************************************************************┃n”);

printf(“ ┣━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┫n”);

printf(“ ┃████████████请输入你要插入的学生信息████████████┃|n”);

printf(“ ┣━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┫n”);

printf(“ ┃

★1.学号★

★2.姓名★

★3.学院★

★4.身份证★

┃n”);

printf(“ ┣━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┫n”);

printf(“ ┃▲▼●◆■★▼▲★■◆请依次输入(用空格隔开)▍▌▋▊▉█▇▆▅▄▃▂▁┃n”);

printf(“ ┗━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┛n”);

if((pb=(Stus *)malloc(sizeof(Stus)))==NULL){

printf(“Not able to allocate memory.n”);

exit(1);

}

while(scanf(“%d”,&pb->numbers)&&scanf(“%s”,pb->name)&&scanf(“%s”,pb->xueyuan)&&scanf(“%s”,pb->mark)){

getchar();

stu=chenwensousou21(chenwenxie2(),pb->numbers);

if(stu!=NULL){

free(pb);

printf(“ ┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓n”);

printf(“ ┃▓▓▓▓▓▓▓▓▓▓▓▓▓对不起,该学号已存在▓▓▓▓▓▓▓▓▓▓▓▓▓┃n”);

printf(“ ┗━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┛n”);

l=1;

system(“pause”);

system(“cls”);

break;

}

headstudent=insertstudent(headstudent,pb);

system(“cls”);

printf(“ ┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓n”);

printf(“ ┃▓▓▓▓▓▓▓▓▓▓▓▓▓恭喜你,插入成功▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓┃n”);

l=1;

break;

}

if(l==0){

tishi2();

getchar();

}

}

l=0;

break;

}

case '3':{

if(headborrower==NULL){

system(“cls”);

printf(“ ┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓n”);

printf(“ ┃

██████████借阅链表为空,请先创建借阅链表██████████ ┃n”);

}

else{

system(“cls”);

printf(“ ┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓n”);

printf(“ ┃*****************************您享有的操作*******************************┃n”);

printf(“ ┃************************************************************************┃n”);

printf(“ ┣━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┫n”);

printf(“ ┃████████████请输入你要插入的借阅信息████████████┃|n”);

printf(“ ┣━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┫n”);

printf(“ ┃

★★1.学号★★

★★2.书编★★

★★3.时间★★

┃n”);

printf(“ ┣━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┫n”);

printf(“ ┃***********请注意:(时间格式 年月日 比如1992年08月13日为920813)**********┃n”);

printf(“ ┣━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┫n”);

printf(“ ┣━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┫n”);

printf(“ ┃▲▼●◆■★▼▲★■◆请依次输入(用空格隔开)▍▌▋▊▉█▇▆▅▄▃▂▁┃n”);

printf(“ ┗━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┛n”);

if((pc=(Borr *)malloc(sizeof(Borr)))==NULL){

printf(“Not able to allocate memory.n”);

exit(1);

}

while(scanf(“%d”,&pc->stu)&&scanf(“%d”,&pc->book)&&scanf(“%d”,&pc->times)){

if(yanzheng2(chenwenxie3(),pc->book)==0){

free(pc);

break;

}

stu=chenwensousou21(chenwenxie2(),pc->stu);

if(stu==NULL){

printf(“ ┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓n”);

printf(“ ┃▓▓▓▓▓▓▓▓▓▓▓▓▓对不起,该学号不存在▓▓▓▓▓▓▓▓▓▓▓▓▓┃n”);

printf(“ ┗━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┛n”);

free(pc);

system(“pause”);

system(“cls”);

break;

}

if(chenwensousou11(chenwenxie1(),pc->book)==NULL){

printf(“ ┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓n”);

printf(“ ┃▓▓▓▓▓▓▓▓▓▓▓▓▓对不起,该书编不存在▓▓▓▓▓▓▓▓▓▓▓▓▓┃n”);

printf(“ ┗━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┛n”);

free(pc);

system(“pause”);

system(“cls”);

break;

}

book=chenwensousou11(chenwenxie1(),pc->book);

book->cun--;

getchar();

if(headyuyue!=NULL)

yu=chenwensousou32(headyuyue,pc->book);

if(yu!=NULL&&headyuyue!=NULL){

headyuyue=deleteborrower1(yuyuexie(),pc->book);

if(headyuyue!=NULL)

yuyuedu(headyuyue);

else{

qingkong4();

}

}

headborrower=insertborrower(headborrower,pc);

if(headbook!=NULL)

chenwendu1(headbook);

if(headborrower!=NULL)

chenwendu3(headborrower);

system(“cls”);

printf(“ ┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓n”);

printf(“ ┃▓▓▓▓▓▓▓▓▓▓▓▓▓恭喜你,插入成功▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓┃n”);

l=1;

break;

}

if(l==0){

tishi2();

getchar();

}

}

l=0;

break;

}

}

}

else{

tishi2();

while(choice1!='n'){

scanf(“%c”,&choice1);

}

}

if(choice1=='0'){

break;

}

}

}

break;

case '3':

system(“cls”);

{

while(n==0)

{

printf(“ ┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓n”);

printf(“ ┃*****************************您享有的操作*******************************┃n”);

printf(“ ┃************************************************************************┃n”);

printf(“ ┣━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┫n”);

printf(“ ┃████████████请输入你要删除的借阅信息████████████┃n”);

printf(“ ┣━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┫n”);

printf(“ ┃ ★(0)返回上级

★(1)删除图书信息

★(2)删除学生信息

★(3)删除借阅信息 ┃n ”);

printf(“ ┣━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┫n”);

printf(“ ┃▉▉▉▉▉▉▉▉▉▉▉▉▉●●●请输入选择●●●▉▉▉▉▉▉▉▉▉▉▉▉┃n”);

printf(“ ┗━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┛n”);

if(scanf(“%c”,&choice2)&&choice2>='0'&&choice2<='3')

{

scanf(“%c”,&cw);

if(cw!='n'){

tishi2();

while(cw!='n'){

scanf(“%c”,&cw);

}

continue;

}

switch(choice2)

{

case '0':

system(“cls”);

break;

case '1':

{

if(headbook==NULL){

system(“cls”);

printf(“ ┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓n”);

printf(“ ┃ 〓〓〓〓〓〓〓〓〓〓〓图书链表为空,请先创建图书链表〓〓〓〓〓〓〓〓〓〓┃n”);

}

else

{

system(“cls”);

while(n==0)

{

printf(“ ┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓n”);

printf(“ ┃*****************************您享有的操作*******************************┃n”);

printf(“ ┃************************************************************************┃n”);

printf(“ ┣━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┫n”);

printf(“ ┃━━━━━━━━━━━请输入你要删除的图书信息的━━━━━━━━━━━━┃n”);

printf(“ ┣━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┫n”);

printf(“ ┃

★0.返回上级

★1.编号

★2.书名

★3.位置

┃n”);

printf(“ ┣━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┫n”);

printf(“ ┃▉▉▉▉▉▉▉▉▉▉▉▉▉●●●请输入选择●●●▉▉▉▉▉▉▉▉▉▉▉▉┃n”);

printf(“ ┗━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┛n”);

if((pa=(Books *)malloc(sizeof(Books)))==NULL)

{

printf(“Not able to allocate memory.n”);

exit(1);

}

if(scanf(“%c”,&choice1)&&choice1>='0'&&choice1<='3')

{

scanf(“%c”,&cw);

if(cw!='n'){

tishi2();

while(cw!='n'){

scanf(“%c”,&cw);

}

continue;

}

switch(choice1)

{

case '0':

system(“cls”);

break;

case '1':

if(headbook==NULL){

system(“cls”);

printf(“ ┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓n”);

printf(“ ┃ 〓〓〓〓〓〓〓〓〓〓〓〓〓链表为空,请先创建链表〓〓〓〓〓〓〓〓〓〓〓〓┃n”);

break;

}

system(“cls”);

tishi1();

printf(“ ┃

输入编号●●●●●●

┃n”);

printf(“ ┗━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┛n”);

if(scanf(“%d”,&pa->numbers))

{

getchar();

pa=chenwensousou11(headbook,pa->numbers);

}

else

{

getchar();

pa=NULL;

}

break;

case '2':

if(headbook==NULL){

system(“cls”);

printf(“ ┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓n”);

printf(“ ┃ 〓〓〓〓〓〓〓〓〓〓〓〓〓链表为空,请先创建链表〓〓〓〓〓〓〓〓〓〓〓〓┃n”);

break;

}

system(“cls”);

tishi1();

printf(“ ┃

输入书名●●●●●●

┃n”);

printf(“ ┗━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┛n”);

if(scanf(“%s”,pa->name))

{

getchar();

pa=chenwensousou15(headbook,pa->name);

}

else

{

getchar();

pa=NULL;

}

break;

case '3':

if(headbook==NULL){

system(“cls”);

printf(“ ┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓n”);

printf(“ ┃ 〓〓〓〓〓〓〓〓〓〓〓〓〓链表为空,请先创建链表〓〓〓〓〓〓〓〓〓〓〓〓┃n”);

break;

}

system(“cls”);

tishi1();

printf(“ ┃

输入位置●●●●●●

┃n”);

printf(“ ┗━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┛n”);

if(scanf(“%d”,&pa->sum))

{

getchar();

pa=chenwensousou13(headbook,pa->sum);

}

else

{

getchar();

pa=NULL;

}

break;

}

if(choice1=='0')

{

break;

}

if(pa==NULL)

{

system(“cls”);

printf(“ ┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓n”);

printf(“ ┃〓〓〓〓〓〓〓〓〓〓〓〓没有找到你想删除的信息〓〓〓〓〓〓〓〓〓〓〓〓〓┃n”);

}

else

{

if(headbook==NULL){

system(“cls”);

printf(“ ┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓n”);

printf(“ ┃ 〓〓〓〓〓〓〓〓〓〓〓〓〓链表为空,请先创建链表〓〓〓〓〓〓〓〓〓〓〓〓┃n”);

break;

}

system(“cls”);

printf(“ ┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓n”);

printf(“ ┃◆◆◆◆◆◆◆◆◆◆◆◆你要删除的信息是这些嘛?◆◆◆◆◆◆◆◆◆◆◆◆┃n”);

printf(“ ┣━━━━━━━━━━━━┳━━━━━━━━━━━┳━━━━━━━━━━━┫n”);

printf(“ ┃

①编号┃

②书名┃

③作者 ┃n”);

printf(“ ┣━━━━━━━━━━━━╋━━━━━━━━━━━╋━━━━━━━━━━━┫n”);

printf(“ ┃ %21d ┃ %21s┃ %20s ┃n”,pa->numbers,pa->name,pa->author);

printf(“ ┣━━━━━━━━━━━━╋━━━━━━━━━━━╋━━━━━┳━━━━━┫n”);

printf(“ ┃

④类型┃

⑤出版社┃

⑥位置┃

⑦库存量┃n”);

printf(“ ┣━━━━━━━━━━━━╋━━━━━━━━━━━╋━━━━━╋━━━━━┫n”);

printf(“ ┃ %23s┃ %21s┃%10d┃%10d┃n”,pa->type,pa->publisher,pa->sum,pa->cun);

printf(“ ┣━━━━━━━━━━━━┻━━━━━━━━━━━┻━━━━━┻━━━━━┫n”);

printf(“ ┃

★(0)不删除,返回上级

★(1)删除

┃n”);

printf(“ ┗━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┛n”);

if(scanf(“%c”,&choice2)&&choice2=='0'){

system(“cls”);

break;

}

if(choice2!='1'){

printf(“ ┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓n”);

printf(“ ┃〓〓〓〓〓〓〓〓〓〓〓你的输入有误,此信息未删除〓〓〓〓〓〓〓〓〓〓〓〓┃n”);

printf(“ ┗━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┛n”);

system(“pause”);

system(“cls”);

break;

}

headbook=deletebook1(headbook,pa->numbers);

if(headbook!=NULL)

chenwendu1(headbook);

if(headborrower!=NULL)

headborrower=deleteborrower1(headborrower,pa->numbers);

if(headborrower!=NULL)

chenwendu3(headborrower);

printf(“ ┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓n”);

printf(“ ┃〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓恭喜你,删除成功〓〓〓〓〓〓〓〓〓〓〓〓〓┃n”);

}

}

else

{

tishi2();

while(choice1!='n')

scanf(“%c”,&choice1);

}

}

}

break;

}

case '2':

{

if(headstudent==NULL){

system(“cls”);

printf(“ ┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓n”);

printf(“ ┃ 〓〓〓〓〓〓〓〓〓〓〓〓〓链表为空,请先创建链表〓〓〓〓〓〓〓〓〓〓〓〓┃n”);

}

else

{

system(“cls”);

while(n==0)

{

tishi1();

printf(“ ┃━━━━━━━━━━━━请输入你要删的学生信息的━━━━━━━━━━━┃n”);

printf(“ ┣━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┫n”);

printf(“ ┃

★0.返回上级

★1.学号

★2.名字

★3.位置

┃n”);

printf(“ ┣━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┫n”);

printf(“ ┃

请输入选择●●●●●●

┃n”);

printf(“ ┗━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┛n”);

if((pb=(Stus *)malloc(sizeof(Stus)))==NULL)

{

printf(“Not able to allocate memory.n”);

exit(1);

}

if(scanf(“%c”,&choice1)&&choice1>='0'&&choice1<='3')

{

scanf(“%c”,&cw);

if(cw!='n'){

tishi2();

while(cw!='n'){

scanf(“%c”,&cw);

}

continue;

}

switch(choice1)

{

case '0':

system(“cls”);

break;

case '1':

if(headstudent==NULL){

system(“cls”);

printf(“ ┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓n”);

printf(“ ┃ 〓〓〓〓〓〓〓〓〓〓〓〓〓链表为空,请先创建链表〓〓〓〓〓〓〓〓〓〓〓〓┃n”);

break;

}

system(“cls”);

tishi1();

printf(“ ┃

输入学号●●●●●●

┃n”);

printf(“ ┗━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┛n”);

if(scanf(“%d”,&pb->numbers))

{

getchar();

pb=chenwensousou21(headstudent,pb->numbers);

}

else

{

getchar();

pb=NULL;

}

break;

case '2':

if(headstudent==NULL){

system(“cls”);

printf(“ ┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓n”);

printf(“ ┃ 〓〓〓〓〓〓〓〓〓〓〓〓〓链表为空,请先创建链表〓〓〓〓〓〓〓〓〓〓〓〓┃n”);

break;

}

system(“cls”);

tishi1();

printf(“ ┃

输入名字●●●●●●

┃n”);

printf(“ ┗━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┛n”);

if(scanf(“%s”,pb->name))

{

getchar();

pb=chenwensousou22(headstudent,pb->name);

}

else

{

getchar();

pb=NULL;

}

break;

case '3':

if(headstudent==NULL){

system(“cls”);

printf(“ ┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓n”);

printf(“ ┃ 〓〓〓〓〓〓〓〓〓〓〓〓〓链表为空,请先创建链表〓〓〓〓〓〓〓〓〓〓〓〓┃n”);

break;

}

system(“cls”);

tishi1();

printf(“ ┃

输入位置●●●●●●

┃n”);

printf(“ ┗━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┛n”);

if(scanf(“%d”,&pb->sum))

{

getchar();

pb=chenwensousou23(headstudent,pb->sum);

}

else

{

getchar();

pb=NULL;

}

break;

}

if(choice1=='0')

{

break;

}

if(pb==NULL)

{

system(“cls”);

printf(“ ┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓n”);

printf(“ ┃▓▓▓▓▓▓▓▓▓▓对不起,没有找到你想删除的信息▓▓▓▓▓▓▓▓▓▓▓┃n”);

}

else

{

if(headstudent==NULL){

system(“cls”);

printf(“ ┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓n”);

printf(“ ┃ 〓〓〓〓〓〓〓〓〓〓〓〓〓链表为空,请先创建链表〓〓〓〓〓〓〓〓〓〓〓〓┃n”);

break;

}

system(“cls”);

printf(“ ┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓n”);

printf(“ ┃◆◆◆◆◆◆◆◆◆◆◆◆你要删除的信息是这些嘛?◆◆◆◆◆◆◆◆◆◆◆◆┃n”);

printf(“ ┣━━━━━━━━━┳━━━━━━━━━┳━━━━━━━━━━┳━━━━━┫n”);

printf(“ ┃

学号

姓名

学院

位置 ┃n”);

printf(“ ┣━━━━━━━━━╋━━━━━━━━━╋━━━━━━━━━━╋━━━━━┫n”);

printf(“ ┃%18d┃ %17s┃ %19s┃ %8d ┃n”,pb->numbers,pb->name,pb->xueyuan,pb->sum);

printf(“ ┣━━━━━━━━━┻━━━━━━━━━┻━━━━━━━━━━┻━━━━━┫n”);

printf(“ ┃

★(0)不删除,返回上级

★(1)删除

┃n”);

printf(“ ┗━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┛n”);

if(scanf(“%c”,&choice2)&&choice2=='0'){

system(“cls”);

break;

}

if(choice2!='1'){

printf(“ ┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓n”);

printf(“

┃▓▓▓▓▓▓▓▓▓▓▓你的输入有误,此信息未删除▓▓▓▓▓▓▓▓▓▓▓▓┃n”);

printf(“ ┗━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┛n”);

system(“pause”);

system(“cls”);

break;

}

headstudent=deletestudent1(headstudent,pb->numbers);

if(headstudent!=NULL)

chenwendu2(headstudent);

printf(“ ┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓n”);

printf(“ ┃〓〓〓〓〓〓〓〓〓〓〓〓〓〓恭喜你,删除成功〓〓〓〓〓〓〓〓〓〓〓〓〓〓┃n”);

}

}

else

{

tishi2();

while(choice1!='n')

scanf(“%c”,&choice1);

}

}

}

break;

}

case '3':

{

if(headborrower==NULL){

system(“cls”);

printf(“ ┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓n”);

printf(“ ┃ 〓〓〓〓〓〓〓〓〓〓〓〓〓链表为空,请先创建链表〓〓〓〓〓〓〓〓〓〓〓〓┃n”);

}

else

{

system(“cls”);

while(n==0)

{

tishi1();

printf(“ ┃━━━━━━━━━━━━请输入你要删的借阅信息的━━━━━━━━━━━┃n”);

printf(“ ┣━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┫n”);

printf(“ ┃

★0.返回上级

★1.学号

★2.书编

★3.位置

★4.时间

┃n”);

printf(“ ┣━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┫n”);

printf(“ ┃*******请注意:(时间格式 年月日 比如1992年08月13日 为 920813)*********┃ n”);

printf(“ ┣━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┫n”);

printf(“ ┃

请输入选择●●●●●●

┃n”);

printf(“ ┗━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┛n”);

if((pc=(Borr *)malloc(sizeof(Borr)))==NULL)

{

printf(“Not able to allocate memory.n”);

exit(1);

}

if(scanf(“%c”,&choice1)&&choice1>='0'&&choice1<='4')

{

scanf(“%c”,&cw);

if(cw!='n'){

tishi2();

while(cw!='n'){

scanf(“%c”,&cw);

}

continue;

}

switch(choice1)

{

case '0':

system(“cls”);

break;

case '1':

if(headborrower==NULL){

system(“cls”);

printf(“ ┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓n”);

printf(“ ┃ 〓〓〓〓〓〓〓〓〓〓〓〓〓链表为空,请先创建链表〓〓〓〓〓〓〓〓〓〓〓〓┃n”);

break;

}

system(“cls”);

tishi1();

printf(“ ┃

输入学号●●●●●●

┃n”);

printf(“ ┗━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┛n”);

if(scanf(“%d”,&pc->stu))

{

getchar();

pc=chenwensousou31(headborrower,pc->stu);

}

else

{

getchar();

pc=NULL;

}

break;

case '2':

if(headborrower==NULL){

system(“cls”);

printf(“ ┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓n”);

printf(“ ┃ 〓〓〓〓〓〓〓〓〓〓〓〓〓链表为空,请先创建链表〓〓〓〓〓〓〓〓〓〓〓〓┃n”);

break;

}

system(“cls”);

tishi1();

printf(“ ┃

输入编号●●●●●●

┃n”);

printf(“ ┗━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┛n”);

if(scanf(“%d”,&pc->book))

{

getchar();

pc=chenwensousou32(headborrower,pc->book);

}

else

{

getchar();

pc=NULL;

}

break;

case '3':

if(headborrower==NULL){

system(“cls”);

printf(“ ┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓n”);

printf(“ ┃ 〓〓〓〓〓〓〓〓〓〓〓〓〓链表为空,请先创建链表〓〓〓〓〓〓〓〓〓〓〓〓┃n”);

break;

}

system(“cls”);

tishi1();

printf(“ ┃

输入位置●●●●●●

┃n”);

printf(“ ┗━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┛n”);

if(scanf(“%d”,&pc->sum))

{

getchar();

pc=chenwensousou33(headborrower,pc->sum);

}

else

{

getchar();

pc=NULL;

}

break;

case '4':

if(headborrower==NULL){

system(“cls”);

printf(“ ┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓n”);

printf(“ ┃ 〓〓〓〓〓〓〓〓〓〓〓〓〓链表为空,请先创建链表〓〓〓〓〓〓〓〓〓〓〓〓┃n”);

break;

}

system(“cls”);

tishi1();

printf(“ ┃

输入时间●●●●●●

┃n”);

printf(“ ┣━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┫n”);

printf(“ ┃********请注意:(时间格式 年月日 比如1992年08月13日 为 920813)********┃n”);

printf(“ ┗━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┛n”);

if(scanf(“%d”,&pc->times))

{

getchar();

pc=chenwensousou34(headborrower,pc->times);

}

else

{

getchar();

pc=NULL;

}

break;

}

if(choice1=='0')

{

break;

}

if(pc==NULL)

{

system(“cls”);

printf(“ ┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓n”);

printf(“ ┃▓▓▓▓▓▓▓▓▓▓对不起,没有找到你想删除的信息▓▓▓▓▓▓▓▓▓▓▓┃n”);

}

else

{

if(headborrower==NULL){

system(“cls”);

printf(“ ┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓n”);

printf(“ ┃ 〓〓〓〓〓〓〓〓〓〓〓〓〓链表为空,请先创建链表〓〓〓〓〓〓〓〓〓〓〓〓┃n”);

break;

}

if(choice1=='2'||choice1=='3'){

system(“cls”);

pb=chenwensousou21(headstudent,pc->stu);

printf(“ ┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓n”);

printf(“ ┃◆◆◆◆◆◆◆◆◆◆◆◆你要删除的信息是这些嘛?◆◆◆◆◆◆◆◆◆◆◆◆┃n”);

printf(“ ┣━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┫n”);

printf(“ ┃

姓名:”);

printf(“

%20s

┃n”,pb->name);

printf(“ ┣━━━━━━━━━┳━━━━━━━━━┳━━━━━━━━┳━━━━━━━┫n”);

printf(“ ┃

学号

书编

时间

位置

┃n”);

printf(“ ┣━━━━━━━━━╋━━━━━━━━━╋━━━━━━━━╋━━━━━━━┫n”);

printf(“ ┃ %16d ┃ %16d ┃ %14d ┃%13d ┃n”,pc->stu,pc->book,pc->times,pc->sum);

printf(“ ┣━━━━━━━━━┻━━━━━━━━━┻━━━━━━━━┻━━━━━━━┫n”);

pa=chenwensousou11(headbook,pc->book);

printf(“ ┃

%20s

┃n”,pa->name);

printf(“ ┣━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┫n”);

printf(“ ┃

★(0)不删除,返回上级

★(1)删除

┃n”);

printf(“ ┗━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┛n”);

if(scanf(“%c”,&choice2)&&choice2=='0'){

getchar();

system(“cls”);

break;

}

if(choice2!='1'){

getchar();

printf(“ ┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓n”);

printf(“ ┃〓〓〓〓〓〓〓〓〓〓〓〓你的输入有误,此信息未删除〓〓〓〓〓〓〓〓〓〓〓┃n”);

printf(“ ┗━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┛n”);

system(“pause”);

system(“cls”);

break;

}

getchar();

book=chenwensousou11(chenwenxie1(),pc->book);

book->cun++;

headborrower=deleteborrower2(headborrower,pc->stu);

if(headborrower!=NULL)

chenwendu3(headborrower);

system(“cls”);

printf(“ ┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓n”);

printf(“ ┃〓〓〓〓〓〓〓〓〓〓〓〓〓〓恭喜你,删除成功〓〓〓〓〓〓〓〓〓〓〓〓〓〓┃n”);

}

else{

pc=pc->next;

while(pc!=NULL){

headbook=chenwenxie1();

book=chenwensousou11(headbook,pc->book);

book->cun++;

system(“cls”);

pb=chenwensousou21(headstudent,pc->stu);

printf(“ ┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓n”);

printf(“ ┃◆◆◆◆◆◆◆◆◆◆◆◆你要删除的信息是这些嘛?◆◆◆◆◆◆◆◆◆◆◆◆┃n”);

printf(“ ┣━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┫n”);

printf(“ ┃

姓名:”);

printf(“

%20s

┃n”,pb->name);

printf(“ ┣━━━━━━━━━┳━━━━━━━━━┳━━━━━━━━┳━━━━━━━┫n”);

printf(“ ┃

学号

书编

时间

位置

┃n”);

printf(“ ┣━━━━━━━━━╋━━━━━━━━━╋━━━━━━━━╋━━━━━━━┫n”);

printf(“ ┃ %16d ┃ %16d ┃ %14d ┃%13d ┃n”,pc->stu,pc->book,pc->times,pc->sum);

printf(“ ┣━━━━━━━━━┻━━━━━━━━━┻━━━━━━━━┻━━━━━━━┫n”);

pa=chenwensousou11(headbook,pc->book);

printf(“ ┃

%20s

┃n”,pa->name);

printf(“ ┣━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┫n”);

printf(“ ┃

★(0)不删除,返回上级

★(1)删除

┃n”);

printf(“ ┗━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┛n”);

if(scanf(“%c”,&choice2)&&choice2=='0'){

getchar();

system(“cls”);

pc=pc->next;

continue;

}

if(choice2!='1'){

getchar();

printf(“ ┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓n”);

printf(“ ┃〓〓〓〓〓〓〓〓〓〓〓〓你的输入有误,此信息未删除〓〓〓〓〓〓〓〓〓〓〓┃n”);

printf(“ ┗━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┛n”);

pc=pc->next;

system(“pause”);

system(“cls”);

continue;

}

getchar();

headborrower=deleteborrower2(headborrower,pc->stu);

if(headborrower!=NULL)

chenwendu3(headborrower);

if(headbook!=NULL)

chenwendu1(headbook);

pc=pc->next;

system(“cls”);

printf(“ ┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓n”);

printf(“ ┃〓〓〓〓〓〓〓〓〓〓〓〓〓〓恭喜你,删除成功〓〓〓〓〓〓〓〓〓〓〓〓〓〓┃n”);

}

}

}

}

else

{

tishi2();

while(choice1!='n')

scanf(“%c”,&choice1);

}

}

}

break;

}

}

if(choice2=='0')

{

break;

}

}

else

{

tishi2();

while(choice2!='n')

scanf(“%c”,&choice2);

}

}

break;

}

case '4':

bianli(headbook,headstudent,headborrower);

break;

case '5':

paixu(headbook,headstudent,headborrower);

break;

case '6':

sousuo(headbook,headstudent,headborrower);

break;

case '7':

system(“cls”);

while(1){

tishi1();

printf(“ ┃

请输入新密码●●●●●●

┃n”);

printf(“ ┗━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┛nn”);

scanf(“%s”,ppp);

printf(“ ┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓n”);

printf(“ ┃

请再次输入密码●●●●●●

┃n”);

printf(“ ┗━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┛nn”);

scanf(“%s”,p);

if(strcmp(ppp,p)==0){

mimadu(p);

system(“cls”);

printf(“ ┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓n”);

printf(“ ┃〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓密码修改成功〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓┃n”);

getchar();

break;

}

else{

system(“cls”);

tishi1();

printf(“ ┃▓▓▓▓▓▓▓▓▓▓▓▓▓两次密码不同,修改失败▓▓▓▓▓▓▓▓▓▓▓▓ ┃n”);

getchar();

while(1){

printf(“ ┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓n”);

printf(“ ┃

★(0)返回上级

★(1)继续修改

┃n”);

printf(“ ┣━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┫n”);

printf(“ ┃

请输入选择●●●●●●

┃n”);

printf(“ ┗━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┛nn”);

if(scanf(“%c”,&choice2)&&choice2>='0'&&choice2<='1'){

scanf(“%c”,&cw);

if(cw!='n'){

tishi2();

while(cw!='n'){

scanf(“%c”,&cw);

}

continue;

}

switch(choice2){

case '0':

system(“cls”);

break;

case '1':

system(“cls”);

break;

}

}

else{

tishi2();

while(choice2!='n'){

scanf(“%c”,&choice2);

}

}

if(choice2=='0'||choice2=='1'){

break;

}

}

if(choice2=='0'){

break;

}

}

}

break;

case '8':

system(“cls”);

while(1)

{

tishi1();

printf(“ ┃

★(0).返回上级

★(1).保存图书信息

★(2).保存学生信息

┃n”);

printf(“ ┣━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┫n”);

printf(“ ┃

★(3).保存借阅信息

★(4).保存所有信息

┃n”);

printf(“ ┣━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┫n”);

printf(“ ┃

请输入选择●●●●●●

┃n”);

printf(“ ┗━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┛nn”);

if(scanf(“%c”,&choice1)&&choice1>='0'&&choice1<='4'){

scanf(“%c”,&cw);

if(cw!='n'){

tishi2();

while(cw!='n'){

scanf(“%c”,&cw);

}

continue;

}

switch(choice1){

case '0':

system(“cls”);

break;

case '1':

system(“cls”);

if(headbook==NULL){

printf(“ ┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓n”);

printf(“ ┃〓〓〓〓〓〓〓〓〓〓图书链表为空,请先创建图书链表〓〓〓〓〓〓〓〓〓〓〓 ┃n”);

printf(“ ┗━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┛nn”);

break;

}

chenwendu1(headbook);

printf(“ ┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓n”);

printf(“ ┃▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓保存图书链表完成▓▓▓▓▓▓▓▓▓▓▓▓▓┃n”);

printf(“ ┗━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┛nn”);

system(“pause”);

system(“cls”);

break;

case '2':

system(“cls”);

if(headstudent==NULL){

printf(“ ┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓n”);

printf(“ ┃〓〓〓〓〓〓〓〓〓〓学生链表为空,请先创建学生链表〓〓〓〓〓〓〓〓〓〓〓 ┃n”);

printf(“ ┗━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┛nn”);

break;

}

chenwendu2(headstudent);

printf(“ ┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓n”);

printf(“ ┃▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓保存学生链表完成▓▓▓▓▓▓▓▓▓▓▓▓▓┃n”);

printf(“ ┗━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┛nn”);

system(“pause”);

system(“cls”);

break;

case '3':

system(“cls”);

if(headborrower==NULL){

printf(“ ┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓n”);

printf(“ ┃〓〓〓〓〓〓〓〓〓〓借阅链表为空,请先创建借阅链表〓〓〓〓〓〓〓〓〓〓〓 ┃n”);

printf(“ ┗━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┛nn”);

break;

}

chenwendu3(headborrower);

printf(“ ┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓n”);

printf(“ ┃▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓保存借阅链表完成▓▓▓▓▓▓▓▓▓▓▓▓▓┃n”);

printf(“ ┗━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┛nn”);

system(“pause”);

system(“cls”);

break;

case '4':

system(“cls”);

if(headbook==NULL){

printf(“ ┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓n”);

printf(“ ┃〓〓〓〓〓〓〓〓〓〓图书链表为空,请先创建图书链表〓〓〓〓〓〓〓〓〓〓〓 ┃n”);

printf(“ ┗━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┛nn”);

}

else{

chenwendu1(headbook);

printf(“ ┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓n”);

printf(“ ┃▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓保存图书链表完成▓▓▓▓▓▓▓▓▓▓▓▓▓┃n”);

printf(“ ┗━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┛nn”);

}

if(headstudent==NULL){

printf(“ ┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓n”);

printf(“ ┃〓〓〓〓〓〓〓〓〓〓学生链表为空,请先创建学生链表〓〓〓〓〓〓〓〓〓〓〓 ┃n”);

printf(“ ┗━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┛nn”);

}

else{

chenwendu2(headstudent);

printf(“ ┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓n”);

printf(“ ┃▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓保存学生链表完成▓▓▓▓▓▓▓▓▓▓▓▓▓┃n”);

printf(“ ┗━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┛nn”);

}

if(headborrower==NULL){

printf(“ ┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓n”);

printf(“ ┃〓〓〓〓〓〓〓〓〓〓借阅链表为空,请先创建借阅链表〓〓〓〓〓〓〓〓〓〓〓 ┃n”);

printf(“ ┗━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┛nn”);

}

else{

chenwendu3(headborrower);

printf(“ ┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓n”);

printf(“ ┃▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓保存借阅链表完成▓▓▓▓▓▓▓▓▓▓▓▓▓┃n”);

printf(“ ┗━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┛nn”);

}

system(“pause”);

system(“cls”);

break;

}

}

else{

tishi2();

while(choice1!='n'){

scanf(“%c”,&choice1);

}

}

if(choice1=='0')

break;

}

break;

case '9':

system(“cls”);

qingkong();

break;

}

}

else{

tishi2();

while(choice!='n'){

scanf(“%c”,&choice);

}

}

if(choice=='0'){

break;

}

}

}

else{

tishi2();

j--;

printf(“ ┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓n”);

printf(“ ┃ ▓▓▓▓▓▓▓▓▓▓▓▓★你还有%3d次机会★▓▓▓▓▓▓▓▓▓▓▓▓▓▓┃”,j);

printf(“

┣━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┫n”);

printf(“ ┃

请输入密码●●●●●●

┃n”);

printf(“ ┗━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┛n”);

while(choice!='n'){

scanf(“%c”,&choice);

}

if(j==0){

system(“cls”);

getchar();

return;

}

}

if(choice=='0'){

break;

}

} } void youke(){ int n=0,l=0,xue=1;char choice,ppp[40],ch,pp[40],p[40],choice2,cw;Books *headbook=chenwenxie1(),*pa=NULL;Stus *headstudent=chenwenxie2(),*pb=NULL,*p1;Borr *headborrower=chenwenxie3(),*pc=NULL,*yu;Borr *headyuyue=yuyuexie();system(“cls”);if(chenwenxie2()==NULL){

printf(“ ┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓n”);

printf(“ ┃▓▓▓▓▓▓▓▓▓▓▓▓对不起,学生现在不能登录▓▓▓▓▓▓▓▓▓▓▓▓┃n”);

printf(“ ┗━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┛n”);

return;} while(xue!=0){

printf(“ ┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓n”);

printf(“ ┃

★★(0).返回上级★★

┃n”);

printf(“ ┣━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┫n”);

printf(“ ┃

请输入学号●●●●●●

┃n”);

printf(“ ┗━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┛n”);

if(scanf(“%d”,&xue)){

getchar();

if(xue==0){

system(“cls”);

return;

}

printf(“ ┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓n”);

printf(“ ┃

★ ★ ★请输入登录密码(初始密码为身份证号码)

┃n”);

printf(“ ┗━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┛n”);

scanf(“%s”,ppp);

getchar();

p1=chenwensousou21(chenwenxie2(),xue);

if(p1==NULL){

system(“cls”);

printf(“ ┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓n”);

printf(“ ┃▓▓▓▓▓▓▓▓▓▓▓▓▓对不起,该学号不存在▓▓▓▓▓▓▓▓▓▓▓▓▓┃n”);

printf(“ ┗━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┛n”);

continue;

}

if(p1->numbers==xue&&strcmp(ppp,p1->mark)==0){

break;

}

else{

system(“cls”);

printf(“ ┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓n”);

printf(“ ┃▓▓▓▓▓▓▓▓▓▓▓▓▓▓★★密码错误★★▓▓▓▓▓▓▓▓▓▓▓▓▓▓┃n”);

printf(“ ┗━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┛n”);

continue;

}

}

else{

system(“cls”);

system(“cls”);

scanf(“%c”,&ch);

while(ch!='n'){

scanf(“%c”,&ch);

}

printf(“ ┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓n”);

printf(“ ┃▓▓▓▓▓▓▓▓★★对不起,学号不能为字符,请输入数字★★▓▓▓▓▓▓▓┃n”);

printf(“ ┗━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┛n”);

} } system(“cls”);

while(n==0){

tishi1();

printf(“ ┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓n”);

printf(“ ┃████████████████欢迎学生进入██████████████┃n”);

printf(“ ┣━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┫n”);

printf(“ ┃

★(0)返回上级

★(1)遍历

★(2)搜索

★(3)排序

┃n”);

printf(“ ┣━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┫n”);

printf(“ ┃

★(4)借书预约

★(5)修改密码

┃n”);

printf(“ ┣━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┫n”);

printf(“ ┃

请输入选择●●●●●●

┃n”);

printf(“ ┗━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┛nn”);

l++;

if(scanf(“%c”,&choice)&&choice>='0'&&choice<='5'){

scanf(“%c”,&cw);

if(cw!='n'){

tishi2();

while(cw!='n'){

scanf(“%c”,&cw);

}

continue;

}

switch(choice)

{

case '0':

system(“cls”);

break;

case '1':

bianli(headbook,chenwenxie22(),headborrower);

break;

case '2':

sousuo(headbook,headstudent,headborrower);

break;

case '3':

paixu(headbook,headstudent,headborrower);

break;

case '4':

if(headyuyue==NULL){

yu=(Borr *)malloc(sizeof(Borr));

headyuyue=yu,yu->sum=0,yu->front=NULL,yu->next=NULL;

}

system(“cls”);

printf(“ ┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓n”);

printf(“ ┃*****************************您享有的操作*******************************┃n”);

printf(“ ┃************************************************************************┃n”);

printf(“ ┣━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┫n”);

printf(“ ┃█████████████请输入你要预约的信息█████████████┃n”);

printf(“ ┣━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┫n”);

printf(“ ┃

★★1.书编★★

★★2.时间★★

┃n”);

printf(“ ┣━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┫n”);

printf(“ ┃***********请注意:(时间格式 年月日 比如1992年08月13日为920813)**********┃n”);

printf(“ ┣━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┫n”);

printf(“ ┣━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┫n”);

printf(“ ┃▲▼●◆■★▼▲★■◆请依次输入(用空格隔开)▍▌▋▊▉█▇▆▅▄▃▂▁┃n”);

printf(“ ┗━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┛n”);

if((yu=(Borr *)malloc(sizeof(Borr)))==NULL){

printf(“Not able to allocate memory.n”);

exit(1);

}

yu=(Borr *)malloc(sizeof(Borr));

yu->stu=xue,yu->sum=headyuyue->sum+1;

while(scanf(“%d”,&yu->book)&&scanf(“%d”,&yu->times)){

if(chenwensousou11(chenwenxie1(),yu->book)==NULL){

printf(“ ┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓n”);

printf(“ ┃▓▓▓▓▓▓▓▓▓▓▓▓▓对不起,该书编不存在▓▓▓▓▓▓▓▓▓▓▓▓▓┃n”);

printf(“ ┗━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┛n”);

free(pc);

system(“pause”);

system(“cls”);

break;

}

getchar();

headyuyue=insertborrower(headyuyue,yu);

yuyuedu(headyuyue);

system(“cls”);

printf(“ ┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓n”);

printf(“ ┃▓▓▓▓▓▓▓▓▓▓▓▓▓恭喜你,预约成功▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓┃n”);

l=1;

break;

}

if(l==0){

tishi2();

getchar();

}

l=0;

break;

case '5':

system(“cls”);

while(1){

tishi1();

printf(“ ┃

请输入新密码●●●●●●

┃n”);

printf(“ ┗━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┛nn”);

scanf(“%s”,pp);

printf(“ ┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓n”);

printf(“ ┃

请再次输入密码●●●●●●

┃n”);

printf(“ ┗━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┛nn”);

scanf(“%s”,p);

if(strcmp(pp,p)==0){

pb=chenwensousou21(headstudent,xue);

strcpy(pb->mark,p);

chenwendu2(headstudent);

system(“cls”);

printf(“ ┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓n”);

printf(“ ┃〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓密码修改成功〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓┃n”);

getchar();

break;

}

else{

system(“cls”);

tishi1();

printf(“ ┃▓▓▓▓▓▓▓▓▓▓▓▓▓两次密码不同,修改失败▓▓▓▓▓▓▓▓▓▓▓▓ ┃n”);

getchar();

while(1){

printf(“ ┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓n”);

printf(“ ┃

★(0)返回上级

★(1)继续修改

┃n”);

printf(“ ┣━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┫n”);

printf(“ ┃

请输入选择●●●●●●

┃n”);

printf(“ ┗━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┛nn”);

if(scanf(“%c”,&choice2)&&choice2>='0'&&choice2<='1'){

}

break;

}

}

else{

scanf(“%c”,&cw);

if(cw!='n'){

tishi2();

while(cw!='n'){

scanf(“%c”,&cw);

}

continue;

}

switch(choice2){

case '0':

system(“cls”);

break;

case '1':

system(“cls”);

break;

}

}

else{

tishi2();

while(choice2!='n'){

scanf(“%c”,&choice2);

}

}

if(choice2=='0'||choice2=='1'){

break;

} } if(choice2=='0'){

break;} }

tishi2();

while(choice!='n'){

scanf(“%c”,&choice);

}

}

if(choice=='0'){

break;

} } } Books* buildbookslist(){ Books *head=NULL,*p,*tail,*begin;int n=sizeof(Books),num;if((begin=(Books *)malloc(n))==NULL){

printf(“Not able to allocate memory.n”);

exit(1);} head=begin,begin->front=NULL,begin->sum=0;if((p=(Books *)malloc(n))==NULL){

printf(“Not able to allocate memory.n”);

exit(1);} begin->next=p,p->front=begin, p->next=NULL;head=begin;p->sum=1;while(1){

system(“cls”);

tishi1();

printf(“ ┃

★0.返回上级

┃n”);

printf(“ ┣━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┫n”);

printf(“ ┃

★1.编号

★2.书名

★3.作者

★4.类型

★5.出版社

★(6)库存

┃n”);

printf(“ ┣━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┫n”);

printf(“ ┃▲▼●◆■★▼▲★■◆请依次输入(用空格隔开)▍▌▋▊▉█▇▆▅▄▃▂▁┃n”);

printf(“ ┗━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┛n”);

while(scanf(“%d”,&num)==0){

getchar();

system(“cls”);

tishi2();

tishi1();

printf(“ ┃

★0.返回上级

┃n”);

printf(“ ┣━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┫n”);

printf(“ ┃

★1.编号

★2.书名

★3.作者

★4.类型

★5.出版社

★(6)库存

┃n”);

printf(“ ┣━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┫n”);

printf(“ ┃▲▼●◆■★▼▲★■◆请依次输入(用空格隔开)▍▌▋▊▉█▇▆▅▄▃▂▁┃n”);

printf(“ ┗━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┛n”);

}

if(num==0){

p->front->next=NULL,tail=p->front;

system(“cls”);

getchar();

free(p);

return head;

}

if(yanzheng(head,num)){

if(scanf(“%s%s%s%s%d”,p->name,p->author,p->type,p->publisher,&p->cun)){

p->numbers=num;

begin->sum++;

getchar();

tail=p;

if((p=(Books *)malloc(n))==NULL){

printf(“Not able to allocate memory.n”);

exit(0);

}

tail->next=p,p->front=tail,p->next=NULL,p->sum=p->front->sum+1;

}

else{

tishi2();

getchar();

}

} } getchar();return head;} Stus* buildstudentlist(){ Stus *head,*tail,*p,*begin;int num;int n=sizeof(Stus);if((begin=(Stus *)malloc(n))==NULL){

printf(“Not able to allocate memory.n”);

exit(1);} head=begin;

if((p=(Stus *)malloc(n))==NULL){

printf(“Not able to allocate memory.n”);

exit(1);} begin->sum=0,begin->front=NULL;begin->next=p,tail=p,p->next=NULL,p->front=begin;head=begin;

p->sum=1;while(1){

system(“cls”);

tishi1();

printf(“ ┃

★0.返回上级★

┃n”);

printf(“ ┣━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┫n”);

printf(“ ┃

★1.学号★

★2.姓名★

★3.学院★

★4.身份证 ★

┃n”);

printf(“ ┣━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┫n”);

printf(“ ┃▲▼●◆■★▼▲★■◆请依次输入(用空格隔开)▍▌▋▊▉█▇▆▅▄▃▂▁┃n”);

printf(“ ┗━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┛n”);

while(scanf(“%d”,&num)==0){

getchar();

system(“cls”);

tishi2();

tishi1();

printf(“ ┃

★0.返回上级★

┃n”);

printf(“ ┣━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┫n”);

printf(“ ┃

★★1.学号★★

★★2.姓名★★

★★3.学院★★

┃n”);

printf(“ ┣━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┫n”);

printf(“ ┃▲▼●◆■★▼▲★■◆请依次输入(用空格隔开)▍▌▋▊▉█▇▆▅▄▃▂▁┃n”);

printf(“ ┗━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┛n”);

}

if(num==0){

p->front->next=NULL,tail=p->front;

free(p);

getchar();

system(“cls”);

return head;

}

if(yanzheng1(head,num)){

if(scanf(“%s%s%s”,p->name,p->xueyuan,p->mark)){

p->numbers=num;

begin->sum++;

getchar();

tail=p;

if((p=(Stus *)malloc(n))==NULL){

printf(“Not able to allocate memory.n”);

exit(1);

}

tail->next=p,p->front=tail,tail=p,p->next=NULL,p->sum=p->front->sum+1;

}

else{

tishi2();

getchar();

}

} } getchar();return head;} Borr* buildborrowerlist(){ Borr *head,*tail,*p,*begin;Stus *stu;Books *book;int n=sizeof(Borr),num;if((begin=(Borr *)malloc(n))==NULL){

printf(“Not able to allocate memory.n”);

exit(1);

下载瑞天图书管理系统手册word格式文档
下载瑞天图书管理系统手册.doc
将本文档下载到自己电脑,方便修改和收藏,请勿使用迅雷等下载。
点此处下载文档

文档为doc格式


声明:本文内容由互联网用户自发贡献自行上传,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任。如果您发现有涉嫌版权的内容,欢迎发送邮件至:645879355@qq.com 进行举报,并提供相关证据,工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。

相关范文推荐

    图书管理系统

    经过大学四年理论课程的学习,以及校内校外的实践,极大的丰富了自身的理论基础,并且也具备了一些处理简单问题的能力,但即将踏上社会的我深知这还远远不够,因此我利用了毕业设计的......

    图书管理系统说明

    图书管理系统设计说明书(上) 2009-02-12 18:10阅读:3,614 摘 要: 介绍了信息中心图书管理系统数据库的设计。该系统是运行在学校内的图书管理系统,实现了图书资料的计算机管理和......

    VB图书管理系统

    图书管理系统的设计与实现 目录 一、序言····························································......

    智能图书管理系统

    目录 1.采访管理子系统 ............................................................................................................ 3 2.编目管理子系统 ................

    图书管理系统答案

    图书管理系统答案 1.B2.D3.D4.C5.C6.A7.B8.A9.A10.B11.B12.B13.C 14.B15.D 16.C 17.B 18.D 19.C 20.C 21.A 22.C 23.A 24.B 25.A 26.B 27.B 28.B 29.D 30.A 31.A 32.B 33.A 3......

    图书管理系统实验范文

    小型图书管理系统 试验目的 采用C/S模式完成一个小型的图书管理系统;完成需求分析所有流程。 问题及算法描述 完成一个小型图书管理系统,功能要求如下: 1) 能够通过书籍基本信......

    图书管理系统心得

    为期两个星期的c#图书管理系统实习终于结束了,总算松了一口气,在这短短的两周时间内承受了很大的压力现在终于能够得到“释放”了,感觉到很轻松。回顾这两周所做过的工作和努力......

    图书管理系统(五篇模版)

    课程设计任务书一、题目:二、课程设计班级及小组成员: 三、课程设计起止时间: 四、原始数据及主要任务: 1、系统分析与设计:对系统进行调研,详细分析系统,设计出图书管理系统网络版......