图书管理系统论文

更新时间:2023-03-14 00:52:20 阅读: 评论:0

兔子头饰手工制作图片-抽水马桶如何安装

图书管理系统论文
2023年3月14日发(作者:云吞馅的做法和配料)

摘要

随着各图书馆的图书数量不断增多和图书馆规模的不断扩大,管理这些庞大的体系非

常困难的,因为图书的情况是随时改变的,因此必需对图书进行动态的管理,而这对于一

个管理人员来说是一件比较复杂的事情。

本文介绍了管理信息系统的基本设计方法,详细阐述了整个应用系统的设计思路,并

对各部分设计周期进行了详尽的分析,最终达成了一个完整的设计方案;本文的系统是一

个图书管理系统,包括管理员界面和密码登录界面然后进入主菜单,主菜单包括了图书管

理,读者管理,图书借阅管理等几个大的模块。该系统为单机版,相应的硬件设备也分为

单机型的方案。适用于各个图书管理的信息管理。系统基于好用、易用、美观的原则为用

户定制了一套统一的人机界面。系统各模块按功能主要分为两大类:编辑类完成以编辑为

主的功能,如增加、删除、修改等;浏览类完成以再现为主的功能,如查询、浏览等。

关键词:VisualStudio2005;图书管理系统;数据库

Abstract

Increasunceasinglyalongwithvariouslibraries'books'quantitywiththe

libraryscaleunceasingexpansion,managesthehugesystemstobedifficult,

becauthebookssituationismomentarilychanges,mustthereforetothebookscarry

onthedynamicmanagement,butthisregardinganadministrativepersonnelisaquite

complexmatter.

Thisarticleintroducedmanagementinformationsystem'sbasicdesignmethod,

elaboratedindetailtheentireapplicationsystem'sdesignmentality,andhascarriedon

theexhaustiveanalysistovariouspartofdesigncycle,achievedacompletedesign

proposalfinally;Thisarticlesystemisabooksmanagementsystemmanagement

system,thenenteredthemainmenuincludingthemanagercontactsurfaceandthe

passworddebarkationcontactsurface,themainmenuincludesthebooksmanagement,

thereaderhasmanaged,booksborrowingmanagementandsoonveralbigsubjects.

Thissystemisthesingleplaneversion,thecorrespondinghardwareequipmentalso

dividesintosingleplane'ableineachbooksmanagementinformation

tembadoneasytou,YiYong,theartisticprinciplehashad

variousmodulesmainlydivideintotwobroadheadingsaccordingtothefunction:The

editorclasscompleteditsthefunctionprimarily,likeincreas,thedeletion,the

revisionandsoon;Thebrowsingclasscompletesreappearsthefunctionprimarily,

likeinquiry,browsingandsoon.

Keywords:VisualStudio2005,Booksmanagementsystemmanagementsystem,

databa

目录

摘要..............................................................................................................................1

第1章绪论..........................................................................................................5

1.1毕业设计主要内容、功能及技术指标...........................................................5

1.2目前图书管理系统存在的问题.......................................................................5

1.3课题意义...........................................................................................................6

1.4论文的工作和安排...........................................................................................6

第2章可行性分析....................................................................................................8

2.1问题描述..........................................................................................................8

2.2可行性分析研究...............................................................................................9

2.2.1操作可行性.............................................................................................9

2.2.2技术可行性..........................................................................................10

2.2.3经济可行性..........................................................................................10

2.3结论意见.........................................................................................................10

第3章系统总体设计................................................................................................11

3.1系统设计思想.................................................................................................11

3.2系统功能模块图.............................................................................................12

3.3系统流程图.....................................................................................................13

3.4程序流程图....................................................................................................14

3.5功能模块设计.................................................................................................18

3.6程序接口描述................................................................................................18

3.6.1外部接口..............................................................................................18

3.6.2内部接口..............................................................................................18

3.7数据库的设计................................................................................................18

3.7.1系统设计局部ER模式....................................................................19

3.7.2.系统设计全局ER模式.......................................................................21

3.7.3数据库逻辑设计...................................................................................22

3.8系统主要数据字典.........................................................................................24

第4章程序设计与编码..........................................................................................25

4.1数据库连接.....................................................................................................25

4.2系统管理设计.................................................................................................26

4.3图书管理设计.................................................................................................30

4.4查询管理设计.................................................................................................39

4.5用户管理设计................................................................................................43

4.6读者管理设计................................................................................................46

4.7借还管理设计.................................................................................................54

第5章软件测试........................................................................................................62

5.1软件测试的方法与步骤................................................................................62

5.2测试用例运行过程及测试结果分析............................................................63

5.2.1模块测试...............................................................................................63

5.2.2集成测试...............................................................................................64

5.2.3验收测试..............................................................................................65

第6章总结................................................................................................................66

参考文献......................................................................................................................67

致谢..........................................................................................................................68

第1章绪论

1.1毕业设计主要内容、功能及技术指标

图书馆管理系统的总体目标是:在计算机网络,数据库和先进的开发平台上,

利用现有的软件,配置一定的硬件,分析和设计一个具有开放体系结构的、易扩

充的、易维护的、具有良好人机交互界面的图书馆管理系统,为决策者和管理者

提供充足的信息、快捷的查询和有效的管理方式,减少不必要的损失和浪费,提

高图书馆管理的效率。

1.根据可行性研究的结果和客户的要求,分析现有情况及问题,采用C/S

或B/S结构,将图书馆管理系统划分为:新书订购管理、图书管理、读者管理、

借阅管理、信息查询等;

2.整个系统可以选择采用2层C/S结构或3层B/S结构。数据库系统可采

用Access,SQLServer2005等,前台开发工具可以选用PowerBuilder或Visual

Studio、ASP或JSP等;

3.图书馆管理系统所涉及的信息有图书、读者、借阅、图书管理员等方面,

可通过系统流程图、业务流程图、数据流程图和数据字典对其进行描述,在分析

和设计的基础上,提出系统的总体框架并进行详细设计,为系统实现做准备。

1.2目前图书管理系统存在的问题

1)检索速度慢、效率低

因为图书馆的藏书种类多、数量多,将藏书准确地分门别类,快速检索,手

工进行非常困难往往是终于查到了二伟的信息,馆中没有此书或已被别人借走。

图书馆的规模越大,这个问题越突出。

2)借书、还书工作量大

借书、还书频率越大,说明图书馆的作用越大,然而随之而来的大量的借书、

还书登记、实存图书的更新以及借出图书超期、遗失等的处理,其工作量之大,

往往是人工操作所难以胜任的。而且经常会出现这样那样的差错。

3)图书统计工作难、藏书更新不能及时完成。

图书馆的图书应根据科学技术的发展和教学工作的需要及时添加和更新,然

而由于藏书数量及图书种类越来越多,加上自然损耗,人为破坏,使图书的统计

工作难以及时完成,藏书的更新也就很难有针对性地进行,藏书的知识结构得不

到良好地控制。

我校也是一所发展中的高校,近儿年的发展速度很快,图书馆的规模和藏书

数量也不断的扩大,为了解决海量图书的管理问题,改变传统的管理方式也是迫

在眉睫了。

1.3课题意义

随着计算机的广泛应用,其逐步成为现代化的标志。图书馆或者一些企业内

部,甚至是书店,在正常运行过程中总是面对大量的读者信息,书籍信息以及两

者相互作用产生的借书信息、还书信息。因此需要对读者资源、书籍资源、借书

信息、还书信息进行管理,及时了解各个环节中信息的变更,要对因此而产生的

单据进行及时的处理,为了提高图书馆或者企业内部对图书存销的自动化的管

理,能够更快速的满足读者的要求,提高各种工作的效率,现对其设计相应的系

统,以达到上述的目的。

图书管理系统的主要功能是实现图书馆图书借阅和归还的管理的自动化。围

绕这一主要功能,本系统涉及到以下核心功能:借阅管理,归还管理。除了这些

核心功能外,还包括一些基本和辅助功能,它们是:用户管理、图书管理、统计

查询。

1.4论文的工作和安排

本次设计的目标是,开发一个图书馆借阅管理系统。借助该系统,管理员通

过快捷可靠的数据库管理,方便的管理图书馆的信息资料,规范化的管理读者用

户,设定不同用户权限,方便读者的使用,最终达到提高图书馆资源利用效率的

目的。

论文设计和实现了图书借阅管理系统系统,可以根据用户的不同权限,对图

书馆的的各种信息进行添加、删除、修改或查询操作。论文分为六个部分:

第一章即本章绪论,简述图书馆借阅管理系统这个课题的背景情况以及开发

本系统的意义。

第二章为可行性分析,本章中明确了系统需要实现的功能,分析了系统的可

