计算机毕业论文基于ASP SQL的大学图书管理系统设计.docx

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

计算机毕业论文基于ASP SQL的大学图书管理系统设计.docx

《计算机毕业论文基于ASP SQL的大学图书管理系统设计.docx》由会员分享,可在线阅读,更多相关《计算机毕业论文基于ASP SQL的大学图书管理系统设计.docx(28页珍藏版)》请在冰点文库上搜索。

计算机毕业论文基于ASP SQL的大学图书管理系统设计.docx

计算机毕业论文基于ASPSQL的大学图书管理系统设计

基于ASPSQL的大学图书管理系统设计

目录

1绪论1

1.1开发背景1

1.2开发工具的选用及介绍1

2总体分析与设计3

2.1系统分析3

2.2系统目标3

2.3总体需求4

2.4系统模块流程图5

2.5数据库设计6

3详细设计8

3.1用户登陆页面8

3.2图书查询页面9

3.3统计超期11

3.4数据库备份和还原12

3.5图书添加13

3.6用户管理15

3.7最新添加的图书16

3.8图书分类浏览17

3.9给超期用户发消息提醒18

4毕业设计小结20

5致谢21

6参考文献22

1绪论

当今时代是飞速发展的信息时代。

在各行各业中离不开信息处理,计算机被广泛应用于B/S系统环境。

计算机的好处在于它能够进行信息管理。

使用计算机进行信息控制,不仅提高了工作效率,而且大大的提高了安全性。

对于复杂的信息管理,计算机能够充分发挥它的优越性。

计算机与信息管理系统的开发密切相关,系统的开发是系统管理的前提。

本系统就是为了管理好图书信息而设计的。

1.1开发背景

图书管理包括的图书和用户借阅资料繁多,包含很多的信息数据的管理,现今,有很多的图书管理系统都是初步开始使用,甚至尚未使用计算机进行信息管理。

以前对信息管理的主要方式是基于文本、表格等纸介质的手工处理,对于图书借阅情况(如借书天数、超过限定借书时间的天数)的统计和核实等往往采用对借书卡的人工检查进行,对借阅者的借阅权限、以及借阅天数等用人工计算、手抄进行。

数据信息处理工作量大,容易出错;由于数据繁多,容易丢失,且不易查找。

总的来说,缺乏系统,规范的信息管理手段。

尽管有的图书馆有计算机,但是尚未用于信息管理,没有发挥它的效力,资源闲置比较突出,这就是图书管理系统开发所要解决的问题。

基于这此问题,有必要建立一个图书管理系统,使图书管理工作规范化,系统化,程序化,避免图书管理的随意性,提高信息处理的速度和准确性,能够及时、准确、有效的进行查询和修改图书情况等图书管理操作。

1.2开发工具的选用及介绍

1.2.1ASP简介

ActiveServerPages:

是一套微软开发的服务器端脚本环境,ASP内含于IIS之中,通过ASP我们可以结合HTML网页、ASP指令和ActiveX元件建立动态、交互且高效的WEB服务器应用程序。

有了ASP你就不必担心客户的浏览器是否能运行你所编写的代码,因为所有的程序都将在服务器端执行,包括所有嵌在普通HTML中的脚本程序。

当程序执行完毕后,服务器仅将执行的结果返回给客户浏览器,这样也就减轻了客户端浏览器的负担,大大提高了交互的速度。

1.2.2Dreamweaver简介

Dreamweaver是Macromedia公司最新推出的主页编辑工具。

这是一个所见即所得主页编辑器,并带有站点管理功能,让你方便地设计和管理多个站点。

而它最棒的地方就是支持最新的DHTML和CSS标准,你可以用它设计出生动的DHTML动画、多层次的页面(layer)以及CSS样式表。

1.2.3MicrosoftSQLServer2000简介

SQL是英文(Structured QueryLanguage)的缩写,意思为结构化查询语言。

SQL语言的主要功能就是同各种数据库建立联系,进行沟通。

SQL被作为关系型数据库管理系统的标准语言。

SQL语句可以用来执行各种各样的操作,例如更新数据库中的数据,从数据库中提取数据等。

目前,绝大多数流行的关系型数据库管理系统,如Oracle,Sybase,MicrosoftSQLServer,Access等都采用了SQL语言标准。

SQL语言有以下几个优点:

