图书管理系统实训报告Word下载.docx
《图书管理系统实训报告Word下载.docx》由会员分享,可在线阅读,更多相关《图书管理系统实训报告Word下载.docx(18页珍藏版)》请在冰豆网上搜索。
用户需要输入用户类别、用户名、密码,才能登陆系统。
在系统运行过程中,系统随时存储我们增加和修改的信息,以便使用者查看、统计、汇总。
最后,对系统实现的环境进行了分析说明。
对已有功能和所欠缺的问题提出了自己的建议和打算。
在本系统完成后的测试及试用过程中,能够满足中小型图书馆的具体需求和管理要求,各方面均已达到了预期的目标。
图书馆采用本系统后加强了对图书的监管力度、杜绝了管理漏洞,严格了管理制度,提高了工作效率,操作简单、易用性强,并且完善了图书管理的流程,简化了图书管理程序。
关键词:
图书管理系统;
图书馆
目录
摘要…………………………………………………………………1
目录………………………………………………………………2
前言…………………………………………………………………3
一、需求分析………………………………………………………4
1.1用户需求分析…………………………………………………4
1.2功能模块设计…………………………………………………4
1.3开发工具………………………………………………………4
二、数据库设计………………………………………………………4
2.1E-R图设计………………………………………………………4
2.2数据库具体设计………………………………………………5
三、具体功能实现……………………………………………………6
3.1登录模块………………………………………………………6
3.2用户管理模块…………………………………………………8
4、系统测试…………………………………………………………13
5、结论………………………………………………………………15六、参考文献……………………………………………………………15
七、附录(见光盘)…………………………………………………15
前言
图书管理系统是一个学校不可缺少的部分,它的内容对于学校的管理者和读者来说都至关重要,直接关系到图书的借用率,所以图书管理系统应该能够为管理员和读者提供充足的信息和快捷的查询手段。
现在我国的绝大多数农村中小学校中图书管理水平还停留在纸介质的基础上,这样的机制已经不能适应时代的发展,因为这种管理方式存在着许多缺点,如:
效率低下、保密性差,另外时间一长,将产生大量的文件和数据,这对于数据的查找、更新和维护都带来了不少的困难,并且浪费了许多人力和物力。
随着科学技术的不断提高,计算机科学日渐成熟,其强大的功能已为人们深刻认识,它已进入人类社会的各个领域并发挥着越来越重要的作用。
在信息时代这种传统的图书管理方式必然被计算机为基础的信息管理系统所取代。
因为作为计算机应用的一部分,使用计算机对图书信息进行管理,具有着手工管理所无法比拟的优点.例如:
检索迅速、查找方便、可靠性高、存储量大、保密性好、寿命长、成本低等。
这些优点能够极大地提高图书管理的效率。
因此,开发这样一套图书管理软件成为很有必要的事情,以下是本人针对大障中学等农村初级中学图书管理现状,在调研基础上开发出来的图书管理系统。
在下面的各章中将以开发一套图书管理系统为例,谈谈其开发过程和所涉及到的问题及解决方法。
由于时间仓促,本系统在技术上或管理模式不可避免存在缺陷,请各位评审专家及老师指正。
因为这种管理方式存在着许多缺点,如:
1、需求分析
1.用户需求分析
最终的用户是图书管理员和读者,图书管理员需要进行用户的创建、修改和删除等工作,要求具备计算机知识,如权限管理等。
读者是普通用户,具备一定的计算机操作知识即可。
2.功能模块设计
1)用户登录系统,包括管理员登录,学生查阅信息登录
2)在编目的时候自动迅速查找新的书籍是否已编目,并可以快速编目。
3)能够用计算机进行快速查找,已确定图书的名称和存放的位置。
4)查找出一本已借出的书现在在谁那里。
5)各类具体查找功能。
3.开发工具
操作系统:
WindowsXP/7
数据库系统:
SQLServer2005
开发工具:
VisualStudio软件
Web服务器:
IE浏览器或者是VisualStudio软件系统发布平台
2、数据库设计
1.E-R图设计
根据图书管理系统分析与功能设计,图书信息管理系统中主要包括图书信息实体、读者信息实体、借阅信息实体、员工信息实体以及读者类别实体等。
图书信息实体包括表征一本书基本特征的数据和由于管理需要而记录的一些数据,有8个属性构成。
该实体的E-R图如图1-2所示。
其中“图书编号”实际上就是ISBN编号,这是用于唯一确定一本合法出版物的标准编号,它作为本实体的主键。
图1-1图书信息实体E-R图
读者信息实体标示一个读者的个人特征数据和该读者在图书馆的借阅状态信息,有10个属性构成。
其中“读者编号”为主键,“读者姓名”、“性别”、单位和电话等式常见的基本信息。
图1-2读者信息实体E-R图
借阅信息实体标示哪个读者在何时借了哪本书。
从信息完整性和减少冗余度的角度来考虑,本实体只需3个属性,即:
“读者编号”-------是谁借了这本书:
“图书编号”-------借的是那本书:
“借出日期”--------是那天接的。
该实体的E-R图如图1-3所示。
图1-3借阅信息实体E-R图
员工信息实体标示本馆员工的信息。
员工信息实体是为图书馆管理者掌握本馆员工的资料而设计的,它的另一重要作用是提高员工登录系统时的编号和密码。
该实体的E-R图如图1-4所示。
图1-4员工信息实体E-R图
2.数据库具体设计
根据图书信息管理系统E-R图设计系统数据库。
本系统数据库名为“tsglxt”,其中包括五个数据表,分别存放图书信息、读者信息、读者类别信息、借阅信息和员工信息。
表2.1图书信息表
列名
数据类型
可否为空
ISBN
varchar
否
书名
作者
出版社
是
出版日期
datetime
简介
表2.2读者信息表
读者学号
读者姓名
读者性别
联系电话
所在院系
表2.3借阅表
工作号
char
借阅日期
还书日期
是否续借
表2.4管理员_书籍
否
添加时间
datatime
是否在馆
表2.5管理员_学生
借还确认
3、具体功能实现
1.登陆模块
图3-1管理员登陆系统
代码实现
{
publicpartialclassfrmLogin:
Form
{
publicfrmLogin()
InitializeComponent();
}
privatevoidbtCancel_Click(objectsender,EventArgse)
Application.Exit();
privatevoidbtOK_Click(objectsender,EventArgse)
if(tbUserName.Text!
="
"
&
&
tbUserPwd.Text!
)
CtbUserInformationBLLCuser=newCtbUserInformationBLL();
if(Cuser.Exists(tbUserName.Text,tbUserPwd.Text,cbUserSort.Text))
MessageBox.Show("
用户登录成功!
);
CtbUserInformationcUser=newCtbUserInformation();
cUser=Cuser.GetModel(tbUserName.Text);
Session.UserName=cUser.userName;
Session.UserPwd=cUser.userPwd;
Session.UserAllName=cUser.userAllName;
Session.UserPurview=cUser.userPurview;
Session.UserRole=cUser.userSort;
this.Close();
}
else
不存在此用户或用户名密码错!
privatevoidfrmLogin_Load(objectsender,EventArgse)
2.用户管理模块
图3-2管理员的增删改
publicpartialclassfrmReaderAddOrUpdate:
privatefrmReaderManage._delegateRefreshAllReaderdlg;
//用来同步刷新管理界面的信息
///<
summary>
///为了能使一个窗体进行两种操作
///我们需要重载他的构造函数
///不同构造函数构造出来的窗体完成各自不同的操作
/summary>
publicfrmReaderAddOrUpdate(frmReaderManage._delegateRefreshAllReader_dlg)
//默认构造函数为添加读者信息
dlg=_dlg;
this.Text="
添加读者信息"
;
btEnter.Text="
添加"
publicfrmReaderAddOrUpdate(CtbReaderInformationcReader,frmReaderManage._delegateRefreshAllReader_dlg)
//此构造函数用于修改读者信息
修改读者信息"
保存"
//将传递过来的读者信息赋值于各个控件以备修改
tbReaderID.Text=cReader.readerID.ToString();
tbReaderName.Text=cReader.readerName;
cbReaderSex.Text=cReader.readerSex;
tbReaderOffice.Text=cReader.readerOffice;
tbReaderDept.Text=cReader.readerDept;
tbReaderPhone.Text=cReader.readerPhone;
tbReaderEMail.Text=cReader.readerEmail;
dtkReaderResDate.Value=cReader.readerResDate;
//读者编号不能修改
tbReaderID.ReadOnly=true;
//取消按钮事件
privatevoidfrmReaderAddOrUpdate_FormClosed(objectsender,FormClosedEventArgse)
//当窗体关闭后执行同步更新管理界面的读者信息
dlg();
privatevoidbtEnter_Click(objectsender,EventArgse)
//在这里我们要进行判断我们进行的是添加还是修改
//判断的方法我们这里只介绍针对我们现在这种情况的方法
//方法就是判断按钮的TEXT是"
还是"
#region添加事件代码部分
if(btEnter.Text=="
CtbReaderInformationcReader=newCtbReaderInformation();
CtbReaderInformationBLLcReaderBll=newCtbReaderInformationBLL();
//这里我们允许某些字段为空,但是读者ID,和读者姓名不允许为空
catch(Exceptionex)
MessageBox.Show(ex.Message,"
系统异常提示"
#endregion
#region修改事件代码
//这里我们允许某些字段为空,但是读者姓名不允许为空
if(tbReaderName.Text!
cReader.readerID=int.Parse(tbReaderID.Text);
cReader.readerName=tbReaderName.Text;
//判断控件内容是否为空,为空不赋值,使用类属性的默认值
///清空所有控件中的内容,以备再次输入
privatevoidClearAllContent()
//时间以及CB控件无需清空
tbReaderID.Clear();
tbReaderName.Clear();
tbReaderOffice.Clear();
tbReaderDept.Clear();
tbReaderPhone.Clear();
tbReaderEMail.Clear();
tbReaderAddress.Clear();
dtkReaderResDate.Value=DateTime.Now;
//将当前时间赋予时间控件
privatevoidfrmReaderAddOrUpdate_Load(objectsender,EventArgse)
图3-3用户信息填写
//添加修改用户窗体
publicpartialclassfrmUserAddUpdate:
privatestringuserName="
//用户名
privatestringuserPwd="
//密码
privatestringuserPurview="
00000000000000000000000000000000000000000000000000"
//权限
privatestringuserAllName="
//全称
privatestringuserSort="
//组别
privatechar[]charPurview;
//保存权限字符串
privateCtbUserInformationcUser;
//用户类
//默认构造函数
publicfrmUserAddUpdate()
//---------------添加用户-----------
添加用户"
//----------------------------------
charPurview=userPurview.ToCharArray();
//将权限字符串转为权限字符
//重载构造函数
publicfrmUserAddUpdate(CtbUserInformation_cUser)
//----------修改用户信息------------
修改用户信息"
cUser=_cUser;
//接收传过来的用户信息
//----以下提取用户信息进行控件赋值-----
charPurview=cUser.userPurview.ToCharArray();
//----组别赋值---
foreach(ControlxingroupBox3.Controls)
RadioButtonra=(RadioButton)x;
if(ra.Text==cUser.userSort)
ra.Checked=true;
//----权限控件赋值----
foreach(ControlyingroupBox2.Controls)
CheckBoxca=(CheckBox)y;
ca.Checked=CCharToBool.CharToBool(charPurview[int.Parse(ca.Tag.ToString())]);
//----基本信息赋值----
tbUserName.Text=cUser.userName;
tbUserPwd.Text=cUser.userPwd;
tbUserAllName.Text=cUser.userAllName;
tbUserName.ReadOnly=true;
四、系统测试
本系统在开发完成后进行了系统测试,所用的方法是普遍引用的“黑盒”测试和“白盒”测试法。
黑盒测试也称功能测试或数据驱动测试,它是在已知产品所应具有的功能,通过测试来检测每个功能是否都能正常使用,在测试时,把程序看作一个不能打开的黑盆子,在完全不考虑程序内部结构和内部特性的情况下,测试者在程序接口进行测试,它只检查程序功能是否按照需求规格说明书的规定正常使用,程序是否能适当地接收输入数锯而产生正确的输出信息,并且保持外部信息(如数据库或文件)的完整性。
黑盒测试方法主要有等价类划分、边值分析、因一果图、错误推测等,主要用于软件确认测试。
“黑盒”法着眼于程序外部结构、不考虑内部逻辑结构、针对软件界面和软件功能进行测试。
“黑盒”法是穷举输入测试,只有把所有可能的输入都作为测试情况使用,才能以这种方法查出程序中所有的错误。
实际上测试情况有无穷多个,人们不仅要测试所有合法的输入,而且还要对那些不合法但是可能的输入进行测试。
白盒测试也称结构测试或逻辑驱动测试,它是知道产品内部工作过程,可通过测试来检测产品内部动作是否按照规格说明书的规定正常进行,按照程序内部的结构测试程序,检验程序中的每条通路是否都有能按预定要求正确工作,而不顾它的功能,白盒测试的主要方法有逻辑驱动、