行性,并介绍根据系统的需求选择的开发工具和技术的概况。

第三章是总体设计,详细描述了本系统中数据库的设计情况,并给出了系统

总体界面的设计方案。

第四章为程序设计与编码各主要功能模块的实现方法和部分关键代码,同时

提供了个主要界面运行的参考图片,以更直观了解系统的实现情况。

第五章是软件测试,测试系统功能实现并对测试结果进行记录分析

第六章为总结,为此次毕业设计做一个总结,总结所获得的经验和体会。

第2章可行性分析

2.1问题描述

图书管理系统是典型的信息管理系统(MIS),其开发主要包括后台数据库

的建立和维护以及前台应用程序的开发两个方面,一方面要求建立起数据一致性

和完整性强、数据安全性好的数据库;另一方面则要求应用程序具有功能完备,

已使用等特点。

原来的图书管理处理中心进行信息管理主要是基于手工处理,信息处理工作

量大,容易出错,缺乏系统、规范的信息管理手段。现在准备建立的图书管理系

统,要对图书馆的图书管理、读者管理、图书借阅管理等日常管理工作实行计算

机统一管理,以提高工作效率和管理水平。

图书馆作为提供学习的场所,不仅要求便于管理,而且要求给读者和借阅者

提供方便快速的查找、借阅和登记手续。

图书馆需要统一图书管理,对各类书籍的借阅情况和图书馆现有藏书的数

量、种类要及时掌握,这就要求它具有很强的时效性。既要减少旧书和大量内容

重复的图书占用有限空间而又要尽量做到图书种类的齐全,作为图书馆的管理人

员需要及时地对图书进行上架和注销处理。

图书管理涉及图书信息、系统用户信息、读者信息、图书借阅者信息等多种

数据管理。从管理的角度可将数据管理分为3类:图书信息管理、系统用户管理、

图书管理系统是典型的信息管理系统(MIS),其开发主要包括后台数据库的建

立和维护以及前台应用程序的开发两个方面,一方面要求建立起数据一致性和完

整性强、数据安全性好的数据库;另一方面则要求应用程序具有功能完备,已使

用等特点。

原来的图书管理处理中心进行信息管理主要是基于手工处理,信息处理工作

量大,容易出错,缺乏系统、规范的信息管理手段。现在准备建立的图书管理系

统,要对图书馆的图书管理、读者管理、图书借阅管理等日常管理工作实行计算

机统一管理,以提高工作效率和管理水平。

图书馆作为提供学习的场所,不仅要求便于管理,而且要求给读者和借阅者

提供方便快速的查找、借阅和登记手续。

图书馆需要统一图书管理,对各类书籍的借阅情况和图书馆现有藏书的数

量、种类要及时掌握,这就要求它具有很强的时效性。既要减少旧书和大量内容

重复的图书占用有限空间而又要尽量做到图书种类的齐全,作为图书馆的管理人

员需要及时地对图书进行上架和注销处理。

图书管理涉及图书信息、系统用户信息、读者信息、图书借阅者信息等多种

数据管理。从管理的角度可将数据管理分为3类:图书信息管理、系统用户管理、

读者数据管理。图书信息管理包括图书征订、借还、查询等操作,系统用户管理

包括用户类别和用户数量管理,读者数据管理包括读者类别管理和个人数据的录

入、修改和删除。

读者数据管理。图书信息管理包括图书征订、借还、查询等操作,系统用户

管理包括用户类别和用户数量管理,读者数据管理包括读者类别管理和个人数据

的录入、修改和删除。

2.2可行性分析研究

当接受一个软件开发任务,就进入软件生命的第一个阶段,即进行可行性的

研究。并不是所有问题具有简单的解决办法,许多问题不能在预定的规模之内解

决。因此通过可行性的研究分析可以知道问题。

有无可行性的解决方法,进而避免人力、物力和才力的浪费。在现行系统初

步调查的基础上就可以提出新系统目标,即新系统建立后所要求达到的运行指

标,这是系统开发和评价的依据。系统目标应充分体现,直接为小商品销售管理

系统服务,并且,程序可以分期分批实现。但是,需要指出的是,系统目标是不

可能在总体规划阶段就提得非常具体,它还将在开发过程中逐步明确和定量化。

以达到更加出色的程序系统。可是,目标的提法不尽相同,例如:

1.提高图书管理效率,减轻劳动强度;

2.提高信息处理速度和准确性;

3.为管理者提供更方便、科学的服务项目。

2.2.1操作可行性

本系统是基于B/S模式的管理系统,操作过程很简单,是完全可以实现的。

对操作系统的要求是WindowXP7系统,还要有MicrosoftVisualStudio2005和

Access2003,在这之前还需要安装meworkSDKv2.0,这些软

件都可以从网上或其他途径达到要求。

2.2.2技术可行性

在MicrosoftVisualStudio2005中使用的是C#语言,控件的代码可以直接拖

动自动生成,在此基础之上对其进行属性设置。对数据库的操作是使用SQL语

句进行更改,为了使界面更加美观,需用PS对图片进行处理,虽然存在困难,

但经过不断的学习可以实现。所以不存在技术上无法解决的问题。

2.2.3经济可行性

该系统适用于技术工程学院,整体数据容量不大,管理的用户根据该学校的

学生人数而决定,而且对数据的存储量不大,对以往的借书、还书记录没有备份

的功能,更节省了开销,没有经济方面需要多加关注的问题。

2.3结论意见

经过认真地可行性研究,系统基本上做到了在技术、经济、运行、法律上的

可行。因此,相信在按照计划上实施的前提下,全系统的设计将会按时、高质量

完成。所以,系统研制和开发是可以马上进行的。

第3章系统总体设计

3.1系统设计思想

图书馆管理系统主要应具有以下功能:图书借阅者的需求是查询图书馆所存

的图书、个人借阅情况及个人信息;图书馆工作人员对图书借阅者的借阅及还书

要求进行操作,同时形成借书和还书报表给借阅者查看和确认;图书馆管理人员

的功能最为复杂,包括对工作人员、图书借阅者、图书进行管理和维护,以及对

系统状态的查看、维护等。

图书借阅者可以直接查看图书管的图书情况,如果图书借阅者根据本人借书

证号和密码登陆系统,还可以进行本人借书情况的查询和部分个人信息的维护。

一般情况下,图书借阅者只可以查询和维护本人的借书情况和个人信息,若要查

询和维护其他借阅者的结束情况和个人信息,就要知道其他图书借阅者的借书证

号和密码。这些是很难得到的,特别是密码,所以不但满足了图书借阅者的要求,

还保护了图书借阅者的个人隐私。

图书馆工作人员有修改图书借阅者借书和还书记录的权限,所以需要对图书

馆工作人员登录本模块进行更多的考虑。在此模块中,图书馆工作人员可以为图

书借阅者添加借书记录或者还书记录,并打印生成相应的报表给用户查看和确

认。

图书馆管理人员的信息量很大,数据安全性和保密性要求高。本功能实现对

图书信息、借阅信息、总体借阅信息的管理和统计、对工作人员信息和管理人员

信息的查看和维护。图书馆管理人员可以浏览、查询、添加、删除、修改、统计

图书的基本信息;浏览、查询、添加、删除、修改、统计图书借阅者的基本信息;

浏览、查询、统计图书馆的借阅信息,但不能添加、删除和修改借阅信息。这部

分功能应该由图书馆工作人员执行。

具体功能如下

设计不同用户的操作权限和登陆方式;

对所有用户开放的图书查询;

借阅者维护部分个人信息;

借阅者查看个人借阅信息;

维护借阅者个人密码;

根据借阅情况对数据库进行操作并生成报表;

根据还书情况对数据库进行操作并生成报表;

查询及统计各种信息;

维护图书信息;

维护工作人员和管理人员信息;

维护借阅者信息。

3.2系统功能模块图

图3.1系统功能模块图

图书馆管理人员

系统管理

图书管理

读者管理

添加用户

图书分类

图书添加

借阅者分类

借阅者添加

修改权限

借书

还书

图书查询

借阅查询

图书馆工作人员

借阅者查询模

用户管理

修改密码

删除用户

3.3系统流程图

图3.2系统数据流图

成功

图书证号

或书名

或作者

用户登录

3.4程序流程图

依据软件工程的基本原理,详细设计阶段的根本任务是确定应该怎样具体实

现所要求的系统,也就是说,经过这个阶段的设计工作,应该得出对目标系统的

精确描述,从而在系统实现阶段可以把这个描述直接翻译成用某种程序设计语言

书写的程序。具体来说就是把经过总体设计得到的各个模块详细的加以描述。

下面给出软件系统的程序流程图。如图3.3、3.4、3.5所示。

图3.3管理员登录程序流程图

开始

