武汉工业学院《网络程序设计—asp》课程设计设计题目:图书管理系统*名:**学号:**********班级:计算机科学指导老师:王凯老师设计时间:2011-12-26—2011-12-31武汉工业学院数学与计算机学院目录一、题目说明 ...................................................................... 错误!未定义书签。
二、需求分析三、数据库的概念结构设计 (3)四、数据库的逻辑设计 (5)五、数据库的链接 (5)六、程序实现 (6)七、总结与体会 (20)一、提目说明图书管理系统系统主要用于图书管理员和学生,任务是通过建立图书管理系统,完善图书录入、图书借阅以及读者信息的管理,通过查询可立即定位该读者的相应的信息,可以对图书进行查询、增加、修改,读者可以预约已借图书,针对这些问题设计此系统。
本系统中,把图书馆的图书管理、读者管理、图书借阅管理等日常管理工作实行计算机统一管理,以提高工作效率和管理水平。
这些管理包括:图书基本信息的管理,包括增加、修改、查询、预约管理;读者基本信息的管理,包括增加、修改、查询管理;图书租借的管理,包括增加、查询、统计管理;统管理,主要是增加用户、维护用户信息和退出系统,这样很大程度上方便了读者查阅书籍和预订到户籍,也方便了图书管理员的工作,可以直接在电脑上对图书进行存档录入,也方便整理查找修改。
在这次的课程设计中基本涉及到了所有asp与数据库概论中学到的基本知识,从静态网页的美化确定及数据库的设计与相关功能的完成,但还是存在着很大的缺点,有几处功能还是不能完成。
我做的这个图书管理系统就是仿照学校图书馆管理系统的雏形设计出来的一个简单版的图书管理系统,限于时间的原因,有些功能还没有完全实现,希望在以后的学习与进步中,不断地完善修改,最终能够拿出来一个出色地管理系统。
二、需求分析图书管理系统的数据库功能主要体现在用户和系统两个方面。
用户的需求主要体现在对各种信息的浏览、查询、保存和更新操作上;系统的需求体现在各个系统功能对数据库提供的各种信息的处理上。
针对数据库的特点,需求分析总结如下:1、用户部分功能◎用户注册(读者)◎用户登录·读者进入图书管理页面,可以进行查询,预订,阅读等功能·游客只能进入到最基本的图书管理页面,可已经行查询,但不能预订图书,如果想进行操作就得先注册,再登录,成为读者后才可以进行相关的操作◎图书的检索和分类浏览◎图书的预订与取消2、管理部分功能◎管理员图书管理(增加图书、修改图书信息、删除图书)用户管理(删除用户、查找用户、浏览用户信息)系统主页(进入图书管理主页,进行信息查询采集)◎系统管理查看修改系统消息对读者进行预订的书如果超期的进行取消3、系统部分功能◎通过判断用户的相关操作,而产生一些基本的简单的系统消息,用来提示用户不合法的操作,方便用户进行后面的操作,起一个提示警告的作用三、数据库概念结构设计将各个功能模块之间的功能用实体-关系图表示实体型:用矩形表示,矩形内写明实体名。
属性:用椭圆表示,并用无向边将其与相应的实体连接起来。
联系:用菱形表示,菱形框内写明联系名,并用无向边分别与有关实体连接起来,那么本系统的E-R图如下:1、实体间的总体关系图2、用户信息实体图3、图书信息实体图4.借阅信息四、数据库逻辑结构设计数据库概念结构设计完毕就可以转化为实际的数据模型,运用access数据库设计数据库,命名为Liberary.mdb,在数据库里面进行建表,在已经完成了的项目中总共用到了三张表:bookInfo,userInfo,manager。
数据项和数据结构如下:图书信息表:图书编号,图书名称,图书作者,出版社,图书类型,图书中有无CD,图书数量,图书简介。
用户信息表:用户编号,用户名,用户密码,确认密码,密保问题,密保答案,用户爱好,用户职业,用户文化程度。
管理员信息表:管理员名字,管理员密码,在设计的时候,默认管理员只有一个人。
表中字段及设计说明:userPass2 文本确认密码userQuestion 文本密保问题useAnswer 文本密保答案userLove 文本爱好userJob 文本职业userEdu 文本文化程度Manager管理员表记录管理员的账号和密码,在设置的时候,就只在数据库的表中添加了一个管理员的信息,账号为admin,密码也为adminmID 自动编号管理员编号mName 文本用户名mPass 文本密码五、数据库的连接在整个管理系统中,多处都要用到数据库,插入,删除,修改等,如果每次都在页面中进行连接,很麻烦,所以,专门写一个连接数据库的文件conn.asp,每次要连接数据库的时候就用<!--#include file=”conn.asp”-->命令就可以直接调用该程序,连接数据库,提高程序的可读性,同时也提高了程序的便捷性,为了便于测试,暂时不加关闭数据库的代码,具体代码如下:<%Dim dbSet db=server.CreateObject("adodb.connection")‘创建一个数据库连接对象db,方便以后调用db.open"dbq="&server.mappath("data\Library.mdb")&";driver={microsoft access driver (*.mdb)}"%>六、主要界面及相关代码分析登陆界面:Login.asp //用来进行登录验证的,因为后台管理功能只有管理员才有权限使用,所以在进入这些页面之前,需要判断他的权限<!--#include file="conn.asp"--><% user=request.Form("user") pass=request.Form("pass")role=request.Form("role")session("user")=user session("role")=role If role="读者" ThenIf user<>"" And pass<>"" Thensession("user")=userDim sql,rssql1="select * from userInfo where userName='"&user&"'"Set rs=db.execute(sql1)If rs.eof And rs.bof Then%> <script language="javascript">alert("请先注册再登陆");history.back();</script><% Else Dim sql2,rs2sql2="select userPass from userInfo where userName='"&user&"'"Set rs2=db.execute(sql2)If pass<>rs2(0) Then%><script language="javascript">alert("对不起,您的密码错误!");history.back();</script><% Else response.redirect"main.asp?str=欢迎访问" End If End If Else%><script language="javascript">alert("请输入用户名和密码");history.back();</script><% End IfElseIf role="管理员" ThenIf user<>"" And pass<>"" Thensession("user")=usersql1="select * from manager where mName='"&user&"'"Set rs=db.execute(sql1)If rs.eof And rs.bof Then%><script language="javascript">alert("对不起,您不是管理员!");history.back();</script><%Else sql2="select mPass from manager where mName='"&user&"'" Setrs2=db.execute(sql2)If pass<>rs2(0) Then%><script language="javascript">alert("对不起,您的密码错误!");history.back();</script><% Else response.redirect"manager.asp" End If End If Else %><script language="javascript">alert("请输入用户名和密码");history.back();</script><% End If Else response.redirect"main.asp" End If %>部分验证效果:Mylibrary.asp主要是用户登录的表单,用户有三个权限:管理员、读者和游客,通过radio传过来的值,在服务器端进行判断,再对应相应的错误弹出相应的报错窗口,再有histroy.back()返回报错的窗口,例如,选择登陆的权限是管理员,因为在最开始的时候只设定了一个管理员,并且账号和密码都是固定的,所以,就先对应的在manager表中查找看从表单传过来的值是否与表中的用户名相等,如果相等,再查找从表单传过来的密码是否与库文件中的密码相等,相等则登录成功,不相等弹出密码错误的提示框,如果刚开始的时候在库文件中找不到和表单中提交过来相等的用户名,则说明该用户名是不存在的,则会弹出要求先进行注册的窗口。