计算机毕业论文-基于ASP SQL的大学图书管理系统设计_第1页
计算机毕业论文-基于ASP SQL的大学图书管理系统设计_第2页
计算机毕业论文-基于ASP SQL的大学图书管理系统设计_第3页
计算机毕业论文-基于ASP SQL的大学图书管理系统设计_第4页
计算机毕业论文-基于ASP SQL的大学图书管理系统设计_第5页
已阅读5页,还剩16页未读 继续免费阅读

付费下载

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

基于ASPSQL的大学图书管理系统设计目录绪11.1开背1.2开工的选用及介绍体分析与设计2.1系分析2.2系目2.3总需求2.4系模块流程图2.5数库设计详设计63.1用登页面3.2图查询页面3.3统超期103.4数库备份和还原3.5图添加123.6用管理133.7最添加的图书153.8图分类浏览3.9给期用户发消息提醒业设计小结18谢19考文献20

绪当今时代是飞速发展的信息时代。在各行各业中离不开信息处理,计算机被广泛应用系统环境计机的好处在于它够进行信息管理用计算机进行信息控制不提高了工作效率,而且大大的提高了安全性。对于复杂的信息管理算能充分发挥它的优越性算机与信息管理系统的开发密切相关,系统的开发是系统管理的前提。本系统就是为了管理好图书信息而设计的。1.1开背图书管理包括的图书和用户借阅资料繁多含很多的信息数据的管理今有多的图书管理系统都是初步开始使用至尚未使用计算机进行信息管理前信息管理的主要方式是基于文本、表格等纸介质的手工处理,对于图书借阅情况(如借书天数、超过限定借书时间的天数)的统计和核实等往往采用对借书卡的人工检查进行,对借阅者的借阅权限、以及借阅天数等用人工计算抄行据息处理工作量大易错于据繁多,容易丢失,且不易查找。总的来说,缺乏系统,规范的信息管理手段。尽管有的图书馆有计算机,但是尚未用于信息管理,没有发挥它的效力,资源闲置比较突出,这就是图书管理系统开发所要解决的问题。基于这此问题,有必要建立一个图书管理系统,使图书管理工作规范化,系统化,程序化,避免图书管理的随意性,提高信息处理的速度和准确性,能够及时、准确、有效的进行查询和修改图书情况等图书管理操作。1.2开工的选用及介绍1.2.1介Server一套微软开发的服务器端脚本环境ASP内含于IIS之通我们可以结合HTML网页指令和ActiveX元建立动态互且高效的WEB服务器应用程序。有了ASP你不必担心客户的浏览器是否能运行你所编写的代码,因为所有的程序都将在服务器端执行括所有嵌在普通HTML中的脚本程序程执行完毕后,服务器仅将执行的结果返回给客户浏览器样也就减轻了客户端浏览器的负担大高了交互的速度。1.2.2简Dreamweaver是Macromedia公最新推出的主页编辑工具这是一个所见即所得主页编辑器并有站点管理功能让你便地设计和管理多个站点它最棒的地方就是支持最新的标,可以用它设计出生动的DHTML画、多层次的页面(layer)及样表。1.2.3MicrosoftSQL2000简SQL英文StructuredQuery)的缩写,意思为结构化查询语言语言的主要功能就是同各种数据库建立联系,进行沟通。SQL被为关系型数据库管理系统的标准语言。SQL语句可以用来执行各种各样的操作,例如更新数据库中的数据,从数据库中提取数据等。目前,绝大多数流行的关系型数据库管理系统,Microsoft等采用了语言标准。SQL言有以下几个优点:非程化语言SQL一个非过程化的语言,因为它一次处理一个记录,对数据提供自动导航允许用户在高层的数据结构上工作,而不对单个记录进行操作,可操作记录集,所有S语句接受集合作为输入,返回集合作为输出SQL的合特性允许条SQL语的结果作为另一条SQL语句的输入。SQL要求用户指定对数据的存放方法,这特性使用户更易集中力于要得到的结果;1