管理员登录

是否合法

选择

系统管理图书管理读者管理借还管理查询操作用户登录

管理员注销

结束

退

图3.4读者登录程序流程图

选择

开始

读者登陆

是否合法

退

确定

用户登录

结束

重新登录

修改密码

输入信息

修改成功

图书查询

查询记录

图书查询

退

继续

显示记录

查询操作

显示个

人信息

和借阅

借阅查询

读者注销

图3.5工作人员登陆程序流程图

退

结束

工作人员注销

是否合法

工作人员登陆

选择

开始

输入还书信息

输入借书信息

还书

借还管理

借书

借出图书

成功还书

重新登录

确定

修改成功

输入信息

修改密码

用户登录

3.5功能模块设计

通过对用户需求和系统设计思想的分析,可以得出该图书馆管理信息系统大

致可以分为几个大模块:图书管理人员维护管理模块、图书馆工作人员借还管理

模块、借阅者查询模块。

1图书管理人员维护管理模块

系统管理模块:系统用户身份的分类、录入、修改和删除;

图书管理模块:图书数据的录入、修改、删除和校审等。

读者管理模块:借阅者个人数据的录入。修改和删除等。

2图书馆工作人员借还管理模块

包括图书的借阅、续借、返还;图书借阅数据的修改和删除;图书书目查询

等。

3借阅者查询模块

图书书目查询;借阅情况查询。

3.6程序接口描述

3.6.1外部接口

按Windows应用软件用户界面的规范来设计,使用以对话框为主的用户界

面,便于用户使用。

3.6.2内部接口

模块间接口采用数据耦合方式,通过参数表传送数据,交换信息。

3.7数据库的设计

在数据库设计阶段,设计人员从用户的角度看待数据及处理要求和约束,产

生一个反映用户观点的概念模式。然后把概念模式转换成逻辑模式。利用ER方

法进行数据库的概念设计,可以分成3步进行:首先设计局部ER模式,然后把

各局部ER模式综合成一个全局模式,最后对全局ER模式进行优化,得到最终

的模式,即概念模式。

3.7.1系统设计局部ER模式

实体和属性的定义:

图书(编号,名称,作者,出版社,出版日期,备注,价格,数量,类别)

图3.6图书的ER图

借出图书(借书证号,图书编号,借出时间)

图3.7借出图书的ER图

借阅者(借书证号,姓名,性别,身份证,电话,密码,罚款,身份编号)

图3.8借阅者的ER图

出版

日期

编号

出版社

名称

作者

价格

数量

类别

备注

图书

借出图书

借书证号

图书编号

借出时间

电话

身份证

借书

证号

身份

证号

性别

姓名

密码

罚款

借阅者

身份(身份编号,身份描述,最大借阅数,最长借阅时间)

图3.9登陆人员身份的ER图

图书类别(图书类别编号,类别描述)

图3.10图书类别的ER图

ER模式的“联系”用于刻画实体之间的关联。一种完整的方式是对局部结构

中任意两个实体类型,依据需求分析的结果,考察局部结构中任意两个实体类型

之间是否存在联系。若有联系,则进一步确定是1:N,M:N,还是1:1。还要考

虑一个实体类型内部是否存在联系,两个实体类型之间是否存在联系,多个实体

类型之间是否存在联系等。可以总结出如下规律:

一个借阅者(用户)只能具有一种身份,而一个身份可以被多个借阅者所具

有;

一本图书只能属于一种图书类型(类别),而一种图书类型可以包含多本图

书;

一个用户可以节约多本不同的图书,而一本图书也可以被多个不同的用户所

借阅。

身份

身份编号

身份描述

最大借阅

最长借阅

时间

图书类别

类别描述

图书类别编号

3.7.2.系统设计全局ER模式

所有局部ER模式都涉及好了以后,接下来就是把他们综合成单一的全局概

念结构。全局概念结构不仅要直接所有局部ER模式,而且必须合理地表示一个

完整,一致的数据库概念结构。为了提高数据库系统的效率,还应该进一步依据

处理要求外,还应满足一下条件:

实体类型的个数要尽可能的少;

实体类型所含属性个数尽可能的少;

实体类型之间联系无冗余。

“图书借阅管理系统”的全局ER模式如下图4.7所示。

出版

日期

编号

出版社

名称

作者

价格

数量

类别

备注

图书

借阅者

工作人员

管理人员

维护

借还

操作

电话

身份证

借书

证号

身份

证号

性别

姓名

密码

罚款

图3.11全局ER图

3.7.3数据库逻辑设计

根据数据库的概念设计,得出数据库的逻辑设计。系统数据库名称为

libraryMIS,数据库中包括:①图书信息表(book);②借出图书信息表(bookOut);

③借阅者信息表(person):④身份信息表(identity);⑤图书类别信息表(type);

⑥管理员信息表(manager)。下面列出各个表的数据结构:

表3.1图书信息表(book)的数据结构

表3.2借出图书信息表(bookOut)的数据结构

表3.3身份信息表(identity)的数据结构

字段名类型描述

BID文本图书编号(主键)

BName文本图书名

BWriter文本作者

BPublish文本出版社

BDate日期/时间出版日期

BPrice文本价格

BNum数字数量

type文本类型

BRemark文本备注

字段名类型描述

OID自动编号借出图书ID(主键)

BID文本图书编号

PID文本借书证编号

ODate日期/时间借出日期

字段名类型描述

identity文本身份(主键)

longTime数字最长借阅时间

bigNum数字最大借阅数量

表3.4借阅者信息表(person)的数据结构

表3.5图书类别信息表(type)的数据结构

表4.6管理员信息表(manager)的数据结构

字段名类型描述

PID文本借书证编号(主键)

PName文本姓名

PSex文本性别

PPhone文本电话

PN文本身份证

PCode文本密码

PMoney数字罚款

identity文本身份

PRemark文本备注

sys是/否权限

字段名类型描述

TID自动编号类别ID

Type文本类别(主键)

tRemark文本类别描述

字段名类型描述

MName文本名称(主键)

MCode文本密码

manage是/否管理人员

work是/否工作人员

query是/否查询

3.8系统主要数据字典

图书:图书表结构

别名:

描述:记录所有图书的基本情况

定义:图书信息表=图书编号+图书名

+作者+出版社+出版日期+价格+数

量+类型+备注

位置:数据库

身份信息:身份信息表结构

别名:

描述:图书借阅者的身份类型

定义:身份信息=身份类型+最长借阅

时间+最大借阅数量

位置:数据库

读者:借阅者信息表结构

别名:

描述:记录所有读者信息

定义:读者=借书证编号+姓名+性别+

电话+身份证+密码+罚款+身份+备

注+权限

位置:数据库

借书:借出图书结构

别名:图书借阅

描述:学生借阅信息

定义:借出图书=借出图书ID+图书

编号+借书证编号+借出日期

位置:数据库

管理员:管理员信息表结构

别名:

描述:管理图书管的工作人员

定义:管理员信息表=名称+密码+管

理人员+工作人员+查询

位置:数据库

图书类别:图书类别信息表结构

别名:

描述:图书管图书类型

定义:图书类别表=类别ID+类别+类

别描述

位置:数据库

第4章程序设计与编码

4.1数据库连接

本系统采用Access文件数据库,降低了程序对硬件操作系统版本的要求。

并且Access数据库操作方便,配置简单,只需把数据库文件放置到合适的目录

下即可。

数据库连接代码

Usingsystem

{

///

///dbConnection的摘要说明

PublicclassdbConnection

{

PublicdbConnection()

{

}

Publicstaticstringconnection

{

Get

{return”DataSource=;JetOLEDB:EngineType=5;

Provider=.4.0;”}

}

}

}

数据库调用代码

PrivateOleDbConnectionoleConnection1=new

OleDbConnection(tion);

4.2系统管理设计

在主界面中选择【系统管理】|【添加用户】命令菜单或单击工具栏上的“系

统”按钮,即可进入添加用户界面,如下图4.1所示。在该界面可以建立新的用

户,并为用户选择角色,赋予权限。单击【确定】按钮,如果用户信息输入完整

并且用户名称不重复则显示添加成功,否则添加失败。

图4.1添加用户界面

在该窗体中设计了3个TextBox控件、2个Button控件和2个RadioButton

控件。各个控件的名称、作用如表4.1所示

表4.1添加用户界面控件设计

控件类型控件名称作用

TextBox

TextName输入用户名

TextPassWord输入密码

TextPWDNew重复输入密码

ButtonBtAdd添加

BtClo退出

RadioButtonRadioWord工作员角色

RadioManager管理员角色

代码实现如下:

privatevoidbtAdd_Click(objectnder,rg)

