Web的图书管理系统的设计与开发.docx

上传人:b****1 文档编号:2851935 上传时间:2023-05-04 格式:DOCX 页数:28 大小:238.64KB
下载 相关 举报
Web的图书管理系统的设计与开发.docx_第1页
第1页 / 共28页
Web的图书管理系统的设计与开发.docx_第2页
第2页 / 共28页
Web的图书管理系统的设计与开发.docx_第3页
第3页 / 共28页
Web的图书管理系统的设计与开发.docx_第4页
第4页 / 共28页
Web的图书管理系统的设计与开发.docx_第5页
第5页 / 共28页
Web的图书管理系统的设计与开发.docx_第6页
第6页 / 共28页
Web的图书管理系统的设计与开发.docx_第7页
第7页 / 共28页
Web的图书管理系统的设计与开发.docx_第8页
第8页 / 共28页
Web的图书管理系统的设计与开发.docx_第9页
第9页 / 共28页
Web的图书管理系统的设计与开发.docx_第10页
第10页 / 共28页
Web的图书管理系统的设计与开发.docx_第11页
第11页 / 共28页
Web的图书管理系统的设计与开发.docx_第12页
第12页 / 共28页
Web的图书管理系统的设计与开发.docx_第13页
第13页 / 共28页
Web的图书管理系统的设计与开发.docx_第14页
第14页 / 共28页
Web的图书管理系统的设计与开发.docx_第15页
第15页 / 共28页
Web的图书管理系统的设计与开发.docx_第16页
第16页 / 共28页
Web的图书管理系统的设计与开发.docx_第17页
第17页 / 共28页
Web的图书管理系统的设计与开发.docx_第18页
第18页 / 共28页
Web的图书管理系统的设计与开发.docx_第19页
第19页 / 共28页
Web的图书管理系统的设计与开发.docx_第20页
第20页 / 共28页
亲,该文档总共28页,到这儿已超出免费预览范围,如果喜欢就下载吧!
下载资源
资源描述

Web的图书管理系统的设计与开发.docx

《Web的图书管理系统的设计与开发.docx》由会员分享,可在线阅读,更多相关《Web的图书管理系统的设计与开发.docx(28页珍藏版)》请在冰点文库上搜索。

Web的图书管理系统的设计与开发.docx

Web的图书管理系统的设计与开发

 

图书借阅管理系统的设计与开发

1.系统开发思想

由于前台的图书馆网站是一个仅供浏览,查询,和资料共享的开放性场所,如果要对图书资料和读者资料进行管理,实现借书,还书的网络化操作,实现对网站信息的及时更新,让读者在借书或还书后,可以通过网站查询自己的借还书信息,一个面向管理员的后台部分是必不可少的。

但是,后台的管理与操作不是一个简单的过程,管理员会要在多个项目之间进行交替操作,倘若每进行一步操作就在前台与后台之间进行切换,特别像借书还书这样的日常操作是相当频繁的,不但容易造成许多操作失误,而且也会造成不可想象的安全隐患。

2.需求分析

图书借阅管理系统需要满足图书馆工作人员和图书馆管理人员的需求。

1.图书馆工作人员的需求是:

(1)可以浏览、查询、添加、删除、修改、统计图书的基本信息;

(2)可以浏览、查询、添加、删除、修改、统计读者的基本信息;

(3)可对图书借阅者的借书和还书要求进行操作,同时形成借书或还书表单给借阅者查看确认,提醒借阅者及时归还过期的书籍;

(4)浏览、查询、统计图书馆的借阅信息;

(5)进行逾期未还、书籍遗失、读者证挂失等异常处理;

(6)可以对所有的查询统计表单进行打印操作。

2.图书馆管理人员的需求是:

除了可以满足一般工作人员的需求外,还应当具有:

(1)系统维护功能,维护系统的正常运行;

(2)数据备份与恢复:

提供图书信息、读者信息、借阅信息的备份与恢复功能;

(3)系统应用权限控制:

可添加和注销系统用户,更改用户密码,更改用户权限。

3.系统功能模块划分

图2.1图书借阅管理系统功能模块框图

在这个图书管理系统中,本人所完成的工作是图书借阅管理系统(后台)中的部分内容:

1.借书/还书功能的具体实现

2.异常处理部分的具体实现:

包括遗失书籍处理,读者证挂失处理。

3.系统维护的具体实现:

包括数据库的备份与恢复,管理员登录,管理员的注册和删除,管理员密码的修改和管理员权限的修改。

4.所有的报表打印

4.系统数据库设计

本系统所有数据均存放于一个数据库(Library库),在此数据库基础上建立了如下表:

·图书类目信息表  bookmenu

·图书基本信息表  book_input

·读者基本信息表  readerinformation

·系统用户信息表  login

表2.1图书类目信息表

列名(英文)

数据类型

宽度

小数位数

允许空

列描述

book_type

varchar

 50

 

No

图书的类别代码

book_kind

varchar

 50

 

No

图书的类别名称

book_memo

varchar

 50

Yes

类别的备注说明

7

表2.2图书基本信息表

列名(英文)

数据类型

宽度

小数位数

允许空

列描述

ISBN

varchar

 50

 

Yes

图书的索引号

book_no

varchar

 50

 

No

图书的编号,具有唯一性

book_name

varchar

 50

 

No

图书名称

Publishing

varchar

 50

 

Yes

图书出版社

book_author

varchar

 50

 

Yes

图书的编著者

book_price

float

Yes

图书单价

book_kind

varchar

 50

 

Yes

图书的类别名称

sale_date

varchar

 20

 

Yes

图书出版日期

book_memo

varchar

50

Yes

图书的备注说明

book_state

varchar

10

Yes

图书的状态标志(0-正常,1-逾期未还,2-已遗失)

Isloan

varchar

 50

 

Yes

图书的借阅状态(0-未借出,1-已借出)

Loaner

varchar

 50

 

Yes

图书的借阅者

Loandate

varchar

20

Yes

图书借阅日期

表2.3读者基本信息表

列名(英文)

数据类型

宽度

小数位数

允许空

列描述

reader_no

varchar

 50

 

No

读者证号

reader_name

varchar

 50

 

No

读者姓名

reader_sex

varchar

 2

 

Yes

读者性别

reader_id

varchar

 50

 

No

读者工号

reader_place

varchar

 50

 

No

读者所在部门

reader_zhicheng

varchar

50

No

读者职称

reader_state

int

 2

 

Yes

读者状态(0-正常,1-有过期示还的书,2-该读者证已遗失)

reader_memo

varchar

 50

 

Yes

读者备注

lost_date

varchar

20

Yes

读者证遗失日期

表2.4系统用户信息表

列名(英文)

数据类型

宽度

小数位数

允许空

列描述

Username

varchar

 245

 

No

管理员名称

Userpassword

varchar

 245

 

No

管理员密码

Userclass

int

 2

 

Yes

管理员级别(1-一般管理,2-最高管理)

 

图书借阅系统的具体实现

1.借书、还书功能的实现

借书和还书是图书借阅管理系统的一个最重要也是最基本功能。

它在图书

管工作人员的操作下,对本公司(企业)员工的借还书情况进行录入、修改、查询等一系列的过程。

在程序中,利用vbscript脚本语言实现画面的控制,利用asp语言来实现对库的操作和算法流程的控制。

3.1.1借书功能的具体实现

借书是图书管工作人员根据借阅者所借书籍的图书编号(当然这个编号于每一本图书是唯一的)将该图书登入借书表单,并对其借阅时间和借阅数量进行控制的过程。

因为该系统是针对公司(企业)的图书馆进行管理的,所以图书借阅也仅对公司内部人员进行开放,所以借阅者必须根据自己的工号(工作证编号)和其它一些在公司的相关信息办理读者证后,工作人员根据借阅者所持读者证的读者证号(该读者的唯一标识)进行查询,如果该读者在读者信息数据库中有记录,则调出该读者个人信息和他(她)已借书籍的信息,如果读者信息数据库中无该读者信息,则此人不能借阅书籍。

具体的流程如下:

10

图3.1借书程序流程图(a)

图3.2借书程序流程图(b)

算法描述如下:

首先导入数据库连接,以便对读者信息表和图书基本信息表进行查询和修改:

--#includefile="data_conn.inc"-->

因为借书只能是拥有图书馆工作人员以上的权限的人才能进行的操作,所以

在程序开始部份还应先判断一下用户的权限,如果没有工作人员的权限,则要先

进行管理员登陆,即转向登陆界面:

(此处用到“session“这个物件来[4]存取一个变量记录登陆的用户名,它可以在同一个客户端多个打开的浏览器之间传递变量值,如果用户能过了管理员登陆,则变量值不会为空,相反则为空:

ifsession("user_name")=""then

导向管理员登陆界面

endif

接下来就是借书操作了:

//变量说明部分

//readerno为读者证号

//borrowno为借书编号

//number为是否标志是否查询的读者信息是否存在,初始为1,表示有信息,如果输入读者证号后,没有查到读者信息,则更新为0。

//clickselect为是否查询过读者信息,即是否点击过读者信息的“查询“按扭

//booknumber统计已借书籍的数据量,初始化设为0,如果查到已借书籍大于或等于3时,该变量设为3。

//count统计过期第个读者过期未还的书籍数目

先查询读者证号,如果读者证号为空,提示要求输入。

这里可以放在读者证“查询”的单击事件中:

subreaderno_onclick//读者证“查询”的单击事件

ifreaderno=""then//如果读者证号为空,提示要求输入

显示"请输入读者证号!

"

将光标定位于读者证号的输入框

endif

clickselect="1"//已查询读者信息

booknumber="0//借阅书目初始化为0

提交当前表单的信息

endsub

查询了读者信息后,如果该读者在数据库中有记录,而且已借书籍没有超过去3本,则可以借书,如果没有记录,则屏蔽“借书”的功能,要求用户输入正确的读者证号:

Ifreaderno<>""then

根据readerno查询读者信息数据库readerinformation

if查询的记录数=0then

提示用户“无相应记录”

number="0"

将光标定位于读者证号输入框

结束后面的ASP程序的运行,即不再查询已借书目信息

else

显示读者的个人信息

endif

ifreaderno<>""orborrowno<>""then

根据readerno将book_input与reaerinformation关联起来

查询book_input中loaner(借阅者)为readerno的所有图书信息

if查询的记录数=0then

显示“没有借书记录”

else

if已借书记录>=3then

显示"你的书已借满"

booknumber="3"

endif

If已借书记录<=3and已借书记录>0then

ForI=1to已借书记录数

显示已借的书目信息

dd=读取数据库中“借阅日期”字段

ifdd<>""then

if当前日期-当前读取的借阅日期>60then

count=count+1

endif

endif

Next

endif

endif

ifcount<>0then

提示"你有过期未还的书!

"

更新book_input中刚查到的过期未还的书的book_state为1

更新readerinfomation中该读者的reader_state为1

endif

Endif

ifbooknumber>=3orcount<>0then

屏蔽“借书“功能,即不显示借书按扭

endif

若未屏蔽借书功能,则可以借书

先输入借书编号,按下借书按扭,如果编号为空,要求输入,如果未查询读者证号就点击借书按扭,则提示用户先查询读者证号后,此段程序可放入借书按扭单击事件中:

subborrowbook

ifreaderno=""then

显示"请先查询借书者的读者证号!

"

elseifborrowno=""then

显示"请输入借书编号"

endif

提交当前表单信息

endsub

提交信息后,除运行上面的程序外,还要执行提交状态后的程序:

ifborrowno<>""then

查询book_input中的book_no为borrowno记录

if查询记录数<>0

if是否已借字段内容=1then

显示"该书已借出!

"

else

是否已借字段内容=1

借阅日期字段=今天的日期

借阅者字段=当前输入的读者证号

endif

else

显示"没有这本书!

"

endif

endif

在借书这个程序中,我们利用读者证号这个关键字,把读者信息表和图书基本信息表联系起来,多方面考虑问题,把借书过程中可能出现的状况,都要一一考虑进来,方便能工作人员和读者。

3.1.2还书功能的具体实现

还书是在借书的基础上来操作的过程,总的原则是,没有借书,就没有还书,还书所要实现的功能,在某种程度上和借书是相似的,同样要提示读者是否有过期未还的书,此时也需要对库中的信息进行更改。

还书以后,也要即时的反溃当前的借书状况,以便读者和工作人员知道“还书”是否操作成功。

与借书相比,借书是通过读者证号和图书编号来登记,而还书只需要且必须要图书编号来登记还书。

当查到该编号的图书,而且确实是未还图书,则将显示还书者的读者信息和所有他(她)的已借书目信息.我们要实现的目标是尽可能方便能的操作和尽可能直观的反溃!

所以我们采用输入图书编号来还书的同时,查阅出借该书的读者的所有借书记录,只要点击所列出的该读者借书记录中的某一条,就可以还这本书.还有一点是还书需要处理的,那就是续借,如果读者想要续借,应该很方便的进行,与还书一样,只要点击要续借的书按“续借”即可,但是要考虑如果该书已过期,则不能续借。

具体程序流程图如下:

return_book.asp

 

图3.3还书程序流程图

算法描述如下:

首先导入数据库连接,以便对读者信息表和图书基本信息表进行查询和修改:

--#includefile="data_cnn.inc"-->

因为还书只能是拥有图书馆工作人员以上的权限的人才能进行的操作,所以在程序开始部份还应先判断一下用户的权限,如果没有工作人员的权限,则要先进行管理员登陆,即转向登陆界面,这部分的操作和借书是一样的:

ifsession("user_name")=""then

导向管理员登陆界面

endif

接下来是还书的操作:

//变量说明部分

//returnno为还书编号

//state表示当前有无可还书的记录

//reloan表示是否要续借

//step表示是否提交过表单,1-初始状态,2-已经提交

//reader_no表示还书者读者编号

//book_no表示当前要还的或要续借的图书编号

//count表示当前有没有过期未还的书

subreturn//还书按扭单击事件

ifreturnno=""then

显示"请输入还书编号!

"

光标定位到输入还书编号栏

else

step=1

带上还书编号提交表单

endif

接下是查询该还书编号的书

Ifrequest("returnno")<>""then

在数据库中查询该编号的图书

if查询的记录数=0andreader_no=""then

提示“可能输入了无效的图书编号或该书没有借出,请重输!

结束程序的继续执行

else

对将要显示的当前所要还的书籍的表格中的借阅者,书籍编号,书名,作者,借阅日期单元格的内容填值

if当前日期-借阅日期>60then

更改读者信息表中的reader_state为1

提示用户“你的书已过期!

endif

//根据借阅者的读者证号查询该读者的相关信息

sqlstr2="select*frombook_readerinfowherereader_no='"&loaner&"'"

对要显示读者信息的栏位赋值

endif

如果找到了要还的书,便可以还书或续借了

ifreturnno=""then

显示"请先输入还书编号"

光标定位于还书编号

exitsub

endif

ifstate="no"then

光标定位于还书编号

exitsub

endif

ifbook_no=""then

显示"请选择要还的书!

"

exitsub

endif

return_book.submit//提交当前表单

*****以上这段程序可以放在借书按的单击事件中

*****以下是续借按扭的单击事件的算法

subcontiborrow//续借按扭单击事件

ifbook_no=""then

显示"请选择要续借的书!

"

exitsub

endif

reloan="yes"

提交表单

endsub

提交表单后,要对库中的数据表进行还书和续借的操作了

从提交的表单中提取所有的读者信息和当前所要还的图书编号

count=0//设当前无过期书籍

ifbook_no<>""andreader_no<>""then

if当前日期-借阅日期>60then

ifreloan="yes"then

提示"书已过期,不能续借!

"

不再做任何更改库中记录的操作,所回续借前的状态

结束ASP程序的运行

endif

endif

ifreloan="yes"then

将当前书籍的借阅日期减一个月,因为续借只能是一个月

else

还原当前所还书籍的借阅者,借阅日期,是否借阅为初始状态。

//再一次查找当前还书者的所有借书情况

sqlstr3="select*frombook_inputwhereisloan=1andloaner='"&reader_no&"'"

if查询记录数>0then

fori=1to查询记录数

//查找在还了当前所要还的书以后是否还有过期未还的书

if当前-借阅日期>60then

count=count+1

endif

next

ifcount=0then

将当前的还书者的状态reader_state还原为0

endif

else//如果已经没有要还的书籍

将当前的还书者的状态reader_state还原为0

endif

endif

2.异常处理

2.1遗失书籍处理的具体实现

在图书管理系统中,读者遗失书籍的状况是极有可能发生的,所以系统一定要有相应的处理措施,方便工作人员对书籍的管理。

在这个处理过程中,我们根据要办理遗失处理的读者的读者证号来查找该读者所借阅的所有书籍,如果该读者没有借阅的书籍,或该读者根本不存在,也就无需也不能进行书籍遗失处理。

如果经过查询,有借阅记录,则在选择要办理遗失的书籍后(在每条借书记录后有checkbox多选框),点击“挂失“即可。

而取消挂失只需要选中罗列出来的所有遗失的书籍记录的某一条或多条,点击“取消遗失”即可。

这块功能的实现总共由三个程序共同来完成,分别为lostbook.asp,set_lost_book.asp,select_input_book.asp。

当用户需要办理遗失时,首先运行lostbook.asp,进入该模块的主界面,在这个界面中,我们会把所有已办理遗失的书籍列出来,如果要对书籍办理遗失,则点击“遗失办理”,此时会调用另一个程序set_lost_book.asp来处理,如果是要取消遗失,就直接在第一个主界面列出的

已遗失书籍的记录中查找,可以点击“查找”按扭来确定用户要对哪一本遗失的书“取消遗失”,然后选取中它,进行取消。

3.2.2读者证挂失处理的具体实现

因为有读者证的办理,所以读者遗失读者证也就必须有挂失处理,在本系统中读者证的挂失也是异常处理的一个项目。

当读者发现读者证丢失后,要及时进行挂失,但是如果该读者有书未还,那么应该先把书还掉才可以挂失。

读者可以通过像遗失书籍处理中一样,点选需要挂失或需要取消挂失的读者信息,来完成操作。

整个功能也由三个程序构成:

lostreaders.asp,set_lost_reader.asp,select_readerinfo.asp,首先执行的是lostreaders.asp,如果要办理挂失,则点击页面的“挂失办理”,调用set_lost_reader.asp,进入挂失的界面,此时,会显示所有未办理挂失的读者信息,为了避免误操作,必须定位需要挂失的读者方可进行挂失,工作人员可以通过界面的“查找”按扭,此时会调用select_readerinfo.asp,在所有未办理挂失的读者证信息中定们需要记录,然后选中它,“挂失”即可。

如果要取消挂失,则只要在首页面查找要进行取消的读者信息,此时也会调用select_readerinfo.asp,进入查找界面,查找完毕后,在主界面显示出查找结果,然后点选要办理取消的读者,取消挂失。

算法描述如下:

变量说明:

//value存放查询中查找记录的SQL语名

//reconum当前显示的记录数

//sqlstr当前运行的SQL语句

在读者证挂出失这个部分,关于办理挂失,特别是取消挂失的处理过程和书籍遗失的处理过程相似,只是在读者证挂失这个部分加入了对读者是否有书未还的判断,因此在显示读者信息后,在点击挂失,取得当前的读者证号,判断在book_input这个库中有没有该读者的借书记录,如果有,则要求先还书再挂失。

在查询过程中,为了方便在转页时仍显示的是当前查询的结果,而不是开始显示的记录页面,在程序员中用到了value这个变量来存储当前查询的SQL语句。

而同时sqlstr这个变量又表示当前运行的SQL语句。

当执行查询以后,判断value值是否为空,如果不为空,则把它的值放入sqlstr,在翻页的过程中传递的sqlstr值便能始终

会是最近查询的值,这一点在lostbook.asp中也用到了。

其它关于取消挂失和正常办理挂失的过程与前面的书籍遗失处理大同小异,这里不再繁述.。

3.系统维护模块的具体实现

2.1数据备份与恢复的具体实现

在图书管理这样的系统中,基本上是对图书资料的管理,因此图书资料和读者资料的正确性也就尤为重要,更不能丢失,所以我们在系统中加入了数据据备份与恢复的功能。

管理员要定期的对图书和读者的资料进行备份,在备份后,即始有信息丢失或损坏,也可以把损失降到最低。

在本系统中,数据的备份与恢复只能是最高权限的管理员才能进行的操作,备份的路径由管理员指定,但是文件名由系统定义,备份是全数据库的备份,文件名是数据库名加“.bak”的后缀,而且备份的文件是存储在数据库所在的机子上,而不是用户随机操作的机子上。

恢复则针对备份的文件进行。

如果没有备份文件是不能进行恢复的,恢复时一定要在数据库没有被使用时才能运行。

具体算法流程如下:

 

图3.6数据库备与恢复程序流程图

算法描述如下:

变量描述:

//sqlserver指定数据库链接的SERVER

//sqlname指定数据库链接的UID

//sqlpassword指定数据库链接的PWD

//sqlLoginTimeout指定SQL登录超时限定

//databasename当前要备份的数据库的名称

//bak_file指定数据库备份文件的路径

//act指定当前操作是备份还是恢复

3.2管理员口令维护具体实现

由于图书管理系统中的借书、还书还有备份、恢复等功能,都是

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 法律文书 > 调解书

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2