1、山西大学商务学院图书管理系统设计实现07计科B5班图书管理系统系统设计实现报告书基于C#+SQLAbiaocom开发小组2010-06-30图书管理系统 设计实现 报告 山西大学商务学院图书管理系统设计与实现内容提要 本设计主要是针对山西大学商务学院的需求,开发的一个小型的图书管理系统。本系统采用Microsoft SQL Server 2008做后台数据库管理系统,基于微软C#语言在winform平台下开发,具体使用Microsoft Visual Studio 2008进行开发。该系统面向所有类型管理员和在校学生的多种身份的用户, 普通用户可以查询个人信息,查询书籍及借阅个人书籍信息情况;
2、管理员(包括系统管理员,图书管理员,借阅管理员)能增加、删除、修改和查询每一项记录,处理书籍相关信息。本设计开发的系统能实现学校的智能化管理,规范图书馆的管理工作,通过该系统可以实现图书信息的检索、图书借阅管理、用户个人信息的管理等各种功能,实现图书管理的快捷、高效。目录1 引言61.1 设计目的和意义61.2 研究背景72 系统分析72.1 系统可行性分析72.2 系统功能需求分析72.2.1 系统业务流程72.2.2 系统功能分析82.3 概念模型83 系统总体设计93.1 系统数据库设计93.1.1 表结构设计93.1.2 数据库关系图123.2 系统功能模块设计133.2.1 系统功能
3、结构图133.2.2 功能模块设计144 系统实现144.1 系统开发运行环境144.1.1开发环境144.1.2 运行环境154.2 模块界面展示154.2.1 Loading界面154.2.2 登陆界面154.2.3 主界面164.2.4 用户管理界面174.2.5 书籍管理界面174.2.6 书籍借阅管理界面184.2.7 其他管理界面195 系统测试195.1白盒测试概述195.2 黑盒测试概述195.3 系统测试具体方法196 技术相关性简介206.1 LINQ简介206.2 本系统中的LINQ206 结束语21致谢21参考文献211 引言1.1 设计目的和意义论文(设计)的目的:一
4、直以来人们使用传统的人工方式管理图书馆的日常工作,对于图书馆的借书和还书过程,想必大家都已很熟悉。在计算机尚未在图书馆广泛使用之前,借书和还书过程主要依靠手工。一个最典型的手工处理还书过程就是:读者将要借的书和借阅证交给工作人员,工作人员将每本书上附带的描述书的信息的卡片和读者的借阅证放在一个小格栏里,并在借阅证和每本书贴的借阅条上填写借阅信息。这样借书过程就完成了。还书时,读者将要还的书交给工作人员,工作人员根据图书信息找到相应的书卡和借阅证,并填好相应的还书信息,这样还书过程就完成了。以上所描述的手工过程的不足之处显而易见,首先处理借书、还书业务流程的效率很低,其次处理能力比较低,一段时间
5、内,所能服务的读者人数是有限的。利用计算机来处理这些流程无疑会极大程度地提高效率和处理能力。我们将会看到排队等候借书、还书的队伍不再那么长,工作人员出错的概率也小了,读者可以花更多的时间在选择书和看书上。为方便对图书馆书籍、读者资料、借还书等进行高效的管理,特编写该程序以提高图书馆的管理效率。使用该程序之后,工作人员可以查询某位读者、某种图书的借阅情况,还可以对当前图书借阅情况进行一些统计,给出统计表格,以便全面掌握图书的流通情况。设计(论文)的意义:图书馆离不开信息处理,这正是计算机被广泛应用于信息管理系统的环境。计算机的最大好处在于利用它能够进行信息管理。使用计算机进行信息控制,不仅提高了
6、工作效率,而且大大的提高了其安全性。尤其对于复杂的信息管理,计算机能够充分发挥它的优越性。计算机进行信息管理与信息管理系统的开发密切相关,系统的开发是系统管理的前提。本系统就是为了管理好图书馆信息而设计的。图书馆作为一种信息资源的集散地,图书和用户借阅资料繁多,包含很多的信息数据的管理,现今,有很多的图书馆都是初步开始使用,甚至尚未使用计算机进行信息管理。根据调查得知,他们以前对信息管理的主要方式是基于文本、表格等纸介质的手工处理,对于图书借阅情况(如借书天数、超过限定借书时间的天数)的统计和核实等往往采用对借书卡的人工检查进行,对借阅者的借阅权限、以及借阅天数等用人工计算、手抄进行。数据信息
7、处理工作量大,容易出错;由于数据繁多,容易丢失,且不易查找。总的来说,缺乏系统,规范的信息管理手段。尽管有的图书馆有计算机,但是尚未用于信息管理,没有发挥它的效力,资源闲置比较突出,这就是管理信息系统的开发的基本环境。数据处理手工操作,工作量大,出错率高,出错后不易更改。图书馆采取手工方式对图书借阅情况进行人工管理,由于信息比较多,图书借阅信息的管理工作混乱而又复杂;一般借阅情况是记录在借书证上,图书的数目和内容记录在文件中,图书馆的工作人员和管理员也只是当时对它比较清楚,时间一长,如再要进行查询,就得在众多的资料中翻阅、查找了,造成查询费时、费力。如要对很长时间以前的图书进行更改就更加困难了
8、。1.2 研究背景上个世纪90年代初美国科学家首次提出数字图书馆(Digital Library)这一概念以来,全球开展数字图书馆研究与实践已近十几个年头。我国图书情报界、IT业界自1995年左右开始对这一领域跟踪研究,1998年开始全面升温,迄今无论是在对数字图书馆的认识,还是理论研究、关键技术准备方面,都取得了很大的进展。国内数字图书馆的实践活动大致可分为以下三种类型:资源服务型、服务研究型和联合建设型。虽然,从严格意义上讲,资源服务型不能算是数字图书馆,但它的网上信息服务目前已在大多数图书馆开展,是现阶段我国图书情报界提供网上数字服务的主要形式。2 系统分析2.1 系统可行性分析从技术方
9、面看,随着计算机技术的发展,要将对山西大学商务学院从原始的文档管理转化为信息化管理,是有很强的可行性的。本设计要做的只是针对图书馆的真实的图书管理工作来开发出适用的本学院的图书管理系统,图书馆的信息数据(包括用户数据和图书数据)量大并且复杂,从数据库的应用和开发的实效性角度出发,选择Microsoft SQL Server 2008作为后台数据库,它能够处理大量数据,同时保持数据完整性并且容易管理。在开发技术上选WINFORM/ADO.NET,它开发周期短,成本较低,目前该技术也相对成熟,具体使用Microsoft Visual Studio 2008作为开发工具。从经济方面看,传统的人工管理
10、方式,对图书馆管理人员要求数量多,耗资高,错误率高,工作人员流动和对新人的培训经费也是不小的开支。本系统对经济上没有太多的要求,只要具备计算机及相应的运行软件即可开发。项目成功后,数据的处理加快,可以节省人力,节约时间。开发这套系统的经济可行性是很高的。从操作方面看,本系统采用面向对象技术,开发出来的界面友好,几乎人人都可以很简单地按照相关说明进行操作。系统能为图书馆管理者和普通用户提供高效、方便快捷的服务,工作量和出错率远远低于人工管理方式,同时新系统操作简单易上手,特别是与实际流程一致,用户可以很快熟悉和习惯。2.2 系统功能需求分析2.2.1 系统业务流程山西大学图书管理系统的业务流程是
11、,管理员根据图书的信息资料,登录系统处理信息(系统管理员处理用户信息,图书管理员处理书籍信息,节约管理员处理书籍借阅信息),然后普通用户(包括在校生和教师)登陆系统浏览个人信息和书籍信息,每个用户(包括管理员和普通用户)必须登陆后才能查看修改个人信息,查看(修改)图书信息,修改自己的密码等等。系统中有严格的权限控制,非自己分内之职是不能查看浏览的,以提高系统的安全性和可行性。2.2.2 系统功能分析本系统面向学院所以用户(当然该用户必须注册在内),包括系统管理员,图书管理员,书籍管理员,普通用户。(1)根据普通用户需求情况,系统中普通用户的主要功能包括:登陆后浏览图书信息、图书借阅信息等;登录
12、后查看个人基本信息(个人资料和个人借阅信息)及修改登录密码和电子邮箱密码。(2)根据系统管理员需求情况,系统中系统管理员的主要功能包括:登陆后浏览所有用户信息、增删改查所有用户信息;登陆后可以修改个人登录密码和电子邮箱密码。(3)根据图书管理员需求情况,系统中图书管理员的主要功能包括:登陆后处理(增删改查)所有书籍信息、书籍类型信息、出版社信息、光盘信息、附赠手册信息、书架信息;登陆后可以修改个人登录密码和电子邮箱密码。(4)根据借阅管理员需求情况,系统中借阅管理员的主要功能包括:登陆后处理(增删改查)所有书籍借阅信息、借阅/归还书籍信息、冻结用户信息;登陆后可以修改个人登录密码和电子邮箱密码
13、。(5)根据学院的需求情况,所有用户登陆后都可以使用系统中的以下功能:如果使用该系统的计算机能联网,可以发送简短的电子邮件,也可以登陆邮箱主页发送;可以使用该系统附带的网页浏览器;可以使用音频播放器,该版本只能听取本地音频;可以更换系统主界面的背景图片(默认无图片);当用户尚未操作完成但要离开计算机时,可以锁定该计算机;可以将系统最小化到托盘,减少系统资源。2.3 概念模型各实体之间的联系,即E-R图如图1所示。图1 系统数据ER图3 系统总体设计3.1 系统数据库设计3.1.1 表结构设计本系统采用了Microsoft SQL Server 2008数据库系统。数据库名是LibraryAB,
14、共有9张数据表,分别为:用户信息表(UserData),书籍信息表(Book),书籍类型信息表(BookType),出版社信息表(Press),光盘信息表(CD),附赠手册信息表(HandBook),书架信息表(Bookshelf),书籍借阅信息表(BookBorrow),用户冻结信息表(UserFreeze),各表结构如表1表12所示。表1 用户信息表UserData序号列名数据类型长度/大小标识主键允许空说明1UserIDnvarchar50否是否用户编号2UserNamenvarchar50否否姓名3Passwordnvarchar50否否密码4Emailnvarchar50否否邮箱5E
15、mailPasswordnvarchar50否否邮箱密码6Authoritynvarchar50否否权限7Sexnvarchar50否是性别8Unitnvarchar50否是单位9Telnvarchar50否是电话10Addressnvarchar50否是地址11PhotoImage16否是照片12CardCreateDateDatetime8否是办卡日期可以看出,管理员和普通用户的信息是放在同一张表中,因为这样易于管理。表2 书籍信息表 Book序号列名数据类型长度/大小标识主键允许空说明1IDnvarchar50否是否书籍编号2ISDNnvarchar50否是ISDN3BookNamenv
16、archar50否是书籍名称4Authornvarchar50否是作者5Translatornvarchar50否是译者6BookTypenvarchar50否是书籍类型7PressNamenvarchar50否是出版社名称8Pagesint4否是页数9Pricemoney8否是定价10PubDatedatetime8否是出版日期11CDIDnchar10否是光盘编号12HandbookIDnchar10否是手册编号13BookshelfNamenchar10否是书架名称14TotalNumint4否是在库总量15StorageDatedatetime8否是入库时间表3 书籍类型表 BookT
17、ype序号列名数据类型长度/大小标识主键允许空说明1BookTypeIDInt4是是否类型编号2BookTypeNamenvarchar50否是类型名称表4 出版社信息表 Press序号列名数据类型长度/大小标识主键允许空说明1PressIDInt4是是否出版社编号2PressNamenvarchar50否是名称3PressTelnvarchar50否是电话4PressAddressnvarchar50否是地址5PressZipCodenvarchar50否是邮政编码6PressWebsitenvarchar50否是网站表5 光盘信息表 CD序号列名数据类型长度/大小标识主键允许空说明1CDI
18、Dnvarchar50否是否光盘编号2CDNamenvarchar50否是光盘名称3CDTypenchar10否是光盘类型4CDPositionnchar10否是光盘位置表6附赠手册信息表 HandBook序号列名数据类型长度/大小标识主键允许空说明1HandbookIDnvarchar50否是否手册编号2HandbookNamenvarchar50否是手册名称3HandbookPositionnchar10否是手册位置表7 书架信息表 Bookshelf序号列名数据类型长度/大小标识主键允许空说明1BookshelfIDint4是是否书架编号2BookshelfNamenvarchar50否
19、是书架名称3BookshPositionnvarchar50否是书架位置4BookshelfNotesnvarchar50否是备注表8 书籍借阅信息表 BookBorrow序号列名数据类型长度/大小标识主键允许空说明1BorrowIDint4是是否借阅编号2BookIDnvarchar50否是书籍编号3UserIDnvarchar50否是用户编号4BorrowDateDate8否是借阅日期5ReturnDateDate8否是应还日期6Operatornvarchar50否是操作员7BookNamenvarchar50否是书籍名8UserNamenvarchar50否是用户名9Statusnch
20、ar10否是是否借出10Expirednchar10否是是否过期表9 用户冻结信息表 UserFreeze序号列名数据类型长度/大小标识主键允许空说明1ReturnIDint4是是否冻结编号2UserIDnvarchar50否是用户名3Operatornvarchar50否是操作员4Freezenchar10否是是否冻结5FreezeDateDatetime8否是冻结时间3.1.2 数据库关系图数据库表之间的关联如图2所示。图2 数据库关系图3.2 系统功能模块设计3.2.1 系统功能结构图山西大学商务学院图书管理系统系统管理系统管理员书籍管理员借阅管理员切换用户发送电子邮件网页浏览器音频播放
21、器用户管理修改密码锁定计算机书籍书籍类型出版社光盘附赠手册书架/库修改密码查询书籍借阅/归还书籍冻结/解冻用户修改密码普通用户查询书籍修改密码查询个人资料本系统包括系统管理、系统管理员、书籍管理员、借阅管理员、普通用户五大模块。具体细分如下:(图3 系统功能结构图)3.2.2 功能模块设计系统主要模块设计如下:(1)用户管理模块:主要包括对所有用户的增删改查。(2)书籍管理模块:主要包括对所有书籍的增删改查。(3)书籍类型模块:主要包括对所有书籍类型的增删改查。(4)出版社管理模块:主要包括对所有出版社的增删改查。(5)关盘管理模块:主要包括对所有书籍附带光盘的增删改查。(6)手册管理模块:主
22、要包括对所有书籍附带手册的增删改查。(7)书架管理模块:主要包括对所有书籍所在书架的增删改查。(8)借阅管理员下的书籍查询模块:主要包括所有借出书籍和过期书籍的查询。(9)借阅/归还书籍模块:主要包括对用户借阅的书籍进行借阅,归还和续借的处理。(10)冻结/解冻用户模块:主要对过期用户账号进行冻结,解冻过期用户归还书籍的账号。(11)普通用户下的书籍查询模块:主要查询书籍的全部信息和该书籍的借阅信息。(12)查询个人资料模块:主要查询用户个人的信息和借阅书籍信息。(13)修改密码模块:所有用户都可以修改自己的账号密码和电子邮箱密码。4 系统实现4.1 系统开发运行环境4.1.1开发环境系统开发
23、平台:O/S:Microsoft Windows vista Home Basic SP2 CPU:Intel Core2 Dou CPU P8400 2.26GHz RAM: 2.00GBAction Type: 32system显示器分辨率:1280800 16:10宽屏系统开发平台:Microsoft Visual Studio 2008系统开发语言:C#数据库管理系统软件:Microsoft SQL Server 2008图像处理:Adobe Photoshop CS4 、 Adobe Fireworks CS4 、 不冷杀手图标转换工具4.1.2 运行环境一般的硬件环境都能安装此系统
24、(非windows操作系统下不能使用),本系统占用计算机系统资源不是很大。最低OS版本:Microsoft Windows XP SP3及SP3以上4.2 模块界面展示4.2.1 Loading界面为了增加系统的友好界面,我们增加了加载界面,没有技术上没有新颖之处。图4为Loading界面。图4 系统Loading界面4.2.2 登陆界面只要是已注册用户都可以登陆本系统,登陆成功返回登陆用户的权限对话框。当用户忘记登陆密码是可以通过注册时的电子邮箱及其密码可以找回自己的登陆密码(以弹出对话框的形式)。当用户认为该计算机操作系统不安全时(盗号木马问题),可以通过软键盘来输入密码(由于技术原因只能
25、输入大写字母和数字),以提高用户账户的安全性。登陆成功后系统将用户名和权限值传输到主界面,以对应相应的操作。登陆界面限制了窗体上的关闭按钮,只能通过窗体中的“退出”按钮来退出系统。图5为登陆界面。图5 系统的登陆界面4.2.3 主界面主界面提供了许多辅助功能,包括百度搜索框,当前日期,登陆用户信息等等,还为系统增加了系统托盘图标,可以最小化到系统托盘,其余功能都在“系统管理”模块下,功能容易实现,用户上手也很容易,不再赘述。图6为系统主界面图6 系统主界面4.2.4 用户管理界面提供处理用户数据的地方,进行数据的增加、修改、删除、查询的模块。在“局部查看用户信息”选项卡中系统严格控制了系统管理
26、员处理数据时的误操作。以提高系统的安全性和准确性。图7为系统用户管理界面。图7用户管理界面4.2.5 书籍管理界面提供处理书籍数据的地方,进行数据的增加、修改、删除、查询的模块。该模块中系统也严格控制了图书管理员处理数据时的误操作。以提高系统的安全性和准确性。书籍信息表关联了其他信息表,比如出版社表,书籍类型表,光盘表,手册表和书架表,每个表都进行了严格控制。书籍属性中可以从这些关联的表中抽取,也可以自己临时写入,但临时写入的属性不会增加到这些关联表中。图8给出了系统的书籍管理界面图8书籍管理界面4.2.6 书籍借阅管理界面提供处理书籍借阅/归还数据的地方,进行数据的增加、修改、删除、查询的模
27、块。该模块中系统也严格控制了借阅管理员处理数据时的误操作。以提高系统的安全性和准确性。当借阅管理员输入用户编号(或书籍编号)时,系统会自动搜索用户姓名(或书籍名称)等相关信息,这样一是提高系统的借阅效率,另一方面是减少管理员的误操作。该模块有三个选项卡,借阅、归还、续借都提供了可视化界面。图9为书籍借阅管理界面。图9 书籍借阅管理界面4.2.7 其他管理界面限于篇幅,其他界面就不在这一一列出了,这些界面风格简单,容易上手,所以本人不在这赘述。5 系统测试本系统只要求功能的实现和完善,所以采用白盒兼黑盒测试方法的功能测试对系统进行测试。5.1白盒测试概述白盒测试也称结构测试或逻辑驱动测试,它是按
28、照程序内部的结构测试程序,通过测试来检测产品内部动作是否按照设计规格说明书的规定正常进行,检验程序中的每条通路是否都能按预定要求正确工作。 这一方法是把测试对象看作一个打开的盒子,测试人员依据程序内部逻辑结构相关信息,设计或选择测试用例,对程序所有逻辑路径进行测试,通过在不同点检查程序的状态,确定实际的状态是否与预期的状态一致。5.2 黑盒测试概述黑盒测试也称功能测试,它是通过测试来检测每个功能是否都能正常使用。在测试中,把程序看作一个不能打开的黑盒子,在完全不考虑程序内部结构和内部特性的情况下,在程序接口进行测试,它只检查程序功能是否按照需求规格说明书的规定正常使用,程序是否能适当地接收输入
29、数据而产生正确的输出信息。黑盒测试着眼于程序外部结构,不考虑内部逻辑结构,主要针对软件界面和软件功能进行测试。5.3 系统测试具体方法功能测试就是对产品的各功能进行验证,根据功能测试用例,逐项测试,检查产品是否达到用户要求的功能。本系统采用的测试方法如下:(1)菜单项检查:点击每一个菜单按钮是否都有对应页面弹出,并且页面之间切换是否正确。(2)相关性检查:删除/增加一项会不会对其他项产生影响,如果产生影响,这些影响是否都正确。(3)检查按钮的功能是否正确:如添加、修改、删除等功能是否正确。(4)字符串长度检查:输入超出需求所说明字符串长度的内容,看系统是否检查字符串长度,会不会出错。(5)字符
30、类型检查:在应该输入指定类型的内容的地方输入其他类型的内容(如在应该输入整型的地方输入其他字符类型),看系统是否检查字符类型,会否报错。6 技术相关性简介本系统中采用了一些Microsoft Visual Studio 2008 的一些新特性,最主要的就是LINQ,它是一种查询语言,对数据全方位是查询。具体介绍如下。6.1 LINQ简介LINQ,语言集成查询(Language INtegrated Query)是一组用于c#和Visual Basic语言的扩展。它允许编写C#或者Visual Basic代码以查询数据库相同的方式操作内存数据。从技术角度而言,LINQ定义了大约40个查询操作符,
31、如select、from、 in、where以及orderby(C#)中。试用这些操作可以编写查询语句。不过,这些查询还可以基于很多类型的数据,每个数据类型都需要一个单独的LINQ类型。 经过了最近 20 年,面向对象编程技术(object-oriented (OO) programming technologies)在工业领域的应用已经进入了一个稳定的发展阶段。程序员现在都已经认同像 类(classes)、对象(objects)、方法(methods)这样的语言特性。考察现在和下一代的技术,一个新的编程技术的重大挑战开始呈现出来,即面向对象技术诞生以来并没有解决降低访问和整合信息数据(acc
32、essing and integrating information)的复杂度的问题。其中两个最主要访问的数据源与数据库(database )和 XML 相关。LINQ 提供了一条更常规的途径即给 .Net Framework 添加一些可以应用于所有信息源(all sources of information)的具有多种用途(general-purpose)的语法查询特性(query facilities),这是比向开发语言和运行时(runtime)添加一些关系数据(relational)特性或者类似XML特性(XML-specific)更好的方式。这些语法特性就叫做 .NET Languag
33、e Integrated Query (LINQ) 。6.2 本系统中的LINQ本系统中的所有数据查询都是通过LINQ语言查询来获得的。他简单实用,易于操作,完全可以替代先前的ADO.NET API,但ADO.NET仍在LINQ to SQL内部使用。下面贴出本系统中最常见的LINQ查询语句:1. UserDataContext udc = new UserDataContext();2.3. /假如已经创建了LINQ类,现在必须实例化LINQ to SQL中的DataContext类,因为这类4. /控制程序与数据库之间的数据流。实例化后DataContext的属性包括数据库中每个表的5.
34、/属性,这里你可以理解为udc就是绑定的那个数据库。6.7. cDBindingSource.DataSource =8. from cd in udc.CD9. where cd.CDName.Contains(textBox1.Text)10. orderby cd.CDID11. select cd;12.13. /改代码实际上就是对数据的模糊查询。具体情况不多做解释,有意者可以查看相关资14. /料。6 结束语本系统是一个适合小型图书馆这种简单应用的图书馆管理系统,系统所实现的功能是在具体调研中从学院图书馆相关人士中得知的,基本上实现了预想的功能,符合现实的需要,总体来说界面友好、易于
35、操作。通过本次设计,本人进一步明确了开发设计一个管理系统的方法和思路,掌握了使用SQL Server和.NET进行系统设计的基本方法,更好的巩固了书本里的理论知识,同时提高了编程能力。但由于时间及个人能力有限,整个系统的功能显然不够完善,特别是收费模块的功能尤其需要改进。今后加深这方面的学习,争取做出功能更完善、性能更好的系统。致谢在本次设计过程中,杨老师本着认真负责的态度、以严谨求真的的作风来要求我们每个学生,从选题到设计到实现,杨老师给予我了正确的指导和帮助,使我少走了很多弯路,顺利的完成了系统设计。在此我由衷的向我的指导老师、负责人以及实习单位的同事们致以最深切的感谢,他们给我提出了许多
36、宝贵的意见,使我的设计更加完善,更加人性化。参考文献1郭宁,杨一平软件工程实用教程M北京:人民邮电出版社20062张奇数据库应用开发技术丛书Visual C# 2005 数据库项目案例导航清华大学出版社20073 周峰,王征计算机实用技术案例系列Visual C#.NET 2008 程序设计案例集锦中国水利水电出版社20094 邓宇军C#面向对象程序设计人民邮电出版社20095 刘奎,付青,张权程序员书库SQL Server 2008 从入门到精通化学工业出版社20096P.J. Deitel , H.M. Deitel著 刘文红等译Visual C# 2008大学教程(第三版)电子工业出版社20097白盒测试百度百科http:/ 23 / 23