{

if

(()==""||()==""||()

==""||d==fal&&d==fal)

{

("请输入完整信息!","警告");

}

el

{

if(()!=())

{

("两次密码输入不一致!","警告");

}

el

{

();

OleDbCommandcmd=new

OleDbCommand("",oleConnection1);

stringsql="lect*frommanagerwhereMName=

'"+()+"'";

dText=sql;

if(null==eScalar())

{

if(d==true)

sql="inrtintomanager"+

"values

('"+()+"','"+()+"',true,fal,fal)";

el

sql="inrtintomanager"+

"values

('"+()+"','"+()+"',fal,true,fal)";

dText=sql;

eNonQuery();

("添加用户成功!","提示");

();

}

el

{

("用户名"+()+"已经存在!","提示");

="";

="";

}

();

}

}

}

privatevoidbtClo_Click(objectnder,rg)

{

();

}

}

}

在主界面中选择【系统管理】|【浏览用户】命令菜单,即可进入浏览用户

界面,如图4.2所示。在该界面可以显示图书馆所有工作人员的信息,并可以删

除用户。该界面中有一个DataGrid控件,控件名称是DataGrid1,用来显示用户

信息。

图4.2浏览用户界面

在该窗体中设计了3个Button控件和1个DataGrid控件。各个控件的名称、

作用如表4.2所示

表4.2添加用户界面控件设计

控件类型控件名称作用

ButtonBtModify修改

BtDel删除

BtClo退出

DataGridDataGrid1显示用户信息

代码实现如下:

privatevoidUr_Load(objectnder,rg)

{

();

stringsql="lectMNameas用户名,MCodeas密码,manageas权

限,workas权限,queryas权限frommanager";

OleDbDataAdapteradp=newOleDbDataAdapter(sql,oleConnection1);

ds=newDataSet();

();

(ds,"ur");

urce=["ur"].DefaultView;

nText="共有"+["ur"].+"条记

录";

();

}

ModifyUrmodifyUr;

privatevoidbtModify_Click(objectnder,rg)

{

if

(tRowIndex>=0&&urce!=null&&dataGrid1[data

tCell]!=null)

{

modifyUr=newModifyUr();

=

[0].Rows[ber][0].ToString().Trim();

alog();

}

}

privatevoidbtDel_Click(objectnder,rg)

{

if

(tRowIndex>=0&&urce!=null&&dataGrid1[data

tCell]!=null)

{

();

stringsql="delete*frommanagerwhereMName=

'"+["ur"].Rows[ber][0].ToString().Trim()

+"'";

OleDbCommandcmd=newOleDbCommand(sql,oleConnection1);

eNonQuery();

("删除用户

'"+[0].Rows[ber][0].ToString().Trim()+"'成

功","提示");

();

}

el

return;

}

privatevoidbtClo_Click(objectnder,rg)

{

();

}

}

}

4.3图书管理设计

在主界面中选择【图书管理】|【图书分类】命令菜单,即可进入浏览图书

分类界面,如图4.3所示。

图4.3浏览图书分类界面

该界面中共有1个DataGrid控件和4个Button控件,分别是:【添加】

(BtAdd)、【修改】(BtModify)、【删除】(BtDel)和【退出】(BtClo)。

代码实现如下:

privatevoidType_Load(objectnder,rg)

{();

stringsql="lecttypeas类型,tRemarkas类型描述,TIDas类型编号fromtype";

OleDbDataAdapteradp=newOleDbDataAdapter(sql,oleConnection1);

ds=newDataSet();

();

(ds,"type");

urce=["type"].DefaultView;

nText="共有"+["type"].+"条记录";

();

}

AddTypeaddType;

privatevoidbtAdd_Click(objectnder,rg)

{addType=newAddType();

alog();

}

ModifyTypemodifyType;

privatevoidbtModify_Click(objectnder,rg)

{if(urce!=null||dataGrid1[tCell]!=

null)

{modifyType=newModifyType();

=["type"].Rows[

Number][0].ToString().Trim();

=["type"].Rows[

wNumber][1].ToString().Trim();

=["type"].Rows[ber][2]

.ToString().Trim();

();

}

el

("没有指定类型信息!","提示");

}

privatevoidbtDel_Click(objectnder,rg)

{if

(tRowIndex>=0&&urce!=null&&dataGrid1[data

tCell]!=null)

{();

stringsql="lect*frombookwhere

type='"+["type"].Rows[ber][0].ToString().T

rim()+"'";

OleDbCommandcmd=newOleDbCommand(sql,oleConnection1);

OleDbDataReaderdr;

dr=eReader();

if(())

{

("删除类型

'"+["type"].Rows[ber][0].ToString().Trim()

+"'失败,请先删掉该类型图书!","提示");

();

}

el

{

();

sql="delete*fromtypewheretypenotin(lectdistincttype

frombook)andTID"+

"=

"+["type"].Rows[ber][2].ToString().Trim()+

"";

dText=sql;

eNonQuery();

("删除类型

'"+[0].Rows[ber][0].ToString().Trim()+"'成

功","提示");

}

();

}

el

return;

}

privatevoidbtClo_Click(objectnder,rg)

{

();

}

}

}

单击【添加】按钮进入添加图书类型界面,如图4.4所示。

图4.4添加图书类型界面

用户可以在这个窗体中设置图书类型信息。单击【确定】按钮,如果图书类

型信息输入完整并且图书类型不重复则显示添加成功,否则添加失败。该窗体中

设计了2个TextBox控件和2个Button控件。各个控件的名称、作用如表4.3所

示。

表4.3新建角色界面控制设计

控件类型控件名称作用

TextBoxTextName输入图书类型

TextRemark输入类型描述

ButtonBtAdd添加

BtClo退出

代码实现如下:

privatevoidbtAdd_Click(objectnder,rg)

{

if(()==""||()=="")

("请填写完整信息","提示");

el

{

();

stringsql="lect*fromtypewhere

type='"+()+"'";

OleDbCommandcmd=newOleDbCommand(sql,oleConnection1);

if(null!=eScalar())

("类型重复,请重新输入!","提示");

el

{

sql="inrtintotype(type,tRemark)values

('"+()+"','"+()+"')";

dText=sql;

eNonQuery();

("类型添加成功!","提示");

();

();

}

();

}

}

privatevoidbtClo_Click(objectnder,rg)

{

();

}

}

}

在主界面中选择【图书管理】|【浏览】命令菜单,即可进入浏览图书界面,

如图4.5所示。

图4.5浏览图书界面

该界面中共有1个DataGrid控件和4个Button控件,分别是:【添加】

(BtAdd)、【修改】(BtModify)、【删除】(BtDel)和【退出】(BtClo)。

代码实现如下:

privatevoidBook_Load(objectnder,rg)

{

();

stringsql="lectBIDas图书编号,BNameas图书名,BWriteras作

者,BPublishas出版社,BDateas出版日期,BPriceas价格,"+

"BNumas数量,typeas类型,BRemarkas备注frombook";

OleDbDataAdapteradp=newOleDbDataAdapter(sql,oleConnection1);

ds=newDataSet();

();

(ds,"book");

urce=["book"].DefaultView;

nText="共有"+["book"].+"条记

录";

();

}

AddBookaddBook;

privatevoidbtAdd_Click(objectnder,rg)

{

addBook=newAddBook();

alog();

}

ModifyBookmodifyBook;

privatevoidbtModify_Click(objectnder,rg)

{

if(urce!=null||dataGrid1[tCell]!=null)

{

modifyBook=newModifyBook();

=

["book"].Rows[ber][0].ToString().Trim();

=

["book"].Rows[ber][1].ToString().Trim();

=

["book"].Rows[ber][2].ToString().Trim();

=

["book"].Rows[ber][3].ToString().Trim();

=

["book"].Rows[ber][4].ToString().Trim();

=

["book"].Rows[ber][5].ToString().Trim();

=

["book"].Rows[ber][6].ToString().Trim();

=

["book"].Rows[ber][7].ToString().Trim();

=

["book"].Rows[ber][8].ToString().Trim();

();

}

el

("没有指定图书信息!","提示");

}

privatevoidbtDel_Click(objectnder,rg)

{

if

(tRowIndex>=0&&urce!=null&&dataGrid1[data

tCell]!=null)

{

();

stringsql="lect*frombookOutwhere

BID='"+["book"].Rows[ber][0].ToString().

Trim()+"'";

OleDbCommandcmd=newOleDbCommand(sql,oleConnection1);

OleDbDataReaderdr;

dr=eReader();

if(())

{

("删除图书

'"+["book"].Rows[ber][1].ToString().Trim()

+"'失败,该图书正在流通中!","提示");

();

}

el

{

();

sql="delete*frombookwhereBIDnotin(lectdistinctBID

frombookOut)andBID"+

"=

'"+["book"].Rows[ber][0].ToString().Trim()

+"'";

dText=sql;

eNonQuery();

("删除图书

'"+[0].Rows[ber][1].ToString().Trim()+"'成

功","提示");

}

();

}

el

return;

}

