1、小型图书资料管理系统设计与实现 胡昆鹏 (合肥财经职来学院) 摘 要 本文为大家介绍一个小型图书资料管理系统设计与实现,该系统适用于各中小学、中小企业及较大单位的某一部门。使用该系统可以帮助图书管理员使用计算机等工具来辅助其完成图书管理及借阅方面的工作,从而使得管理人员更加省时省力。本系统主要包括图书管理系统和用户借阅系统,其中图书管理系统包括了用户管理、分类管理、图书检索、新书入库管理和借阅管理等五大模块,而借阅系统包括了借书和还书等模块。该系统具有清晰的数据流和控制流,并有很好的安全性。
2、 关键词 图书管理;图书借阅;检索;ASP;B/S 1 引言 当今社会是一个信息化的社会,图书资料仍是获取信息的一个主要来源,随着人们对信息需求的增强,各中小单位及有关部门都为日益增多的图书的管理而困扰。 本文为大家介绍一个小型图书资料管理系统的设计与实现,该系统适用于各中小学、中小企业及较大单位的某一部门。使用该系统可以帮助图书管理员使用计算机等工具来辅助其完成图书管理及借阅方面的工作,从而使得管理人员更加省时省力。 2 数据结构 一个实用而高效的信息管理系统必须建立在良好的数据结构基础上,图书管理主要包括用户管理、分类管理、新书入库管理和借阅管理。为此我们
3、在数据库中设立了四个数据表:借书日志表、图书表、图书分类表、管理员表。 2.1 数据库设计 (1)借书日志表,包含如下信息: 编号、图书条形码、图书ID、姓名、借书类型(1借出 0 归还)、借阅时间、操作人、归还时间、备注。 (2)图书表,包含如下信息: 编号、条件码、书编号、书名、出版社、主编、简介、定价、购买时间、分类ID、册数、已经借出数、备注、借阅数、借阅记录、用户ID。 (3)图书分类表,包含如下信息: 编号、目录名称、上级目录I(根目录为0)、目录简要描述。 (4)管理员表,包含如下信息: 编号、用户名、密
4、码、是否是管理员。 2.2 表的实现 使用Access建立表,注意备注栏填写字段的中文备注。 3 系统功能设计 本系统主要分为两大部分:一是图书管理系统,包括用户管理、分类管理、新书入库管理和借阅管理等五大模块。二是用用借阅系统,主要包括读者管理、借书模块、还书模块(这里读者管理我们不做介绍)。其功能结构如图1所示。 图1 系统结构图 3.1 管理员管理 该模块主要有管理用户的添加、删除和修改及管理用户的登陆功能。 (1) 管理员的管理功能,即数据记录增加、删除和修改的功能,比较简单,请
5、参考本系统的原代码。如图2所示。 图2 管理员管理功能 (2)用户登陆表单的设计。如图3 图3 管理用户登陆表单 /*用表格嵌套登陆表单*/
6、olor="#FFFFFF"> |
10、 dim action action=trim(request.QueryString("action")) if action="chkuser" then dim password,username username=request.Form("username") password=request.Form("password") password=md5(password,16) set rs=conn.execute("select * from manager where userid='"&username&"' and password='"&password&"
11、'") if not rs.eof then session("username")=rs("userid") session("userid")=rs("id") if rs("isadmin")=true then session("isadmin")="admin" end if response.Write "" else response.Write "" end if end if %> 3.2 分类管理 该模块具有分类的添加、删除、修改和分类图书记录浏览的功能。采用框架设计,框架的左边是具体的分类,右边的缺省页是分类管理(如图4),当你选择左边相应的分类时,它还可以显示该分类下的有关图书信息。我们采用action变量作为select开关语句的变量表达式,来判断用户所要执行的操作。如果action的值是add,系统就做添加分类操作;如果是edit系统就做编辑操作;如果是del系统就做删除操作。 图4 分类管
13、理
14、断做分类的添加、删除和修改 Dim action,id action=trim(request.QueryString("action")) select case action case "add" foldername=cstr(request.Form("foldername")) Set rs=server.CreateObject("adodb.recordset") sql="select * from folder" rs.open sql,conn,1,3 rs.addnew rs("foldername")=foldername rs("folderpa
15、rentid")=0 rs.update rs.close set rs=nothing response.Write "" case "editfolder" %>
分类名称 |
操作管理 |
| <%=rs("foldername")%> | ">修改 | " onclick="return confirm('删除分类,分类下所 18、有图书都将删除!');">删除 |
<% id=cint(request.QueryString("id")) set rs=conn.execute("select * from folder where folderid="&id) if rs.eof or rs.bof then response.Write "" else %> <% end if %>
<% case "edit" id=cint(request.querystring("id"))
22、 foldername=cstr(request.Form("foldername")) Set rs=server.CreateObject("adodb.recordset") sql="select * from folder where folderid="&id rs.open sql,conn,1,3 rs("foldername")=foldername rs.update rs.close set rs=nothing response.Write "" case "del" id=cint(request.QueryString("id")) conn.execute("delete from folder where folderid="&id) conn.execute("delete From ebook where folderid="&id) response.Write "" case else %>
&nbs
24、p;
分类名称 |
25、g>操作管理 |
| <%=rs("foldername")%> | 26、lderid")%>">修改 | " onclick="return confirm('删除分类,分类下所有图书都将删除!');">删除 |
<% end select %> 3.4 图书管理模块 该模块主要是用来实现根据图书的条形码进行图书的检索功能。 (1) 作检索表单:见图5 图5 图书查询表单 /*当用户打开检索页面时,系统就执行tiaoxingma()函数,将光标就定位到检索页面*/
30、
(2) 写检索功能代码。当用户输入条形码后,点击查找图书,则可以找到指定图书信息,并编辑它。该程序主要根据检索页面传的条形码值在数据库中实现查找的方法。程序界面如图6所示。 图6 图书详细信息表单 <% action=request.querystring("action") if action="edit" then bookid=cint(request.Form("bookid")) tiaoxingma=trim(request.form("tiaoxingma")) shuming=request.form("shuming") folderid=request.form("folderid") zhubian=request.form("zhubian") chubanshe=request.form("chubanshe") ce
34、shu=request.form("ceshu") dingjia=request.form("dingjia") jianjie=request.form("jianjie") beizhu=request.form("beizhu") shijian=request.form("shijian") bookpic=request.form("bookpic") set rs=server.createobject("adodb.recordset") sql="select * from ebook where id="&bookid&"" rs.open sql,conn
35、1,3 rs("tiaoxingma")=tiaoxingma rs("shuming")=shuming rs("folderid")=folderid rs("zhubian")=zhubian rs("chubanshe")=chubanshe rs("ceshu")=ceshu rs("dingjia")=dingjia rs("jianjie")=jianjie rs("shijian")=shijian rs("beizhu")=beizhu rs("bookpic")=bookpic rs.update
36、 rs.close set rs=nothing response.write "" else %>
38、oxingma&"'") %>
<%end if%>