图书馆管理系统之学生管理.docx
- 文档编号:27928229
- 上传时间:2023-07-06
- 格式:DOCX
- 页数:39
- 大小:323.32KB
图书馆管理系统之学生管理.docx
《图书馆管理系统之学生管理.docx》由会员分享,可在线阅读,更多相关《图书馆管理系统之学生管理.docx(39页珍藏版)》请在冰豆网上搜索。
图书馆管理系统之学生管理
毕业综合实训
2011/2012学年第二学期
实训总结报告
院系:
软件学院
专业年级:
软件技术2010级
姓名:
苗李想
学号:
102410540
指导教师:
张敬普
2012年5月23日
一、可行性分析
图书管理是高校内每一个系部或院部都必须切实面对的工作,但一直以来人们使用传统的人工方式管理图书资料。
这种方式存在着许多缺点,如效率低、保密性差且较为繁琐。
另外,随着图书资料数量的增加,其工作量也将大大增加,这必将增加图书资料管理者的工作量和劳动强度,这将给图书资料信息的查找、更新和维护都带来了很多困难。
经过详细的调查,目前我国各类高等学校中有相当一部分单位图书资料管理还停留在人工管理的基础上。
这样的管理机制已经不能适应时代的发展,其管理方法将浪费许多人力和物力。
随着科学技术的不断提高,这种传统的手工管理方法必然被以计算机为基础的信息管理方法所取代。
图书管理作为计算机应用的一个分支,有着手工管理无法比拟的优点,如检索迅速、查找方便、可靠性高、存储量大、保密性好、寿命长、成本低等。
这些优点能够极大地提高图书管理的效率。
因此,开发一套能够为用户提供充足的信息和快捷的查询手段的图书管理系统,将是非常必要的,也是十分及时的。
图书管理系统是由为满足各中小图书馆(室)图书管理的需要开发的一套图书管理软件,软件功能强大,能对图书进行借还操作,设定借期,能对读者进行挂失操作,软件特别提供了强大的查询工具,能对图书,读者,图书的借阅情况进行复杂的查询,软件针对广大教育系统的需要,开发了多种统计功能。
能自动统计图书的数量,种类,各类图书的藏书情况,图书的总金额,各种图书的金额等多项指标进行统计。
能对任意时间段的图书借阅情况进行分析,计算出人均借阅册数、日均借阅册数,对各种图书,各位读者的借书情况进行统计等功能。
特别需要指出的是这套软件包含了“中国法”图书分类辅助工具,你只需在添加图书的时候简单的进行几次选择。
因此他的出现会给信息化办公带来很大的好处。
经济上的可行性:
本图书馆管理系统能为图书管理者提供准确、及时的信息,对管理者的决策提供有利的支持;能根据欧促进院校的体制改革,提高工作效率,减少手工工作人员及费用等,这些都是使用系统带来的间收利益。
同时也促进了学校的信息化进程,提高学员的管理效率。
社会可行性:
本图书管理系统的操作简单,而且界面友好,系统的操作流程是图书管理工作者所熟悉的。
并且本图书管理系统能够实现各个功能,在当前操作环境下也能很好的运行。
技术可行性:
本系统采用c#编程语言加SQLSERVER数据库,使用.NET开发平台。
综上所述,不管是从技术上考虑,还是从经济以及社会上考虑,图书馆管理系统都有一定的可行性,因此我们才开发这个系统供广大读者使用。
二、系统需求分析
1.性能需求分析
为了保证系统能够长期、安全、稳定、可靠、高效的运行,图书管理系统应该满足以下的性能需求:
(1)系统处理的准确性和及时性
系统处理的准确性和及时性是系统的必要性能。
在系统设计和开发过程中,要充分考虑系统当前和将来可能承受的工作量,使系统的处理能力和响应时间能够满足学校对信息处理的需求。
(2)系统的开放性和系统的可扩充性
图书管理系统在开发过程中,应该充分考虑以后的可扩充性。
例如用户查询的需求也会不断的更新和完善。
所有这些,都要求系统提供足够的手段进行功能的调整和扩充。
而要实现这一点,应通过系统的开放性来完成,既系统应是一个开放系统,只要符合一定的规范,可以简单的加入和减少系统的模块,配置系统的硬件。
通过软件的修补、替换完成系统的升级和更新换代。
(3)系统的易用性和易维护性
图书管理系统是直接面对使用人员的,而使用人员往往对计算机并不时非常熟悉。
这就要求系统能够提供良好的用户接口,易用的人机交互界面。
要实现这一点,就要求系统应该尽量使用用户熟悉的术语和中文信息的界面;针对用户可能出现的使用问题,要提供足够的在线帮助,缩短用户对系统熟悉的过程。
(4)系统的标准性
系统在设计开发使用过程中都要涉及到很多计算机硬件、软件。
所有这些都要符合主流国际、国家和行业标准。
(5)系统的先进性
目前计算系统的技术发展相当快,做为图书管理系统工程,在系统的生命周期尽量做到系统的先进,充分完成企业信息处理的要求而不至于落后。
这一方面通过系统的开放性和可扩充性,不断改善系统的功能完成。
另一方面,在系统设计和开发的过程中,应在考虑成本的基础上尽量采用当前主流并先进且有良好发展前途的产品。
(6)系统的响应速度
图书管理系统系统在日常处理中的响应速度为秒级,达到实时要求,以及时反馈信息。
在进行统计分析时,根据所需数据量的不同而从秒级到分钟级,原则是保证操作人员不会因为速度问题而影响工作效率。
2.功能需求分析
经过详细的用户调查,在现行业务流程和数据分析的基础上,基本可以确定系统设计必须达到的目标。
以下是图书管理系统必须具备的功能:
(1)新进图书的入库功能:
对于购进的新书,系统必须具备图书信息资料的录入功能。
(2)图书的查询修改功能:
当图书资料发生变化,如图书丢失或有错误信息输入时,则应能够及时对数据进行修改和补充。
(3)借阅的登记,归还的登记功能:
系统的主要功能之一,供本校学生借阅图书、归还图书,并进行登记。
(4)读者信息的增加、删除和修改功能:
系统主要功能之一,建立学生信息,并对其进行维护。
三、概要设计
1.业务流程
(1)业务流程图
根据需求分析的得到的现行业务处理流程,在用户反复研究后,首先确定目标系统的业务流程,其处理流程如图1。
图1图书管理系统的业务流程
针对新的业务流程,现具体描述其功能如下:
①工作人员登录:
系统对工作人员合法性进行检查。
②图书管理:
对图书的分类、书馆的设置、以及图书的入库、查询、修改、删除等进行操作。
③读者管理:
对读者的角色以及对读者的信息进行增删改查等管理。
④管理员管理:
对管理员的角色以及管理员的信息进行增删改查的管理。
⑤借还书管理:
主要负责借书、还书以及定义借还书规定的工作。
⑥图书查询:
的这在借书之前可以先对所要借的图书进行查询。
(2)根据业务流程得出
①参与者汇总
读者:
主要借书还书
图书管理处:
根据读者对图书的需求,进行收集整理,经过研究决定是否采购,新订,下架处理。
图书遗失或采购新的图书时,分析需求,对图书进行是否补充,并更新数据库,对图书信息进行管理,(主要对图书信息进行管理,不能对读者信息进行任何操作,能够添加、更改、删除图书的信息)。
.
读者管理处:
对读者信息进行管理,以及角色的分配和管理;并及时向读者发送各种信息。
(主要对读者的信息进行管理,能够添加、更改、删除读者的信息)。
系统管理处:
主要负责对系统的维护和改进、升级,以及对系统安全进行有效的防护。
当出现故障时,及时对系统故障进行评估,尽快做出防护。
还要有定期的系统安全评估,保障系统能够正常运行。
主要对系统的软件硬件进行维护,是系统的最高权限所有者(能够添加、删除、更改管理员信息)。
②前台流程:
工作人员登录
工作人员登录→选择相应的操作→输入数据→更新数据
读者查询
输入查询的条件→查看图书信息→退出
③后台流程:
工作人员登录→读者管理、图书管理、管理员管理、→退出
2.模块划分
(1)按功能划分
依据需求分析阶段得到的数据流图,采用软件工程中软件设计的概念和原理,与用户成分协商后,在保证系统基本功能要求的前提下,结合系统新的业务流程确定系统必须具备的所有功能,由此给出图书管理系统的系统功能模块图如图2所示。
图2图书馆管理系统的功能模块
(2)按业务划分
根据业务流程,从此系统的业务方面可以划分为以下几个业务模块,如图3所示:
图3图书馆管理系统的业务模块
而读者管理模块与管理员管理模块又可以划分为以下几个模块,如下图4,图5所示:
图4读者管理模块的划分
图5管理员模块的划分
四、详细设计
1.数据库设计
(1)数据库的逻辑设计
在需求分析阶段已完成该系统所有的数据分析。
根据该阶段所建立的概念模型,已经得出满足系统设计要求的几个关系描述,该阶段的主要工作就是把前一阶段的成果转化为具体的数据库。
下面给出概念结构设计得E-R图如图6所示。
(1)总E-R图
①读者角色E-R图
②读者信息E-R图
③管理员角色E-R图
④管理员信息E-R图
(2)分E-R图
图6概念结构设计E-R图
实体:
读者角色(编号,角色代号,角色名称)
读者(编号,借书号,学号/工号,姓名,性别,所在院系,所属角色代号,联系电话)
管理员角色(编号,代号,名称,工作)
管理员(编号,工号,密码,姓名,性别,联系方式,所属角色代号)
(2)数据库的物理设计
依据数据库的原理,并结合以上E-R图,经过转化,即可进行数据库的物理设计。
基于以上数据库的逻辑设计,考虑程序设计的简易性,同时考虑题目的时间,该系统的数据库采用MicrosoftSQLServer2005。
本系统决定采用一个数据库,在此主要介绍读者角色表、读者信息表、管理员角色表、管理员信息表,其结构分别如下:
管理员角色Administrator-rose:
字段名称
字段描述
数据类型
备注
ID
Int
主键,自动增长
Ad-ro-no
代号
varchar
Ad-ro-name
名称
varchar
非空
Ad-ro-jop
工作
text
非空
Administrator(管理员)表:
字段名称
字段描述
数据类型
备注
ID
Int
主键,自动增长
Ad-no
工号
varchar
Ad-passward
密码
varchar
非空
Ad-name
姓名
varchar
非空
Ad-sex
性别
Varchar
(2)
非空
Ad-telephone
联系方式
varchar
非空
Ad-ro-no
所属角色代号
varchar
外键
Reader-role(读者角色)表:
字段名称
字段描述
数据类型
备注
ID
Int
主键,自动增长
Re-ro-no
读者角色代号
varchar
非空
Re-ro-name
角色名称
varchar
非空、唯一
Reader(读者)表:
字段名称
字段描述
数据类型
备注
ID
Int
主键,自动增长
Re-no
借书号
varchar
Re-xg-no
学号或工号
varchar
非空
Re-name
姓名
varchar
Re-sex
性别
Varchar
(2)
Re-yuanxi
所在院系
varchar
Re-ro-no
所属角色代号
varchar
外键、非空
Re-telephone
联系电话
varchar
非空
2.程序输入输出描述
(1)添加模块
①输入项目:
操作系统传递至的各种消息以及用户的输入数据。
②输出项目:
操作成功或者失败给出相应的提示。
(2)查询模块
①输入项目:
用户的输入数据。
②输出项目:
操作成功或者失败给出相应的提示。
(3)修改模块
①输入项目:
操作系统传递至的各种消息3以及用户的输入数据。
②输出项目:
操作成功或者失败给出相应的提示。
(4)删除模块
①输入项目:
用户的输入数据。
②输出项目:
操作成功或者失败给出相应的提示。
3.程序接口设计
(1)外部接口
按WEB应用软件用户界面的规范来设计,使用以对话框为主的用户界面,便于用户使用。
(2)内部接口
模块间接口采用数据耦合方式,通过参数传送数据,交换信息。
五、系统实现
1.数据链接
因为本系统需要不断的进行数据处理,因此不断的使用数据库的链接,因此将数据链接写成一个名称叫做“lianjie”的类,此类的输出为链接数据库的字符串,具体的代码如下所示:
publicclasslianjiezifu
{
publiclianjiezifu()
{
}
publicstaticSqlConnectionGetConnection()//定义一个名称为GetConnection的获得连接字符串的方法
{
stringstr="DataSource=.\\SQLEXPRESS;AttachDbFilename=|DataDirectory|\\library.mdf;IntegratedSecurity=True;UserInstance=True";//定义连接字符串
SqlConnectioncon=newSqlConnection(str);//创造一个SqlConnection实例
returncon;//返回连接字符串
}
2.数据处理
在本系统中,需要不断进行添加、修改、删除数据的操作,因此在本系统中将这些对数据的操作写成一个名叫“DB”的类,具体代码如下所示:
ublicclassDB
{
publicDB()
{
//
//TODO:
在此处添加构造函数逻辑
//
}
publicstaticintExcuteCommand(stringsql)//创建一个叫做“ExcuteCommand”的方法
{//调用“lianjiezifu”类,获得连接字符串,打开数据库连接
SqlConnectioncon=lianjiezifu.GetConnection();
con.Open();
//对数据表进行操作,并返回结果
SqlCommandcmd=newSqlCommand(sql,con);
intresult=cmd.ExecuteNonQuery();
con.Close();
returnresult;
}
publicstaticintExecuteScalar(stringsql)//创建一个叫做“ExecuteScalar”的方法
{//调用“lianjiezifu”类,获得连接字符串,打开数据库连接
SqlConnectioncon=lianjiezifu.GetConnection();
con.Open();
//对数据表进行操作,并返回结果
SqlCommandcmd=newSqlCommand(sql,con);
intresult=Convert.ToInt32(cmd.ExecuteScalar());
con.Close();
returnresult;
}
publicstaticDataTableGetDataSet(stringsql)//创建一个叫做“GetDataSet”的方法
{
//调用“lianjiezifu”类,获得连接字符串,打开数据库连接
SqlConnectioncon=lianjiezifu.GetConnection();
con.Open();
//对数据表进行操作,并返回结果
DataSetds=newDataSet();
SqlCommandcmd=newSqlCommand(sql,con);
SqlDataAdapterda=newSqlDataAdapter(cmd);
da.Fill(ds);
returnds.Tables[0];
con.Close();
}
publicstaticSqlDataReaderGetData(stringsql)//创建一个叫做“GetDataSet”的方法
{
//调用“lianjiezifu”类,获得连接字符串,打开数据库连接
SqlConnectioncon=lianjiezifu.GetConnection();
con.Open();
//对数据表进行操作,并返回结果
SqlCommandcmd=newSqlCommand(sql,con);
try
{
cmd.ExecuteNonQuery();
SqlDataReaderdr=cmd.ExecuteReader(CommandBehavior.CloseConnection);
returndr;
con.Close();
}
catch(Exceptionex)
{
throw(ex);
}
}
3.读者角色添加的实现
(1)具体格式见下表:
功能编号
01
功能名称
角色添加模块
内容
功能流程图
所属业务
读者角色管理
所属项目
读者管理
(2)功能流程图
功能流程图如下图所示:
需要说明的问题:
添加角色的各项必须为非空。
功能描述
功能类型:
添加数据
操作权限:
读者管理员
(3)界面设计
(4)动作说明:
动作编号
动作名称
动作描述
A01
确认添加
点击按钮提交数据到数据库读者角色表中
A02
返回
点击返回按钮将跳转到读者管理首页
基础信息处理
数据要求
功能类型:
数据添加
数据描述:
页面显示录入字段如下:
字段名称
数据类型
录入方式
是否非空项
数据检验
默认显示
角色名称
String
文本框
Y
N
角色代号
String
文本框
Y
N
(5)读者角色添加的数据处理
当用户点击“确认添加”按钮之后,页面首先判断各个输入项数否为空,如果为空则给出提示,如果不为空则将所输入的内容添加到数据库,如果添加成功则弹出添加成功的消息框,且各文本框内容被清空;如果添加失败则弹出添加失败的消息框,各文本框内容不会被清空,以便重新添加。
具体的逻辑如下:
打开数据链接con;
str1="selectcount(*)from表名where角色代号='所输入的角色代号'and角色名称='所输入的角色名称";
str2="insertinto表名values(''所输入的角色代号','所输入的角色名称')";
调用DB类中的ExecuteScalar()方法;
DB.ExecuteScalar(str1);
if(如果该角色不存在)
{调用DB类的ExecuteCommand()方法;
DB.ExecuteCommand(str2);
if(操作成功)
{弹出添加成功消息框;
页面的文本框清空;}
else
{弹出添加失败消息框;
}}
else
{弹出该角色已经存在消息框;}
数据链接关闭con;
弹出该角色已经存在消息框
4.读者信息查询的实现
(1)具体格式见下表
功能编号
06
功能名称
角色查询模块
内容
功能流程图
所属业务
读者信息管理
所属项目
读者管理
需要说明的问题:
在选择相应的业务时,需要在当前的页面显示;并且在管理页面内,默认显示按条件查询页面。
功能描述
功能类型:
查询数据
操作权限:
读者管理员
(2)界面设计
动作说明如下:
动作编号
动作名称
动作描述
A01
按条件查询
点击按钮将页面转按条件查询的界面
A02
查询全部
点击按钮将页面转至显示全部读者角色信息的界面
A03
查询
点击按钮将页面转至根据条件查询出来的单条记录界面
A04
返回
点击按钮将页面转至读者管理的首页
数据要求
字段名称
数据类型
录入方式
是否非空项
数据检验
默认显示
借书号
String
文本框
Y
N
学号或工号
String
文本框
Y
N
姓名
String
文本框
性别
下拉列表框
男
所属院系
String
文本框
数据处理:
用层来控制点击按条件查询与查询全部是所显示的内容;
在页面上拖放两个Gridowview控件到页面上,然后绑定到数据库相应的表中,设置where选项卡。
5.读者信息修改的实现
(1)具体格式如下:
功能编号
03
功能名称
读者角色修改模块
内容
功能流程图
所属业务
读者角色管理管理
所属项目
图书馆管理系统
(2)功能流程图
功能流程图如下图:
需要说明的问题:
对读者的信息进行修改首先进入查询页面查询出所要修改的读者信息,然后在查询页面上单击“修改”,跳转至修改页面,在修改页面的各个文本框中已经显示该角色的各种信息,只需要修改相应的向即可。
功能描述
功能类型:
修改数据
(3)界面设计
基础信息处理
下表是动作说明:
动作编号
动作名称
动作描述
A01
确定修改
点击按钮删除数据
A02
返回
点击按钮将页面转至读者管理首页
数据要求
功能类型:
数据修改
(4)读者角色修改的数据处理
在查询页面中的主要代码:
首先在数据控件GridView2的SelectedIndexChanging时间中加入如下代码:
protectedvoidGridView2_SelectedIndexChanging(objectsender,GridViewSelectEventArgse)
{代码执行的结果是获得所选行数据的ID;
Intid=Convert.ToInt32(GridView2.DataKeys[e.NewSelectedIndex].Value.ToString());
将ID传递给修改页面;
Response.Redirect("修改页面?
id="+id);}
在修改页面中显示数据的主要代码:
if(!
IsPostBack)
{数据链接打开;
接受从查询页面传递过来的ID,并调用DB类的GetDataSet()的方法;
Str="select*from表名whereid="+Request["id"],con);
DataRowViewrowview=DB.GetDataSet(str).DefaultView[0];
将表中的值填充到页面的相应的地方;
数据连接关闭;}
修改数据处理:
当用户点击“确认修改”按钮之后,修改数据库中记录,如果修改成功则弹出修改成功的消息框,且各文本框内容被清空;如果修改失败则弹出修改失败的消息框,各文本框内容不会被清空,以便重新修改。
具体的逻辑如下:
str2="update表名set角色代号='角色代号',角色名='角色名'whereID="+Request["id"];
调用DB类的方法;
if(修改数据成功)
{弹出修改成功对话框;
清空页面的文本框;}
else
{弹出修改
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 图书馆 管理 系统 学生