privatevoidbtClo_Click(objectnder,rg)

{

();

}

}

}

进入浏览图书界面后单击【添加】按钮,进入添加图书界面。用户可以在这

个窗体中设置图书信息。单击【确定】按钮,如果图书信息输入完整并且图书编

号不重复则显示添加成功,否则添加失败。界面设计如图4.6所示。

图4.6添加图书界面

该窗体中设计了7个TextBox控件、1个DataTimePicker控件、1个ComboBox

控件和2个Button控件。各个控件的名称、作用如表4.4所示。

表4.4添加图书界面控件设计

控件类型控件名称作用

TextBoxTextID图书编号

TextName图书名

TextWriter作者

TextPublish出版社

TextNum数量

TextPrice价格

TextRemark备注

DataTimePickerDatel出版日期

ComboBoxComboType图书类型

ButtonBtAdd添加

BtClo退出

代码实现如下:

privatevoidAddBook_Load(objectnder,rg)

{

try

{

();

stringsql="lectTID,typefromtype";

OleDbDataAdapteradp=new

OleDbDataAdapter(sql,oleConnection1);

DataSetds=newDataSet();

(ds,"type");

urce=["type"].DefaultView;

yMember="type";

ember="TID";

();

}

catch(Exceptionee)

{

ine(e);

}

}

privatevoidbtAdd_Click(objectnder,rg)

{

if

(()==""||()==""||()==""||textW

()=="")

("请填写完整信息","提示");

el

{

();

stringsql="lect*frombookwhere

BID='"+()+"'";

OleDbCommandcmd=newOleDbCommand(sql,oleConnection1);

if(null!=eScalar())

("图书编号重复","提示");

el

{

sql="inrtintobookvalues

('"+()+"','"+()+"','"+()+"',"+

"'"+()+"','"+()+"','"+()+"'

,'"+()+"',"+

"'"+()+"','"+()+"')";

dText=sql;

eNonQuery();

("添加成功","提示");

clear();

}

();

}

}

privatevoidclear()

{

="";

="";

="";

="";

="";

="";

="";

="";

}

privatevoidbtClo_Click(objectnder,rg)

{

();

}

}

}

4.4查询管理设计

在主界面中选择【查询管理】|【图书查询】命令或者单击工具栏上“查

询”按钮,即可进入查询图书界面,如图4.7所示。

图4.7查询图书界面

该界面上共有3个查询条件:图书编号、图书名和作者。单击【查询】按钮,

根据查询条件得出的图书信息将显示在DataGrid控件中,并且计算出该图书目

前在库中的数量。

该窗口中设计了3个TextBox控件,2个Button控件和1个DataGrid控件。

各个控件的名称。作用如表4.5所示。

表4.5图书查询界面控件设计

控件类型控件名称作用

TexrBox

TextID图书编号

TextName图书名

TextWriter作者

Button

BtQuery查询

BtClear清空

BtClo退出

DataGridDataGrid显示查询图书信息

代码实现如下:

privatevoidbtQuery_Click(objectnder,rg)

{

stringsql1="(BNum-(lectcount(*)frombookOutwhere";

stringsql="lectBIDas图书编号,BNameas图书名,BWriteras作

者,BPublishas出版社,BDateas出版日期,BPriceas价格,"+

"BNumas数量,typeas类型,BRemarkas备注,";

if(()!="")

{

sql1=sql1+"BID="+"'"+()+"'))as库存数量";

sql=sql+sql1+"frombookwhereBID=

"+"'"+()+"'";

}

elif(()!="")

{

sql1=sql1+"BID=(lectBIDfrombookwhere

BName='"++"')))as库存数量";

sql=sql+sql1+"frombookwhereBName=

"+"'"++"'";

}

elif(()!="")

{

sql1=sql1+"BID=(lectBIDfrombookwhere

BWriter='"++"')))as库存数量";

sql=sql+sql1+"frombookwhereBWriter=

"+"'"++"'";

}

el

{

("请输入查询条件","提示");

return;

}

();

OleDbDataAdapteradp=newOleDbDataAdapter(sql,oleConnection1);

DataSetds=newDataSet();

();

(ds,"book");

urce=[0].DefaultView;

nText="共有"+[0].+"条查询记录

";

();

}

privatevoidbtClear_Click(objectnder,rg)

{

="";

="";

="";

}

privatevoidbtClo_Click(objectnder,rg)

{

();

}

}

}

选择【查询管理】|【借阅查询】命令菜单,即可进入查询借阅界面,显示

当前登录用户的个人信息和已借图书信息,如图4.8所示。

图4.8查询借阅者界面

该窗体重设计了3个DataGrid控件,其中一个控件用来传递数据,不显示。

各个控件的名称、作用如表4.6所示。

表4.6借阅者查询界面控件设计

控件类型控件名称作用

DataGrid

DataGrid1显示借阅图书信息

DataGrid2显示个人信息

DataGrid3传递图书编号(不显示)

代码实现如下:

privatevoidPersonQuery_Load(objectnder,rg)

{

();

stringsql1="lectPNameas姓名,PSexas性别,PNas身份

证,PMoneyas罚款,identityas身份"+

"frompersonwherePID='"+ng().Trim()+"'";

stringsql3="lectBIDfrombookOutwherePID=

'"+ng().Trim()+"'";

OleDbDataAdapteradp=new

OleDbDataAdapter(sql1,oleConnection1);

OleDbDataAdapteradp3=new

OleDbDataAdapter(sql3,oleConnection1);

ds=newDataSet();

();

(ds,"person");

(ds,"bookid");

urce=["person"].DefaultView;

nText="共有"+["person"].+"条记录";

urce=["bookid"].DefaultView;

for(intx=0;x<["bookid"].;x++)

{

stringsql2="图书编号,BNameas图书

名,BWriteras作者,BPublishas出版社,BDateas出版日期,BPriceas价格,"+

"typeas类型,ODateas借书日期,(lectlongTimefrom

identityinfowhereidentity=(lectidentityfrompersonwhere

PID='"+ng().Trim()+"'))"+

"as最长借书时间,dateAdd('m',最长借书时间,ODate)as应

还日期frombook,==

'"+["bookid"].Rows[x][0]+"'"+

"andPID='"+ng().Trim()+"'";

OleDbDataAdapteradp2=new

OleDbDataAdapter(sql2,oleConnection1);

(ds,"bookout");

urce=["bookout"].DefaultView;

nText="已借图书

"+["bookout"].+"本";

}

();

}

}

}

4.5用户管理设计

在主界面中选择【用户管理】|【修改密码】命令菜单或者单击工具栏上的

【用户】按钮,即可进入修改密码界面,如下4.9图所示。

图4.9修改密码界面

单击【确定】按钮,如果密码正确并且新密码与确认密码一致,则显示修改

成功,否则修改失败。

在该窗体中设计了4个TexrBox控件和2个Button控件。各个控件的名称、

作用如表4.7所示。

表4.7修改密码界面控件设计

控件类型控件名称作用

TextBox

TextName用户名称(只读)

TextPWD输入原密码

TextPWDNew输入新密码

TextPWDNew2确认新密码

ButtonBtAdd添加

BtClo退出

代码实现如下:

privatevoidbtSave_Click(objectnder,rg)

{

if

(()==""||()==""||()=="

"||()=="")

("请填写完整信息!","提示");

el

{

();

OleDbCommandcmd=newOleDbCommand("",oleConnection1);

stringsql1="lect*frompersonwhere

PID='"+()+"'andPCode='"+()+"'";

stringsql2="lect*frommanagerwhere

MName='"+()+"'andMCode='"+()+"'";

if(=="管理员")

dText=sql2;

el

dText=sql1;

if(null!=eScalar())

{

if(()!=())

("两次密码输入不一致!","警告");

el

{

sql1="updatepersont

PCode='"+()+"'wherePID='"+()+"'";

sql2="updatemanagert

MCode='"+()+"'where

MName='"+()+"'";

if(=="管理员")

dText=sql2;

el

dText=sql1;

eNonQuery();

("密码修改成功!","提示");

();

}

}

el

("密码错误!","提示");

();

}

}

privatevoidbtClo_Click(objectnder,rg)

{

();

}

privatevoidModifyCode_Load(objectnder,rg)

{

=ng().Trim();

}

}

}

4.6读者管理设计

在主界面中选择【读者管理】|【浏览身份】命令菜单,即可进入浏览读

者身份界面,如图4.10所示。

图4.10浏览读者身份界面

