图书管理系统毕业设计说明书.docx
《图书管理系统毕业设计说明书.docx》由会员分享,可在线阅读,更多相关《图书管理系统毕业设计说明书.docx(27页珍藏版)》请在冰豆网上搜索。
![图书管理系统毕业设计说明书.docx](https://file1.bdocx.com/fileroot1/2023-2/26/f9632bfc-7648-4b0e-b445-95ddf912c4a7/f9632bfc-7648-4b0e-b445-95ddf912c4a71.gif)
图书管理系统毕业设计说明书
毕业设计说明书
(计算机学院)
设计课题:
图书管理系统设计与开发
专业班级:
学生姓名:
学生学号:
指导教师:
王彩梅
2013年11月15日
摘要
图书管理系统设计与开发
[摘要]图书馆管理信息系统是对学校图书进行全面信息管理的系统。
该管理系统可以有效地管理学校图书资源,记录读者使用书籍的情况。
本课题设计并实现了基于Web的图书馆管理系统,该系统采用现今比较流行的ASP.NET语言,结合SQL Server数据库,实现了图书的借阅、查询、管理等基本功能。
系统不仅维护方便,节省了图书馆的资源,方便图书馆进行图书管理,同时,用户也能够更容易更直观的查询书籍、管理藏书,使借书、还书、查书的过程大大简化,更加的方便和容易。
毕业设计做的系统就是对图书馆的书籍进行管理,主要工作是实现了图书信息功能,图书借还功能等。
图书信息功能是实现了图书的数字管理,能方便管理员快速查看图书信息;借书功能,用户可以通过此功能选择是否借出检索的书籍;还书功能,读者可以查看自己所借书籍信息;管理员可以查看借书还书历史和违规书籍信息;查看书籍具体信息,管理员可以查看书籍的具体信息以及在图书馆的存储状态。
本论文内容主要是运用软件工程的知识,先进行系统需求分析,之后是系统概要设计,详细设计,并且详细介绍了ASP.NET图书馆管理系统的操作代码和排序的代码编写和测试。
[关键字]ASP.NET语言;图书馆;SQL Server2008;VS2010
第一章系统简介
1.1系统开发背景和意义
图书管理是高校内每一个系部或院部都必须切实面对的工作,但一直以来人们使用传统的人工方式管理图书资料。
这种方式存在着许多缺点,如效率低、保密性差且较为繁琐。
另外,随着图书资料数量的增加,其工作量也将大大增加,这必将增加图书资料管理者的工作量和劳动强度,这将给图书资料信息的查找、更新和维护都带来了很多困难。
经过详细的调查,目前我国各类高等学校中有相当一部分单位图书资料管理还停留在人工管理的基础上。
这样的管理机制已经不能适应时代的发展,其管理方法将浪费许多人力和物力。
随着科学技术的不断提高,这种传统的手工管理方法必然被以计算机为基础的信息管理方法所取代。
图书管理作为计算机应用的一个分支,有着手工管理无法比拟的优点,如检索迅速、查找方便、可靠性高、存储量大、保密性好、寿命长、成本低等。
这些优点能够极大地提高图书管理的效率。
因此,开发一套能够为用户提供充足的信息和快捷的查询手段的图书管理系统,将是非常必要的,也是十分及时的。
1.2 可行性分析
本次毕业设计题目:
“学校图书管理系统的开发”主要目的是利用数据库软件编制一个管理软件,用以实现图书、读者以及日常工作等多项管理。
同时对整个系统的分析、设计过程给出一个完整论证。
图书管理系统是一种基于集中统一规划的数据库数据管理新模式。
在对图书、读者的管理,其实是对图书、读者数据的管理。
本系统的建成无疑会为管理者对图书管理系统提供极大的帮助。
本系统的设计主要从以下几方面做起:
系统业务流程分析、系统的功能设计、系统的数据库结构设计等。
作这些工作需对数据库知识有足够认识,并深入的了解Visual C#的使用和管理系统的相关知识。
在信息时代的今天,人类需要对在政治、经济、军事、文化、科研、教育等领域产生的大量信息进行管理,并对数据进行加工处理,数据库技术则是信息管理与数据处理的先进技术。
随着信息量的不断增加,作为计算机的三大主要应用(科学计算、过程控制和数据处理)之一的数据处理,已迅速上升为计算机应用的主要方面,数据库技术则成为人们日常生活中处理数据不可缺少的有力工具,并且现代的信息管理系统几乎都以数据库技术作为核心。
现在大多数的图书管理方式为手工处理,重复劳动多,劳动强度大,而且容易出错,新系统的使用能否可以很好的解决这些问题要看系统的可行性,可行性研究的目的是用最小的代价在尽可能短的时间内确定问题是否能够解决。
系统的可行性分析有以下几个方面:
(1)技术可行性:
处理速度快、准确通过权限的设置,数据的安全性好、方便查询、借阅管理等。
(2)经济可行性:
系统建设不需要很大的投入、可缩减人力投入。
(3)运行上可行性:
本系统作为一个小型的图书馆信息管理系统,所耗费的 资源非常的小。
(4)从各种社会因素可行性分析:
可降低工作人员工作强度,提高效率,会 得到学校工作人员的一致同意的。
综上所述通过可行性分析认为新系统的开发方案切实可行,可进行开发。
1.3系统开发环境
开发环境的选择会影响到数据库的设计,所以在这里给出图书管理系统开发与运行环境的选择如下:
系统开发环境:
VisualStudio2010
系统开发语言:
ASP.NET+C#
数据库:
WindowsServer2008R2Enterprise
运行平台:
Windows7
第二章系统需求分析
2.1任务概述
经过对我校详细调查,并多次与负责图书管理的老师进行研讨后,加深了对现行图书管理业务的深刻了解,与此同时,将整个图书管理的业务流程抽象描述如下:
1.新的图书获得后,分门别类地进行归并并汇总,加以编号。
2.新书编号后,上到书架以备读者借阅。
3.如某读者需要借阅图书,则在其本人的借阅登记表上进行登记,记录相关借阅信息与借阅日期。
4.读者借阅图书后,应及时归还图书,并在本人的借阅登记表上注明还书日期和时间。
根据以上调查分析,可以给出其现行业务流程图如图2.1所示。
图2.1现行图书管理业务流程图
2.2数据描述
经过详细的调查,我们已经清楚了解了现行的业务流程,接下来给出系统的逻辑模型。
构造系统逻辑模型的工具是数据流图。
根据现行图书管理的业务流程,首先把数据流图中的源点和终点都选定为读者,因此可以得到图书管理系统的基本系统模型,如图2.2所示。
图2.2图书管理系统的基本系统模型
2.3功能需求
经过以上详细的用户调查,在现行业务流程和数据分析的基础上,基本可以确定系统设计必须达到的目标。
以下是图书管理系统必须具备的功能:
1.新进图书的登记功能:
对于新书系统必须具备图书信息的录入功能。
2.图书的查询修改功能:
当图书资料发生变化,如图书丢失或有错误信息输入时,则应能够及时对数据进行修改和补充。
3.借阅的登记,归还的登记功能:
系统的主要功能之一,供本校读者借阅图书、归还图书,并进行登记。
4.读者信息的增加、删除和修改功能:
系统主要功能之一,建立读者信息,并对其进行维护。
5.图书馆的信息增加,删除,修改:
系统的主要功能之一,发布信息,并对其进行维护
2.4性能需求
为了保证系统能够长期、安全、稳定、可靠、高效的运行,图书管理系统应该满足以下的性能需求:
1、系统处理的准确性和及时性
系统处理的准确性和及时性是系统的必要性能。
在系统设计和开发过程中,要充分考虑系统当前和将来可能承受的工作量,使系统的处理能力和响应时间能够满足学校对信息处理的需求。
2、系统的开放性和系统的可扩充性
图书管理系统在开发过程中,应该充分考虑以后的可扩充性。
例如用户查询的需求也会不断的更新和完善。
所有这些,都要求系统提供足够的手段进行功能的调整和扩充。
而要实现这一点,应通过系统的开放性来完成,既系统应是一个开放系统,只要符合一定的规范,可以简单的加入和减少系统的模块,配置系统的硬件。
通过软件的修补、替换完成系统的升级和更新换代。
3、系统的易用性和易维护性
图书管理系统是直接面对使用人员的,而使用人员往往对计算机并不时非常熟悉。
这就要求系统能够提供良好的用户接口,易用的人机交互界面。
要实现这一点,就要求系统应该尽量使用用户熟悉的术语和中文信息的界面;针对用户可能出现的使用问题,要提供足够的在线帮助,缩短用户对系统熟悉的过程。
4、系统的标准性
系统在设计开发使用过程中都要涉及到很多计算机硬件、软件。
所有这些都要符合主流国际、国家和行业标准。
第三章数据库设计
通过对系统进行需求分析、系统流程图以及系统功能结构的确定,设计数据库名称为BookManage,共5个表。
(1)图书类型信息表tb_bookType如表3-1所示。
图书馆会有不同类型的图书,为了避免图书归类发生混乱,必须建立一个图书类型信息实体,用于存储图书的类型信息。
表3-1图书类型信息表
(2)书架信息表BookInfo,如表3-2所示。
图书馆对图书的分类,通常是将不同类型的图书分别放置在相应类型的书架上。
书架信息实体,用于存储图书馆中所有的书架信息
表3-2书架信息表
(3)图书借阅表BookIssInfo,如表3-3所示。
图书借阅信息实体,用于存储所有图书借阅情况的信息,以准确地记录每本图书的借阅信息。
表3-3图书借阅表
(4)管理员信息表tb_user,如表3-4所示。
当管理员登录图书馆管理系统时,需要通过登录窗口验证成功后才能进入系统主页。
管理员信息实体,用于存储管理员的登录名称和登录密码。
表3-4管理员表
(5)普通用户信息表UserInfo,如表3-5所示。
表3-5用户表
第四章系统总体结构设计
如果要完成一个完整的图书管理系统,需要的相关信息很多。
由于种种条件的限制,同时考虑到开发成本,所以本系统仅实现基本的管理功能。
并不能完全满足上面例子所描述的图书馆,使用前应进行二次开发。
4.1系统目标设计
系统开发的总目标是实现内部图书借阅管理的系统化、规范化和自动化。
能够对图书进行注册登记,也就是将图书的基本信息(如:
书名、作者、图书类型、价格等)预先存入数据库中,供以后检索。
能够对借阅人进行注册登记,包括记录借阅人的姓名、借阅证号。
提供方便的查询方法。
如:
以书名、作者、图书类型、图书编号等信息进行图书检索并能反映出图书的借阅情况;以借阅人编号对借阅人信息进行检索;能够对使用该管理系统的用户进行管理,按照不同的工作职能提供同的功能授权。
提供较为完善的差错控制与友好的用户界面,尽量避免误操作。
4.2 系统功能分析
根据以上功能,将图书管理系统的数据分为:
数据输入部分:
主要包括图书基本信息的录入、借阅人基本信息的录入、用户基本信息的录入。
数据输出部分:
主要是各种统计查询,包括:
根据图书信息(如书名、作者、类型,价格等)查阅图书及其借阅信息。
数据处理部分:
主要涉及借阅和归还的处理,如一本书借出后,必须在数据库中将该书标记为已借出,以防出现数据库中有书但图书馆无书的情况;一本书归还后,同样必须在数据库中将其标记为已经归还,以便再次借出。
4.3系统各功能模块设计
在系统功能分析的基础上,得到如图4.1所示的系统功能模块图:
图4.1 系统功能模块图
4.4数据流图
(1) 图书基本信息登记/修改
图4.2图书基本信息登记/修改
说明:
分类信息由图书馆进行分类定制,存放在图书分类信息库中,用于图书的分类管理。
登记新书时,当涉及到出版社和分类的填写时,只需做相应的选择即可,并存放在图书信息库中。
如图4.2所示
(2)借阅人基本信息登记/修改
图4.3 图书基本信息登记/修改
说明:
录入借阅人基本信息后存放在借阅人信息库中。
如图4.3所示。
(3) 图书查询
图4.4 图书查询
说明:
输入查询条件后,检索图书信息库,也可以查询全部图书,并反应出查询结果。
如图4.4所示。
(4)图书借阅
图4.5 图书借阅
说明:
输入借阅人编号,通过检索借阅人信息库,核实借阅人身份。
输入图书编号,通过检索图书信息库,核实图书信息。
进行图书借出处理后,在图书借阅库中进行登记,并将借出图书的在备注为“此书已被借阅”。
如图4.5所示。
(5) 图书归还
输入图书编号,检索在借信息库,反应出图输借阅情况。
进行归还操作后,修改在借信息库中相关条目,同时在图书借阅信息库中修改相关备注在借标志为“此书以归还”。
第五章代码总体实现
5.1配置数据库信息
本程序提取数据库连接字符串存放在App.config文件中,主要代码信息如下:
5.2数据访问
定义一个SQLHelper.cs操作数据库公共基类来对一些列的数据库增删查改,这个公有变量将贯穿整个程序编码的始终,被整个程序使用。
程序在运行时候,最终会将请求发送给服务器,如果有数据的交互,那么服务器会去访问数据,而这些数据是根据用户需要的数据进行的访问。
其中包括:
数据连接,查询语句,读取语句,返回单值,定义命令对象,利用存储过程返回。
SQLHelper.cs类主要代码:
usingSystem;
usingSystem.Collections.Generic;
usingSystem.Linq;
usingSystem.Text;
usingSystem.Data.SqlClient;
usingSystem.Data;
///
///这是操作数据库的公共基类
////这个类提供一系列对数据库的增删查改的解决方案
///
publicclassSQLHelper
{
//对数据库的操分作以下几种
//1.查询第一行第一列的一个数据ExecuteSingle
//2.查询一个表格
//3.查询一行数据
//4.增删改操作
PublicstaticstringconnStr=
System.Configuration.ConfigurationSettings.AppSettings["connString"];
//4种操作,都是给sql语句与sql语句的参数,能返回你想要的数据
///
///查询首行首列得到一个值
///
///sql命令?
///sql所需的参数
///
publicstaticobjectExecuteSingle(stringsql,paramsSqlParameter[]pms)
{
SqlConnectionconn=newSqlConnection(connStr);
conn.Open();
SqlCommandcmd=newSqlCommand(sql,conn);
if(pms!
=null)//可能没有参数
{
foreach(SqlParameteriteminpms)
{
if(item!
=null)//数组中的某个元素可能为空
{
cmd.Parameters.Add(item);
}
}
}
objectobj=cmd.ExecuteScalar();
conn.Close();
returnobj;
}
//查询一个表格方法
///
///通过传一个sql返回一个查询数据表
///
///
///
///
publicstaticDataTableGetTable(stringsql,paramsSqlParameter[]pms)
{
SqlConnectionconn=newSqlConnection(connStr);
conn.Open();
SqlCommandcmd=newSqlCommand(sql,conn);
if(pms!
=null)//可能没有参数
{
foreach(SqlParameteriteminpms)
{
if(item!
=null)//数组中的某个元素可能为空
{
cmd.Parameters.Add(item);
}
}
}
SqlDataAdaptersda=newSqlDataAdapter(cmd);
DataSetds=newDataSet();
sda.Fill(ds,"ss");
DataTabledt=ds.Tables["ss"];
conn.Close();
returndt;
}
///
///执行sql语句,返回响行数(删除,新增,修改操作可用)
///
///
///
///
publicstaticintExcuteNonQuery(stringsql,paramsSqlParameter[]pms)
{
SqlConnectionconn=newSqlConnection(connStr);
conn.Open();
SqlCommandcmd=newSqlCommand(sql,conn);
if(pms!
=null)//可能没有参数
{
foreach(SqlParameteriteminpms)
{
if(item!
=null)//数组中的某个元素可能为空
{
cmd.Parameters.Add(item);
}
}
}
//5,执行cmd.ExecuteNonQuery()执行sql语句返回响行数(新增删除与修改操作)
intcount=cmd.ExecuteNonQuery();
//6关闭连接
conn.Close();
returncount;
}
///
///执行sql语句,返回一个DataReader对象
///
///
///
///
publicstaticSqlDataReaderExcuteReader(stringsql,paramsSqlParameter[]pms)
{
SqlConnectionconn=newSqlConnection(connStr);
conn.Open();
SqlCommandcmd=newSqlCommand(sql,conn);
if(pms!
=null)
{
foreach(SqlParameteriteminpms)
{
if(item!
=null)
{
cmd.Parameters.Add(item);
}
}
}
//CommandBehavior.CloseConnection
//读取完数据之后的一个行为,在我关闭这个对读取对象时也关闭我的连接对象
//在用sdr.Close()时。
conn的Close()方法也自动执行
SqlDataReadersdr=cmd.ExecuteReader(CommandBehavior.CloseConnection);
//conn.Close();
returnsdr;
}
}
5.3登录模块
登录界面如下:
5.1登录界面
说明:
在登录界面可以选择他的登录类型,不同的用户类型有不同的操作,主要就分为两个,管理员与普通用户。
如图5.1登录界面。
主要登录代码如下:
privatevoidbtnOk_Click(objectsender,EventArgse)
{boolisValidUser=false;stringmessage="";
if(ValidateInput()){if(cmbType.Text=="管理员")
{isValidUser=ValidateUser(txtloginId.Text,
txtloginPwd.Text,cmbType.Text,refmessage);
if(isValidUser){/UserHelper.loginId=txtloginId.Text;
UserHelper.loginType=cmbType.Text;
ShowUserForm();this.Visible=false;}
5.4新用户注册
在用户进行功能操作之前需要进行登录,如果该用户是已经注册过的,那么就可以直接登录去操作了,如果用户是新用户没有注册,那么就需要进入注册页面去注册,如图5.2用户注册。
5.2用户注册
主要注册代码如下:
if(ValidateInput1()){
stringuserName=txtUserName.Text;//用户名
stringuserPwd=txtUserPwd.Text;//密码
}
成功页面:
5.3用户注册成功
说明:
注册成功之后就需要给以用户一些提示,跳转到成功页面中登录界面Login.cs,它包含的内容就是些用户所能看到的用户名称,如图5.3用户注册成功。
5.5管理员操作模块实现
(1)主界面
程序运行时候,管理员用户登录后进入主界面,,可以对用户进行操作,可以添加图书类型,借阅信息管理。
还可以对图书进行相应的增、删、改,查询等工作。
如图5.4管理员登录界面。
5.4管理员登录界面
(2)用户管理
管理员可以对用户进行操作处理。
可以进数据的增、删、查改操作。
有利于管理员对用的管理,如图5.5用户操作管理。
5.5用户操作管理
主要用户操作代码如下:
privatevoidbutton1_Click(obje