所有语使用查询优化器,它的部分,由它决定对指定数据存取的最快速度的手段查询优化器知道存什么索引在哪儿使用索引合适而户则从不需要知道表是否有索引、有什么类型的索引。统的语言SQL用于所有用户的DB动模型,包括系统管理员、数据库管理员、用程序员、决策支持系统人员及许多其它类型的终端用户。基本的SQL命令只需很少时间就能学会,最高级的命令在几天内便可掌握。所关系数据库的公共语言由于所有主要的关系数据库管理系统都支持SQL语户可将使用SQL的能从一个RDBMS(关数据库管理系)转到另一个,所有用SQL编的程序都是可以移植的。体分析与设计2.1系分图书管理系统是典型的信息管理系统,开发主要包括后台数据库的建立和维护以及前端应用程序的开发两个方面于者要求建立起数据一致性和完整性强据全性好的数据库。而对于后者则要求应用程序功能完易使用等特点。在数据库应用系统开发之前对发数据库的基本概念数据库的结构开发数据库应用程序的步骤开发体系及方法都应有相当清晰的了解和认识据应用系统开发的目标是建立一个满足用户长期需求的产品。开发的主要过程为:理解用户的需求,然后,把它们转变为有效的数据库设计把计变为实际的数据库并这些数据库带有功能完备高效能的应用。考虑到使用的方便性,程序用A技来作数据库,免去注册步骤。因此本人结合上述要求对Server2000数库管理系统SQL语言原理、程序设计,ADO数据库技术进行了较深入的学习和应。2.2系目(1用户方便进行图书查询,图书浏览和图书分类浏览,进行图书借阅并了解自己的借书情况和个人情况。(2用户在借书超期的情况下得到来自管理员的提醒。(3管理员可以方便进行图书管理,用户管理,管理员管理。图书管理包括图书信息以及图书分类的添加,修改,删除。用户管理包括用户信息的添加,删除,修改和锁定(限制用户的正常使用功能,使其无法登陆员管理包括管理员信息的添加,删除,修改等。(4用户和管理员可以修改自己的密码,修改前需先核实自己的原始密码。(5未注册用户(游客)也可以浏览所有的图书信息和分类信息,但是无法借阅。(6)实现模糊查询,使户得到更多的相关记录。并且考虑使用的方便性,一些经常使用的输入无须用户输入,比如进行图书查询时图书分类只须用户做选择就可以。(7考虑程序执行操作时可能出现的情况,比如删除图书分类时该分类下存在图书,程序自动跳转该分类图书查看删除个用户如存在借书记录则不允许删除跳转到该用户的借书记录。等待管理员确认该用户所借图书已经全部归还之后才允许删除该用户信息。2.3总需求图书管理系统是一项复杂系统工程从实际出发对实际情况进行客观的分析深入了解需求。系统利用与数据库结的技术建立数据库管理系统,采用交互式的动态的页面来实现求查是为了研系统设计的开发途径和方法时也是进行概要设计和详细设计的基础,是进行内部维护和测试的依据。具体分析如下:添加操作执行操作时首先都先检查是否已经输入以及数据库中是否已经存在输入的数据,如果存在会报错,程序返回上个页面,不执行添加操作。删除操作考到了字段在不同中可能会同时存在的情况如删图书分类时候该分2

类下有书或者删除用户时该用户有借书记录的况下程序会给出提醒并跳转到该分类下的所有图书查看或者是该用户的全部借书查看这种关联取消掉之后才允许进行删除这样的危险操作。查询操作:考虑到了模糊查询的实现,语句中用“like有合询,通过对用户输入情况的判断来确定SQL语的最终形式比如用户查询时并未输入图书名字,就是名字匹配任意字符,那么程序给数据库的语就会是like%。组合查询的实现也是程序判断用户所做的选择或者输入,在语句中现的。超期统计假定借书超期的限制三十天书记录中的所有数据的借书时间如果不在当前服务器时间减去三十天和当前服务器时间之间么这条借书记录就属于超期记录了用户借书记录中的用户编号到用户表中查找该用户。发送消息:往消息表中添加数据,该数据包含用户名,用户超期的图书,超期时间,罚金等相关警告信息当户正常登陆页后程序自动检查消息表中是否存在该用户的记录果有要给出提示,但是没有强制用户必须查看。数据库备份和还原操作:程序只要告诉服器执行份和还原SQL语句就可以实现,在还原时程序还在使用系统数据库时执行还原操作会因为没有排它使用权出现错误以应告诉SQL服器使用另外的一个数库,程序中用的是:use。原操作时用FSO组首先检查备份数据库文件是否存在,如果不存在则给出提示回到上个页面。所有条件都允许后则执行还原操作数库数据比较多和原的时间都可能会比较长。3

2.4系模块流程图2.4.1系登陆流程图2.4.2用流程图2.4.3管员流程图2.5数库设计登陆页面游客操作页面

用户操作页面用户操作页面管理员

管理员操作页面消息查看

修改密码

退出登陆

分类查看

操作页图书面查询

全部图书

查看借书详情

还书修改密码

备份还原数据

所有图书及分

图书查询

统计超期

添加,删除

添加,删除图

用户,管理员库

分类

相关查看表管员字段

类型

长度

必填字段

允许空格

备注ID

数字

id主

文本文本

是是

否否

名字密码表图信息字段idbooktype

类型数字文本

长度

必填字段是

允许空值否否

备注id主图书类别4

publishingbookmoneypdate

文本数字日期时间文本数字

是是是是是

否否否否否

出版社货币出版时间图书名称图书数量表图类别字段

类型

长度

必填字段

允许空值

备注id

id主booktype

文本

图书类别5

表借信息字段idbid

类型数字数字

长度

必填字段是

允许空值否否

备注id主图书编号time

日期时间

借书时间uid

数字

用户编号表消表字段iduid

类型数字文本数字

长度

必填字段是是

允许空值否否否

备注id主消息内容用户编号表用表字段id

类型数字文本文本

长度

必填字段是是

允许空值否否否

备注id主名字密码

是/否

是否锁定

数字

借书数量详设计3.1用登页面该页面用于用户登陆,包括游客,用户和管理员。成功登陆则取得用户的session用于以后的操作权限认定程序执行时首判断用户类型果是游客则对值为游客类型,然后直接进入主页如果不是游则执行查询语句数据库中是否存在这样的用户名和密码据择用户类型的不同在同的表中进行操作则进入主页则示输入错误。6

截图如下:图用登陆代码:<linktype="text/css"rel="stylesheet"><!--#includefile="conn.asp"-->ifrequest("login")<>""thenif用户类型不空,实数据真实Ifsql="select*wherename='"&request("name")&"'sql"SELECT*FROMadminname='"&Request("name")&"'andEndIfrs=db.execute(sql)IfnotNotThen输入数据存在IfIfresponse.Write"<script>alert('您已被锁定了!');window.location.href='login.asp'</script>"Session("usertype")="user"Response.Redirect("index.asp")ifSession("adminid")=rs("id")Response.Redirect("index.asp")EndIfresponse.Write"<script>alert('入错误!');window.location.href='login.asp'</script>"rs.closeEndifelse'户类型空7

response.Write"<script>alert('没有选择用户类型!');window.location.href='login.asp'</script>"ifif3.2图查询页面该页面用于用户的图书查询利查询语句的like替代任意长度字符实现了模糊查询有查询的字段用户都可以不输入果输入了某个数据程序执行时自己会判断输入了就会加上相应的SQL语。考虑到使用方便性,图类型,价格范围,出版日期都无须用户输入已设定了合理的初始值书类型如果不做选择就默认在所有图书类型中查找虑到找到的记录可能会很多,引入了分页显在记录集循环显示的时候引入参数i来现,设定i<10,初始值为这每页显示的记录数为10。图图书查询代码:<linktype="text/css"rel="stylesheet"><!--#includefile="conn.asp"--><%'义记录集和变量setbookname=trim(request("bookname"))publishing=trim(request("publishing"))money1=trim(request("money1"))money2=trim(request("money2"))date11=trim(request("date11"))date22=trim(request("date22"))date33=trim(request("date33"))date222=date11&"-"&date22&"-"&date33查询的实现sql="select*from"8

ifbooktype<>""sql=sql+"andlike'%"&booktype&"%'"ifbookname<>""sql=sql+"andbooknamelike'%"&bookname&"%'"ifpublishing<>""thensql=sql+"andlike'%"&publishing&"%'"ifififsql=sql+"andbookmoney>='"&money1&"'bookmoney<='"&money2&"''"&date111&"'and'"&date222&"'byidifrs.eofrs.bofthenresponse.write"对不起没有搜索到记"response.end页面显示dimpagecount1=rs.pagecountifrequest.querystring("pagenum")=0orrequest.querystring("pagenum")=""pagenum=1pagenum=trim(request("pagenum"))rs.absolutepage=trim(request("pagenum"))if<%页现response.write"总共"&pagecount1&"页当前href=search.asp?pagenum=1&bookname="&bookname&"&booktype="&booktype&"&publishing="&publishing&"&money1="&money1&"&money2="&money2&"&date1="&date1&"&date2="&date2&"&date3="&date3&"&date11="&date11&"&date22="&date22&"&date33="&date33&首<ifpagenum>1response.write

"<ahref=search.asp?pagenum="&(pagenum-1)&"&bookname="&bookname&"&booktype="&booktype&"&publishing="&publishing&"&money1="&money1&"&money2="&money2&"&date1="&date1&"&date2="&date2&"&date3="&date3&"&date11="&date11&"&date22="&date22&"&date33="&date33&">上一<response.write"上一页&ifif<trim(pagecount1)then9

response.write

"<aype&"&publishing="&publishing&"&money1="&money1&"&money2="&money2&"&date1="&date1&"&date2="&date2&"&date3="&date3&"&date11="&date11&"&date22="&date22&"&date33="&date33&">下一<response.write"下一页ifresponse.write

"<ahref=search.asp?pagenum="&pagecount1&"&bookname="&bookname&"&booktype="&booktype&"&publishing="&publishing&"&money1="&money1&"&money2="&money2&"&date1="&d33="&date33&">尾</a>"3.3统超期方便管理员清楚图书借出后的归还情况可给超期的用户发送消息提醒者定该用户,使其无法登陆系统。超期判定用dateserial()函数来实现将当前系统时间的格式转化为,这样方便后面的日期比较操作。设置一个变量来代表当前系统时间减去三十天如用户借书的时间不在两个时间之间那么就是超期面始首先进行管理员身份核实,用到了前面登陆页面说的session。点击左边菜单的统计超期后系统自动完成统计,并将结果显示在右边,管理员可以进行的操作有:锁定,给单个用户发消息,群发消息。截图如下:图统超期代码:<%'从表出间超期的数据改系统时间来实现超~管员验证分显示管理员发消息提醒还书ifsession("usertype")<>"admin"response.write"<script>alert('是管理员,先登!ifdim现时间和借书时间相差三十天则超期=转日格式函参考sql1="select*loans"setrs1=db.execute(sql1)sql2="selectasb_name,book.booktypebooktype,*fromloans,u,bookwhereloans.timenot#"&loan_time&"#andbook.id=loans.bid"10

setrs2=db.execute(sql2)'sql3="select*urs3=db.execute(sql3)3.4数库备份和还原为了防止因意外对系统数据库造成的破坏,设置了数据库的备份和还原操作,其实现是用SQL本身的备份和还原功能,程序只要告诉SQL服务器执行就可以了,还原还首先检查否存在备份文件果有则报并终止还原操作行还原操作时因为当前系统的数据库正在使用,无法被还原,所以要先选择SQL服器上的其他数据库为当前活动数据库,系统用master来现将当前正在使用的数据库更改为master数据库统设定备份文件存放在IIS主录下,后缀是.BAK,方管理员查看。截图:图数据库备份和还原代码:<!--#includefile="conn.asp"-->ifthendimpath=server.MapPath("./")'response.Write""&path&""谢文todisk='"&path&"\\谢文bak'withinit"response.Write"<script>alert('备成功备文件在目录');history.go(-1)</script>"ifrequest("do")="restore"判断备份文件是否存在set组dimbak_pathbak_path=server.MapPath("./谢贵bak")ifiFso.FileExists(bak_path)thenresponse.Write"<script>alert('备文件不存在获排访问权断与当前系统数据的连接谢贵文disk='"&server.MapPath("./")&"\\谢文.bak'"11

response.Write"<script>alert('还成功');history.go(-1)</script>"ifif'页时己会重新连接数据库3.5图添加实现图书添加功能。当管理员需要添加图书时,通过管理菜单点击“添加图书”就进入这个页面考到输入的方便性图书类和出版时间都可以进行选择须手工输入图书添加操作要求全部数据都必须输入则报错添加操作实际上是将数据写入数据库入新图书信息之前首先检查图书名是否重复复报错返回上个页面入正确而且数据库中原本没有这样的数据则执行写入操作。截图如:图图添加代码:<%'书增加ifrequest("query")="book_add"thensql="select*fromsetrs=db.execute(sql)ifrequest("active")=""theniforrequest("publishing")=""orresponse.write"<script>alert('入错误');history.go(-1)</script>"setrs2=server.createobject("adodb.recordset")date1=request("date1")date2=request("date2")date3=request("date3")qdate=date1&"-"&date2&"-"&date3sql="select*frombook"12

request("num")=""or

rs2.opensql,db,1,3rs2("bookname")=trim(request("name"))rs2("bookmoney")=trim(request("money"))rs2("num")=trim(request("num"))rs2("publishing")=trim(request("publishing"))response.write"<script>alert('添加图书成功');window.location.href('book.asp?query=all_book')</script>"ifif3.6用管理实现用户管理全部功能,包括查看全部用户,添加,修改,删除,锁定,查看其借书记录。其中锁定针对于借书超期用户理员可以在超期统计页面知道哪些用户借书超期加户时程序首先判断是否已经存在这个用户名在则终止操作返回上个页面删用户时如果该用户存在借书记录则不允许删除序转到该用户的借书记录页面改操作同样考虑到了用户名重复的问题,避免混淆。截图如下:图用管理代码如下:<%数库导出所有用户数据ifsql="select*fromu"setrs.open实现用户查看,添加,删除,改<%'加新的用户ififrequest("add")<>""检查是否重名set*fromwherename='"&trim(request("name"))&"'")if插表rs.addnewrs("pwd")=request("pwd")rs.updateresponse.write"<script>alert('加成功咯'"<script>alert('用户名重复'13

if<%'除用户ifrequest("action")="del"ifrequest("id")<>""thencount(*)loanswhereuid="&request("id")setq=db.execute(qq)ifq("xx")>0thenresponse.write"<script>alert('存在借书记录,不能删除。sql="delete*whereresponse.write"<script>alert('除成功);window.location.href='user.asp'</script>"if<%'更改用户过:如果有更改请求如有ID,导数如确认更改行检查过程;检查成功则更新否则返回错误。该能已经包含用户锁定功能的实现。ifthenifrequest("id")<>""thensql="select*fromwheresetrs1.opensql,db,1,3ifrequest("mod")="yes"确认请求set*id<>"&request("id"))ifchk.eofresponse.write"<script>alert('经存在的名咯response.End()ifsetname='"&request("name")&"',pwd='"&request("pwd")&"',lock='1'setname='"&request("name")&"',pwd='"&request("pwd")&"',lock='0'ifdb.execute(qq)response.write"<script>alert('改成功);window.location.href='user.asp'</script>"if14

3.7最添加的图书放在index.asp架的右边,主要是向所有人展现最新增加的图书信,便所有人的使用。其实现是从数据库book表导出top10个数据。截图如下:图最添加的图书代码:<%'新图书数据导出sql="selecttop10*frombookorderbyiddesc"setrs.open3.8图分类浏览放在首页的右边起着导航作用实所有图书分类的查看使得所有人都可以方便的浏览自己感兴趣的图书分类下的书击图书分类名就进入了该分类下的所有图书浏览图下:图图分类浏览代码:<%'书类型到处sql1="select*booktypeiddesc"setrs1.opensql1,db,1,33.9给期用户发消息提醒15

主要功能是实现管理员可以对借书超期的用户进行提醒,其操作是往msg表里添加数据,当用户正常登陆后系统会检查表是否有该用户的消息数据如果有则会自动给出提醒,提醒用户查看消息。截图如下:图给期用户发消息代码:<!--#includefile="conn.asp"-->dim现时间和借书时间相差三十天则超期=转日格式2007-3-31sql2="selectasb_name,book.booktypebooktype,*fromloans,u,bookwhereloans.timenot#"&loan_time&"#andandbook.id=loans.bid"setrs2=db.execute(sql2)dim交的数据(测试是否设置好<br>")whilenotcontent=""&rs2("name")&",你借的一书已经超

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论