该界面中共有1个DataGrid控件和4个Button控件,分别是:【添加】

(BtAdd)、【修改】(BtModify)、【删除】(BtDel)和【退出】(BtClo)。

代码实现如下:

privatevoidIdentity_Load(objectnder,rg)

{

();

stringsql="lectidentityas身份,longTimeas最长借阅时

间,bigNumas最大借阅数量fromidentityinfo";

OleDbDataAdapteradp=newOleDbDataAdapter(sql,oleConnection1);

ds=newDataSet();

();

(ds,"identity");

urce=["identity"].DefaultView;

nText="共有"+["identity"].+"条

记录";

();

}

AddIdentityaddIdentity;

privatevoidbtAdd_Click(objectnder,rg)

{

addIdentity=newAddIdentity();

alog();

}

privatevoidbtModify_Click(objectnder,rg)

{

}

privatevoidbtDel_Click(objectnder,rg)

{

if

(tRowIndex>=0&&urce!=null&&dataGrid1[data

tCell]!=null)

{

();

stringsql="lect*frompersonwhere

identity='"+["identity"].Rows[ber][0].ToStri

ng().Trim()+"'";

OleDbCommandcmd=newOleDbCommand(sql,oleConnection1);

OleDbDataReaderdr;

dr=eReader();

if(())

{

("删除身份

'"+["identity"].Rows[ber][0].ToString().Tri

m()+"'失败,有该身份的读者存在!","提示");

();

}

el

{

();

sql="delete*fromidentityinfowhereidentitynotin(lect

distinctidentityfromperson)andidentity="+

"'"+["identity"].Rows[ber][0].ToString(

).Trim()+"'";

dText=sql;

eNonQuery();

("删除身份

'"+[0].Rows[ber][0].ToString().Trim()+"'成

功","提示");

}

();

}

el

return;

}

privatevoidbtClo_Click(objectnder,rg)

{

();

}}

}

单击【添加】按钮进入添加读者身份界面,如图4.11所示。

图4.11添加读者身份界面

用户可以在这个窗体中设置读者身份信息。单击【确定】按钮,如果

读者身份信息输入完整并且读者身份不重复则显示添加成功,否则添加失败。该

窗体中设计了1个TextBox控件、2个ComboBox控件。各个控件的名称、作用

如表4.8所示。

表5.8添加身份界面控件设计

控件类型控件名称作用

TextBoxTextName输入图书类型

ButtonBtAdd添加

BtClo退出

ComboBoxComboDate最长借阅时间

ComboNum最大借阅数量

代码实现如下:

privatevoidbtAdd_Click(objectnder,rg)

{if

(()==""||()==""||()=="")

("请填写完整信息","提示");

el

{();

stringsql="lect*fromidentityinfowhere

identity='"+()+"'";

OleDbCommandcmd=newOleDbCommand(sql,oleConnection1);

if(null!=eScalar())

("身份重复","提示");

el

{sql="inrtintoidentityinfovalues

('"+()+"',"+()+","+()+");

dText=sql;

eNonQuery();

("添加成功","提示");

="";

="";

="";

}

();

}}

privatevoidbtClo_Click(objectnder,rg)

{

();

}}}

在主界面中选择【读者管理】|【浏览读者】命令菜单或者单击工具栏上的

“读者”按钮,即可进入浏览借阅者界面,如图4.12所示。

图4.12浏览借阅者界面

该界面中共有1个DataGrid控件和4个Button控件,分别是:【添加】

(BtAdd)、【修改】(BtModify)、【删除】(BtDel)和【退出】(BtClo)。

代码实现如下:

privatevoidPerson_Load(objectnder,rg)

{

();

stringsql="lectPIDas借书证编号,PNameas姓名,PSexas性

别,PPhoneas电话,PNas身份证,PCodeas密码,"+

"PMoneyas罚款,identityas身份,PRemarkas备注fromperson";

OleDbDataAdapteradp=newOleDbDataAdapter(sql,oleConnection1);

ds=newDataSet();

();

(ds,"person");

urce=["person"].DefaultView;

nText="共有"+["person"].+"条

记录";

();

}

AddPersonaddPerson;

privatevoidbtAdd_Click(objectnder,rg)

{

addPerson=newAddPerson();

alog();

}

ModifyPersonmodifyPerson;

privatevoidbtModify_Click(objectnder,rg)

{

if(urce!=null||

dataGrid1[tCell]!=null)

{

modifyPerson=newModifyPerson();

=

["person"].Rows[ber][0].ToString().Trim();

=

["person"].Rows[ber][1].ToString().Trim();

=

["person"].Rows[ber][2].ToString().Trim();

=

["person"].Rows[ber][3].ToString().Trim();

=

["person"].Rows[ber][4].ToString().Trim();

=

["person"].Rows[ber][5].ToString().Trim();

=

["person"].Rows[ber][6].ToString().Trim();

=

["person"].Rows[ber][7].ToString().Trim();

=

["person"].Rows[ber][8].ToString().Trim();

();

}

el

("没有指定信息!","提示");

}

privatevoidbtDel_Click(objectnder,rg)

{

if

(tRowIndex>=0&&urce!=null&&dataGrid1[data

tCell]!=null)

{

();

stringsql="delete*frompersonwhere

PID='"+[0].Rows[ber][0].ToString().Trim()

+"'";

OleDbCommandcmd=newOleDbCommand(sql,oleConnection1);

eNonQuery();

("删除借阅者

'"+[0].Rows[ber][1].ToString().Trim()+"'成

功","提示");

}

el

return;

}

privatevoidbtClo_Click(objectnder,rg)

{

();

}

}

}

单击【添加】按钮进入添加借阅者界面,如图4.13所示。

图4.13添加借阅者界面

用户可以在这个窗体中设置读者基本信息。单击【确定】按钮,如果读者基

本信息输入完整并且借书证号和身份证号不重复则显示添加成功,否则添加失

败。该窗体中设计了7个TextBox控件、2个Button控件和2个ComboBox控件。

各个控件的名称、作用如表所示。

表4.9添加借阅者界面控件设计

控件类型控件名称作用

TextBoxTextID借书证号

TextName姓名

TextPN身份证

TextPhone电话

TextCode密码

TextMoney罚款

TextRemark备注

ButtonBtAdd添加

BtClo退出

ComboBoxComboSex姓名

Combold身份

实现代码如下:

privatevoidAddPerson_Load(objectnder,rg)

{try

{();

stringsql="lectidentityfromidentityinfo";

OleDbDataAdapteradp=new

OleDbDataAdapter(sql,oleConnection1);

DataSetds=newDataSet();

(ds,"identi");

urce=["identi"].DefaultView;

yMember="identity";

ember="identity";

();

}

catch(Exceptionee)

{

ine(e);

}

}

privatevoidbtAdd_Click(objectnder,rg)

{

if

(()==""||()==""||()==""||textP

()=="")

("请填写完整信息","提示");

El

{

();

stringsql="lect*frompersonwhere

PID='"+()+"'orPN='"+()+"'";

OleDbCommandcmd=newOleDbCommand(sql,oleConnection1);

if(

null!=eScalar())

("图书证号或身份证号重复重复","提示");

el

{sql="inrtintopersonvalues('"+()+"',"+

"'"+()+"','"+()+"','"+

()+"','"+()+"',"+

"'"+()+"',"+()+",'"+()

+"','"+()+"',fal)";

dText=sql;

eNonQuery();

("添加成功","提示");

clear();

}

();

}}

privatevoidclear()

{

="";

="";

="";

="";

="";

="";

="";

="";

}

privatevoidbtClo_Click(objectnder,rg)

{

();

}}}

4.7借还管理设计

在主界面中选择【借还管理】|【借书】命令菜单或者单击工具栏上的“借书”

按钮,即可进入借书界面,如图4.14所示。

图4.14借书界面

在【借书证号】TextBox中输入借书证号后回车,借阅者信息和已借图书信

息都会显示在相应控件中,在【图书编号】TextBox中输入图书编号后回车,该

编号的图书也显示在相应的控件中。单击【借出】按钮,判断该借阅者是否已经

接了该书,如果没有则借书成功,否则失败。

该窗体中设计了13个TextBox控件、2个Button控件、1个ComboBox控

件和4个DataGrid控件,其中3个DataGrid控件不显示,只是用来传递数据。

各个控件的名称、作用如表4.10所示。

表4.10借书界面控件设计

控件类型控件名称作用

TextBox

TextPID借书证号

TextPName姓名

TextPSex性别

TextPN身份证

TextIden密码

TextMoney罚款

TextBID图书编号

TextBName图书名

TextWriter作者

TextPublish出版社

TextType类型

TextBDate出版日期

TextPrice价格

ButtonBtOut借书

BtClo退出