1非过程化语言

SQL是一个非过程化的语言,因为它一次处理一个记录,对数据提供自动导航。

SQL允许用户在高层的数据结构上工作,而不对单个记录进行操作,可操作记录集,所有SQL语句接受集合作为输入,返回集合作为输出。

SQL的集合特性允许一条SQL语句的结果作为另一条SQL语句的输入。

SQL不要求用户指定对数据的存放方法,这种特性使用户更易集中精力于要得到的结果;所有SQL语句使用查询优化器,它是RDBMS的一部分,由它决定对指定数据存取的最快速度的手段,查询优化器知道存在什么索引,在哪儿使用索引合适,而用户则从不需要知道表是否有索引、有什么类型的索引。

2.统一的语言

SQL可用于所有用户的DB活动模型,包括系统管理员、数据库管理员、应用程序员、决策支持系统人员及许多其它类型的终端用户。

基本的SQL命令只需很少时间就能学会,最高级的命令在几天内便可掌握。

3.所有关系数据库的公共语言

由于所有主要的关系数据库管理系统都支持SQL语言,用户可将使用SQL的技能从一个RDBMS(关系数据库管理系统)转到另一个,所有用SQL编写的程序都是可以移植的。

2总体分析与设计

2.1系统分析

图书管理系统是典型的信息管理系统,其开发主要包括后台数据库的建立和维护以及前端应用程序的开发两个方面。

对于前者要求建立起数据一致性和完整性强、数据安全性好的数据库。

而对于后者则要求应用程序功能完备,易使用等特点。

在数据库应用系统开发之前,对开发数据库的基本概念,数据库的结构、开发数据库应用程序的步骤、开发体系及方法都应当有相当清晰的了解和认识。

数据库应用系统开发的目标是建立一个满足用户长期需求的产品。

开发的主要过程为:

理解用户的需求,然后,把它们转变为有效的数据库设计。

把设计转变为实际的数据库,并且这些数据库带有功能完备、高效能的应用。

考虑到使用的方便性,程序用ADO技术来操作数据库,免去了注册DSN步骤。

因此本人结合上述要求对MSSQLServer2000数据库管理系统、SQL语言原理、ASP程序设计,ADO数据库技术进行了较深入的学习和应用。

2.2系统目标

(1)用户方便进行图书查询,图书浏览和图书分类浏览,进行图书借阅并了解自己的借书情况和个人情况。

(2)用户在借书超期的情况下得到来自管理员的提醒。

(3)管理员可以方便进行图书管理,用户管理,管理员管理。

图书管理包括图书信息以及图书分类的添加,修改,删除。

用户管理包括用户信息的添加,删除,修改和锁定(限制用户的正常使用功能,使其无法登陆)。

管理员管理包括管理员信息的添加,删除,修改等。

(4)用户和管理员可以修改自己的密码,修改前需先核实自己的原始密码。

(5)未注册用户(游客)也可以浏览所有的图书信息和分类信息,但是无法借阅。

(6)实现模糊查询,使用户得到更多的相关记录。

并且考虑使用的方便性,一些经常使用的输入无须用户输入,比如进行图书查询时图书分类只须用户做选择就可以。

(7)考虑程序执行操作时可能出现的情况,比如删除图书分类时该分类下存在图书,程序自动跳转该分类图书查看。

删除某个用户,如果存在借书记录则不允许删除,跳转到该用户的借书记录。

等待管理员确认该用户所借图书已经全部归还之后才允许删除该用户信息。

2.3总体需求

图书管理系统是一项复杂系统工程,要从实际出发,对实际情况进行客观的分析,深入了解需求。

系统利用Asp与数据库结合的技术建立数据库管理系统,采用交互式的动态的Asp页面来实现。

需求调查是为了研究系统设计的开发途径和方法。

同时它也是进行概要设计和详细设计的基础,是进行内部维护和测试的依据。

具体分析如下:

添加操作:

在执行操作时首先都要先检查是否已经输入以及数据库中是否已经存在输入的数据,如果存在会报错,程序返回上个页面,不执行添加操作。

删除操作:

考虑到了字段在不同表中可能会同时存在的情况,比如:

删除图书分类时候该分类下有书或者删除用户时该用户有借书记录,这样的情况下程序会给出提醒并跳转到该分类下的所有图书查看或者是该用户的全部借书查看。

