图书管理系统终期报告.docx
《图书管理系统终期报告.docx》由会员分享,可在线阅读,更多相关《图书管理系统终期报告.docx(25页珍藏版)》请在冰豆网上搜索。
图书管理系统终期报告
07计科B5班
图书管理系统
系统设计实现报告书基于C#+SQL
Abiaocom开发小组
2010-06-30
图书管理系统设计实现报告
山西大学商务学院图书管理系统
设计与实现
内容提要本设计主要是针对山西大学商务学院的需求,开发的一个小型的图书管理系统。
本系统采用MicrosoftSQLServer2008做后台数据库管理系统,基于微软C#语言在winform平台下开发,具体使用MicrosoftVisualStudio2008进行开发。
该系统面向所有类型管理员和在校学生的多种身份的用户,普通用户可以查询个人信息,查询书籍及借阅个人书籍信息情况;管理员(包括系统管理员,图书管理员,借阅管理员)能增加、删除、修改和查询每一项记录,处理书籍相关信息。
本设计开发的系统能实现学校的智能化管理,规范图书馆的管理工作,通过该系统可以实现图书信息的检索、图书借阅管理、用户个人信息的管理等各种功能,实现图书管理的快捷、高效。
1引言
1.1设计目的和意义
论文(设计)的目的:
一直以来人们使用传统的人工方式管理图书馆的日常工作,对于图书馆的借书和还书过程,想必大家都已很熟悉。
在计算机尚未在图书馆广泛使用之前,借书和还书过程主要依靠手工。
一个最典型的手工处理还书过程就是:
读者将要借的书和借阅证交给工作人员,工作人员将每本书上附带的描述书的信息的卡片和读者的借阅证放在一个小格栏里,并在借阅证和每本书贴的借阅条上填写借阅信息。
这样借书过程就完成了。
还书时,读者将要还的书交给工作人员,工作人员根据图书信息找到相应的书卡和借阅证,并填好相应的还书信息,这样还书过程就完成了。
以上所描述的手工过程的不足之处显而易见,首先处理借书、还书业务流程的效率很低,其次处理能力比较低,一段时间内,所能服务的读者人数是有限的。
利用计算机来处理这些流程无疑会极大程度地提高效率和处理能力。
我们将会看到排队等候借书、还书的队伍不再那么长,工作人员出错的概率也小了,读者可以花更多的时间在选择书和看书上。
为方便对图书馆书籍、读者资料、借还书等进行高效的管理,特编写该程序以提高图书馆的管理效率。
使用该程序之后,工作人员可以查询某位读者、某种图书的借阅情况,还可以对当前图书借阅情况进行一些统计,给出统计表格,以便全面掌握图书的流通情况。
设计(论文)的意义:
图书馆离不开信息处理,这正是计算机被广泛应用于信息管理系统的环境。
计算机的最大好处在于利用它能够进行信息管理。
使用计算机进行信息控制,不仅提高了工作效率,而且大大的提高了其安全性。
尤其对于复杂的信息管理,计算机能够充分发挥它的优越性。
计算机进行信息管理与信息管理系统的开发密切相关,系统的开发是系统管理的前提。
本系统就是为了管理好图书馆信息而设计的。
图书馆作为一种信息资源的集散地,图书和用户借阅资料繁多,包含很多的信息数据的管理,现今,有很多的图书馆都是初步开始使用,甚至尚未使用计算机进行信息管理。
根据调查得知,他们以前对信息管理的主要方式是基于文本、表格等纸介质的手工处理,对于图书借阅情况(如借书天数、超过限定借书时间的天数)的统计和核实等往往采用对借书卡的人工检查进行,对借阅者的借阅权限、以及借阅天数等用人工计算、手抄进行。
数据信息处理工作量大,容易出错;由于数据繁多,容易丢失,且不易查找。
总的来说,缺乏系统,规范的信息管理手段。
尽管有的图书馆有计算机,但是尚未用于信息管理,没有发挥它的效力,资源闲置比较突出,这就是管理信息系统的开发的基本环境。
数据处理手工操作,工作量大,出错率高,出错后不易更改。
图书馆采取手工方式对图书借阅情况进行人工管理,由于信息比较多,图书借阅信息的管理工作混乱而又复杂;一般借阅情况是记录在借书证上,图书的数目和内容记录在文件中,图书馆的工作人员和管理员也只是当时对它比较清楚,时间一长,如再要进行查询,就得在众多的资料中翻阅、查找了,造成查询费时、费力。
如要对很长时间以前的图书进行更改就更加困难了。
1.2研究背景
上个世纪90年代初美国科学家首次提出数字图书馆(DigitalLibrary)这一概念以来,全球开展数字图书馆研究与实践已近十几个年头。
我国图书情报界、IT业界自1995年左右开始对这一领域跟踪研究,1998年开始全面升温,迄今无论是在对数字图书馆的认识,还是理论研究、关键技术准备方面,都取得了很大的进展。
国内数字图书馆的实践活动大致可分为以下三种类型:
资源服务型、服务研究型和联合建设型。
虽然,从严格意义上讲,资源服务型不能算是数字图书馆,但它的网上信息服务目前已在大多数图书馆开展,是现阶段我国图书情报界提供网上数字服务的主要形式。
2系统分析
2.1系统可行性分析
从技术方面看,随着计算机技术的发展,要将对山西大学商务学院从原始的文档管理转化为信息化管理,是有很强的可行性的。
本设计要做的只是针对图书馆的真实的图书管理工作来开发出适用的本学院的图书管理系统,图书馆的信息数据(包括用户数据和图书数据)量大并且复杂,从数据库的应用和开发的实效性角度出发,选择MicrosoftSQLServer2008作为后台数据库,它能够处理大量数据,同时保持数据完整性并且容易管理。
在开发技术上选WINFORM/ADO.NET,它开发周期短,成本较低,目前该技术也相对成熟,具体使用MicrosoftVisualStudio2008作为开发工具。
从经济方面看,传统的人工管理方式,对图书馆管理人员要求数量多,耗资高,错误率高,工作人员流动和对新人的培训经费也是不小的开支。
本系统对经济上没有太多的要求,只要具备计算机及相应的运行软件即可开发。
项目成功后,数据的处理加快,可以节省人力,节约时间。
开发这套系统的经济可行性是很高的。
从操作方面看,本系统采用面向对象技术,开发出来的界面友好,几乎人人都可以很简单地按照相关说明进行操作。
系统能为图书馆管理者和普通用户提供高效、方便快捷的服务,工作量和出错率远远低于人工管理方式,同时新系统操作简单易上手,特别是与实际流程一致,用户可以很快熟悉和习惯。
2.2系统功能需求分析
2.2.1系统业务流程
山西大学图书管理系统的业务流程是,管理员根据图书的信息资料,登录系统处理信息(系统管理员处理用户信息,图书管理员处理书籍信息,节约管理员处理书籍借阅信息),然后普通用户(包括在校生和教师)登陆系统浏览个人信息和书籍信息,每个用户(包括管理员和普通用户)必须登陆后才能查看修改个人信息,查看(修改)图书信息,修改自己的密码等等。
系统中有严格的权限控制,非自己分内之职是不能查看浏览的,以提高系统的安全性和可行性。
2.2.2系统功能分析
本系统面向学院所以用户(当然该用户必须注册在内),包括系统管理员,图书管理员,书籍管理员,普通用户。
(1)根据普通用户需求情况,系统中普通用户的主要功能包括:
①登陆后浏览图书信息、图书借阅信息等;
②登录后查看个人基本信息(个人资料和个人借阅信息)及修改登录密码和电子邮箱密码。
(2)根据系统管理员需求情况,系统中系统管理员的主要功能包括:
①登陆后浏览所有用户信息、增删改查所有用户信息;
②登陆后可以修改个人登录密码和电子邮箱密码。
(3)根据图书管理员需求情况,系统中图书管理员的主要功能包括:
①登陆后处理(增删改查)所有书籍信息、书籍类型信息、出版社信息、光盘信息、附赠手册信息、书架信息;
②登陆后可以修改个人登录密码和电子邮箱密码。
(4)根据借阅管理员需求情况,系统中借阅管理员的主要功能包括:
①登陆后处理(增删改查)所有书籍借阅信息、借阅/归还书籍信息、冻结用户信息;
②登陆后可以修改个人登录密码和电子邮箱密码。
(5)根据学院的需求情况,所有用户登陆后都可以使用系统中的以下功能:
①如果使用该系统的计算机能联网,可以发送简短的电子邮件,也可以登陆邮箱主页发送;
②可以使用该系统附带的网页浏览器;
③可以使用音频播放器,该版本只能听取本地音频;
可以更换系统主界面的背景图片(默认无图片);
当用户尚未操作完成但要离开计算机时,可以锁定该计算机;
可以将系统最小化到托盘,减少系统资源。
2.3概念模型
各实体之间的联系,即E-R图如图1所示。
图1系统数据ER图
3系统总体设计
3.1系统数据库设计
3.1.1表结构设计
本系统采用了MicrosoftSQLServer2008数据库系统。
数据库名是LibraryAB,共有9张数据表,分别为:
用户信息表(UserData),书籍信息表(Book),书籍类型信息表(BookType),出版社信息表(Press),光盘信息表(CD),附赠手册信息表(HandBook),书架信息表(Bookshelf),书籍借阅信息表(BookBorrow),用户冻结信息表(UserFreeze),各表结构如表1—表12所示。
表1用户信息表UserData
序号
列名
数据类型
长度/大小
标识
主键
允许空
说明
1
UserID
nvarchar
50
否
是
否
用户编号
2
UserName
nvarchar
50
否
否
姓名
3
Password
nvarchar
50
否
否
密码
4
Email
nvarchar
50
否
否
邮箱
5
EmailPassword
nvarchar
50
否
否
邮箱密码
6
Authority
nvarchar
50
否
否
权限
7
Sex
nvarchar
50
否
是
性别
8
Unit
nvarchar
50
否
是
单位
9
Tel
nvarchar
50
否
是
电话
10
Address
nvarchar
50
否
是
地址
11
Photo
Image
16
否
是
照片
12
CardCreateDate
Datetime
8
否
是
办卡日期
可以看出,管理员和普通用户的信息是放在同一张表中,因为这样易于管理。
表2书籍信息表Book
序号
列名
数据类型
长度/大小
标识
主键
允许空
说明
1
ID
nvarchar
50
否
是
否
书籍编号
2
ISDN
nvarchar
50
否
是
ISDN
3
BookName
nvarchar
50
否
是
书籍名称
4
Author
nvarchar
50
否
是
作者
5
Translator
nvarchar
50
否
是
译者
6
BookType
nvarchar
50
否
是
书籍类型
7
PressName
nvarchar
50
否
是
出版社名称
8
Pages
int
4
否
是
页数
9
Price
money
8
否
是
定价
10
PubDate
datetime
8
否
是
出版日期
11
CDID
nchar
10
否
是
光盘编号
12
HandbookID
nchar
10
否
是
手册编号
13
BookshelfName
nchar
10
否
是
书架名称
14
TotalNum
int
4
否
是
在库总量
15
StorageDate
datetime
8
否
是
入库时间
表3书籍类型表BookType
序号
列名
数据类型
长度/大小
标识
主键
允许空
说明
1
BookTypeID
Int
4
是
是
否
类型编号
2
BookTypeName
nvarchar
50
否
是
类型名称
表4出版社信息表Press
序号
列名
数据类型
长度/大小
标识
主键
允许空
说明
1
PressID
Int
4
是
是
否
出版社编号
2
PressName
nvarchar
50
否
是
名称
3
PressTel
nvarchar
50
否
是
电话
4
PressAddress
nvarchar
50
否
是
地址
5
PressZipCode
nvarchar
50
否
是
邮政编码
6
PressWebsite
nvarchar
50
否
是
网站
表5光盘信息表CD
序号
列名
数据类型
长度/大小
标识
主键
允许空
说明
1
CDID
nvarchar
50
否
是
否
光盘编号
2
CDName
nvarchar
50
否
是
光盘名称
3
CDType
nchar
10
否
是
光盘类型
4
CDPosition
nchar
10
否
是
光盘位置
表6附赠手册信息表HandBook
序号
列名
数据类型
长度/大小
标识
主键
允许空
说明
1
HandbookID
nvarchar
50
否
是
否
手册编号
2
HandbookName
nvarchar
50
否
是
手册名称
3
HandbookPosition
nchar
10
否
是
手册位置
表7书架信息表Bookshelf
序号
列名
数据类型
长度/大小
标识
主键
允许空
说明
1
BookshelfID
int
4
是
是
否
书架编号
2
BookshelfName
nvarchar
50
否
是
书架名称
3
BookshPosition
nvarchar
50
否
是
书架位置
4
BookshelfNotes
nvarchar
50
否
是
备注
表8书籍借阅信息表BookBorrow
序号
列名
数据类型
长度/大小
标识
主键
允许空
说明
1
BorrowID
int
4
是
是
否
借阅编号
2
BookID
nvarchar
50
否
是
书籍编号
3
UserID
nvarchar
50
否
是
用户编号
4
BorrowDate
Date
8
否
是
借阅日期
5
ReturnDate
Date
8
否
是
应还日期
6
Operator
nvarchar
50
否
是
操作员
7
BookName
nvarchar
50
否
是
书籍名
8
UserName
nvarchar
50
否
是
用户名
9
Status
nchar
10
否
是
是否借出
10
Expired
nchar
10
否
是
是否过期
表9用户冻结信息表UserFreeze
序号
列名
数据类型
长度/大小
标识
主键
允许空
说明
1
ReturnID
int
4
是
是
否
冻结编号
2
UserID
nvarchar
50
否
是
用户名
3
Operator
nvarchar
50
否
是
操作员
4
Freeze
nchar
10
否
是
是否冻结
5
FreezeDate
Datetime
8
否
是
冻结时间
3.1.2数据库关系图
数据库表之间的关联如图2所示。
图2数据库关系图
3.2系统功能模块设计
3.2.1系统功能结构图
本系统包括系统管理、系统管理员、书籍管理员、借阅管理员、普通用户五大模块。
具体细分如下:
(图3系统功能结构图)
3.2.2功能模块设计
系统主要模块设计如下:
(1)用户管理模块:
主要包括对所有用户的增删改查。
(2)书籍管理模块:
主要包括对所有书籍的增删改查。
(3)书籍类型模块:
主要包括对所有书籍类型的增删改查。
(4)出版社管理模块:
主要包括对所有出版社的增删改查。
(5)关盘管理模块:
主要包括对所有书籍附带光盘的增删改查。
(6)手册管理模块:
主要包括对所有书籍附带手册的增删改查。
(7)书架管理模块:
主要包括对所有书籍所在书架的增删改查。
(8)借阅管理员下的书籍查询模块:
主要包括所有借出书籍和过期书籍的查询。
(9)借阅/归还书籍模块:
主要包括对用户借阅的书籍进行借阅,归还和续借的处理。
(10)冻结/解冻用户模块:
主要对过期用户账号进行冻结,解冻过期用户归还书籍的账号。
(11)普通用户下的书籍查询模块:
主要查询书籍的全部信息和该书籍的借阅信息。
(12)查询个人资料模块:
主要查询用户个人的信息和借阅书籍信息。
(13)修改密码模块:
所有用户都可以修改自己的账号密码和电子邮箱密码。
4系统实现
4.1系统开发运行环境
4.1.1开发环境
系统开发平台:
O/S:
MicrosoftWindowsvistaHomeBasicSP2
CPU:
Intel™Core™2DouCPUP8400@2.26GHz
RAM:
2.00GB
ActionType:
32system
显示器分辨率:
1280×80016:
10宽屏
系统开发平台:
MicrosoftVisualStudio2008
系统开发语言:
C#
数据库管理系统软件:
MicrosoftSQLServer2008
图像处理:
AdobePhotoshopCS4、
AdobeFireworksCS4、
不冷杀手图标转换工具
4.1.2运行环境
一般的硬件环境都能安装此系统(非windows操作系统下不能使用),本系统占用计算机系统资源不是很大。
最低OS版本:
MicrosoftWindowsXPSP3及SP3以上
4.2模块界面展示
4.2.1Loading界面
为了增加系统的友好界面,我们增加了加载界面,没有技术上没有新颖之处。
图4为Loading界面。
图4系统Loading界面
4.2.2登陆界面
只要是已注册用户都可以登陆本系统,登陆成功返回登陆用户的权限对话框。
当用户忘记登陆密码是可以通过注册时的电子邮箱及其密码可以找回自己的登陆密码(以弹出对话框的形式)。
当用户认为该计算机操作系统不安全时(盗号木马问题),可以通过软键盘来输入密码(由于技术原因只能输入大写字母和数字),以提高用户账户的安全性。
登陆成功后系统将用户名和权限值传输到主界面,以对应相应的操作。
登陆界面限制了窗体上的关闭按钮,只能通过窗体中的“退出”按钮来退出系统。
图5为登陆界面。
图5系统的登陆界面
4.2.3主界面
主界面提供了许多辅助功能,包括XX搜索框,当前日期,登陆用户信息等等,还为系统增加了系统托盘图标,可以最小化到系统托盘,其余功能都在“系统管理”模块下,功能容易实现,用户上手也很容易,不再赘述。
图6为系统主界面
图6系统主界面
4.2.4用户管理界面
提供处理用户数据的地方,进行数据的增加、修改、删除、查询的模块。
在“局部查看用户信息”选项卡中系统严格控制了系统管理员处理数据时的误操作。
以提高系统的安全性和准确性。
图7为系统用户管理界面。
图7用户管理界面
4.2.5书籍管理界面
提供处理书籍数据的地方,进行数据的增加、修改、删除、查询的模块。
该模块中系统也严格控制了图书管理员处理数据时的误操作。
以提高系统的安全性和准确性。
书籍信息表关联了其他信息表,比如出版社表,书籍类型表,光盘表,手册表和书架表,每个表都进行了严格控制。
书籍属性中可以从这些关联的表中抽取,也可以自己临时写入,但临时写入的属性不会增加到这些关联表中。
图8给出了系统的书籍管理界面
图8书籍管理界面
4.2.6书籍借阅管理界面
提供处理书籍借阅/归还数据的地方,进行数据的增加、修改、删除、查询的模块。
该模块中系统也严格控制了借阅管理员处理数据时的误操作。
以提高系统的安全性和准确性。
当借阅管理员输入用户编号(或书籍编号)时,系统会自动搜索用户姓名(或书籍名称)等相关信息,这样一是提高系统的借阅效率,另一方面是减少管理员的误操作。
该模块有三个选项卡,借阅、归还、续借都提供了可视化界面。
图9为书籍借阅管理界面。
图9书籍借阅管理界面
4.2.7其他管理界面
限于篇幅,其他界面就不在这一一列出了,这些界面风格简单,容易上手,所以本人不在这赘述。
5系统测试
本系统只要求功能的实现和完善,所以采用白盒兼黑盒测试方法的功能测试对系统进行测试。
5.1白盒测试概述
白盒测试也称结构测试或逻辑驱动测试,它是按照程序内部的结构测试程序,通过测试来检测产品内部动作是否按照设计规格说明书的规定正常进行,检验程序中的每条通路是否都能按预定要求正确工作。
这一方法是把测试对象看作一个打开的盒子,测试人员依据程序内部逻辑结构相关信息,设计或选择测试用例,对程序所有逻辑路径进行测试,通过在不同点检查程序的状态,确定实际的状态是否与预期的状态一致。
5.2黑盒测试概述
黑盒测试也称功能测试,它是通过测试来检测每个功能是否都能正常使用。
在测试中,把程序看作一个不能打开的黑盒子,在完全不考虑程序内部结构和内部特性的情况下,在程序接口进行测试,它只检查程序功能是否按照需求规格说明书的规定正常使用,程序是否能适当地接收输入数据而产生正确的输出信息。
黑盒测试着眼于程序外部结构,不考虑内部逻辑结构,主要针对软件界面和软件功能进行测试。
5.3系统测试具体方法
功能测试就是对产品的各功能进行验证,根据功能测试用例,逐项测试,检查产品是否达到用户要求的功能。
本系统采用的测试方法如下:
(1)菜单项检查:
点击每一个菜单按钮是否都有对应页面弹出,并且页面之间切换是否正确。
(2)相关性检查:
删除/增加一项会不会对其他项产生影响,如果产生影响,这些影响是否都正确。
(3)检查按钮的功能是否正确:
如添加、修改、删除等功能是否正确。
(4)字符串长度检查:
输入超出需求所说明字符串长度的内容,看系统是否检查字符串长度,会不会出错。
(5)字符类型检查:
在应该输入指定类型的内容的地方输入其他类型的内容(如在应该输入整型的地方输入其他字符类型),看系统是否检查字符类型,会否报错。
6技术相关性简介
本系统中采用了一些MicrosoftVisualStudio2008的一些新特性,最主要的就是LINQ,它是一种查询语言,对数据全方位是查询。
具体介绍如下。
6.1LINQ简介
LINQ,语言集成查询(LanguageINtegratedQuery)是一组用于c#和VisualBasic语言的扩展。
它允许编写C#或者V