图书管理系统文档.docx
《图书管理系统文档.docx》由会员分享,可在线阅读,更多相关《图书管理系统文档.docx(47页珍藏版)》请在冰豆网上搜索。
图书管理系统文档
图书管理系统
需求分析
学生姓名:
学号:
专业班级:
指导教师:
二00年月日
目录
1开发背景2
2系统分析2
3可行性分析与研究2
3.1可行性研究报告2
3.2项目开发计划4
3.3软件需求5
3.4概要设计分析6
4数据库设计7
5系统详细设计14
6测试计划30
6.1测试分析报告31
7项目开发总结报告33
8结论34
9参考书目34
1开发背景
随着人类社会的发展,人类对知识的需求也不断地增长。
在这种形势下,书籍就渐渐地成为人们获取并增长知识的主要途径,而图书馆就自然而然地在人们的生活中占据了一定的位置。
学校作为教书育人的中坚力量,图书馆的作用更是举足轻重。
学校图书馆要做到安全顺畅的运转,为广大同学提供良好的服务,就必须有一套完善健全的运行管理机制。
联系实际,考虑各层次学校的情况,软件本身要求易学,界面友好,容易掌握,可以较简单方便的管理各种图书信息;硬件的配置要求不能太高,这样可以很好的适应当前的学校图书馆。
系统的总体特点应该是方便、简单、实用。
2系统分析
图书管理系统是典型的信息管理系统,其开发主要包括后台数据库的建立和维护以及前端应用程序的开发两个方面。
对于前者要求建立起数据一致性和完整性强、数据安全性好的数据库。
而对于后者则要求应用程序功能完备,易使用等特点。
在数据库应用系统开发之前,对开发数据库的基本概念,数据库的结构、开发数据库应用程序的步骤、开发体系及方法都应当有相当清晰的了解和认识。
数据库应用系统开发的目标是建立一个满足用户长期需求的产品。
开发的主要过程为:
理解用户的需求,然后,把它们转变为有效的数据库设计。
把设计转变为实际的数据库,并且这些数据库带有功能完备、高效能的应用。
该系统主要由读者信息管理、图书信息管理、借阅信息管理、管理员信息管理、违规信息管理等模块组成。
读者信息分为两类:
有在校的学生和在校的教职工;图书管理模块是主要的模块之一,其中包含了各种编程语言、操作系统、数据库等各个方面的书籍;借阅管理部分则是记录了各种读者的借阅信息,从中可以查询读者的地址、联系电话、借书的日期等信息;管理者信息管理模块相对简单一点,该模块主要是记录了该系统的管理员信息,包括其对系统所具有的权限,不同权限的管理员只能登录和访问相应的资源,对系统进行不同的管理和控制。
2.1系统流程图如下所示:
3可行性分析与研究
3.1可行性研究报告
通过调查分析开发图书管理所具备的能力及实现的方法,确定总体结构,利用sqlserver2008数据库所具备的能力,以最简洁最容易的方法,使用C#编程语言使其成为一个功能完善的系统软件。
3.1.1 对现有系统的分析
这里的现有系统是指徐州师范大学图书馆管理系统,针对现有的图书馆系统界面不够友好,不够人性化,所以我们开发新的图书馆管理系统。
3.1.2处理流程和数据流程
A.采书
书商提供电子采访数据——采编人员按学院专业进行分类——给各系提供对应专业数据——教师勾划订单——采编人员整理订单——订单返回书商——书商配书——书商送书
B.图书入库
中文图书编目系统使我们更好的对图书进行书籍入架。
图书编目完成后可将数据交送到编目主库及流通部进行图书典藏及流通。
图书编目系统主要有图书编目、自动查询、统计打印、数据转换、数据维护等几方面。
步骤:
按索书号顺序上架——盖章(两个:
一个为在书的第一页,另一个为在书的第九页)——入架(注:
这一过程需要三天时间)
C.图书借阅
学生凭一卡通每人可借书6册(每馆最多5册)学生借阅期限为一个月。
必须在到期前来馆办理续借手续,超过期限,每册书每天交滞纳金0.10元。
读书借阅时对所借图书进行检查,如发现破损、缺页,请及时让工作人员盖章检章,以分清责任,否则按有关规定处理。
3.1.3工作负荷
图书馆人员少,借阅时间长,费时、费力;办事效率不高;学生借书;同时系统增加了读者查询功能,也为管理员减轻了工作量。
3.1.4运行环境
该系统的运行环境包括硬件系统和软件系统,是一个以Internet为构架平台的。
客户端计算机运行WINDOWSXP操作系统,以IE浏览器访问应用系统WEB服务器。
具体的设备为:
1.CPU:
Pentium4500以上或更高,
2.内存:
128M以上;
3.硬盘:
至少10G以上;
3.1.5局限性
计算机停电或死机会不会造成数据丢失?
图书管理系统没有即时存储功能,被修改的数据不会立即存盘,会因计算机异常而丢失数据。
系统是否易学易用?
图书管理系统不是标准的WINDOWS应用程序,界面不友好,操作不容易,必须经过专门训练才可进行操作。
图书管理数据流程与图书馆操作流程不大相符,必须要懂图书馆业务。
能存放多少数据,能用于多大规模的网络?
理论上讲,图书管理系统的记录限制为一亿条。
系统是否容易出问题,出了问题怎么办?
系统是否允许用户出问题?
系统不具备高度容错能力,可自动检测。
3.1.6对所建议系统的说明
a.小巧而不失使用的功能,方便师生。
b.库存图书馆功能,师生借阅信息管理。
c.财务信息的统计分析。
d.多种图表统计,可统计每年,每月,每日的图书借出和借入情况统计。
e.多种排行统计等。
3.1.7处理流程和数据流程
a.系统能对书籍信息进行管理。
b.系统不需要管理借阅者除姓名以外的信息。
对每一名借阅者最多可借阅的书籍数目为2本。
c.借书时,系统记录借书者的姓名、借阅书籍名称和借阅日期。
d.时间时,系统记录还书者的姓名、归还书籍名称和还书日期。
系统设定书籍的最长借阅时间为1个月。
e.操作人员可以根据书籍名称、作者、出版社三者之一或三者的任意组合查询书籍信息。
f.操作人员可以查询借阅某书籍的所有借阅者的姓名;也可以查询某借阅者借阅的所有书籍名称;还可以根据借阅者的姓名、书籍名称查询借阅者的借书时间、还书时间。
g.系统由图书馆工作人员操作分为:
系统管理员,书籍管理员和借阅管理员。
h.所有操作人员凭帐号和密码登陆系统。
3.1.8改进之处
a.由于时间仓促,人力和物力资源缺乏,本系统存在诸多不完善之处。
b.整体系统不够强,功能模块需要添加和其他查询功能。
3.1.9使用方面的可行性
●用户单位的行政管理:
自定
●工作制度:
自定
●人员素质等能否满足要求:
可以满足
从社会效益上看,随着技术的发展,采用软件管理图书馆日常工作,毫无疑问会在使用过程中产生新的需求和问题,这样也会不断地促进信息技术和软件应用的革新。
用哲学的思维分析可概括为软件应用促进技术进步,技术进步反作用于软件的应用,从而双方面同时促使社会不断朝前。
经过研究,此系统的用户无使用方面的问题。
3.2项目开发计划
1.主要工作:
对开发软件项目的费用,时间,进度,人员组织,硬软设备的配置等进行说明和规划。
2.软件功能:
图书管理员通过此软件对图书的借阅情况,添加及删除等情况进行系统有效的管理;读者能通过该软件进行图书的查询及对自身借阅情况的查询等操作。
3.软件性能:
性能良好,安全稳定,效率高。
4.应具备条件:
应提供相应的硬件配置,相应的软件及一定数量的技术人员和管理人员等,以及相应的开发环境。
5.用户及合同承包者承担的工作及完成期限:
由用户提出项目开发的具体要求,提供上述软硬件支持和开发环境支持,并进行管理操作,以及保证资金的到位。
合同承包者提供技术人员,完成该项目的开发,并进行后续的维护工作。
6.应交付程序名称:
图书管理系统软件。
7.使用语言:
C#,SQL。
应交付的文档:
可行性研究的文档,项目开发计划文档,需求分析文档,使用说明文档
3.3软件需求分析
3.3.1理解需求
理解需求是在问题及其最终解决方案之间架设桥梁的第一步。
开发者只有和用户充分理解了需求之后才能开始设计系统,否则,对需求定义的任何改进,设计上都必须大量的返工。
下面是对系统的终端用户和客户调研后得到的需求规格说明书:
(1)在启动系统后,首先是登陆界面,根据用户输入判断用户身份是否合法。
合法用户分为普通用户和系统管理员,其中,系统管理员拥有所有权限,而普通用户没有用户管理权限。
(2)进入读者信息维护界面,可以对读者信息进行添加、删除、修改和查询操作,并且可以便利记录。
(3)进入图书信息维护界面,可以对图书信息进行添加、删除、修改和查询操作,并且可以遍历记录。
(4)进入读者借还书界面,可以实现读者借书、还书和查阅读者借阅记录的功能,并在读者借还书时,对相应数据库数据进行修改。
3.4概要设计
3.4.1系统指导思想和建设目标
系统指导思想:
立足于校园实际,着眼于未来发展,建成符合标准化协议、通用性较强、实用的系统,以提高图书信息的现代化管理水平,实现信息资源的共享。
系统建设目标
(1)要解决的问题:
(以某学校为参照)随着办公自动化水平的不断提高,现在学校管理学生信息也逐步从手工转到计算机自动化信息处理阶段。
设计一个功能完整、操作简便、界面友好的学生信息管理系统已经是势在必行的了。
(2)系统开发的目的:
提高图书管理工作的效率,减少相关人员的工作量,使学校的图书管理工作真正做到科学、合理的规划,系统、高效的实施。
(3)系统名称:
图书管理系统
3.4.2总体功能设计
系统要能实现如下功能:
1.登录系统:
注销用户、系统退出。
2.管理:
用户管理、图书管理、读者管理、借阅管理。
3.查询:
图书查询、读者查询、借阅查询。
4.报表打印:
所有图书、借出图书、库存图书、所有读者。
5.帮助:
使用说明、关于。
3.4.3功能目标
通过本系统软件,能帮助图书馆管理人员利用计算机,快速方便地对图书馆书籍,读者资料,借还书等进行高效的管理。
3.4.4作用及范围
本软件适用于教育界,它是比较完善的系统管理软件,对图书馆的书籍,读者资料,借还书等可以进行方便的管理。
4数据库设计
。
4.1ER图设计
4.1.1读者e-r:
4.1.2管理员e-r:
4.1.3图书e-r:
4.1.4总e-r:
4.2数据库表的设计
图书信息
读者信息
出版社信
读者借书信息表
4.2.2数据库链接
代码如下:
usingSystem;
usingSystem.Data;
usingSystem.Data.SqlClient;
usingBookManage.BusinessLevel;
namespaceBookManage.DataLevel
{
publicclassDB
{
publicDB()
{
}
publicstaticSqlConnectionCreateCon()
{
returnnewSqlConnection("server=.;database=BookManage;uid=sa;pwd=;");
}
publicstaticvoidfillTableDs(stringsql,DataSetds,stringtablename)
{
SqlConnectioncon=DB.CreateCon();
SqlDataAdaptersda=newSqlDataAdapter(sql,con);
try
{
con.Open();
sda.Fill(ds,tablename);
}
catch
{}
finally
{
con.Close();
}
}
publicstaticvoidFillDs(stringstoreName,DataSetds,stringtablename)
{
SqlConnectioncon=DB.CreateCon();
SqlDataAdaptersda=newSqlDataAdapter(storeName,con);
sda.SelectCommand.CommandType=CommandType.StoredProcedure;
//SqlCommandcmd=newSqlCommand(storeName,con);
//cmd.CommandType=CommandType.StoredProcedure;
try
{
con.Open();
sda.Fill(ds,tablename);
}
catch{}
finally
{
con.Close();
}
}
publicstaticstringLogin(paramsSqlParameter[]paras)
{
stringresult="不?
";
SqlConnectioncon=DB.CreateCon();
SqlCommandcmd=newSqlCommand("proc_User_Login",con);
cmd.CommandType=CommandType.StoredProcedure;
for(inti=0;i{
cmd.Parameters.Add(paras[i]);
}
try
{
con.Open();
cmd.ExecuteNonQuery();
if(cmd.Parameters["@count"].Value.ToString()=="1")
{
//result=cmd.Parameters["@count"].Value.ToString();
result=cmd.Parameters["@UserSort"].Value.ToString();
}
else
{
result="不?
";
}
}
catch
{}
finally
{
con.Close();
}
returnresult;
}
publicstaticboolExcuteque(stringstoreName,paramsSqlParameter[]paras)
{
boolresult=false;
SqlConnectioncon=DB.CreateCon();
SqlCommandcmd=newSqlCommand(storeName,con);
cmd.CommandType=CommandType.StoredProcedure;
for(inti=0;i{
cmd.Parameters.Add(paras[i]);
}
try
{
con.Open();
//cmd.ExecuteNonQuery();
intcount=Convert.ToInt32(cmd.ExecuteNonQuery());
if(count>0)
{
result=true;
}
}
catch
{}
finally
{
con.Close();
}
returnresult;
}
5系统详细设计
5.1用户登陆页面
该页面用于用户登陆。
此系统只限于管理员的登录,该模块是对用户名和密码的验证。
截图如下:
用户登陆
代码:
usingSystem;
usingSystem.Drawing;
usingSystem.Collections;
usingSystem.ComponentModel;
usingSystem.Windows.Forms;
usingSystem.Data;
usingBookManage.BusinessLevel;
namespaceBookManage.UILevel
{
publicclassLongin:
System.Windows.Forms.Form
{
privateSystem.Windows.Forms.Labellabel1;
privateSystem.Windows.Forms.Labellabel2;
privateSystem.Windows.Forms.TextBoxtxtUname;
privateSystem.Windows.Forms.TextBoxtxtUpwd;
privateSystem.Windows.Forms.ButtonbtnOk;
privateSystem.Windows.Forms.ButtonbtnCancel;
privateLabellabel3;
privatePictureBoxpictureBox1;
privateSystem.ComponentModel.Containercomponents=null;
publicLongin()
{
InitializeComponent();
}
protectedoverridevoidDispose(booldisposing)
{
if(disposing)
{
if(components!
=null)
{
components.Dispose();
}
}
base.Dispose(disposing);
}
#regionWindows窗ä¡ã体¬?
设¦¨¨计?
器¡Â生¦¨²成¨¦的Ì?
代䨲码?
privatevoidInitializeComponent()
{
System.ComponentModel.ComponentResourceManagerresources=newSystem.ComponentModel.ComponentResourceManager(typeof(Longin));
this.label1=newSystem.Windows.Forms.Label();
this.label2=newSystem.Windows.Forms.Label();
this.txtUname=newSystem.Windows.Forms.TextBox();
this.txtUpwd=newSystem.Windows.Forms.TextBox();
this.btnOk=newSystem.Windows.Forms.Button();
this.btnCancel=newSystem.Windows.Forms.Button();
this.label3=newSystem.Windows.Forms.Label();
this.pictureBox1=newSystem.Windows.Forms.PictureBox();
((System.ComponentModel.ISupportInitialize)(this.pictureBox1)).BeginInit();
this.SuspendLayout();
//label1
this.label1.BackColor=System.Drawing.Color.Transparent;
this.label1.ForeColor=System.Drawing.Color.Black;
this.label1.Location=newSystem.Drawing.Point(37,53);
this.label1.Name="label1";
this.label1.Size=newSystem.Drawing.Size(56,23);
this.label1.TabIndex=0;
this.label1.Text="用®?
户¡ì名?
:
êo";
//label2
this.label2.BackColor=System.Drawing.Color.Transparent;
this.label2.ForeColor=System.Drawing.Color.Black;
this.label2.Location=newSystem.Drawing.Point(35,89);
this.label2.Name="label2";
this.label2.Size=newSystem.Drawing.Size(54,23);
this.label2.TabIndex=1;
this.label2.Text="密¨¹码?
:
êo";
//txtUname
this.txtUname.Location=newSystem.Drawing.Point(84,50);
this.txtUname.Name="txtUname";
this.txtUname.Size=newSystem.Drawing.Size(112,21);
this.txtUname.TabIndex=2;
//txtUpwd
this.txtUpwd.Location=newSystem.Drawing.Point(84,86);
this.txtUpwd.Name="txtUpwd";
this.txtUpwd.PasswordChar='*';
this.txtUpwd.Size=newSystem.Drawing.Size(112,21);
this.txtUpwd.TabIndex=3;
//btnOk
this.btnOk.BackColor=System.Drawing.SystemColors.Control;
this.btnOk.ForeColor=System.Drawing.Color.Black;
this.btnOk.Location=newSystem.Drawing.Point(252,142);
this.btnOk.Name="btnOk";
this.btnOk.Size=newSystem.Drawing.Size(37,32);
this.btnOk.TabIndex=4;
this.btnOk.Text="确¨¡¤定¡§";
this.btnOk.UseVisualStyleBackColor=fa