直到这种关联取消掉之后才允许进行删除这样的危险操作。

查询操作:

考虑到了模糊查询的实现,SQL语句中用“like”,还有组合查询,通过对用户输入情况的判断来确定SQL语句的最终形式,比如用户查询时并未输入图书名字,就是名字匹配任意字符,那么程序给数据库的SQL语句就会是namelike‘%’。

组合查询的实现也是程序判断用户所做的选择或者输入,在SQL语句中实现的。

超期统计:

假定借书超期的限制是三十天,借书记录中的所有数据的借书时间如果不在当前服务器时间减去三十天和当前服务器时间之间,那么这条借书记录就属于超期记录了。

由用户借书记录中的用户编号到用户表中查找该用户。

发送消息:

往消息表中添加数据,该数据包含用户名,用户超期的图书,超期时间,罚金等相关警告信息。

当用户正常登陆主页后,程序自动检查消息表中是否存在该用户的记录,如果有要给出提示,但是没有强制用户必须查看。

数据库备份和还原操作:

程序只要告诉SQL服务器执行备份和还原SQL语句就可以实现,在还原时程序还在使用系统数据库,此时执行还原操作会因为没有排它使用权出现错误,所以应告诉SQL服务器使用另外的一个数据库,程序中用的是:

usemaster。

还原操作时用FSO组件首先检查备份数据库文件是否存在,如果不存在则给出提示回到上个页面。

所有条件都允许后则执行还原操作,如果数据库数据比较多,备份和还原的时间都可能会比较长。

2.4系统模块流程图

2.4.1系统登陆流程图

2.4.2用户流程图

2.4.3管理员流程图

2.5数据库设计

表2.5.1管理员

字段

类型

长度

必填字段

允许空格

备注

ID

数字

id主键

name

文本

50

名字

pwd

文本

50

密码

表2.5.2图书信息

字段

类型

长度

必填字段

允许空值

备注

id

数字

id主键

booktype

文本

50

图书类别

publishing

文本

50

出版社

bookmoney

数字

20

货币

pdate

日期时间

出版时间

bookname

文本

50

图书名称

num

数字

8

图书数量

表2.5.3图书类别

字段

类型

长度

必填字段

允许空值

备注

id

id主键

booktype

文本

50

图书类别

表2.5.4借出信息

字段

类型

长度

必填字段

允许空值

备注

id

数字

id主键

bid

数字

50

图书编号

time

日期时间

借书时间

uid

数字

20

用户编号

表2.5.5消息表

字段

类型

长度

必填字段

允许空值

备注

id

数字

id主键

content

文本

500

消息内容

uid

数字

20

用户编号

表2.5.6用户表

字段

类型

长度

必填字段

允许空值

备注

id

数字

id主键

name

文本

50

名字

pwd

文本

50

密码

lock

是/否

是否锁定

loan_num

数字

20

借书数量

3详细设计

3.1用户登陆页面

该页面用于用户登陆,包括游客,用户和管理员。

成功登陆则取得用户的session用于以后的操作权限认定。

程序执行时首先判断用户类型,如果是游客则对session赋值为游客类型,然后直接进入主页;如果不是游客则执行查询语句,看数据库中是否存在这样的用户名和密码,根据选择用户类型的不同在不同的表中进行操作,成功则进入主页,否则提示输入错误。

截图如下:

图3.1.1用户登陆

代码:

--#includefile="conn.asp"-->

<%ifrequest("login")<>""then

ifrequest("usertype")<>""then'用户类型不空,核实数据真实

IfRequest("usertype")="user"Then

sql="select*fromuwherename='"&request("name")&"'andpwd='"&request("pwd")&"'"

Else

sql="SELECT*FROMadminWHEREname='"&Request("name")&"'andpwd='"&Request("pwd")&"'"

EndIf

Setrs=db.execute(sql)

Ifnotrs.EOFOrNotrs.BOFThen'输入数据存在

IfRequest("usertype")="user"Then

Ifrs("lock")Then

response.Write""

else

Session("usertype")="user"

Session("userid")=rs("id")

Session("name")=rs("name")

Response.Redirect("index.asp")

endif

Else

Session("usertype")="admin"

Session("adminid")=rs("id")

Session("name")=rs("name")

Response.Redirect("index.asp")