ComboBoxComboSex姓名

DataGrid

DataGrid1显示已借图书信息

DataGrid2传递借阅者信息(不显示)

DataGrid3传递图书信息(不显示)

DataGrid4传递已借图书编号(不显示)

代码实现如下:

privatevoidtextPID_KeyDown(objectnder,

ntArg)

{if(ng()=="Enter")

{();

stringsql1="lectPNameas姓名,PSexas性别,PNas身份

证,PMoneyas罚款,identityas身份"+

"frompersonwherePID='"+()+"'";

stringsql3="lectBIDfrombookOutwherePID=

'"+()+"'";

OleDbDataAdapteradp=new

OleDbDataAdapter(sql1,oleConnection1);

OleDbDataAdapteradp3=new

OleDbDataAdapter(sql3,oleConnection1);

ds=newDataSet();

();

(ds,"person");

(ds,"bookid");

urce=["person"].DefaultView;

urce=["bookid"].DefaultView;

if([0].!=0)

{=

["person"].Rows[ber][0].ToString().Trim();

=

["person"].Rows[ber][1].ToString().Trim();

=

["person"].Rows[ber][2].ToString().Trim();

=

["person"].Rows[ber][3].ToString().Trim();

=

["person"].Rows[ber][4].ToString().Trim();

nText="共有

"+["person"].+"条记录";

}

el

("没有该借书证号","提示");

for(intx=0;x<["bookid"].;x++)

{stringsql2="图书编号,BNameas图书

名,BWriteras作者,BPublishas出版社,BDateas出版日期,BPriceas价格,"+

"typeas类型,ODateas借书日期,(lectlongTimefrom

identityinfowhereidentity=(lectidentityfrompersonwhere

PID='"+()+"'))"+

"as最长借书时间,dateAdd('m',最长借书时间,ODate)as

应还日期frombook,==

'"+["bookid"].Rows[x][0]+"'"+

"andPID='"+()+"'";

OleDbDataAdapteradp2=new

OleDbDataAdapter(sql2,oleConnection1);

(ds,"bookout");

urce=["bookout"].DefaultView;

nText="已借图书

"+["bookout"].+"本";

}

();

}

}

privatevoidtextBID_KeyDown(objectnder,

ntArg)

{if(ng()=="Enter")

{();

stringsql="lectBNameas图书名,BWriteras作者,BPublishas

出版社,BDateas出版日期,BPriceas价格,"+

"typeas类型frombookwhere

BID='"+()+"'";

OleDbDataAdapteradp=new

OleDbDataAdapter(sql,oleConnection1);

ds=newDataSet();

();

(ds,"book");

urce=["book"].DefaultView;

if([0].!=0)

{=

[0].Rows[ber][0].ToString().Trim();

=

[0].Rows[ber][1].ToString().Trim();

=

[0].Rows[ber][2].ToString().Trim();

=

[0].Rows[ber][3].ToString().Trim();

=

[0].Rows[ber][4].ToString().Trim();

=

[0].Rows[ber][5].ToString().Trim();

nText="共有

"+["book"].+"条记录";

}

el

("没有该图书编号","提示");

();

}}

privatevoidbtOut_Click(objectnder,rg)

{if(()==""||()=="")

("请输入完整信息","提示");

el

{();

stringsql="lect*frombookOutwhere

BID='"+()+"'andPID='"+()+"'";

OleDbCommandcmd=newOleDbCommand(sql,oleConnection1);

if(null!=eScalar())

("你已经借了一本该书","提示");

el

{sql="inrtintobookOut(BID,PID,ODate)values

('"+()+"','"+()+"','"+()+"')";

dText=sql;

eNonQuery();

("借出成功","提示");

}}}

选择【借还管理】|【还书】命令菜单或者单击工具栏上的“还书”按钮,即可

进入还书界面,如图4.15所示。

在【借书证号】TextBox中输入借书证号,在【图书编号】TextBox中输入

图书编号后回车,如果该借阅者借了该图书,则该图书信息就会显示在相应的控

件计算出该图书的应还日期、超出天数和罚款金额。

图4.15还书界面

该窗体中设计了14个TextBox控件,2个Button控件和1个DataGrid控件。

各个控件的名称、作用如表4.11所示。

表4.11还书界面控件设计

控件类型控件名称作用

TextBox

TextPID借书证号

TextOutData借出日期

TextInData1应还日期

TextNow今天日期i

TextBigDay规定天数

TextDay超出天数

TextMoney罚款金额(每天0.1元)

TextBID图书编号

TextBName图书名

TextWriter作者

TextPublish出版社

TextType类型

TextBDate出版日期

TextPrice价格

ButtonBtIn还书

BtClo取消

DataGridDataGrid1传递图书信息(不显示)

代码实现如下:

privatevoidtextBID_KeyDown(objectnder,

ntArg)

{

if(ng()=="Enter")

{

();

stringsql="lectBNameas图书名,BWriteras作者,BPublishas

出版社,BDateas出版日期,BPriceas价格,typeas类型,"+

"ODateas借出日期,(lectlongTimefromidentityinfowhere

identity=(lectidentityfrompersonwherePID='"+()+"'))"+

"as最长借书时间,dateAdd('m',最长借书时间,ODate)as应

还日期,DateDiff('d',应还日期,Now)as超出天数frombook,bookOutwhere"+

"='"+()+"'and

PID='"+()+"'";

OleDbDataAdapteradp=new

OleDbDataAdapter(sql,oleConnection1);

ds=newDataSet();

();

(ds,"book");

urce=["book"].DefaultView;

if([0].!=0)

{

=

[0].Rows[ber][0].ToString().Trim();

=

[0].Rows[ber][1].ToString().Trim();

=

[0].Rows[ber][2].ToString().Trim();

=

[0].Rows[ber][3].ToString().Trim();

=

[0].Rows[ber][4].ToString().Trim();

=

[0].Rows[ber][5].ToString().Trim();

=

[0].Rows[ber][6].ToString().Trim();

=

ng(16([0].Rows[

mber][7].ToString().Trim())*30);

=

[0].Rows[ber][8].ToString().Trim();

if

(16([0].Rows[ber][9].ToStrin

g().Trim())>0)

{

=

[0].Rows[ber][9].ToString().Trim();

=

ng(16()*0.15);

}

el

{

="0";

="0";

}

=ng();

nText="共有

"+["book"].+"条记录";

}

el

("该读者没有借该图书","提示");

sql="updatepersontPMoney=PMoney+'"++"'

wherePID='"+()+"'";

OleDbCommandcmd=newOleDbCommand(sql,oleConnection1);

eNonQuery();

();

}

}

privatevoidbtIn_Click(objectnder,rg)

{

if(()==null)

("请填写图书编号","提示");

el

{

();

stringsql="delete*frombookOutwhereBID=

'"+()+"',andPID='"+()+"'";

OleDbCommandcmd=newOleDbCommand(sql,oleConnection1);

eNonQuery();

("还书成功","提示");

}

}

privatevoidbtClo_Click(objectnder,rg)

{

();

}

}

}

第5章软件测试

5.1软件测试的方法与步骤

该系统在本地服务器上进行运行和调试,鉴于对系统的内部结构和处理算法

的完全了解以及对系统功能的全面掌握对系统进行白盒测试和黑盒测试。

在开发软件系统的过程中,需要面对错综复杂的问题,因此,在软件生存周

期的每个阶段都不可避免地会产生错误。测试目的在于:发现错误而执行一个程

序的过程,测试重要发现一个发现其中尚未发现的错误。

本系统的测试阶段信息流程下图所示。

图5.1测试阶段信息流程图

为了设计出有效地测试方案按照下面准则进行测试:所有测试都应追溯到用

户需求;在完成了需求模型就要着手制定测试计划,在编码之前最所有测试工作

进行计划和设计;运用Pareto原理着重对占出现错误80%的容易出错的20%的

模块进行测试,从小规模开始逐步进行大规模测试,通常先重点测试单个程序模块

再转向集成的模块簇;精心设计测试方案,尽可能充分覆盖程序逻辑使之达到要求

的可靠性。

按照软件工程的观点,软件测试(主要是指多模块程序的测试)共包括4

个层次。

1)单元测试。单元测试的用例从单元详细设计中导出。在单元测试中可以采

用功能性测试和结构性测试两种。

2)集成测试和确认测试。这一阶段的任务,是通过了单元测试的模块逐步组

装起来,通过测试与纠错,最终得到一个满足需求的目标软件。

3)验证测试。在这个测试步骤中所发现的往往是需求规格说明的错误。一般

测试

评价

调试

软件配置

测试配置

测试结果

预期结果

错误率数据

错误

可靠性预测

正确

可靠性

模型

