本 科 毕 业 设 计 题 目:图书馆管理系统——后台管理
图书馆管理系统——后台管理
摘要:随着科学技术的发展,图书馆管理也告别了传统的人工管理,开始采用数字化的计算机管理的方式,这使得图书管理变得越来越人性化,受到了公众的好评。目前,各大图书馆、书店都采取了图书管理系统对自身的图书进行管理,大大地节约了人力物力和财力,提高了工作的效率和准确程度,也使图书查找变得简单快捷,打破了传统的手工查找模式,实现了图书上传、查询、借阅、还书、续借、过期缴费一条线自动化服务。通过查阅资料,以及和同学研究讨论,在本项目中,我负责的是图书馆管理后台系统,主要分为图书管理模块、读者管理模块、图书管理员模块三部分,实现图书信息、读者信息、管理员信息的浏览、查询、添加、修改删除,从而实现图书馆后台管理自动化。
关键词:数字化,图书管理,效率,后台系统
Library Management System——Back-office Systems Abstract :As the developmenting of sciencetist , library management also become more manual , and began to use computer to manage, library management which makes it more humane, has been praised by the public. Currently, the major libraries, bookstores have taken a library management system to manage their own books, which greatly saves manpower and material and financial resources, to improve the efficiency and accuracy of Books Find quick and easy, breaking the traditional manual search mode, the book is uploaded, query, borrow books, renewal, overdue payment line automation services. The project is based on the understanding of the school library management system, by what they have learned, graduation, to complete the design of a library management system. In this project, I am responsible for the library management background system, library management module, the reader management module, librarian module is divided into three parts, the book information, the reader information, the administrator information browsing, query, add, modification and deletion, in order to achieve the library Admin automation.
Key words: digital, library management, efficiency, back-office systems
目 录
一、概述 ................................................ 1
(一)课题背景及意义 . .......................................... 1
(二)课题的研究内容与开发目的 ................................. 1
二 、运行环境介绍 ....................................... 2
(一)系统运行环境配置 ......................................... 2
(二)Macromedia Dreamweaver 8简介 ............................ 2
(三)Microsoft SQL Server 2005简介 ........................... 2
(四)ASP 技术介绍 ............................................. 3
三、系统需求分析与总体设计 . .............................. 4
(一)系统需求分析 . ............................................ 4
(二)系统流程分析 . ............................................ 4
(三)系统数据流图 . ............................................ 5
(四)系统功能分析 . ............................................ 6
(五)概要设计 . ................................................ 7
四 、数据库结构设计与实现 . .............................. 17
(一)数据库设计 . ............................................. 17
(二)数据库详细设计 . ......................................... 17
(三)数据结构表之间的关系 .................................... 21
五、详细设计以及系统实现 . ............................... 22
(一)登陆窗口 . ............................................... 22
(二)管理中心欢迎界面 ........................................ 23
(三)图书管理模块 . ........................................... 24
(四)读者管理模块 . ........................................... 26
(五)图书借还模块 . ........................................... 28
(六)资料修改模块 . ........................................... 31
(七)公告管理模块 . ........................................... 32
(八)在线阅读管理模块 ........................................ 33
六、 测试 .............................................. 35
(一)测试说明 . ............................................... 35
(二)测试用例以及结果分析 .................................... 36
总 结 ............................................... 44 参考文献 ............................... 错误!未定义书签。 致 谢 ............................... 错误!未定义书签。
一、概 述
(一) 课题背景及意义
随着经济的不断发展,人们的生活水平得到了很大的提高,越来越多的人不再仅仅满足于物质的追求,对精神文化的需求也越来越大。书籍作为人类的精神粮食,数量以几何级别增长。图书管理也越来越先进了,人们告别繁琐的工作,用数字化的图书馆管理系统快速找书、借书、还书,还可以轻易地从图书馆的查询功能得知一本书籍的主要内容,是否是自己真正想要寻找的书籍,大大节省了时间和人力物力。
(二)课题的研究内容与开发目的
本课题立足实际,根据大学的所学知识,采取B/S(浏览器/服务器)结构,运用ASP 动态网页技术和SQL Server 数据库技术,希望能尽己所能,模拟实际情况,开发一个满足用户需求的拟图书馆管理系统。本系统由于硬件所限,不会用到借书卡和RIDF 扫描工具,均使用唯一的编码代替读者身份和图书。本系统分为前台和后台,主要功能有图书馆管理、读者管理、图书借还、在线阅读、留言板、图书检索等功能。本课题的主要目的是巩固学习内容,提高动手能力,为毕业之后走入社会打下坚定的项目基础。
二 、运行环境介绍
(一)系统运行环境配置
安装IIS 的方法有很多,只要跟着步骤一步一步安装即可。需要特别注意的是WIN7系统是自带IIS7.0的,我们不需要去安装,但是要选择IIS 的附带信息,配置起来比较繁琐,因此建议不要使用WIN7系统。
SQL Server 2005 对系统的硬件和软件有一定的要求方能顺利安装,否则,硬件和软件的不兼容性会导致安装不成功。硬件要求:CPU 要在166MHz 以上,内存最少要有128MB 空间,硬盘的声誉空间应该有300MB 以上。现在的电脑配置一般都可以安装SQL Server 2005 。SQL Server 2005 的安装过程与其他微软的软件类似,跟着提示一步一步安装即可。
(二) Macromedia Dreamweaver 8简介
作为网页三剑客中最重要的一个,Dreamweaver 不仅功能强大,操作简便,入门简单,界面非常友好,即使是没有学过网页设计的非专业人士也能使用它来设计出非常漂亮的网站界面,深得人心。Dreamweave 另一个非常有优势的功能就是分为代码、拆分、设计三个界面,可以根据实际的需要进行选择,设计界面修改时,会自动生成HTML 标志语言,用户体验非常好。
(三) Microsoft SQL Server 2005简介
相信任何一个学计算机的学生对于Microsoft SQL Server 2005都不会感到陌生。SQL 是ServerStructured Query Language 的缩写,意思是结构话查询语言,我们就是用这种语言把内容插入数据库,或者从数据库中查询、修改、删除。SQL Server 2005微软一个非常强大的数据处理软平台,通过这个平台,我们能高效地处理成千上万的数据。
(四) ASP技术介绍
ASP 是Active Server Pages的缩写,意思是动态服务器网页技术。ASP 学习简单易懂,对运行环境的要求也很简单,因此在初期深受欢迎,但是由于ASP 兼容性比较弱,现在已经比较少用了。ASP 文件的后缀是.asp ,其实就是在HTML 文件中嵌入VBScript 或者JavaScript 。
【男人最怕什么?】
没人羡慕你有几百块钱,但是绝对有人羡慕你半个小时
男人怕什么,不怕外面风吹雨淋,就怕老婆说不行
她们女人怕什么,不怕跟你受苦受累,就怕你是窝囊废
我们可以没钱没地位,但是你不能连她基本的生. 理渴. 望都满足不了别成窝囊废,马老中医威/亻言msdf003一直都在关爱你的性福生活。
三、系统需求分析与总体设计
(一) 系统需求分析
随着图书出版数量的增加,图书馆的规模增大,传统的图书管理模式的缺陷也越来越明显:图书存放混乱,人工查询图书耗时耗力,借阅管理难度大等等,因此必遭淘汰。取而代之的是数字自动化的图书馆管理模式。新型的图书馆管理系统采用数字化,打破时空界限,读者不用去到图书馆就能查询图书馆的图书,也能登陆自己的账户实行续借,还可以随时获取图书馆的最新公告信息,实现足不出户知天下事,非常方便。对于图书馆管理员来说更是一个福音,所有的图书流通步骤都实现了自动化,大大提高了工作效率,减轻了工作量,而且图书的管理也更加有效。因此图书馆管理系统是有市场需求的。
根据调查,图书馆管理系统的需求非常的清晰,那就是把图书的流通过程都实现网络化,实现图书检索、借阅、续借、罚金计算、图书添加删除修改、读者添加修改删除、管理员添加修改删除功能。为了丰富图书馆前台的功能,增加图书馆管理者与读者之间的交流,加快信息流通,增加留言板模块、在线阅读模块、公告模块和图书推荐模块。
(二) 系统流程分析
本系统中读者可以登录个人中心留言、查看留言信息、以及图书借阅;管理员登录后台之后,有图书管理、读者管理、图书借阅管理、个人资料修改,公告管理、在线阅读管理、留言管理共七个功能模块,管理员可以对其进行操作。系统流程图如图3.1所示:
图3.1 系统流程图
Fig.3.1 system flow chart
(三) 系统数据流图
结合系统实际使用用户,本系统共分为管理员、读者、游客三种角色。管理员登陆后进入系统后台界面,可以对图书、读者、公告、留言板、借阅、在线阅读进行管理,以及对个人资料进行修改。超级管理员还可以增加、删除普通管理员。读者登陆图书馆系统,可以对公告、图书推荐、在线阅读、留言板进行浏览,还可以进入个人中心续借图书,查看与自己相关的留言。游客不需要注册就可以像浏览网页一样,查询图书和公告、在线阅读短文以及留言。
把上面的过程归类整理分析,可以得出本系统的数据流图,如图3.2所示:
图3.2 系统数据流图
Fig.3.2 The system data flow diagram
(四) 系统功能分析
本图书管理系统后台的系统功能主要有:
1) 登陆功能:管理员输入用户名和密码,通过验证即可登陆。
2) 图书管理功能:包括删除、修改、添加图书三个小功能:
① 图书删除:输入书名相关的字,进入选择窗口,选择删除即可;
② 图书修改:输入书名相关的字,进入选择窗口,修改信息,确定保存; ③ 图书添加:输入图书基本信息,通过检验,即可添加成功。
3) 读者管理功能:包括注册新读者和注销读者两个小功能:
① 注册新读者:输入新读者的基本信息,*号项填写完整即可;
② 注销读者:输入读者的读者编号和身份证号码,确定注销。
4) 图书借还功能:一共有借书、还书、续借功能:
① 借书:输入读者编号,再输入图书编号即可;
② 还书:输入读者编号,选择要还书的图书,点击“还书”即可;
③ 续借:输入读者编号,选择需要续借的图书,确认续借,已续借的图书
不能再续借。
5) 资料修改功能:资料修改可以修改管理人个人的密码、联系方式和住址。 6) 公告管理功能:包括添加公告和删除公告。
① 添加公告:输入公告题目和内容这两个必填项即可。
② 除公告:输入公告题目相关信息,进入选择界面,点击删除即可。 7) 在线阅读功能:在线阅读可以在线阅读短文,符合现代人的阅读习惯。 8) 超级管理功能:包括添加新管理员和删除管理员,与读者管理一致。 (五) 概要设计 1 、实体介绍
(1)图书实体有BookID ,书名,图书介绍、借阅次数、作者、是否借出、出版社、类型、推荐、入库日期共10个属性。其中BookID 是主属性,唯一主键。如图3.3所示:
图3.3 图书实体 Fig.3.3 Book entity
(2)公告信息实体只有四个属性,分别是ID 、题目、内容和发布时间。其中ID 主属性,唯一主键。如图3.4所示:
图3.4 公告信息实体
Fig.3.4 Bulletin information entity
(3)留言信息实体,有ID 、留言题目、留言人名字、留言人电话号码、留言时间、留言内容、管理员回复、回复时间共8个属性。其中ID 是主属性,唯一主键。如图3.5所示:
图3.5 留言信息实体 Fig.3.5 Message entity
(4)管理员实体,有ID 、名称、密码、电话号码、地址、是否是超级管理员共六个属性。其中ID 是主属性,唯一主键。如图3.6
所示:
图3.6 管理员实体
Fig.3.6 Administrator entity
(5)读者实体,有ReaderID 、名称、密码、省份证ID 、地址、联系方式、邮箱、罚金共8个属性,其中ReaderID 是主属性,唯一主键。如图3.7所示:
图3.7 读者实体 Fig.3.7 Reader entity
(6)借阅信息实体,有BookID 、ReaderID 、借阅日期、是否续借、是否超期、超期天数共6个属性。其中,BookID 和ReaderID 共同作为主键。如图3.8所示:
图3.8 借阅信息实体
Fig.3.8 Borrowing information entity
2、 全局E-R 图
在本图书管理系统中,共有读者和管理员两个用户,实体有图书、公告、留言三个,它们之间存在下面的关系:由此可以画出全局E-R 图,如下图所示: 1) 一个读者可以借阅多本图书,一本书可以被多个读者借阅;管理员和图书之
间的关系是多对多。
2) 一位读者可以发布多条留言,同一个留言只能由一个读者发布,管理员可以
回复或者删除多条留言。
3) 一个读者可以浏览多条公告,一条公告可以被多个读者浏览;一个公告可以
被多个管理员管理,一个管理员可以管理多个公告。 由此可以画出全局E-R 图,如图3.9所示:
图3.9
全局E-R 图
Fig.3.9 Global E-R diagram
3、系统流程设计
本图书馆管理系统结构图如图3.10所示:
图3.10 系统结构图
Fig.3.10 System structure
(1)管理员登陆模块
在本系统设计中,管理员从系统首页(index.asp )的“管理中心”进入管理员登陆界面(login.htm ),只有管理员的用户名和密码都正确才能通过验证,
跳转到管理员中心(default.asp ),否则会有错误提示“错误:你所输入的帐号或密码错误! 请确定后再重新登录! ”,这是可以点击“登陆”重新输入用户名和密码,也可以点击“返回”放弃登陆,回到首页。流程图如3.11所示:
图3.11 管理员登陆模块流程图
Fig.3.11 Administrator landing module flowchart
(2)图书管理模块
进入图书馆管理界面(tsgl.asp )页面,管理员有添加、删除、修改图书基本信息功能。管理员输入书名或者书名中的几个关键字,就可以查找到要修改或者删除的图书,点击“删除”就会提示删除成功,点击“修改”就能进入修改界面(alter.asp ),修改好信息之后,保存就修改成功了,假如修改信息不完整,会提示错误。添加图书信息和修改图书信息一样,必须要保证所有*号项全部填写完整,否则会出错。如图3.12所示:
图3.12 图书管理流程图
Fig.3.12 Library management flowchart
(3)图书借还模块
按照本系统的设计,读者不能借阅图书,只能通过管理员才能借阅。管理员输入读者的编码,但是能进入读者个人借书中心(tsjh1.asp ),再输入要借的图书编号,确认,该书就会记录在该读者的记录里。对于续借功能,读者可以在个人中心自主续借,管理员也可帮助读者续借。如图3.13所示:
图3.13 图书借还模块流程图 Fig.3.13 Book by module flowchart
(4)读者管理模块
在本系统中,读者不能自主注册,只有管理员可以统一帮读者注册。管理员进入读者管理界面(dzgl.asp ),输入读者注册信息,带“*”号项目一定要填写完整,否则提示错误,如果注册成功也会有提示。注销读者只需要输入读者编码和身份证号码就可以了,信息出错和注销成功都会有相应的提示。如图3.14所示:
图3.14 读者管理模块流程图
Fig.3.14 The reader management module flowchart
(5)资料修改模块
资料修改模块的流程设计比较简单,管理员进入资料修改界面(zlgg.asp ),就可以修改密码、联系方式、住址等信息。信息不完整或者两次输入的密码不一致都会提示错误,管理员可以返回重新输入信息或者放弃修改。如图3.15所示:
图3.15 资料修改模块流程图
Fig.3.15 Modification module flowchart
(6)在线阅读管理模块
在线阅读是为了丰富系统内容而设置的,有删除文章和添加文章两个功能。进入在线阅读管理界面(zxydgl.asp ),输入要删除的文章题目或者关键字,提交信息,系统会检查是否有对应的文章,没有的话会提示错误,有的话会显示出来,然后点击确认删除即可删除成功。添加功能操作差不多,输入文章信息,信息完整就可以添加了。如图3.16所示:
图3.16 在线阅读管理模块流程图
Fig.3.16 The online management module flowchart
(7)公告管理模块
公告管理月在线阅读的设计流程一致,有添加公告和删除公告两个功能。管理员进入公告管理界面(gggl.asp ),在对应的地方输入要删除的公告题目,提交信息,通过验证后,就可以选择对应项进行删除。添加公告也一样,只要输入信息完整则可以添加公告。如图3.17所示:
图3.17 公告管理模块流程图
Fig.3.17 Announcements management module flowchart
(8)超级管理员管理
超级管理员的用户名设置为Adminisrator ,并且只有一个,不能修改。超级管理员有添加和注销普通管理员的权限。添加和删除管理员与注册新读者、删除读者设计流程一样。图书馆参数,包括借书期限,最大借书量,超期罚金,附加管理条例五项,超级管理员可以根据实际需要进行修改。如图3.18所示:
图3.18 超级管理员管理流程图
Fig.3.18 Super administrator manage flowchart
四 、数据库结构设计与实现
(一)数据库设计
结合实际,本系统设计一共涉及8个数据结构表,它们分别是:图书信息表、读者信息表,借阅信息表,管理员信息表,留言信息表,公告信息表,在线阅读信息表,图书馆参数表,数据结构表名称对应的含义如下表4.1所示:
表格4.1 数据结构表
Tab.4.1 Data structure Table
(二) 数据库详细设计
(1)图书信息表(book ):图书信息表的主要功能是存放图书的基本信息。包括图书的编码(主键),图书名,图书作者,推荐、是否借出,借阅次数、出版社,类型,入库日期,图书的介绍,共11项信息。其中“推荐”字段是一个(bit )类型字段,用True 来表示图书馆管理员推荐该书,用False 表示不推荐。“是否借出”也是一个(bit )类型字段,用True 里奥表示该书已经被读者借出,用False 表示该书仍保存在馆中。其数据表的结构图如表4.2所示:
表4.2 book图书信息表
Tab.4.2 Book Information Table
(2)借阅信息表(borrow ):借阅信息表的主要用途是存储读者的借书情况。包括readerID ,bookID ,借阅日期,是否续借,是否超期,超期天数,共6项信息。该表与图书信息表有关联,因此用readerID 和bookID 作为主键,分别与reader 表和book 表中的readerID ,bookID 相对应,用来区别不同的读者借了不同的书籍。“是否续借”字段的数据类型是bit ,主要功能是存储读者的续借信息,Ture 表示续借,False 表示相反;“是否超期”字段也是一个bit 类型数据,主要功能是存储读者所借的图书是否超过规定的期限(本系统设计还书期限是?月),如果超期,系统会根据算法自动计算超期的天数,存放在“超期天数”字段里。其数据表的结构图如表4.3所示:
表4.3 borrow借阅信息表
Tab.4.3 Lending information Table
(3)读者信息表(reader ):读者信息表的主要功能是存储读者的基本信息。包括读者唯一编码readerID (主键,在注册新读者的时候由系统自动生成,读者登陆、借书、还书都要用到此ID ),读者姓名,登陆密码,身份证号码,现居地
址,联系方式,邮箱地址,超期罚金,共9项信息。罚金与borrow 表中的超期天数关联,根据超期天数算出罚款金额。其数据表的结构图如表4.4所示: 表4.4 reader读者信息表
Tab.4.4 Reader information Table
(4)管理员信息表(manager ):管理员信息表的主要用途是存储管理员的资料信息,以及操作权限。包括ID ,manangerName ,mangerPwd ,isAdmin ,Telephone ,Address ,共6项信息。其中超级管理员只有一个,普通管理员的“isAdmin ”都为False 。其数据表的结构图如表4.5所示:
表4.5 manager管理员信息表
Tab.4.5 Administrator information Table
(5)留言信息表(Lyan ):留言信息表的主要功能是存储留言板的基本信息,包括ID ,Topic ,Name ,Telephone ,TheDate ,Content ,Reply ,ReplyDate ,共8项信息。“Reply ”字段存储回复内容,只能由管理员回复;ReplyDate 由系统自动获取当前时间。其数据表的结构图如表4.6所示:
表4.6 Lyan留言信息表
Tab.4.6 Message Table
(6)公告表(Announce ):公告信息表的主要功能是存储用公告栏的新闻通知,由管理员从后台发布。包括ID ,Topic ,Content ,TheDate ,共4项信息。公告信息表相对独立,与其他表没有关联。其数据表的结构图如表4.7所示:
表4.7 announce公告信息表
Tab.4.7 The announcement information Table
(7)在线阅读信息表(onlineReading ):在线阅读信息表的主要功能是存储在线阅读的短文内容。包括ID ,Topic ,Content ,Indate ,Illuminate ,共5项基本信息。在线阅读模块式为了增加系统的丰富性而设计的,与其他表也没有关联。其数据表的结构图如表4.8所示:
表4.8 onlineReading在线阅读信息表
Tab.4.8
Online reading information Table
(8)图书馆参数表(LibraryDetail ):图书馆参数表的主要功能是存储图书馆的规则参数信息。包括ID ,借书期限,借书数量,超期罚金,管理制度,共5项基本信息。在本系统中,借书期限是30天,每个读者的借书上限是5本,超出期限的罚金是0.1元/天。其数据表的结构图如表4-9所示:
表4.9 LibraryDetail图书馆参数表
Tab.4.9 Library parameter Table
(三)数据结构表之间的关系
在本次数据库的设计中,只有book 表、reader 表以及borrow 表之间存在着对应的约束关系,其中bookID 与readID 存在一对一的关系,其关系图如图4.1所示:
图4.1 数据结构表关系图
Fig.4.1 Data structure Tab.le relationship diagram
五、详细设计以及系统实现
根据前文所述,本系统的后台涉及到图书管理、读者管理、图书借还、资料修改、公告管理、在线阅读、超级管理等模块。接下来将详细介绍每一个模块的设计与实现。
(一) 登陆窗口
管理员在进入后台管理中心之前要通过身份验证,因此设计管理员登陆界面(login.htm ),只有管理员的用户名和密码都正确才能通过验证,验证的信息有:一、用户名是否存在,用户名和用户密码是否匹配;二、根据用户权限提供不同的管理功能模块。通过验证的用户可以顺利登陆管理中心。登陆界面如图
5.1所示:
图5.1 登陆界面
Fig.5.1 Login interface
登陆验证主要代码
if request("managername")"" and request("managerpwd")"" then
set con=server.createobject("adodb.recordset")
' 生成SQL 语句
sql="select * from manager where managerName='"& request("managername") & "' and managerPwd='" & request("managerpwd")&"'"
con.open sql,conn,3,3
if not con.eof then
session("manageraccount")=request("managername")
session("managerpassword")=request("managerpwd")
if con("isadmin")=true then
session("administrator")="YES"
end if
response.redirect "default.asp"
else
response.write "
错误:你所输入的帐号或密码错误! 请确定后再重新登录!
登录 返回首页
"
end if
con.close
set con=nothing
conn.close
set conn=nothing
else
response.write "
错误:你所输入的帐号或密码错误! 请确定后再重新登录!
登录 返回首页
"
end if
end if
%>
(二) 管理中心欢迎界面
成功登陆之后,系统会自动跳转到图书馆管理中心欢迎界面,界面的左边是管理员所拥有的功能,右边是对管理官职责的描述。管理员的职能描述是嵌入在HTML 代码里面的,不是从数据库里读出来的,没有办法从后台进行修改。管理
中心欢迎界面如图5.2所示:
图5.2 管理中心欢迎界面
Fig.5.2 Management Center Welcome interface
(三)图书管理模块
管理员进入图书管理窗口之后,在上方写入书名的相关信息就可以实现修改或者删除图书信息。下面设计的是新书入库,其中书名、作者、出版社是三个必填项,如果为空的话会报错。图书馆借界面如图5.3所示:
图5.3 图书管理界面
Fig.5.3 Library management interface
修改功能主要代码
if session("manageraccount")"" and session("managerpassword")"" then
if request("alter")="book" then
set con=server.createobject("adodb.recordset")
sql="select * from book where bookID="&request("ID")
con.open sql,conn
%>
删除图书功能主要代码
if session("manageraccount")"" and session("managerpassword")"" then
set con=server.createobject("adodb.recordset")
if request("delete")="book" then
sql="delete from book where bookID="&request("ID")
con.open sql,conn
response.write "
删除图书数据成功!
返回"
%>
添加图书主要代码
if session("manageraccount")"" and session("managerpassword")"" then
set con=server.createobject("adodb.recordset")
if request("append")="newbook" then
if request("bookname")"" and request("author")"" and request("publisher")"" and request("styl")"" then
' 判断所输入的新是否为厚今推荐, 并以相应数据来填写到表格
if request("commend")="NO" then
comm=0
elseif request("commend")="YES" then
comm=1
end if
sql="insert into book (书名, 作者, 出版社, 类型, 推荐, 图书介绍, 入库日期) values ('"&request("bookname")&"','"&request("author")&"','"&request("publisher")&"','"&request("styl")&"','"&comm&"','"&request("intro")&"','"&date&"')"
conn.execute(sql)
% >
(四)读者管理模块
读者管理模块主要分成两个部分,注册新的读者和注销借书者。本设计规定不能由读者本人注册,必须由管理员注册,注册成功之后,会产生一个读者编号,读者使用此编号登陆图书馆管理系统和借书还书。读者编号和身份证号码共同由于注销读者。被注销的读者将不能再使用本系统进行借书,但是浏览、在线阅读和留言功能还是保留的。读者管理模块界面如图5.4所示:
图5.4读者管理模块界面
Fig.5.4 Reader management module interface
注册新读者代码
elseif request("append")="newreader" then If request("readerName")"" and request("readerPwd")"" and request("readerPwd1")"" and request("IDcard")"" then if request("readerPwd")request("readerPwd1") then response.write "
两次输入的密码必须完全相同!
返回
" else sssql="select * from reader where 身份证ID='"&request("IDcard")&"'" con.open sssql,conn,3,3 if con.eof then con.close sql="insert into reader (会员名, 密码, 身份证ID, 住址, 联系方式, 邮箱) values ('"&request("readerName")&"','"&request("readerpwd1")&"','"&request("IDcard")&"','"&request("address")&"','"&request("tele")&"','"&request("mail")&"')" conn.execute (sql) ssql="select * from reader where 会员名='"&request("readerName")&"' and 密码='"&request("readerpwd1")&"' order by readerID desc"
con.open ssql,conn,3,3 if not con.eof then
response.write "
操作成功!
你的帐号是:" %>
你的用户名是:
请记住这个帐号, 以后登录好用!
继续操作
" end if con.close %>
注销读者主要代码
sql="select * from reader where readerID='"&request("readerNo")&"' and 身份证ID='"&request("IDcard")&"'" con.open sql,conn if not con.eof then con.close sql="delete from reader where readerID='"&request("readerNo")&"' and 身份证ID='"&request("IDcard")&"'" con.open sql,conn response.write "
成功删除读者信息!
返回
" else response.write "
对不起. 出现错误! 可能是找不到你所输入的帐号记录!
返回
" end if %>
(五)图书借还模块
在本系统中,借书有两种方式。一是在下面的界面中输入借书者的ID 号和
图书ID 号,点击借书,假如该读者合法,并且此书没有被借出,则借书成功。另外一种方式是输入读者编号,点击确定,跳转到读者图书借还中心,如图5.6所示,再打入bookid 即可借书。图书借还模块界面如图5.5所示:
图5.5 图书借还模块
Fig.5.5 Book by module
图5.6 读者图书借还中心
Fig.5.6 The readers book circulation center
图书续借主要代码
没有找到你所输入的图书编号.
" end if end if else response.write "
对不起你还没有输入相关的数据,请先输入!
" end if else response.write "
你不是管理员, 没有此操作的权限!
" end if
set con=nothing
conn.close
set conn=nothing %>
(六)资料修改模块
资料修改模块式超级管理员修改自身密码、联系方式、住址的地方。在本系统中,超级管理者的登录名已经确定,不能在后台进行修改。资料修改模块界面如图5.7所示:
图5.7 资料修改模块
Fig.5.7 Data modification module
资料修改主要代码
if session("manageraccount")"" and session("managerpassword")"" then ' 判断是否不管理员身份, 否则不能进行图书资料等修改... if request("mend")="book" then
if request("bookname")"" and request("author")"" and request("publisher")"" and request("styl")"" then if request("commend")="NO" then comm=0 elseif request("commend")="YES" then comm=1 end if
sql="update book set 书名='"&request("bookname")&"',作者='"&request("author")&"',出版社='"&request("publisher")&"',类型='"&request("styl")&"',图书介绍='"&request("intro")&"',推荐='"&comm&"' where bookID="&request("ID") 'sql="update book set 图书介绍='本书介绍了一些经典的物业管理案例. 相当具有参
考价值.'where bookID="&request("ID") conn.execute(sql) response.write "" response.redirect "tsgl.asp" else sql="update reader set 会员名='"&request("readerName")&"',密码='"&request("readerpwd1")&"',身份证ID='"&request("IDcard")&"',住址='"&request("address")&"',联系方式='"&request("tele")&"',邮箱='"&request("mail")&"' where readerID="&request("ID") conn.execute (sql) %>
(七)公告管理模块
公告消息管理模块,主要是为了方便管理员发表公告消息,添加的公告会展示在图书馆管理首页。假如需要删除公告,输入题目的关键字就进入选择列表,选择新闻,点击“删除”就删除成功了。由于公告的性质比较特殊,因此公告没有修改的功能。公告管理模块界面如图5.8所示:
图5.8 公告消息管理模块界面
Fig.5.8 Announcement message management module
删除公告的主要代码
if request("keyword")"输入相关公告信息..." and request("keyword")"" then sql="select * from announce where topic like '%"&request("keyword")&"%'" set con=server.createobject("adodb.recordset")
con.open sql,conn if con.eof then response.write "
没有查找到相关的公告!
返回
" else%>
(八) 在线阅读管理模块
在线阅读是添加一些短文的电子书展现在图书馆管理系统的首页,方便读者进行在线阅读,在线阅读的设计与公告管理一样。输入短文题目的关键字,既能查找删除。管理员输入书名和图书内容这两项,就可以发布文章了。在线阅读管理界面如图5.9所示:
图5.9 在线阅读管理界面
Fig.5.9 Online reading management interface
在线阅读管理主要代码
"输入书名相关信息..." and request("keyword")"" then sql="select * from onlinereading where topic like '%"&request("keyword")&"%'" set con=server.createobject("adodb.recordset") con.open sql,conn if con.eof then
response.write "
没有查找到相关的公告!
返回
" %>
(九) 超级管理模块
超级管理模块是超级管理员才有的权限,在这里超级管理员可以添加和注销普通管理员,还可以设置图书馆参数,查看管理员资料。超级管理模块界面如图5.10所示:
图5.10 在线阅读管理界面
Fig.5.10 Online reading management interface
六、 测试
(一)测试说明
完成系统的实现之后,多多少少都会存在这样那样的错误,因此进行软件测试是非常必要的。软件测试主要分为白盒测试和黑盒测试。白盒测试是对源代码进行测试,通过对源码的路径、条件、溢出、算法等等进行查看,从中找出缺陷和错误,以便程序员对其修改。黑盒测试就是使用用户界面,根据系统的设计需求和设计流程,了解系统的工作模式,检查系统是否能够正确输入或者输出。本次测试主要使用黑盒测试方法,测试主要流程如图6.1所示:
图6-1测试流程图
Fig. 6.1 Testing Flow Chart
由于本人负责的是图书管理系统后台,因此本次测试的范围也局限在后台。测试用到的账号有两个,一个是超级管理员,一个是普通管理员。测试账号说明如表6.1所示:
表6.1 测试账号说明
(二)测试用例以及结果分析
1 、登录模块
表6.2 登陆模块测试
表6.3 图书管理模块测试
表6.4 读者管理模块测试
4 、图书借还模块
表6.5 图书借还模块测试
5、 资料修改模块
表6.6 资料修改模块测试
6 、公告管理模块
表6.7 公告管理模块测试
7、 在线阅读管理模块
6.8 图书管理模块测试
8、 超级管理
表6.9 图书管理模块测试
Tab.6.9 Library management module test
总 结
本次毕业设计的选题还是系统,我一直很想自己能完完整整弄出一个系统,不为别的,只为证明自己真的学到一点东西,不惘多读两年。图书馆管理系统是一个难度比较低的选题,ASP 和SQL 都有曾经学过,本以为这样开展起来会比较顺利,不用像其他的同学那样,要重新学一门网页技术,比如PHP 、JSP 等等。但是事实却不是这样的,数据库系统概论和ASP 的内容早已忘记,零稀的碎片怎么都凑不到一起,还是要重新拾起课本,重头到尾温习一遍。系统里面涉及到很多网站前端设计的知识,CSS+DIV,JavaSCript 都要学习一遍。CSS+DIV在看书的时候觉得好简单,但是真的到自己写了,发现写一个好的CSS 样式并不容易,就算样式写出来了,效果跟想象中的总是有那么一些差距,只能不断修改完善。似乎DreamWeaver 这个网页设计软件很适合我这样的菜鸟使用,因为在修改界面的时候,代码自动生成,也算多多少少学到了一点HTML 的使用方法。学习就是一个参考模仿的过程,想起小时候学美术,画一朵花、一个蝴蝶,照着美术教材上的样子画,画多了就能从中感悟,慢慢总结自己的画法,画出自己的花朵蝴蝶。我觉得做系统也一样,在一点点模仿尝试中,我慢慢地学会了如何做一个网页,虽然是参考的多,毕竟也是一个小小的进步,自己也能有点小高兴。
很早之前就想早点完成毕业设计,毕竟有过一次毕业经验,不想让毕业设计和工作冲突,但是随着大三结束,一连串的实习和考试,毕业设计一拖再拖,还是跟找工作撞到了一块。我不是一个可以一心多用的人,资质又不够聪慧,只能选择工作暂且搁置一边,先把毕业设计搞定再说。在毕业设计刚开始的时候,会觉得很挫败。本想在图书馆做毕业设计能比较平静一点,效率也会比较高,但是笔记本的WIN7自带的IIS7.0一直运行不成功,不支持ASP ,无法连接数据库。上网找了很多解决方案,一一尝试,均以失败告终。请教有经验的同学,同学很热心,对着电脑一坐就是两小时,还是不行。屡战屡败,屡败屡战,折腾了一个星期,最终放弃,选择在台式电脑上做。WIN7的IIS 特别难配置原来不仅仅是我自己一个人的问题,原来很多需要用到IIS 的同学都有这样的经历,最终我们
玩笑说IIS 不适合WIN7。虽然浪费了很多时间,但也算一个经历,毕竟听人家说总没有自个儿来的感同身受。
挫折不会一直跟着你,当换成台式电脑,配置好运行环境之后,一切都变得顺利了,心情也跟着愉悦起来,对着电脑一整天都不觉得累,还觉得很有干劲,很久很久没有这样的感觉了,觉得自己很有激情和活力。在网页设计中,我最喜欢的就是界面设计,每一种颜色每一个字体都需要经过推敲才能与整体有一个很好地契合,摆放在一块方能赏心悦目,最这个事情的时候我很有成就感。而最让我头疼的就是算法,我的逻辑思维能力简直可以等同为零,一个非常简单的算法,在我这里总绕不过去。在写算法的时候,尽管网上有很多现成的代码,只需要根据自己的实际要求进行修改即可,但这对我来说也是一个非常具有挑战性的工作。在做着一个部分的时候,常常让我想起冒泡排序法,那三个FOR 循环,我怎么都弄不懂,曲超老师说是考试必考内容,于是乎,我硬是在期末考试之前背了下来,总算有惊无险应付过了考试。
无论如何,毕业设计总算做完,在这段时间收获的不仅是技术上的东西,更是心态上的平衡和调节。让我自己更加清楚地认识自己的优劣。希望毕业一切顺利。
借书主要代码 |
本 科 毕 业 设 计 题 目:图书馆管理系统——后台管理
图书馆管理系统——后台管理
摘要:随着科学技术的发展,图书馆管理也告别了传统的人工管理,开始采用数字化的计算机管理的方式,这使得图书管理变得越来越人性化,受到了公众的好评。目前,各大图书馆、书店都采取了图书管理系统对自身的图书进行管理,大大地节约了人力物力和财力,提高了工作的效率和准确程度,也使图书查找变得简单快捷,打破了传统的手工查找模式,实现了图书上传、查询、借阅、还书、续借、过期缴费一条线自动化服务。通过查阅资料,以及和同学研究讨论,在本项目中,我负责的是图书馆管理后台系统,主要分为图书管理模块、读者管理模块、图书管理员模块三部分,实现图书信息、读者信息、管理员信息的浏览、查询、添加、修改删除,从而实现图书馆后台管理自动化。
关键词:数字化,图书管理,效率,后台系统
Library Management System——Back-office Systems Abstract :As the developmenting of sciencetist , library management also become more manual , and began to use computer to manage, library management which makes it more humane, has been praised by the public. Currently, the major libraries, bookstores have taken a library management system to manage their own books, which greatly saves manpower and material and financial resources, to improve the efficiency and accuracy of Books Find quick and easy, breaking the traditional manual search mode, the book is uploaded, query, borrow books, renewal, overdue payment line automation services. The project is based on the understanding of the school library management system, by what they have learned, graduation, to complete the design of a library management system. In this project, I am responsible for the library management background system, library management module, the reader management module, librarian module is divided into three parts, the book information, the reader information, the administrator information browsing, query, add, modification and deletion, in order to achieve the library Admin automation.
Key words: digital, library management, efficiency, back-office systems
目 录
一、概述 ................................................ 1
(一)课题背景及意义 . .......................................... 1
(二)课题的研究内容与开发目的 ................................. 1
二 、运行环境介绍 ....................................... 2
(一)系统运行环境配置 ......................................... 2
(二)Macromedia Dreamweaver 8简介 ............................ 2
(三)Microsoft SQL Server 2005简介 ........................... 2
(四)ASP 技术介绍 ............................................. 3
三、系统需求分析与总体设计 . .............................. 4
(一)系统需求分析 . ............................................ 4
(二)系统流程分析 . ............................................ 4
(三)系统数据流图 . ............................................ 5
(四)系统功能分析 . ............................................ 6
(五)概要设计 . ................................................ 7
四 、数据库结构设计与实现 . .............................. 17
(一)数据库设计 . ............................................. 17
(二)数据库详细设计 . ......................................... 17
(三)数据结构表之间的关系 .................................... 21
五、详细设计以及系统实现 . ............................... 22
(一)登陆窗口 . ............................................... 22
(二)管理中心欢迎界面 ........................................ 23
(三)图书管理模块 . ........................................... 24
(四)读者管理模块 . ........................................... 26
(五)图书借还模块 . ........................................... 28
(六)资料修改模块 . ........................................... 31
(七)公告管理模块 . ........................................... 32
(八)在线阅读管理模块 ........................................ 33
六、 测试 .............................................. 35
(一)测试说明 . ............................................... 35
(二)测试用例以及结果分析 .................................... 36
总 结 ............................................... 44 参考文献 ............................... 错误!未定义书签。 致 谢 ............................... 错误!未定义书签。
一、概 述
(一) 课题背景及意义
随着经济的不断发展,人们的生活水平得到了很大的提高,越来越多的人不再仅仅满足于物质的追求,对精神文化的需求也越来越大。书籍作为人类的精神粮食,数量以几何级别增长。图书管理也越来越先进了,人们告别繁琐的工作,用数字化的图书馆管理系统快速找书、借书、还书,还可以轻易地从图书馆的查询功能得知一本书籍的主要内容,是否是自己真正想要寻找的书籍,大大节省了时间和人力物力。
(二)课题的研究内容与开发目的
本课题立足实际,根据大学的所学知识,采取B/S(浏览器/服务器)结构,运用ASP 动态网页技术和SQL Server 数据库技术,希望能尽己所能,模拟实际情况,开发一个满足用户需求的拟图书馆管理系统。本系统由于硬件所限,不会用到借书卡和RIDF 扫描工具,均使用唯一的编码代替读者身份和图书。本系统分为前台和后台,主要功能有图书馆管理、读者管理、图书借还、在线阅读、留言板、图书检索等功能。本课题的主要目的是巩固学习内容,提高动手能力,为毕业之后走入社会打下坚定的项目基础。
二 、运行环境介绍
(一)系统运行环境配置
安装IIS 的方法有很多,只要跟着步骤一步一步安装即可。需要特别注意的是WIN7系统是自带IIS7.0的,我们不需要去安装,但是要选择IIS 的附带信息,配置起来比较繁琐,因此建议不要使用WIN7系统。
SQL Server 2005 对系统的硬件和软件有一定的要求方能顺利安装,否则,硬件和软件的不兼容性会导致安装不成功。硬件要求:CPU 要在166MHz 以上,内存最少要有128MB 空间,硬盘的声誉空间应该有300MB 以上。现在的电脑配置一般都可以安装SQL Server 2005 。SQL Server 2005 的安装过程与其他微软的软件类似,跟着提示一步一步安装即可。
(二) Macromedia Dreamweaver 8简介
作为网页三剑客中最重要的一个,Dreamweaver 不仅功能强大,操作简便,入门简单,界面非常友好,即使是没有学过网页设计的非专业人士也能使用它来设计出非常漂亮的网站界面,深得人心。Dreamweave 另一个非常有优势的功能就是分为代码、拆分、设计三个界面,可以根据实际的需要进行选择,设计界面修改时,会自动生成HTML 标志语言,用户体验非常好。
(三) Microsoft SQL Server 2005简介
相信任何一个学计算机的学生对于Microsoft SQL Server 2005都不会感到陌生。SQL 是ServerStructured Query Language 的缩写,意思是结构话查询语言,我们就是用这种语言把内容插入数据库,或者从数据库中查询、修改、删除。SQL Server 2005微软一个非常强大的数据处理软平台,通过这个平台,我们能高效地处理成千上万的数据。
(四) ASP技术介绍
ASP 是Active Server Pages的缩写,意思是动态服务器网页技术。ASP 学习简单易懂,对运行环境的要求也很简单,因此在初期深受欢迎,但是由于ASP 兼容性比较弱,现在已经比较少用了。ASP 文件的后缀是.asp ,其实就是在HTML 文件中嵌入VBScript 或者JavaScript 。
【男人最怕什么?】
没人羡慕你有几百块钱,但是绝对有人羡慕你半个小时
男人怕什么,不怕外面风吹雨淋,就怕老婆说不行
她们女人怕什么,不怕跟你受苦受累,就怕你是窝囊废
我们可以没钱没地位,但是你不能连她基本的生. 理渴. 望都满足不了别成窝囊废,马老中医威/亻言msdf003一直都在关爱你的性福生活。
三、系统需求分析与总体设计
(一) 系统需求分析
随着图书出版数量的增加,图书馆的规模增大,传统的图书管理模式的缺陷也越来越明显:图书存放混乱,人工查询图书耗时耗力,借阅管理难度大等等,因此必遭淘汰。取而代之的是数字自动化的图书馆管理模式。新型的图书馆管理系统采用数字化,打破时空界限,读者不用去到图书馆就能查询图书馆的图书,也能登陆自己的账户实行续借,还可以随时获取图书馆的最新公告信息,实现足不出户知天下事,非常方便。对于图书馆管理员来说更是一个福音,所有的图书流通步骤都实现了自动化,大大提高了工作效率,减轻了工作量,而且图书的管理也更加有效。因此图书馆管理系统是有市场需求的。
根据调查,图书馆管理系统的需求非常的清晰,那就是把图书的流通过程都实现网络化,实现图书检索、借阅、续借、罚金计算、图书添加删除修改、读者添加修改删除、管理员添加修改删除功能。为了丰富图书馆前台的功能,增加图书馆管理者与读者之间的交流,加快信息流通,增加留言板模块、在线阅读模块、公告模块和图书推荐模块。
(二) 系统流程分析
本系统中读者可以登录个人中心留言、查看留言信息、以及图书借阅;管理员登录后台之后,有图书管理、读者管理、图书借阅管理、个人资料修改,公告管理、在线阅读管理、留言管理共七个功能模块,管理员可以对其进行操作。系统流程图如图3.1所示:
图3.1 系统流程图
Fig.3.1 system flow chart
(三) 系统数据流图
结合系统实际使用用户,本系统共分为管理员、读者、游客三种角色。管理员登陆后进入系统后台界面,可以对图书、读者、公告、留言板、借阅、在线阅读进行管理,以及对个人资料进行修改。超级管理员还可以增加、删除普通管理员。读者登陆图书馆系统,可以对公告、图书推荐、在线阅读、留言板进行浏览,还可以进入个人中心续借图书,查看与自己相关的留言。游客不需要注册就可以像浏览网页一样,查询图书和公告、在线阅读短文以及留言。
把上面的过程归类整理分析,可以得出本系统的数据流图,如图3.2所示:
图3.2 系统数据流图
Fig.3.2 The system data flow diagram
(四) 系统功能分析
本图书管理系统后台的系统功能主要有:
1) 登陆功能:管理员输入用户名和密码,通过验证即可登陆。
2) 图书管理功能:包括删除、修改、添加图书三个小功能:
① 图书删除:输入书名相关的字,进入选择窗口,选择删除即可;
② 图书修改:输入书名相关的字,进入选择窗口,修改信息,确定保存; ③ 图书添加:输入图书基本信息,通过检验,即可添加成功。
3) 读者管理功能:包括注册新读者和注销读者两个小功能:
① 注册新读者:输入新读者的基本信息,*号项填写完整即可;
② 注销读者:输入读者的读者编号和身份证号码,确定注销。
4) 图书借还功能:一共有借书、还书、续借功能:
① 借书:输入读者编号,再输入图书编号即可;
② 还书:输入读者编号,选择要还书的图书,点击“还书”即可;
③ 续借:输入读者编号,选择需要续借的图书,确认续借,已续借的图书
不能再续借。
5) 资料修改功能:资料修改可以修改管理人个人的密码、联系方式和住址。 6) 公告管理功能:包括添加公告和删除公告。
① 添加公告:输入公告题目和内容这两个必填项即可。
② 除公告:输入公告题目相关信息,进入选择界面,点击删除即可。 7) 在线阅读功能:在线阅读可以在线阅读短文,符合现代人的阅读习惯。 8) 超级管理功能:包括添加新管理员和删除管理员,与读者管理一致。 (五) 概要设计 1 、实体介绍
(1)图书实体有BookID ,书名,图书介绍、借阅次数、作者、是否借出、出版社、类型、推荐、入库日期共10个属性。其中BookID 是主属性,唯一主键。如图3.3所示:
图3.3 图书实体 Fig.3.3 Book entity
(2)公告信息实体只有四个属性,分别是ID 、题目、内容和发布时间。其中ID 主属性,唯一主键。如图3.4所示:
图3.4 公告信息实体
Fig.3.4 Bulletin information entity
(3)留言信息实体,有ID 、留言题目、留言人名字、留言人电话号码、留言时间、留言内容、管理员回复、回复时间共8个属性。其中ID 是主属性,唯一主键。如图3.5所示:
图3.5 留言信息实体 Fig.3.5 Message entity
(4)管理员实体,有ID 、名称、密码、电话号码、地址、是否是超级管理员共六个属性。其中ID 是主属性,唯一主键。如图3.6
所示:
图3.6 管理员实体
Fig.3.6 Administrator entity
(5)读者实体,有ReaderID 、名称、密码、省份证ID 、地址、联系方式、邮箱、罚金共8个属性,其中ReaderID 是主属性,唯一主键。如图3.7所示:
图3.7 读者实体 Fig.3.7 Reader entity
(6)借阅信息实体,有BookID 、ReaderID 、借阅日期、是否续借、是否超期、超期天数共6个属性。其中,BookID 和ReaderID 共同作为主键。如图3.8所示:
图3.8 借阅信息实体
Fig.3.8 Borrowing information entity
2、 全局E-R 图
在本图书管理系统中,共有读者和管理员两个用户,实体有图书、公告、留言三个,它们之间存在下面的关系:由此可以画出全局E-R 图,如下图所示: 1) 一个读者可以借阅多本图书,一本书可以被多个读者借阅;管理员和图书之
间的关系是多对多。
2) 一位读者可以发布多条留言,同一个留言只能由一个读者发布,管理员可以
回复或者删除多条留言。
3) 一个读者可以浏览多条公告,一条公告可以被多个读者浏览;一个公告可以
被多个管理员管理,一个管理员可以管理多个公告。 由此可以画出全局E-R 图,如图3.9所示:
图3.9
全局E-R 图
Fig.3.9 Global E-R diagram
3、系统流程设计
本图书馆管理系统结构图如图3.10所示:
图3.10 系统结构图
Fig.3.10 System structure
(1)管理员登陆模块
在本系统设计中,管理员从系统首页(index.asp )的“管理中心”进入管理员登陆界面(login.htm ),只有管理员的用户名和密码都正确才能通过验证,
跳转到管理员中心(default.asp ),否则会有错误提示“错误:你所输入的帐号或密码错误! 请确定后再重新登录! ”,这是可以点击“登陆”重新输入用户名和密码,也可以点击“返回”放弃登陆,回到首页。流程图如3.11所示:
图3.11 管理员登陆模块流程图
Fig.3.11 Administrator landing module flowchart
(2)图书管理模块
进入图书馆管理界面(tsgl.asp )页面,管理员有添加、删除、修改图书基本信息功能。管理员输入书名或者书名中的几个关键字,就可以查找到要修改或者删除的图书,点击“删除”就会提示删除成功,点击“修改”就能进入修改界面(alter.asp ),修改好信息之后,保存就修改成功了,假如修改信息不完整,会提示错误。添加图书信息和修改图书信息一样,必须要保证所有*号项全部填写完整,否则会出错。如图3.12所示:
图3.12 图书管理流程图
Fig.3.12 Library management flowchart
(3)图书借还模块
按照本系统的设计,读者不能借阅图书,只能通过管理员才能借阅。管理员输入读者的编码,但是能进入读者个人借书中心(tsjh1.asp ),再输入要借的图书编号,确认,该书就会记录在该读者的记录里。对于续借功能,读者可以在个人中心自主续借,管理员也可帮助读者续借。如图3.13所示:
图3.13 图书借还模块流程图 Fig.3.13 Book by module flowchart
(4)读者管理模块
在本系统中,读者不能自主注册,只有管理员可以统一帮读者注册。管理员进入读者管理界面(dzgl.asp ),输入读者注册信息,带“*”号项目一定要填写完整,否则提示错误,如果注册成功也会有提示。注销读者只需要输入读者编码和身份证号码就可以了,信息出错和注销成功都会有相应的提示。如图3.14所示:
图3.14 读者管理模块流程图
Fig.3.14 The reader management module flowchart
(5)资料修改模块
资料修改模块的流程设计比较简单,管理员进入资料修改界面(zlgg.asp ),就可以修改密码、联系方式、住址等信息。信息不完整或者两次输入的密码不一致都会提示错误,管理员可以返回重新输入信息或者放弃修改。如图3.15所示:
图3.15 资料修改模块流程图
Fig.3.15 Modification module flowchart
(6)在线阅读管理模块
在线阅读是为了丰富系统内容而设置的,有删除文章和添加文章两个功能。进入在线阅读管理界面(zxydgl.asp ),输入要删除的文章题目或者关键字,提交信息,系统会检查是否有对应的文章,没有的话会提示错误,有的话会显示出来,然后点击确认删除即可删除成功。添加功能操作差不多,输入文章信息,信息完整就可以添加了。如图3.16所示:
图3.16 在线阅读管理模块流程图
Fig.3.16 The online management module flowchart
(7)公告管理模块
公告管理月在线阅读的设计流程一致,有添加公告和删除公告两个功能。管理员进入公告管理界面(gggl.asp ),在对应的地方输入要删除的公告题目,提交信息,通过验证后,就可以选择对应项进行删除。添加公告也一样,只要输入信息完整则可以添加公告。如图3.17所示:
图3.17 公告管理模块流程图
Fig.3.17 Announcements management module flowchart
(8)超级管理员管理
超级管理员的用户名设置为Adminisrator ,并且只有一个,不能修改。超级管理员有添加和注销普通管理员的权限。添加和删除管理员与注册新读者、删除读者设计流程一样。图书馆参数,包括借书期限,最大借书量,超期罚金,附加管理条例五项,超级管理员可以根据实际需要进行修改。如图3.18所示:
图3.18 超级管理员管理流程图
Fig.3.18 Super administrator manage flowchart
四 、数据库结构设计与实现
(一)数据库设计
结合实际,本系统设计一共涉及8个数据结构表,它们分别是:图书信息表、读者信息表,借阅信息表,管理员信息表,留言信息表,公告信息表,在线阅读信息表,图书馆参数表,数据结构表名称对应的含义如下表4.1所示:
表格4.1 数据结构表
Tab.4.1 Data structure Table
(二) 数据库详细设计
(1)图书信息表(book ):图书信息表的主要功能是存放图书的基本信息。包括图书的编码(主键),图书名,图书作者,推荐、是否借出,借阅次数、出版社,类型,入库日期,图书的介绍,共11项信息。其中“推荐”字段是一个(bit )类型字段,用True 来表示图书馆管理员推荐该书,用False 表示不推荐。“是否借出”也是一个(bit )类型字段,用True 里奥表示该书已经被读者借出,用False 表示该书仍保存在馆中。其数据表的结构图如表4.2所示:
表4.2 book图书信息表
Tab.4.2 Book Information Table
(2)借阅信息表(borrow ):借阅信息表的主要用途是存储读者的借书情况。包括readerID ,bookID ,借阅日期,是否续借,是否超期,超期天数,共6项信息。该表与图书信息表有关联,因此用readerID 和bookID 作为主键,分别与reader 表和book 表中的readerID ,bookID 相对应,用来区别不同的读者借了不同的书籍。“是否续借”字段的数据类型是bit ,主要功能是存储读者的续借信息,Ture 表示续借,False 表示相反;“是否超期”字段也是一个bit 类型数据,主要功能是存储读者所借的图书是否超过规定的期限(本系统设计还书期限是?月),如果超期,系统会根据算法自动计算超期的天数,存放在“超期天数”字段里。其数据表的结构图如表4.3所示:
表4.3 borrow借阅信息表
Tab.4.3 Lending information Table
(3)读者信息表(reader ):读者信息表的主要功能是存储读者的基本信息。包括读者唯一编码readerID (主键,在注册新读者的时候由系统自动生成,读者登陆、借书、还书都要用到此ID ),读者姓名,登陆密码,身份证号码,现居地
址,联系方式,邮箱地址,超期罚金,共9项信息。罚金与borrow 表中的超期天数关联,根据超期天数算出罚款金额。其数据表的结构图如表4.4所示: 表4.4 reader读者信息表
Tab.4.4 Reader information Table
(4)管理员信息表(manager ):管理员信息表的主要用途是存储管理员的资料信息,以及操作权限。包括ID ,manangerName ,mangerPwd ,isAdmin ,Telephone ,Address ,共6项信息。其中超级管理员只有一个,普通管理员的“isAdmin ”都为False 。其数据表的结构图如表4.5所示:
表4.5 manager管理员信息表
Tab.4.5 Administrator information Table
(5)留言信息表(Lyan ):留言信息表的主要功能是存储留言板的基本信息,包括ID ,Topic ,Name ,Telephone ,TheDate ,Content ,Reply ,ReplyDate ,共8项信息。“Reply ”字段存储回复内容,只能由管理员回复;ReplyDate 由系统自动获取当前时间。其数据表的结构图如表4.6所示:
表4.6 Lyan留言信息表
Tab.4.6 Message Table
(6)公告表(Announce ):公告信息表的主要功能是存储用公告栏的新闻通知,由管理员从后台发布。包括ID ,Topic ,Content ,TheDate ,共4项信息。公告信息表相对独立,与其他表没有关联。其数据表的结构图如表4.7所示:
表4.7 announce公告信息表
Tab.4.7 The announcement information Table
(7)在线阅读信息表(onlineReading ):在线阅读信息表的主要功能是存储在线阅读的短文内容。包括ID ,Topic ,Content ,Indate ,Illuminate ,共5项基本信息。在线阅读模块式为了增加系统的丰富性而设计的,与其他表也没有关联。其数据表的结构图如表4.8所示:
表4.8 onlineReading在线阅读信息表
Tab.4.8
Online reading information Table
(8)图书馆参数表(LibraryDetail ):图书馆参数表的主要功能是存储图书馆的规则参数信息。包括ID ,借书期限,借书数量,超期罚金,管理制度,共5项基本信息。在本系统中,借书期限是30天,每个读者的借书上限是5本,超出期限的罚金是0.1元/天。其数据表的结构图如表4-9所示:
表4.9 LibraryDetail图书馆参数表
Tab.4.9 Library parameter Table
(三)数据结构表之间的关系
在本次数据库的设计中,只有book 表、reader 表以及borrow 表之间存在着对应的约束关系,其中bookID 与readID 存在一对一的关系,其关系图如图4.1所示:
图4.1 数据结构表关系图
Fig.4.1 Data structure Tab.le relationship diagram
五、详细设计以及系统实现
根据前文所述,本系统的后台涉及到图书管理、读者管理、图书借还、资料修改、公告管理、在线阅读、超级管理等模块。接下来将详细介绍每一个模块的设计与实现。
(一) 登陆窗口
管理员在进入后台管理中心之前要通过身份验证,因此设计管理员登陆界面(login.htm ),只有管理员的用户名和密码都正确才能通过验证,验证的信息有:一、用户名是否存在,用户名和用户密码是否匹配;二、根据用户权限提供不同的管理功能模块。通过验证的用户可以顺利登陆管理中心。登陆界面如图
5.1所示:
图5.1 登陆界面
Fig.5.1 Login interface
登陆验证主要代码
if request("managername")"" and request("managerpwd")"" then
set con=server.createobject("adodb.recordset")
' 生成SQL 语句
sql="select * from manager where managerName='"& request("managername") & "' and managerPwd='" & request("managerpwd")&"'"
con.open sql,conn,3,3
if not con.eof then
session("manageraccount")=request("managername")
session("managerpassword")=request("managerpwd")
if con("isadmin")=true then
session("administrator")="YES"
end if
response.redirect "default.asp"
else
response.write "
错误:你所输入的帐号或密码错误! 请确定后再重新登录!
登录 返回首页
"
end if
con.close
set con=nothing
conn.close
set conn=nothing
else
response.write "
错误:你所输入的帐号或密码错误! 请确定后再重新登录!
登录 返回首页
"
end if
end if
%>
(二) 管理中心欢迎界面
成功登陆之后,系统会自动跳转到图书馆管理中心欢迎界面,界面的左边是管理员所拥有的功能,右边是对管理官职责的描述。管理员的职能描述是嵌入在HTML 代码里面的,不是从数据库里读出来的,没有办法从后台进行修改。管理
中心欢迎界面如图5.2所示:
图5.2 管理中心欢迎界面
Fig.5.2 Management Center Welcome interface
(三)图书管理模块
管理员进入图书管理窗口之后,在上方写入书名的相关信息就可以实现修改或者删除图书信息。下面设计的是新书入库,其中书名、作者、出版社是三个必填项,如果为空的话会报错。图书馆借界面如图5.3所示:
图5.3 图书管理界面
Fig.5.3 Library management interface
修改功能主要代码
if session("manageraccount")"" and session("managerpassword")"" then
if request("alter")="book" then
set con=server.createobject("adodb.recordset")
sql="select * from book where bookID="&request("ID")
con.open sql,conn
%>
删除图书功能主要代码
if session("manageraccount")"" and session("managerpassword")"" then
set con=server.createobject("adodb.recordset")
if request("delete")="book" then
sql="delete from book where bookID="&request("ID")
con.open sql,conn
response.write "
删除图书数据成功!
返回"
%>
添加图书主要代码
if session("manageraccount")"" and session("managerpassword")"" then
set con=server.createobject("adodb.recordset")
if request("append")="newbook" then
if request("bookname")"" and request("author")"" and request("publisher")"" and request("styl")"" then
' 判断所输入的新是否为厚今推荐, 并以相应数据来填写到表格
if request("commend")="NO" then
comm=0
elseif request("commend")="YES" then
comm=1
end if
sql="insert into book (书名, 作者, 出版社, 类型, 推荐, 图书介绍, 入库日期) values ('"&request("bookname")&"','"&request("author")&"','"&request("publisher")&"','"&request("styl")&"','"&comm&"','"&request("intro")&"','"&date&"')"
conn.execute(sql)
% >
(四)读者管理模块
读者管理模块主要分成两个部分,注册新的读者和注销借书者。本设计规定不能由读者本人注册,必须由管理员注册,注册成功之后,会产生一个读者编号,读者使用此编号登陆图书馆管理系统和借书还书。读者编号和身份证号码共同由于注销读者。被注销的读者将不能再使用本系统进行借书,但是浏览、在线阅读和留言功能还是保留的。读者管理模块界面如图5.4所示:
图5.4读者管理模块界面
Fig.5.4 Reader management module interface
注册新读者代码
elseif request("append")="newreader" then If request("readerName")"" and request("readerPwd")"" and request("readerPwd1")"" and request("IDcard")"" then if request("readerPwd")request("readerPwd1") then response.write "
两次输入的密码必须完全相同!
返回
" else sssql="select * from reader where 身份证ID='"&request("IDcard")&"'" con.open sssql,conn,3,3 if con.eof then con.close sql="insert into reader (会员名, 密码, 身份证ID, 住址, 联系方式, 邮箱) values ('"&request("readerName")&"','"&request("readerpwd1")&"','"&request("IDcard")&"','"&request("address")&"','"&request("tele")&"','"&request("mail")&"')" conn.execute (sql) ssql="select * from reader where 会员名='"&request("readerName")&"' and 密码='"&request("readerpwd1")&"' order by readerID desc"
con.open ssql,conn,3,3 if not con.eof then
response.write "
操作成功!
你的帐号是:" %>
你的用户名是:
请记住这个帐号, 以后登录好用!
继续操作
" end if con.close %>
注销读者主要代码
sql="select * from reader where readerID='"&request("readerNo")&"' and 身份证ID='"&request("IDcard")&"'" con.open sql,conn if not con.eof then con.close sql="delete from reader where readerID='"&request("readerNo")&"' and 身份证ID='"&request("IDcard")&"'" con.open sql,conn response.write "
成功删除读者信息!
返回
" else response.write "
对不起. 出现错误! 可能是找不到你所输入的帐号记录!
返回
" end if %>
(五)图书借还模块
在本系统中,借书有两种方式。一是在下面的界面中输入借书者的ID 号和
图书ID 号,点击借书,假如该读者合法,并且此书没有被借出,则借书成功。另外一种方式是输入读者编号,点击确定,跳转到读者图书借还中心,如图5.6所示,再打入bookid 即可借书。图书借还模块界面如图5.5所示:
图5.5 图书借还模块
Fig.5.5 Book by module
图5.6 读者图书借还中心
Fig.5.6 The readers book circulation center
图书续借主要代码
没有找到你所输入的图书编号.
" end if end if else response.write "
对不起你还没有输入相关的数据,请先输入!
" end if else response.write "
你不是管理员, 没有此操作的权限!
" end if
set con=nothing
conn.close
set conn=nothing %>
(六)资料修改模块
资料修改模块式超级管理员修改自身密码、联系方式、住址的地方。在本系统中,超级管理者的登录名已经确定,不能在后台进行修改。资料修改模块界面如图5.7所示:
图5.7 资料修改模块
Fig.5.7 Data modification module
资料修改主要代码
if session("manageraccount")"" and session("managerpassword")"" then ' 判断是否不管理员身份, 否则不能进行图书资料等修改... if request("mend")="book" then
if request("bookname")"" and request("author")"" and request("publisher")"" and request("styl")"" then if request("commend")="NO" then comm=0 elseif request("commend")="YES" then comm=1 end if
sql="update book set 书名='"&request("bookname")&"',作者='"&request("author")&"',出版社='"&request("publisher")&"',类型='"&request("styl")&"',图书介绍='"&request("intro")&"',推荐='"&comm&"' where bookID="&request("ID") 'sql="update book set 图书介绍='本书介绍了一些经典的物业管理案例. 相当具有参
考价值.'where bookID="&request("ID") conn.execute(sql) response.write "" response.redirect "tsgl.asp" else sql="update reader set 会员名='"&request("readerName")&"',密码='"&request("readerpwd1")&"',身份证ID='"&request("IDcard")&"',住址='"&request("address")&"',联系方式='"&request("tele")&"',邮箱='"&request("mail")&"' where readerID="&request("ID") conn.execute (sql) %>
(七)公告管理模块
公告消息管理模块,主要是为了方便管理员发表公告消息,添加的公告会展示在图书馆管理首页。假如需要删除公告,输入题目的关键字就进入选择列表,选择新闻,点击“删除”就删除成功了。由于公告的性质比较特殊,因此公告没有修改的功能。公告管理模块界面如图5.8所示:
图5.8 公告消息管理模块界面
Fig.5.8 Announcement message management module
删除公告的主要代码
if request("keyword")"输入相关公告信息..." and request("keyword")"" then sql="select * from announce where topic like '%"&request("keyword")&"%'" set con=server.createobject("adodb.recordset")
con.open sql,conn if con.eof then response.write "
没有查找到相关的公告!
返回
" else%>
(八) 在线阅读管理模块
在线阅读是添加一些短文的电子书展现在图书馆管理系统的首页,方便读者进行在线阅读,在线阅读的设计与公告管理一样。输入短文题目的关键字,既能查找删除。管理员输入书名和图书内容这两项,就可以发布文章了。在线阅读管理界面如图5.9所示:
图5.9 在线阅读管理界面
Fig.5.9 Online reading management interface
在线阅读管理主要代码
"输入书名相关信息..." and request("keyword")"" then sql="select * from onlinereading where topic like '%"&request("keyword")&"%'" set con=server.createobject("adodb.recordset") con.open sql,conn if con.eof then
response.write "
没有查找到相关的公告!
返回
" %>
(九) 超级管理模块
超级管理模块是超级管理员才有的权限,在这里超级管理员可以添加和注销普通管理员,还可以设置图书馆参数,查看管理员资料。超级管理模块界面如图5.10所示:
图5.10 在线阅读管理界面
Fig.5.10 Online reading management interface
六、 测试
(一)测试说明
完成系统的实现之后,多多少少都会存在这样那样的错误,因此进行软件测试是非常必要的。软件测试主要分为白盒测试和黑盒测试。白盒测试是对源代码进行测试,通过对源码的路径、条件、溢出、算法等等进行查看,从中找出缺陷和错误,以便程序员对其修改。黑盒测试就是使用用户界面,根据系统的设计需求和设计流程,了解系统的工作模式,检查系统是否能够正确输入或者输出。本次测试主要使用黑盒测试方法,测试主要流程如图6.1所示:
图6-1测试流程图
Fig. 6.1 Testing Flow Chart
由于本人负责的是图书管理系统后台,因此本次测试的范围也局限在后台。测试用到的账号有两个,一个是超级管理员,一个是普通管理员。测试账号说明如表6.1所示:
表6.1 测试账号说明
(二)测试用例以及结果分析
1 、登录模块
表6.2 登陆模块测试
表6.3 图书管理模块测试
表6.4 读者管理模块测试
4 、图书借还模块
表6.5 图书借还模块测试
5、 资料修改模块
表6.6 资料修改模块测试
6 、公告管理模块
表6.7 公告管理模块测试
7、 在线阅读管理模块
6.8 图书管理模块测试
8、 超级管理
表6.9 图书管理模块测试
Tab.6.9 Library management module test
总 结
本次毕业设计的选题还是系统,我一直很想自己能完完整整弄出一个系统,不为别的,只为证明自己真的学到一点东西,不惘多读两年。图书馆管理系统是一个难度比较低的选题,ASP 和SQL 都有曾经学过,本以为这样开展起来会比较顺利,不用像其他的同学那样,要重新学一门网页技术,比如PHP 、JSP 等等。但是事实却不是这样的,数据库系统概论和ASP 的内容早已忘记,零稀的碎片怎么都凑不到一起,还是要重新拾起课本,重头到尾温习一遍。系统里面涉及到很多网站前端设计的知识,CSS+DIV,JavaSCript 都要学习一遍。CSS+DIV在看书的时候觉得好简单,但是真的到自己写了,发现写一个好的CSS 样式并不容易,就算样式写出来了,效果跟想象中的总是有那么一些差距,只能不断修改完善。似乎DreamWeaver 这个网页设计软件很适合我这样的菜鸟使用,因为在修改界面的时候,代码自动生成,也算多多少少学到了一点HTML 的使用方法。学习就是一个参考模仿的过程,想起小时候学美术,画一朵花、一个蝴蝶,照着美术教材上的样子画,画多了就能从中感悟,慢慢总结自己的画法,画出自己的花朵蝴蝶。我觉得做系统也一样,在一点点模仿尝试中,我慢慢地学会了如何做一个网页,虽然是参考的多,毕竟也是一个小小的进步,自己也能有点小高兴。
很早之前就想早点完成毕业设计,毕竟有过一次毕业经验,不想让毕业设计和工作冲突,但是随着大三结束,一连串的实习和考试,毕业设计一拖再拖,还是跟找工作撞到了一块。我不是一个可以一心多用的人,资质又不够聪慧,只能选择工作暂且搁置一边,先把毕业设计搞定再说。在毕业设计刚开始的时候,会觉得很挫败。本想在图书馆做毕业设计能比较平静一点,效率也会比较高,但是笔记本的WIN7自带的IIS7.0一直运行不成功,不支持ASP ,无法连接数据库。上网找了很多解决方案,一一尝试,均以失败告终。请教有经验的同学,同学很热心,对着电脑一坐就是两小时,还是不行。屡战屡败,屡败屡战,折腾了一个星期,最终放弃,选择在台式电脑上做。WIN7的IIS 特别难配置原来不仅仅是我自己一个人的问题,原来很多需要用到IIS 的同学都有这样的经历,最终我们
玩笑说IIS 不适合WIN7。虽然浪费了很多时间,但也算一个经历,毕竟听人家说总没有自个儿来的感同身受。
挫折不会一直跟着你,当换成台式电脑,配置好运行环境之后,一切都变得顺利了,心情也跟着愉悦起来,对着电脑一整天都不觉得累,还觉得很有干劲,很久很久没有这样的感觉了,觉得自己很有激情和活力。在网页设计中,我最喜欢的就是界面设计,每一种颜色每一个字体都需要经过推敲才能与整体有一个很好地契合,摆放在一块方能赏心悦目,最这个事情的时候我很有成就感。而最让我头疼的就是算法,我的逻辑思维能力简直可以等同为零,一个非常简单的算法,在我这里总绕不过去。在写算法的时候,尽管网上有很多现成的代码,只需要根据自己的实际要求进行修改即可,但这对我来说也是一个非常具有挑战性的工作。在做着一个部分的时候,常常让我想起冒泡排序法,那三个FOR 循环,我怎么都弄不懂,曲超老师说是考试必考内容,于是乎,我硬是在期末考试之前背了下来,总算有惊无险应付过了考试。
无论如何,毕业设计总算做完,在这段时间收获的不仅是技术上的东西,更是心态上的平衡和调节。让我自己更加清楚地认识自己的优劣。希望毕业一切顺利。
借书主要代码 |