EndIf

Else

response.Write""

rs.close

Endif

else'用户类型空

response.Write""

endif

endif

%>

3.2图书查询页面

该页面用于用户的图书查询,利用查询语句的like%替代任意长度字符实现了模糊查询。

所有查询的字段用户都可以不输入,如果输入了某个数据,程序执行时自己会判断,输入了就会加上相应的SQL语句。

考虑到使用方便性,图书类型,价格范围,出版日期都无须用户输入,已经设定了合理的初始值。

图书类型如果不做选择就默认在所有图书类型中查找。

考虑到找到的记录可能会很多,引入了分页显示,在记录集循环显示的时候引入参数i来实现,设定i<10,初始值为0,这样每页显示的记录数为10条。

图3.2.1图书查询

代码:

--#includefile="conn.asp"-->

<%'定义记录集和变量

setrs=server.createobject("adodb.recordset")

bookname=trim(request("bookname"))

booktype=request("booktype")

publishing=trim(request("publishing"))

money1=trim(request("money1"))

money2=trim(request("money2"))

date1=trim(request("date1"))

date11=trim(request("date11"))

date2=trim(request("date2"))

date22=trim(request("date22"))

date3=trim(request("date3"))

date33=trim(request("date33"))

date111=date1&"-"&date2&"-"&date3

date222=date11&"-"&date22&"-"&date33

'查询的实现

sql="select*frombookwhere1"

ifbooktype<>""then

sql=sql+"andbooktypelike'%"&booktype&"%'"

elseifbookname<>""then

sql=sql+"andbooknamelike'%"&bookname&"%'"

elseifpublishing<>""then

sql=sql+"andpublishinglike'%"&publishing&"%'"

endif

endif

endif

sql=sql+"andbookmoney>='"&money1&"'andbookmoney<='"&money2&"'andpdatebetween'"&date111&"'and'"&date222&"'orderbyiddesc"rs.opensql,db,1,3

ifrs.eoforrs.bofthen

response.write"对不起没有搜索到记录"

response.end

else

'页面显示

dimpagenum,i

rs.pagesize=10

pagecount1=rs.pagecount

ifrequest.querystring("pagenum")=0orrequest.querystring("pagenum")=""then

pagenum=1

else

pagenum=trim(request("pagenum"))

rs.absolutepage=trim(request("pagenum"))

endif

%>

<%’分页实现

response.write"总共"&pagecount1&"页,当前"&pagenum&"/"&pagecount1&",

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>1then

response.write"

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&">上一页 "

else

response.write"上一页 "

endif

ifpagenum

response.write"

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&">下一页 "

else

response.write"下一页"

endif

%> 

<%

response.write"

pagenum="&pagecount1&"&bookname="&bookname&"&booktype="&booktype&"&publishing="&publishing&"&money1="&money1&"&money2="&money2&"&date1="&date1&"&date2="&date2&"&date3="&date3&"&date11="&date11&"&date22="&date22&"&date33="&date33&">尾页"

%>

3.3统计超期

方便管理员清楚图书借出后的归还情况,并可以给超期的用户发送消息提醒,或者锁定该用户,使其无法登陆系统。

超期判定用dateserial()函数来实现将当前系统时间的格式转化为YY-MM-DD,这样方便后面的日期比较操作。

设置一个变量来代表当前系统时间减去三十天,如果用户借书的时间不在这两个时间之间那么就是超期。

页面开始首先进行管理员身份核实,用到了前面登陆页面说的session。

点击左边菜单的统计超期后系统自动完成统计,并将结果显示在右边,管理员可以进行的操作有:

锁定,给单个用户发消息,群发消息。

截图如下:

图3.3.1统计超期

代码:

<%':

从loans表导出时间超期的数据更改系统时间来实现超期~管理员验证分页显示管理员发消息提醒还书

ifsession("usertype")<>"admin"then

response.write""

endif

dimloan_time'现在时间和借书时间相差三十天则超期

loan_time=dateserial(year(date),month(date),day(date)-30)'转换日期格式2007-3-31,函数参考

sql1="select*fromloans"

setrs1=db.execute(sql1)

sql2="selectbook.booknameasb_name,book.booktypeasbooktype,*fromloans,u,bookwhere

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

当前位置:首页 > 经管营销 > 经济市场

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

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