来说,系统测试是功能性测试,不是结构性测试。

在整个测试中,采用了白盒测试和黑盒测试相结合的方法。

5.2测试用例运行过程及测试结果分析

5.2.1模块测试

1)登录模块测试

表5.1登录模块用例测试

用例测试数据预期结果

1:输入正确的用户名和密码用户名:admin

密码:admin

系统跳转到登陆成功页面

2:输入空用户名或空密码用户名:admin密码:请输入用户名和密码

3:输入用户名和错误的密码用户名:admin

密码:ad

用户名或密码错误

4.输入用户名和密码,不选

择角色

用户名:admin

密码:admin

没有选择角色

当用户输入的用户名或密码错误时系统会跳转到出错页面并提示“用户名或

密码错误”。用户点击确定,系统会重新返回登陆页面,其中错误信息提示页面

如图5.1所示:

图5.1系统出错提示页面

2)更改密码模块测试

用户登录系统后可对自己的登录密码进行更改,更改过程要求用户提供原始

密码,输入新密码,重新输入新密码进行确认,如果用户输入的原始密码错误,

或两次输入的新密码不一致将无法执行密码更新操作,系统会给出相应的提示,

起显示页面为:

图5.2两次密码不一致提示页面

5.2.2集成测试

把经过单元测试的模块放在一起形成一个子系统并对它进行测试用于检验

模块相互间的协调和通信,这里主要对图书管理员功能系统进行了测试,经过检

验其功能均得以顺利实现,下图为管理员操作的图书查询模块成功运行界面:

图5.3图书查询模块测试图

把经过测试的子系统装配成一个完整的系统进行测试,经过黑盒测试于白盒

测试相结合的方式,对整个系统的各个功能模块进行了测试,并调试改正其中的

设计和编码错误,经过这个环节的操作整个系统的功能基本实现成功运行。

5.2.3验收测试

在进行了以上的测试工作后,将整个软件系统作为单一的实体进行测试,测

试内容与系统测试基本类似,但它是在用户积极参与下进行的,此测试过程主要

使用实际数据,进行测试,验证测试的目的是验证系统确实能够满足用户的需求,

经过这个环节的实际数据测试,系统的各个功能实现都达到了系统需求设计的要

求。

5.3评价

测试过程严格按照测试的流程,经过单元测试、子系统测试和系统测试。通

过单元测试,查找出了系统各模块内部的错误;通过子系统测试,发现了模块间

相互协调和通信上的错误;通过系统的集成测试,发现了软件设计过程中存在的

错误。通过改正错误的设计和实现部分,保证了图书借阅管理系统可以完成需求

分析中制定的需求。

从上面的测试中可以看出,此系统可以完成用户登录、系统设置、图书管理、

读者管理管理、借阅管理和系统查询等功能。读者在本系统的应用下可实现按照

各种方式(如:书名,编号,作者)查询图书馆的藏书,方便的借阅图书、续借图

书、归还图书,能够查询自己的借阅图书情况。图书馆工作人员能够实现方便的

对图书进行查询,方便的进行读者借阅情况查询,方便的进行借书还书处理等,

便捷的对图书信息进行添加、修改、删除,分类管理等操作,对读者信息进行相

关添加、修改、分类管理等操作。系统管理员可以对图书馆信息进行修改更新操

作,对系统用户进行添加、修改、删除、权限设置等操作,对图书馆的办证参数

进行修改维护等操作功能。测试阶段的工作一方面发现了系统的各种错误,另外

一方面也验证了修改后的系统能够实现提高图书馆工作效率的预期目的。

第6章总结

在VisualStudio2005开发环境下,运用C#编程语言和Access数据库完成了

B/S模式的图书馆借阅管理系统。系统基本上实现了预期的各项功能,达到了任

务书中的主要设计内容的各项任务,整个系统也在经过测试和不断地改正之后能

够顺利运行。基本上实现了开题报告中的需求设计,该系统能够实现:

1.读者在本系统的应用下可实现按照各种方式(如:书名,编号,作者)查询图书

馆的藏书,能够查询自己的借阅图书情况,修改自己的密码。

2.图书馆工作人员能够实现方便的对图书进行查询,方便的进行读者借阅情

况查询,方便的进行借书还书处理等,便捷的对图书信息进行添加、修改、删除,

分类管理等操作,对读者信息进行相关添加,修改,分类管理等操作。

3.系统管理员可以对图书馆信息进行修改更新操作,对系统用户进行添加、修

改、删除、权限设置等操作,对图书馆的办证参数进行修改维护等操作功能。

本系统只对传统书籍进行了最基本的管理,随着计算机技术的飞速发展,应将

各个图书馆的图书进行联网交流,使读者可以远程查询图书馆的藏书等信息,还应

开发对电子书的管理,形成网上图书资源共享平台,使读者可以在线阅读电子书资

料,并设置用户权限,使管理员可以上传图书资料信息,高级用户可以下载网上电

子书资源,从而实现信息资源最大化被共享。

经过不断学习和设计开发加上老师同学的帮助,终于完成了我的毕业设计,

在开题报告阶段我参阅了大量的中外文献,对所开发系统的现状,国际发展情况以

及未来发展趋势有了深入的了解;在整个系统的需求分析过程中对开发前期工作

地流程步骤有了深入的掌握;在开发过程我进一步学习了C#的基础语法,在编写

过程中也规范了许多编码习惯,数据库设计阶段我尝试了几个不同版本的数据库,

它们在配置操作上各有不同,又各有优缺点,在它们的一些基本操作上也有了进一

步提高。

在整个系统开发的过程中,我学到了很大新的知识,前学过的许多知识点在运

用过程中也有了更为深入的分析,这是我大学期间做过的规模最大的项目,在这个

过程中也体会到了如何将书本知识转化到实际的应用中。

参考文献

[1]王立福.软件工程(第二版)[M].北京:北京大学出版社.2002.

[2]张秋余,杨玥.基于用例的需求建模方法[J].计算机工程与设计,2006,19:

3539-3541.

[3]张秋余,杨玥.基于用例的需求建模方法[J].计算机工程与设计,2006,19:

3539-3541.

[4]王珊,萨师炫.数据库系统概论(第三版)[M].北京:高等教育出版社.2002

[5]张海潘.软件工程[J].清华大学出版社.2003年11月

[6]张波.网络答疑系统的设计与实现[D].长春:吉林大学软件学院,2005.

[7]陆荣幸,郁洲.J2EE平台上MVC设计模式的研究与实现[J].计算机应用研

究,2003,03:144-146.

[8]孙卫琴,李洪称.Tomcat与JavaWeb开发技术详解[M].北京:电子工业出版

社,2003.

[9]何成万,余秋惠.MVC模型2及软件框架Struts的研究[J].计算机工程,2002,

06:274-276.

[10]戴继周.基于Web的网络教学平台的设计与实现[D].长春:吉林大学计算

机应用技术专业,2004

[11]尹朝庆.计算机系统结构教程[M].北京:清华大学出版社.2005.

[12]张海藩.软件工程导论(第四版)[M].北京:清华大学出版社,2003.

[13]张维明.信息系统原理与工程.电子工业出版社.2002年1月

致谢

大学四年学习时光已经接近尾声,在此我想对我的母校,我的父母、亲人们,

我的老师和同学们表达我由衷的谢意。感谢我的家人对我大学四年学习的默默支

持;感谢我的母校兰州理工大学技术工程学院给了我在大学四年深造的机会,让

我能继续学习和提高;感谢老师和同学们四年来的关心和鼓励。老师们课堂上的

激情洋溢,课堂下的谆谆教诲;同学们在学习中的认真热情,生活上的热心主动,

所有这些都让我的四年充满了感动。

这次毕业论文设计我得到了很多老师和同学的帮助,其中我的论文指导老师

对我的关心和支持尤为重要。每次遇到难题,我最先做的就是向指导老师帮助,

而老师每次不管忙或闲,总会抽空来找我面谈,然后一起商量解决的办法。感谢

在整个毕业设计期间和我密切合作的同学,和曾经在各个方面给予过我帮助的伙

伴们,在此,我再一次真诚地向帮助过我的老师和同学表示感谢!

本文发布于:2023-03-14 00:52:19,感谢您对本站的认可!

本文链接:https://www.wtabcd.cn/zhishi/a/1678726340122141.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

本文word下载地址:图书管理系统论文.doc

本文 PDF 下载地址:图书管理系统论文.pdf

上一篇:勾践卧薪尝胆
下一篇:返回列表
相关文章
留言与评论(共有 0 条评论)
   
验证码:
Copyright ©2019-2022 Comsenz Inc.Powered by © 实用文体写作网旗下知识大全大全栏目是一个全百科类宝库! 优秀范文|法律文书|专利查询|