图书管理系统实训报告.docx

上传人:b****5 文档编号:7165117 上传时间:2023-01-21 格式:DOCX 页数:18 大小:177.61KB
下载 相关 举报
图书管理系统实训报告.docx_第1页
第1页 / 共18页
图书管理系统实训报告.docx_第2页
第2页 / 共18页
图书管理系统实训报告.docx_第3页
第3页 / 共18页
图书管理系统实训报告.docx_第4页
第4页 / 共18页
图书管理系统实训报告.docx_第5页
第5页 / 共18页
点击查看更多>>
下载资源
资源描述

图书管理系统实训报告.docx

《图书管理系统实训报告.docx》由会员分享,可在线阅读,更多相关《图书管理系统实训报告.docx(18页珍藏版)》请在冰豆网上搜索。

图书管理系统实训报告.docx

图书管理系统实训报告

石家庄科技信息职业学院

C#程序设计

课程设计(实训)报告

 

系部信息工程系专业计算机软件专业

班级学号___

姓名_________课题_图书管理系统_

指导教师报告成绩______________

 

起讫日期:

2012年12月4日至2013年1月6日

 

摘要

随着世界信息技术的不断发展,信息科学、计算机技术、通信技术已经在各行各业得到广泛的应用。

图书馆作为一种信息资源的集散地,图书借阅频繁,用户管理多变,包含大量的信息数据,因此需要一个完善的图书管理系统来实现对图书书目、图书借阅、用户查询进行统一、实时管理,达到各类用户的需求。

本文是在分析现有相关图书管理系统不足的基础上,经过详细的调查研究,吸取了有关图书管理系统的优点,以系统的实现为中心,清晰阐述了本系统的实现原理,举例介绍了开发的过程,进行了具体的分析和设计,并尽量使系统的运行速度、扩充性、实用性及可维护性都能得到很好的保证。

本文设计了图书管理系统的详细功能,其中大的功能包括“系统维护"、“参数设定”、“图书管理"、“报表统计"、“数据查询”等功能。

对于这些功能又详细设计了每个功能的具体要实现的功能。

每个业务功能之间又是彼此联系并相互作用。

系统包含管理员、普通用户两部分,分别有不同的使用权限,管理员对数据库进行操作,完成借阅、添加、删除、统计等各功能;用户对数据库进行查询,完成查询、修改等功能。

本文组织起了图书管理的整体架构,完成对图书信息的采集、传输、存储、处理、提取以及数据交换和共享,满足所有授权用户的功能需求,采用在局域网下的c/s方式的体系结构。

本设计方案中,数据库采用MicrosoftSQLServer。

本系统还从实际需求角度设计了系统的硬件结构,特别是针对系统的相关功能按照体系结构设计的要求划分了模块,设计了模块结构以及模块之间的功能关系。

在详细设计阶段,本系统重点对相关模块的具体功能进行了详细分析设计,给出了详细的模块功能逻辑描述;对相关接口进行了分析设计;然后对数据库进行设计;根据对图书管理系统的功能分析以及数据库的设置,利用编程工具DELPHl7,和数据库MSSQLServwer2000对图书管理系统进行代码实现,并且使用了许多第三方控件来增加程序的可操作性,设计了数据的存储原则和数据存储方案。

为了系统安全,我们还设置了登陆权限设置。

用户需要输入用户类别、用户名、密码,才能登陆系统。

在系统运行过程中,系统随时存储我们增加和修改的信息,以便使用者查看、统计、汇总。

最后,对系统实现的环境进行了分析说明。

对已有功能和所欠缺的问题提出了自己的建议和打算。

在本系统完成后的测试及试用过程中,能够满足中小型图书馆的具体需求和管理要求,各方面均已达到了预期的目标。

图书馆采用本系统后加强了对图书的监管力度、杜绝了管理漏洞,严格了管理制度,提高了工作效率,操作简单、易用性强,并且完善了图书管理的流程,简化了图书管理程序。

关键词:

图书管理系统;图书馆

目录

摘要…………………………………………………………………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个属性构成。

该实体的E-R图如图1-2所示。

其中“读者编号”为主键,“读者姓名”、“性别”、单位和电话等式常见的基本信息。

图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

书名

varchar

作者

varchar

出版社

varchar

出版日期

datetime

简介

varchar

表2.2读者信息表

列名

数据类型

可否为空

读者学号

varchar

读者姓名

varchar

读者性别

varchar

联系电话

varchar

所在院系

varchar

表2.3借阅表

列名

数据类型

可否为空

工作号

char

ISBN

char

读者学号

char

借阅日期

datetime

还书日期

datetime

是否续借

char

表2.4管理员_书籍

列名

数据类型

可否为空

工作号

char

ISBN

char

添加时间

datatime

是否在馆

char

表2.5管理员_学生

列名

数据类型

可否为空

工作号

char

读者学号

char

借还确认

char

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

{

MessageBox.Show("不存在此用户或用户名密码错!

");

}

}

}

privatevoidfrmLogin_Load(objectsender,EventArgse)

