图书馆服务系统设计论文-数据库系统概论课程设计报告大学论文.doc
数据库系统概论课程设计报告设计题目图书馆服务系统学生姓名: 学 号:_ 图书馆服务系统一、需求分析 对于每一位图书借阅用户来说,有一款方便简洁的图书馆服务系统将可以为广大用户节省很多不必要的麻烦,同时也给图书馆的内部人员的管理带来了便利,同时设计图书馆的服务系统还要根据实际的要求。基于此两点,该图书馆服务系统设计思路如下。二、E-R图建模根据系统需求分析的结果设计该系统的ER图。管理可以对图书进行增、删、改;管理员可以对用户进行管理;管理员可以对图书、读者借阅情况的统计;每条书目对应一个asp文件每条栏目对应一个文件夹每条书目对应一个栏目1MNM用户检索单本图书管理管理员图书书目图2.1 检索功能E-R图管理员用户名密码权限图2.2 管理员信息实体E-R图单本图书图书编号所属栏目简介评价图2.3 单本图书实体E-R图图书栏目编号名称路径图2.4 图书栏目E-R图会员用户名密码权限图2.5 会员信息实体E-R图三、库文件结构设计a)概念模型设计1) 读者信息2) 书籍信息3) 管理员信息4) 栏目信息5) 读者与书籍之间的关系(借阅读关系E-R图)6) 管理员与书籍之间的关系(管理员_书籍E-R图)7) 管理员与学生之间的关系(管理员_学生E-R图)b)逻辑设计从理论“E/R模型”到理论“关系模型”的整理转换,通过E/R模型到关系模型的转化,可以得到如下关系模式:借阅关系属性:工作号,读者学号,ISBN,是否续借,借书日期,还书日期,备注主键:工作号,读者学号,ISBN,管理员_书籍关系属性:工作号,ISBN,添加时间,是否在馆主键:工作号b) 数据库表的设计表4.1 图书栏目表列名数据类型长度允许空typeidint8notypentext50yesTypenamenext50yesTypetimetime7yes表4.2图书内容表列名数据类型长度允许空bookidint8nobnamentext50yeszzbookntext50yescontentntext100yesaboutntext50yestitlenext50yesreviewntext100yesdateandtimetime10yestjbookint8yespathntext50yes表4.3 管理员信息表列名数据类型长度允许空Idint8nousernamentext50yespasswordntext50yes表4.4会员信息表列名数据类型长度允许空useridint8nousernamentext50yespasswordntext50yes四、用户接口设计及主要功能实现1)主页面端口:default.asp<html><body bgcolor=#CBC8C8><br><br><p><dl><dd><div align=center style="font-size:xx-large"><font color ="crimson"><p>WUST图书馆服务系统</P></font></div></dd></dl><table align=center border=0 width=630><tr><td width=20% align=center><a href="login.htm">会员登录</a></td><td width=20% align=center><a href="managerlogin.htm">管理员登录</a></td><td width=20% align=center><a href="searchbook.htm">检索图书</a></td><td width=20% align=center><a href="help.htm">帮助信息</a></td><td width=20% align=center><a href="leavemessage.htm">请你留言</a></td></tr></table><br></body></html>2)会员登录模块:login.htm和login.asp<html><head><title></title></head><body bgcolor=#CBCC8C8><p align=center><font size=5>图书馆服务会员登陆</font></p><hr><form action=login.asp method=post><table border=0 width=500 cellpadding=0><tr><td width=40% align=right height=40>账号:<br></td><td width=50%><input name=name style="height:22px;width:167px"><br></td></tr><tr><td width=40% align=right height=40>密码:<br></td><td width=50%><input type=password name=passwordstyle="height:22px;width:167px"><br></td></tr><tr><td width=40% align=right height=40><br></td><td width=30% align=left> <input id=submit1 name=submit1type=submit value=确定> <input id=reset1 name=reset1 type=reset value=重填></td></tr></table></form><form action=changepassword.asp method=post><table align=center border=0 width=630><tr><td width=20% align=center><a href="changepassword.htm">修改密码</a></td></table></form></center><center> </center><p align=center style="font-size:xx-large"><font size=2>图书馆欢迎您<br>南四205 版权所有</font></p></body></html><% language=vbscript%><%response.buffer=true%><html><head><% set conn=server.createobject("adodb.connection")conn.open "DRIVER=Microsoft SQL Driver(*.mdb);DBQ="&Server.MapPath("BBS.MDB")%></head><body bgcolor=#CBC8C8><center><% set rstemp=server.createobject("addb.recordset")dim strname,strpassword,sqlstrname=request.form("Name")strpassword=request.form("password")sql="select * from user where username='"& strname & "'"rstemp.open sql,conn,1,3if strname=" " then response.write"账号不能为空<p></p>"%><a href =javascipt:history.back()>上一页</a><% response.end end ifif strpassword=" " then response.write"密码不能为空<p></p>"%><a href=javascript:history.back()>上一页</a><% response.endend if if rstemp.RecordCount=1 then if rstemp("userpassword")=strpassword thensession ("name")=strnameresponse.redirect "user.htm"else%><a href=javascript:history.back()>账号错误 请重新输入</a><% response.endend ifrstemp.closeset rstemp=nothing%></body></html>3)会员密码修改端口:changepassword.htm和changepassword.asp<!-#include file=conn.asp-><html><body bgcolor=#CBC8C8><%if session("name")=" " thenresponse.write "请你首先登录,才能留言"response.end%><center><% dim stroldpassword,strnewpassword,strconfirmpassworddim strwhere,strsql,strdsn,strchangesqlstroldpassword=request.form("oldpassword")strnewpassword=request.form("newpassword")strconfirmpassword=request.form("confirmpassword")if stroldpassword=" " or strnewpassword=" " thenresponse.write" 请输入密码"response.endend if if strnewpassword<>strconfirmpassword thenresponse.write"两次密码不相同"response.endend if strwhere="where username='" & session("name") & "' and userpassword='" & stroldpassword & "'"strsql="select * from user "& strwherestrchangesql="update user set userpassword='" & strnewpassword & "'"& strwhereset rs=server.createobject("adodb.recordset")rs.open strsql,conn,1,3%><br>if rs.recordcount=1 thenset changers=server.createobject("adodb.recordset")changers.open strchangesql,conn,1,3set changers=nothingresponse.write "密码已成功修改"else response.write "密码输入错误,无法修改密码"else ifrs.closeset rs=nothing%></body><p align=center style="font-size:xx-large"><font size=2>图书馆欢迎您<br>南四205 版权所有</font></p></body></html><!-#include file=conn.asp-><html><body bgcolor=#CBC8C8><%if session("name")=" " thenresponse.write "请你首先登录,才能留言"response.end%><center><% dim stroldpassword,strnewpassword,strconfirmpassworddim strwhere,strsql,strdsn,strchangesqlstroldpassword=request.form("oldpassword")strnewpassword=request.form("newpassword")strconfirmpassword=request.form("confirmpassword")if stroldpassword=" " or strnewpassword=" " thenresponse.write" 请输入密码"response.endend if if strnewpassword<>strconfirmpassword thenresponse.write"两次密码不相同"response.endend if strwhere="where username='" & session("name") & "' and userpassword='" & stroldpassword & "'"strsql="select * from user "& strwherestrchangesql="update user set userpassword='" & strnewpassword & "'"& strwhereset rs=server.createobject("adodb.recordset")rs.open strsql,conn,1,3%><br>if rs.recordcount=1 thenset changers=server.createobject("adodb.recordset")changers.open strchangesql,conn,1,3set changers=nothingresponse.write "密码已成功修改"else response.write "密码输入错误,无法修改密码"else ifrs.closeset rs=nothing%></body><p align=center style="font-size:xx-large"><font size=2>图书馆欢迎您<br>南四205 版权所有</font></p></body></html>4)管理员登陆模块:managerlogin.htm和managerlogin.asp<html><head><title></title></head><body bgcolor=#CBCC8C8><p align=center><font size=5>图书馆服务管理员登陆</font></p><hr><form action=managerlogin.asp method=post><table border=0 width=500 cellpadding=0><tr><td width=40% align=right height=40>账号:<br></td><td width=50%><input name=name style="height:22px;width:167px"><br></td></tr><tr><td width=40% align=right height=40>密码:<br></td><td width=50%><input type=password name=passwordstyle="height:22px;width:167px"><br></td></tr><tr><td width=40% align=right height=40><br></td><td width=30% align=left> <input id=submit1 name=submit1type=submit value=确定> <input id=reset1 name=reset1 type=reset value=重填></td></tr></table></form><form action=del.asp method=post><table align=center border=0 width=630><tr><td width=20% align=center><a href="del.htm">图书删除</a></td></tr></form><form action=update.asp method=post><tr><td width=20% align=center><a href="update.htm">新书上架</a></td></tr></form><form action=addmember.asp method=post><tr><td width=20% align=center><a href="addmember">添加会员</a></td></tr></form></table></center><center> </center><p align=center style="font-size:xx-large"><font size=2>图书馆欢迎您<br>南四205 版权所有</font></p></body></html><% language=vbscript%><%response.buffer=true%><html><head><% set conn=server.createobject("adodb.connection")conn.open "DRIVER=Microsoft SQL Driver(*.mdb);DBQ="&Server.MapPath("BBS.MDB")%></head><body bgcolor=#CBC8C8><center><% set rstemp=server.createobject("addb.recordset")dim strname,strpassword,sqlstrname=request.form("Name")strpassword=request.form("password")sql="select * from manager where username='"& strname & "'"rstemp.open sql,conn,1,3if strname=" " then response.write"账号不能为空<p></p>"%><a href =javascipt:history.back()>上一页</a><% response.end end ifif strpassword=" " then response.write"密码不能为空<p></p>"%><a href=javascript:history.back()>上一页</a><% response.endend if if rstemp.RecordCount=1 then if rstemp("userpassword")=strpassword thensession ("name")=strnameresponse.redirect "user.htm"else%><a href=javascript:history.back()>账号错误 请重新输入</a><% response.endend ifrstemp.closeset rstemp=nothing%></body></html>6)帮助信息模块:<HTML> <HEAD> <TITLE>帮助信息</TITLE> </HEAD><BODY bgcolor="#CCCCCC"> <p>欢迎同学们来到进入图书馆服务系统,本系统只针对已经通过管理员审核的同学方能使用该系统。本图书系统收录图书馆的大部分书,并且有新的书目不断上架以满足同学学习的需要。鉴如图书馆书目有限,对于没有收录图书对你和你很多同学作用较大而本馆没有收录,请在“请你留言”处留言。<p align=center style="font-size:xx-large"><font size=2>图书馆欢迎您<br>南四205 版权所有</font></p></BODY></HTML>7)请你留言模块:<html> <head> <title>请你留言</title> </head><body bgcolor="#CBC8C8"> <form name=leavemessage.asp method=post> <center><table BORDER=0> <tr> <td>主题:</td> <td><INPUT Type=Text Name=UserName size=30></td> </tr> <tr> <td ColSpan=2>意见:</td></tr><tr><td colspan=2><textarea name=content style="height:100px;width:500px"></textarea></td> <tr> <td>所在学院:</td> <td> <SELECT name="select"> <OPTION value="0">理学院</OPTION><OPTION value="1">计算机学院</OPTION><OPTION value="2">机械自动化学院</OPTION><OPTION value="3">化工学院</OPTION><OPTION value="4">城建学院</OPTION><OPTION value="5">文法与经济学院</OPTION><OPTION value="6">医学院</OPTION><OPTION value="7">材冶学院</OPTION><OPTION value="8">管理学院</OPTION><OPTION value="9">汽车与交通学院</OPTION><OPTION value="10">外国语学院</OPTION><OPTION value="11">信息学院</OPTION><OPTION value="12">艺术与设计学院</OPTION></SELECT></td> </tr> <tr><TD>性别</TD><TD><INPUT type="radio" name="radiobutton1" value="1" checked>男<INPUT type="radio" name="radiobutton1 value="0">女</TD> </tr></table><center><br> <INPUT name=Submit type=submit value=提交><INPUT type=RESET value=重置></center> </form><p align=center style="font-size:xx-large"><font size=2>图书馆欢迎您<br>南四205 版权所有</font></p></body></html><% language=vbscript%><!-#include file=conn.asp-><html><head></head><body bgcolor=#CBC8C8><center><%dim strarticletitle,strarticletlecontent,strarticleauthor,strarticleiddim strtable,strdsnif session("name")=" " thenresponse.write "请你首先登录,才能留言"response.endend ifstrarticletitle=request.form("title")strarticlecontent=request.form("content")strarticleauthor=session("name")strarticleid=request.form("articleid")strtable="article"if trim(strarticletitle)=" " thenresponse.write "主题不能为空"response.endend ifif trim(strarticlecontent)=" " thenstrarticletitle=strarticletitle &"(无内容)"end ifset rs=server.createobject("adodb.recordset")rs.open strtable,conn,3,2rs.addnewif request.form("submit")="提交" thenrs("articletitle")=strarticletitlers("articleauthor")=strarticleauthorrs("articlecontent")=strarticlecontentresponse.write "您的意见提交成功"end ifrs.updaters,closeset rs=nothing%></body></html>8)管理员图书下架模块:del.htm和del.asp<!-#include file=conn.asp-><html><head></head><body bgcolor=#CBC8C8><p align=center><font size=5>图书下架</font></p><%if session("name")=" " thenresponse.write "请你首先登录,才能留言"response.endend if%><% dim strdsn,strselectsqldim intarticleidif request.querystring("ID")=" " thenintarticleid=0end ifset rs=server.createobject("adodb.recordset")strselectsql="select * from book where bookid=" & intaricleidrs.open strselectsql,conn,3,1rs.pagesize=10nextpage=request.form("nextpage")if nextpage=" " thensession("abspage")=1elseif nextpage="上一页" thensession("abspage")=session("abspage") -1else if nextpage="下一页" thensession("abspage")=session("abspage") +1else if nextpage="第一页" thensession("abspage")=1else if nextpage="最后一页" thensession("abspage")=rs.pagecountend ifrs.absolutepage=session("abspage")end ifif rs.recordcount>0 theni=0response.write"<table border=1 width=100%/>"if intaricleid=0 thenresponse.write "第" &session("abspage") & "页" & "&mbsp;主题共有"& rs.recordcount&" 个"<tr><td align=center width=30%>主 题</td><td align=center width=6%>借阅次数</td><td align=center width=6%>下架</td><td align=center width=15%>年份/时间</td></tr><td align=center><%=rs("articlereadnumber")%></td><td align=center><%=rs("delete")%></td><td align=center><%=rs("articledate")%> / <%=rs("aticletime")%></td></tr><%rs.movenext i=i+1loopresponse.write"</table></center>"response.write"<center><form action showlise.asp method=post>"if rs.pagecount>1 thenresponse.write"<input type=submit value=上一页 name=nextpage>"&" "end ifif(session("abspage")<rs.pagecount thenresponse.write"<input type=submit value=下一页 name=nextpage>"end if'end ifresponse.write"</form>"end ifrs.closeset rs=nothing%></tr></table><hr><p align=center style="font-size:xx-large"><font size=2>图书馆欢迎您<br>南四205 版权所有</font></p></body></html><!-#include file=conn.asp-><%if session("name")=" " thenresponse.write "请你首先登录,才能删除图书"response.end%><% dim sql dim rspath=request("path")file=request("file")set rs=server.createobject("adodb.recorset")sql=""delect from book where bookid=&request("ID")rs.open sql,conn,1,1rs.closeset rs=nothingconn.closesetnonn=nithingfilepath=server.mappath(".")&"|"&path""&fileset fso=server.createobject("scripting.file systemobject")fso.delete file(filepath)set fso=nothing%>9)图