《Web程序设计》课程设计学院:计算机科学学院专业班级:12级网络工程01班项目名称:图书信息管理系统设计与实现组员:罗发军:41209040109余武震:41209040118一、开发背景随着现代图书流通市场竞争的愈演愈烈,如何以一种新的管理方式提高图书流通信息的反馈速度、降低库存占用、加快资金周转、提高工作效率,已经成为图书企业提高竞争力的关键。
信息技术的发展给图书企业的管理带来了新的力量,通过图书馆管理系统对图书企业经营运作的全程管理,不仅使企业摆脱了人工管理所固有的一系列弊端和问题,更重要的是提高了工作效率,进而提高了企业的经济效益。
通过管理系统对企业的管理,为企业的发展提供了大量的、关键性的数据,企业根据这些数据,可以及时作出决策,进行调整,使之能够更好地把握市场的销售规律,适应市场变化,在激烈的行业竞争中赢得一席之地。
二、需求分析长期以来,人们使用传统的人工方式管理图书馆的日常业务,其操作流程比较繁琐。
在借书时,读者首先将要借的书和借阅证交给工作人员,工作人员将每本书的信息卡片和读者的借阅证放在一个小格栏里,然后在借阅证和每本书贴的借阅条上填写借阅信息。
在还书时,读者首先将要还的书交给工作人员,工作人员根据图书信息找到相应的书卡和借阅证,并填写相应的还书信息。
从上述描述中可以发现,传统的手工流程存在着种种不足。
首先处理借书、还书业务流程的效率很低;其次处理能力比较低,一段时间内,所能服务的读者人数只能是很有限的。
为此,图书信息管理系统需要为企业解决上述问题,提供快速的图书信息检索功能及快捷的图书借阅、归还流程。
三、系统设计1、系统目标根据图书馆日常图书管理工作的需求和图书借阅的管理流程,该系统实施后,应达到以下目标。
●界面设计友好、美观,数据存储安全、可靠。
●基本信息设置保证图书信息和读者信息的分类管理。
●强大的查询功能,保证数据查询的灵活性。
●实现对图书借阅、续借、归还过程的全程信息服务跟踪。
●设置读者借阅和图书借阅排行榜,为图书馆管理提供真实的数据信息。
●提供借阅到期提醒功能,使管理者可以及时了解到期的图书借阅信息。
●提供管理员修改自己密码的功能,保证系统的安全性。
●提供灵活、方便的权限设置功能,使整个系统的管理分工明确。
●采用人机对话的操作方式,方便管理员的日常操作。
●系统要最大限度地实现易维护性和易操作性。
2、业务流程图读者图书借阅图书续借图书归还管理员管理图书档案信息图书档案管理读者档案信息读者档案获取读者信息根据读者信息获取借阅图书信息归还相关图书图书归还档案图书借阅档案完成图书续借完成图书借阅3、系统功能结构根据图书馆管理系统的特点,可以将其分为系统设置、读者管理、图书管理、图书借还、系统查询等部分。
图书馆管理系统系统设置读者管理图书管理图书借还系统查询图书馆信息管理员设置书架设置读者类型管理读者档案管理图书类型管理图书档案管理图书借阅图书续借图书归还图书档案查询图书借阅查询更改口令退出系统4、系统预览为使读者对图书馆管理系统有初步的了解,下面给出系统中的几个页面。
5、构建开发环境1.网站开发环境网站开发环境:Microsoft Visual Studio 2008集成开发环境。
网站开发语言:+C#。
网站后台数据库:SQL Server 2005。
开发环境运行平台:Windows XP (SP2) / Windows 2000 (SP4) / Windows Server 2003 (SP1)2.服务器端操作系统:Windows Server 2003 (SP1)。
Web服务器:Internet信息服务管理器。
数据库服务器:SQL Server 2005。
浏览器:速达。
网站服务器运行环境: Framework SDK v2.0。
3.客户端浏览器:速达。
分辨率:最佳效果:1024x768像素。
6、数据库设计本系统采用SQL Server 2008数据库,其中包含9张表。
下面分别给出数据表概要说明、数据表E-R图及主要数据表的结构。
1. 数据库概要说明从读者角度出发,为了使读者对本系统的数据库中的数据表有一个更清晰的认识,我们设计了一个数据表树形结构图,如图1所示,其中包含系统所有数据表。
2.数据库概要设计通过对本系统的需求分析、系统流程设计以及系统功能结构的确定,规划出系统中使用的数据库实体对象,具体说明如下。
只有系统分配的用户才可以操作图书馆管理系统,而用户的权限又各不相同。
管理员权限设置信息实体E-R 图如图1.10所示。
管理员权限设置系统查询权限图书借还权限图书管理权限管理员名称权限系统设置权限读者管理权限图书借阅信息实体,用于存储所有图书借阅情况的信息,以准确地记录每本图书的借阅情况。
图书馆对图书的分类,通常是将不同类型的图书分别放置在相应类型的书架上。
书架信息实体,用于存储图书馆中所有的书架信息。
不同的书,会有不同的图书信息。
对这些信息进行详细的记录,方便了图书的分类和查询。
图书信息实体,用于存储所有图书的相关信息。
图书馆中会有不同类型的图书,为了避免图书归类发生混乱,必须建立一个图书类型信息实体,用于存储图书的类型信息。
图书类型信息类型编号类型编号可借天数每个事物都会有其自身的历史背景,图书馆也不例外。
为了记录图书馆的历史背景及其相关的信息,需要建立一个图书馆信息实体,用于存储与图书馆有关的信息。
图书馆信息实体E-R 图如图1.15所示。
图书馆信息建馆时间网址电子邮件图书馆名称馆长名称联系电话备注联系地址当有读者借阅图书时,要对读者的各项信息进行记录,以方便归还图书和已借阅图书的历史查询。
读者信息实体,用于存储所有借阅图书的读者信息。
读者信息电子邮件证件类型读者条形码读者名称读者性别备注读者类型证件号码联系电话在读者群体中,会有不同的分类,例如借阅图书的读者可能是教师、学生和普通市民等,所以对读者人群进行有效的分类是至关重要的。
读者类型信息实体,用于存储读者的类型信息。
读者类型信息类型编号类型名称可借数量当管理员登录图书馆管理系统时,需要通过登录窗口验证成功后才能进入系统主页。
管理员信息实体,用于存储管理员的登录名称和登录密码。
管理员信息信息实体E-R 图如图1.18所示。
管理员信息管理员编号管理员名称管理员密码四、程序代码:<%@ Page Language="C#" MasterPageFile="~/MasterPage/MainMasterPage.master" AutoEventWireup="true" CodeFile="Default.aspx.cs" Inherits="_Default" Title="Untitled Page" %><asp:Content ID="Content1" ContentPlaceHolderID="ContentPlaceHolder1" Runat="Server"><table align="center" style="width: 628px; height: 91px"><tr><td height="9" background="images/index_08.gif"></td></tr><tr><td width="777" height="472"><table width="771" height="465" border="0" align="center" cellpadding="0" cellspacing="1" class="waikuang"><tr><td valign="top"><table width="756" border="0" align="center" cellpadding="0" cellspacing="0"><tr><td height="24"> </td></tr><tr><td width="756" height="45" background="images/tu shu pai hang.gif"> </td></tr><tr><td height="200" background="images/tu shu pai hang2.gif"><asp:GridView ID="gvBookSort" runat="server" AutoGenerateColumns="False" Font-Size="9pt" HorizontalAlign="Center"PageSize="5" Width="678px" OnRowDataBound="gvBookSort_RowDataBound"><Columns><asp:BoundField HeaderText="排名" /><asp:BoundField DataField="bookcode" HeaderT ext="图书条形码" ReadOnly="True" /><asp:BoundField DataField="bookname" HeaderT ext="图书名称" /><asp:BoundField DataField="type" HeaderText="图书类型" /><asp:BoundField DataField="bcase" HeaderT ext="书架" /><asp:BoundField DataField="pubname" HeaderText="出版社" /><asp:BoundField DataField="author" HeaderText="作者" /><asp:BoundField DataField="price" HeaderT ext="定价" /></Columns><RowStyle HorizontalAlign="Center" /></asp:GridView></td></tr><tr><td height="4" background="images/tu shu pai hang3.gif"></td></tr><tr><td colspan="6" style="text-align: right"><asp:HyperLink ID="hpLinkBookSort" runat="server" NavigateUrl="~/SortManage/BookBorrowSort.aspx"ImageUrl="~/images/more.gif"></asp:HyperLink></td></tr></table><table width="756" border="0" align="center" cellpadding="0" cellspacing="0"><tr><td height="4"></td></tr><tr><td width="756" height="45" background="images/zu zhe pai hang.gif"> </td></tr><tr><td height="200" background="images/tu shu pai hang2.gif"><asp:GridView ID="gvReaderSort" runat="server" AutoGenerateColumns="False" Font-Size="9pt" HorizontalAlign="Center"PageSize="5" Width="678px" OnRowDataBound="gvReaderSort_RowDataBound"><Columns><asp:BoundField HeaderText="排名" /><asp:BoundField DataField="id" HeaderText="读者编号" /><asp:BoundField DataField="name" HeaderText="读者姓名" /><asp:BoundField DataField="type" HeaderText="读者类型" /><asp:BoundField DataField="paperType" HeaderT ext="证件类型" /><asp:BoundField DataField="paperNum" HeaderT ext="证件号码" /><asp:BoundField DataField="tel" HeaderText="电话" /><asp:BoundField DataField="sex" HeaderText="性别" /></Columns><RowStyle HorizontalAlign="Center" /></asp:GridView></td></tr><tr><td height="4" background="images/tu shu pai hang3.gif"></td></tr><tr><td colspan="6" style="text-align: right"><asp:HyperLink ID="hpLinkReaderSort" runat="server" NavigateUrl="~/SortManage/ReaderBorrowSort.aspx"ImageUrl="~/images/more.gif"></asp:HyperLink></td></tr></table></td></tr></table></td></table></asp:Content><%@ Page Language="C#" AutoEventWireup="true" CodeFile="Login.aspx.cs" Inherits="Login" %><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="/1999/xhtml" ><head runat="server"><title>图书馆管理系统登录页面</title><meta http-equiv="Content-Type" content="text/html; charset=gb2312"/><link href="css.css" rel="stylesheet" type="text/css"/><style type="text/css"><!--body {background-color: #DDDDDD;}--></style></head><body leftmargin="0" topmargin="0" marginwidth="0" marginheight="0"><div align="center"><table id="Table1" width="914" height="759" border="0" cellpadding="0" cellspacing="0"><tr><td rowspan="5" bgcolor="#DDDDDD"> </td><td height="253" valign="bottom" bgcolor="#65D7D4"> </td><td rowspan="5" bgcolor="#DDDDDD"> </td></tr><tr><form name="form1" method="post" action="" runat="server"><td height="249" valign="top" style="background-image:url(images/denglu.gif)"><table width="777" border="0" cellspacing="0" cellpadding="0"><tr><td width="421" height="103"> </td><td width="65"> </td><td colspan="3"> </td></tr><tr><td height="26"> </td><td><span class="daohang1">用户登录:</span><label></label></td><td colspan="3"><label><asp:TextBox ID="txtAdmin" runat="server"></asp:TextBox> </label></td></tr><tr><td height="22"> </td><td class="daohang1">用户密码:</td><td colspan="3"><label><asp:TextBox ID="txtPwd" runat="server" Width="148px" TextMode="Password"></asp:TextBox> </label></td></tr><tr><td height="31"> </td><td><span class="daohang1">验证码:</span><label></label></td><td colspan="3"><label><asp:TextBox ID="txtCode" runat="server" Width="96px"></asp:TextBox><asp:Image ID="Image1" runat="server" ImageUrl="~/Common/checkcode.aspx"/> </label></td></tr><tr><td height="27"> </td><td> </td><td width="69"><label><asp:Button ID="btnLogin" runat="server" Text="登录" OnClick="btnLogin_Click" /></label></td><td width="51"><label><asp:Button ID="btnCancel" runat="server" Text="取消" OnClick="btnCancel_Click" /></label></td><td width="171"><label></label></td></tr></table></td></form></tr><tr><td width="777" height="272" bgcolor="#65D7D4"> </td></tr><tr><td height="66" background="images/index_14.gif"> </td></tr><tr><td colspan="3" bgcolor="#DDDDDD"> </td></tr></table></div></body></html>using System;using System.Data;using System.Configuration;using System.Collections;using System.Web;using System.Web.Security;using System.Web.UI;using System.Web.UI.WebControls;using System.Web.UI.WebControls.WebParts;using System.Web.UI.HtmlControls;public partial class _Default : System.Web.UI.Page{BookManage bookmanage = new BookManage();ReaderManage readermanage = new ReaderManage();protected void Page_Load(object sender, EventArgs e){this.Title = "图书馆管理系统主页";DataSet bookds = bookmanage.GetBookSort("tb_bookinfo");gvBookSort.DataSource = bookds;gvBookSort.DataBind();DataSet readerds = readermanage.GetReaderSort("tb_reader");gvReaderSort.DataSource = readerds;gvReaderSort.DataBind();}protected void gvBookSort_RowDataBound(object sender, GridViewRowEventArgs e){if (e.Row.RowIndex != -1){int id = e.Row.RowIndex + 1;e.Row.Cells[0].Text = id.ToString();}}protected void gvReaderSort_RowDataBound(object sender, GridViewRowEventArgs e){gvBookSort_RowDataBound(sender, e);}}using System;using System.Data;using System.Configuration;using System.Collections;using System.Web;using System.Web.Security;using System.Web.UI;using System.Web.UI.WebControls;using System.Web.UI.WebControls.WebParts;using System.Web.UI.HtmlControls;public partial class Login : System.Web.UI.Page{OperatorClass operatorclass = new OperatorClass();AdminManage adminmanage = new AdminManage();ReaderManage readermanage = new ReaderManage();protected void Page_Load(object sender, EventArgs e){}protected void btnLogin_Click(object sender, EventArgs e){if (txtAdmin.T ext == string.Empty){Response.Write("<script>alert('管理员名称不能为空!')</script>");return;}else{DataSet adminds = null;DataSet readerds = null; = txtAdmin.Text;adminmanage.Pwd = txtPwd.Text;adminds = adminmanage.Login(adminmanage);readermanage.ID=txtPwd.Text;=txtAdmin.T ext;readerds=readermanage.ReaderLogin(readermanage);if (adminds.Tables[0].Rows.Count > 0 && txtCode.Text == Request.Cookies["CheckCode"].Value){Session["Name"] = txtAdmin.Text;Response.Redirect("Default.aspx");}else if (readerds.Tables[0].Rows.Count > 0 && txtCode.Text == Request.Cookies["CheckCode"].Value){Session["Name"] = txtAdmin.Text;Session["readid"] = txtPwd.Text;Session["role"] = "Reader";Response.Redirect("Default.aspx");}else{Response.Write("<script>alert('登录名或密码不正确!')</script>");}}}protected void btnCancel_Click(object sender, EventArgs e){txtAdmin.Text = txtPwd.Text = txtCode.Text = string.Empty;}}六、程序总体分析在构造图书馆图书管理系统时,先从需求出发构造SQL数据库表,然后再由数据库表的结合和需求划分系统功能模块:一个是操作系统,实现不同身份的用户的登录;二是信息查询,便于用户查询;三是图书管理,便于用户进行图书管理。