{

}

}

2.用户管理模块

图3-2管理员的增删改

代码实现

{

publicpartialclassfrmReaderAddOrUpdate:

Form

{

privatefrmReaderManage._delegateRefreshAllReaderdlg;//用来同步刷新管理界面的信息

///

///为了能使一个窗体进行两种操作

///我们需要重载他的构造函数

///不同构造函数构造出来的窗体完成各自不同的操作

///

publicfrmReaderAddOrUpdate(frmReaderManage._delegateRefreshAllReader_dlg)

{

//默认构造函数为添加读者信息

InitializeComponent();

dlg=_dlg;

this.Text="添加读者信息";

btEnter.Text="添加";

}

publicfrmReaderAddOrUpdate(CtbReaderInformationcReader,frmReaderManage._delegateRefreshAllReader_dlg)

{

//此构造函数用于修改读者信息

InitializeComponent();

dlg=_dlg;

this.Text="修改读者信息";

btEnter.Text="保存";

//将传递过来的读者信息赋值于各个控件以备修改

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;

}

privatevoidbtCancel_Click(objectsender,EventArgse)

{

//取消按钮事件

this.Close();

}

privatevoidfrmReaderAddOrUpdate_FormClosed(objectsender,FormClosedEventArgse)

{

//当窗体关闭后执行同步更新管理界面的读者信息

dlg();

}

privatevoidbtEnter_Click(objectsender,EventArgse)

{

//在这里我们要进行判断我们进行的是添加还是修改

//判断的方法我们这里只介绍针对我们现在这种情况的方法

//方法就是判断按钮的TEXT是"添加"还是"保存"

#region添加事件代码部分

if(btEnter.Text=="添加")

{

CtbReaderInformationcReader=newCtbReaderInformation();

CtbReaderInformationBLLcReaderBll=newCtbReaderInformationBLL();

//这里我们允许某些字段为空,但是读者ID,和读者姓名不允许为空

}

else

{

dlg();

this.Close();

}

}

catch(Exceptionex)

{

MessageBox.Show(ex.Message,"系统异常提示");

}

}

}

#endregion

#region修改事件代码

if(btEnter.Text=="保存")

{

CtbReaderInformationcReader=newCtbReaderInformation();

CtbReaderInformationBLLcReaderBll=newCtbReaderInformationBLL();

//这里我们允许某些字段为空,但是读者姓名不允许为空

if(tbReaderName.Text!

="")

{

cReader.readerID=int.Parse(tbReaderID.Text);

cReader.readerName=tbReaderName.Text;

//判断控件内容是否为空,为空不赋值,使用类属性的默认值

#endregion

}

///

///清空所有控件中的内容,以备再次输入

///

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:

Form

{

privatestringuserName="";//用户名

privatestringuserPwd="";//密码

privatestringuserPurview="00000000000000000000000000000000000000000000000000";//权限

privatestringuserAllName="";//全称

privatestringuserSort="";//组别

privatechar[]charPurview;//保存权限字符串

privateCtbUserInformationcUser;//用户类

//默认构造函数

publicfrmUserAddUpdate()

{

InitializeComponent();

//---------------添加用户-----------

this.Text="添加用户";

btEnter.Text="添加";

//----------------------------------

charPurview=userPurview.ToCharArray();//将权限字符串转为权限字符

}

//重载构造函数

publicfrmUserAddUpdate(CtbUserInformation_cUser)

{

InitializeComponent();

//----------修改用户信息------------

this.Text="修改用户信息";

btEnter.Text="保存";

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;

}

}

四、系统测试

本系统在开发完成后进行了系统测试,所用的方法是普遍引用的“黑盒”测试和“白盒”测试法。

黑盒测试也称功能测试或数据驱动测试,它是在已知产品所应具有的功能,通过测试来检测每个功能是否都能正常使用,在测试时,把程序看作一个不能打开的黑盆子,在完全不考虑程序内部结构和内部特性的情况下,测试者在程序接口进行测试,它只检查程序功能是否按照需求规格说明书的规定正常使用,程序是否能适当地接收输入数锯而产生正确的输出信息,并且保持外部信息(如数据库或文件)的完整性。

黑盒测试方法主要有等价类划分、边值分析、因一果图、错误推测等,主要用于软件确认测试。

“黑盒”法着眼于程序外部结构、不考虑内部逻辑结构、针对软件界面和软件功能进行测试。

“黑盒”法是穷举输入测试,只有把所有可能的输入都作为测试情况使用,才能以这种方法查出程序中所有的错误。

实际上测试情况有无穷多个,人们不仅要测试所有合法的输入,而且还要对那些不合法但是可能的输入进行测试。

白盒测试也称结构测试或逻辑驱动测试,它是知道产品内部工作过程,可通过测试来检测产品内部动作是否按照规格说明书的规定正常进行,按照程序内部的结构测试程序,检验程序中的每条通路是否都有能按预定要求正确工作,而不顾它的功能,白盒测试的主要方法有逻辑驱动、

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 农林牧渔 > 林学

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1