用户角色需求
根据图书馆系统的特点,本图书馆管理系统的用户应该分为三类,即学生、教师和管理员。
学生登录后可进行在线书籍查询、借阅历史查询、修改密码;教师能手工添加借书、还书记录;管理员则主要负责用户及角色的管理、书籍信息修改、新书加入等。
3.2 功能需求
根据初步的需求分析,系统功能应该主要包括在线查询、借换书登记、用户管理等。以下将按照不同的角色权限对功能进行具体描述:
电子图书下载、留言板支持所有用户使用。
3.2.1学生
对于学生身份而言,主要包括在线查询、借阅历史查询、超期催还、密码修改四大功能。
(1)在线查询:学生可以任选时间进行在线查询,找到自己需求的书籍信息。
(2)借阅历史查询:学生可以在线查询以前借阅过的书籍。
(3)超期催还:学生可以看到自己的借阅书籍是否超期。
(4)密码修改:学生可以自己修改登录的密码。
3.2.2教师
对于教师而言,主要包括借阅登记、还书登记功能。
(1)借阅登记:对学生的借阅书籍进行登记。
(2)还书登记:对学生的换书进行登记。
3.2.3管理员
对于管理员而言,主要包括用户管理、书籍管理、新书添加、密码修改四大功能。
(1)用户管理:管理员可以添加、删除用户;对用户信息进行修改。
(2)书籍管理:对已有的书籍进行信息修改。
(3)新书添加:添加新书。
(4)密码修改:对管理员的密码进行修改。
3.3 性能需求
图书馆管理系统对在线查询有较高要求,所以整个系统应该性能良好、安全可靠。此外系统应当操作简便、界面友好、维护简便。数据库要求运行速度快,稳定性高,安全可靠。
4.系统设计
4.1 本系统的设计目标
图书管理系统代替了原来的手工操作,从而快速、准确地对读者及图书等各种信息进行管理和维护。具体有四个目标:
(1)支持学校完成并实现规范化的图书管理;
(2)支持高效率的完成图书管理日常工作的运行,其中有新书入库,读者信息建立、读者查询图书等方面的维护更新工作;
(3)使学校的教职工和学生等广大读者更方便快捷的进行图书查询、借阅和电子图书下载。
(4)校园图书管理工作的计算机化,各种读书信息可以通过计算机快速,准确地增加、修改、删除、查询。使管理人员对所有读者信息和图书信息的基本概况一目了然,便于管理。
4.2 系统功能整体设计
系统开发的总体任务如下:
(1)图书查询模块:包括读者对所需文献的参考,查询等各项工作。
(2)借书、还书模块:主要是处理读者的借书、还书问题。
(3)读者信息维护模块:读者可以自己查看信息、借阅情况、借阅历史、超期催还、修改密码。
(4)电子图书下载模块:主要提供电子图书的下载。
(5)留言板:用户对图书馆的建议和意见。
(6)管理员管理模块:分为用户信息维护、图书信息维护、管理员密码修改3个小模块。
1) 用户信息维护:添加、删除用户,设定用户权限。
2) 图书信息维护:主要是添加新书籍,对丢失等原因造成的图书无法归还的书籍进行删除。
3) 管理员密码修改: 修改当前管理员的密码。
图书馆管理系统的功能模块图 如图 2所示:
其中的查询模块、电子图书下载模块、留言板没有用户限制。
4.3 数据库表的设计
数据库名:LMS;整个数据库共3个表:
5.1系统首页实现
首页画面是为了给用户一个良好的印象,意在让用户直接能理解网站的性质和功能。用户能很快找到自己所需要的信息和服务,容易操作和实现。。系统的首页如图3:
用户可以通过不同的链接进入不同的页面。
5.2 借阅者服务模块的实现
5.2.1图书查询功能的实现
在本系统中,任何人都有权限使用查询功能,不做任何限制。 由于实现的查询功能有多种,如按图书编号、图书名称等字段进行完全体配查找和部分体配的模糊查找。图书查询界面如图4所示:
具体代码如下:
public void BindGrid()
{ //从文件Web.config中读取连接字符串
string strConn = ConfigurationManager.AppSettings["dsn"];
//连接本地计算机的LMS数据库
SqlConnection cn= newSqlConnection (strConn);
//根据提交上来的表单创建SQL语句
string booklist="select* from book ";
string strSearchText=Request.Form ["strSearchText"];
string match_flag=Request.Form ["match_flag"];
if(match_flag=="0")//完全匹配
{
if (Request.Form ["strSearchType"].ToString()=="01") //书目编号
{
booklist=booklist+ "where bid="+ strSearchText;
}
else if (Request.Form["strSearchType"].ToString ()=="02") //题名
{
booklist=booklist+ "where bname='"+ strSearchText +"'";
}
else if (Request.Form["strSearchType"].ToString ()=="03") //作者
{
booklist=booklist+ "where bauthor='"+ strSearchText+"'";
} ……
else
{ Response.Write ("类型选择错误");
Response.End();
}
}
else if(match_flag=="1")//模糊匹配
{
if (Request.Form ["strSearchType"].ToString()=="01") //书目编号
{
booklist=booklist+ "where bid ="+ strSearchText;
}
else if (Request.Form["strSearchType"].ToString ()=="02") //题名
{
booklist=booklist+ "where bname like '%"+strSearchText +"%'";
}
……
else
{ Response.Write ("类型选择错误");
Response.End();
}
}
//创建SqlDataAdapter对象,调用视图
SqlDataAdapter da=newSqlDataAdapter (booklist,cn);
//创建并填充DataSet
DataSet ds=new DataSet ();
da.Fill(ds);
dgd_booklist.DataSource=ds;
dgd_booklist.DataBind();
cn.Close ();