版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、安徽工业职业技术学院毕业设计(论文)任务书 信息工程系 系 05软件 班 姓名 张三 毕业设计(论文)题目: 图书管理信息系统开发 毕业设计(论文)起止日期: 2008.2.18-2008.4.18 指导教师: 李四 毕业设计(论文)要求:1. 论文字数:不少于4000字; 2. 论文依顺序包括:题名、作者姓名、作者班级、摘要、关键词、目录、正文、参考文献;3. 字体格式:标题:小三宋体;正文:五号宋体;参考文献:五号宋体; 行间距为1.5倍行距;页边距:左2.6cm、右2.2 cm、上2.6 cm、下2.2 cm。4. 参考文献格式: 著作:作
2、者、书名、出版社、出版时间、页码。 论文:作者、论文、篇名、刊号、年、卷(期)、页码。 图书管理信息系统开发信息工程系05软件 张三摘要:计算机信息化管理有着储存信息量大、速度快等许多优点,处理信息及时快捷。本次开发图书管理信息系统的目的就是为了让我们及时了解图书馆各类图书的存库、借阅等情况,更好地适应当前学生的借阅需求。关键词:Visual Basic 数据库目 录摘 要-1第一章 绪论-31.1课题背景-31.2 Visual Basic 6.0概述-31.2.1 Visual Basic 6.0的发展-41.2.2 Visual Basic
3、 6.0 的特点-4第二章 系统需求分析-62.1 现行业务描述-62.2 现行系统存在的问题分析-72.3 解决方案-72.4 可行性分析-82.5 系统开发环境-8第三章 系统逻辑方案-93.1 初步调研-93.2 详细调研-93.2.1 组织结构调研-93.2.2 数据流图-93.2.3 数据字典-10第四章 系统总体结构设-124.1 软件模块结构设计-124.1.1 系统方案确定-124.1.2 软件结构设计-124.2 数据库设计-13 4.3 计算机系统的配置方案-17 4.4 系统的安全性和可靠性设计-17第五章 系统详细设计-18 5.1 启动-18 5.2 登录-18 5.
4、3 新书入库-23 5.4 图书信息查询-24 5.5 新证登记-25 5.6 借书证信息查询-25 5.7 借书证登记-26 5.8 还书-28第六章 系统测试与维护-29 6.2.1系统的运行:-29 6.2.2系统的维护: -29参考文献-32附录:部分程序源代码-33第一章 绪论1.1 课题背景随着电子计算机和通信技术的发展,人类已经逐渐地进入信息化社会。信息和材料、能源一样成为一种社会的基本生产资料,在人类的社会生产活动中发挥着重要的作用。同时人们对信息和数据的利用与处理也已进入自动化、网络化和社会化的阶段,因此,开发相关的管理信息系统已经成为各行各业的必要和必需了,管理信息系统作为
5、一门边缘学科,集管理科学、信息科学、系统科学、现代通信技术和电子计算机技术于一体,可以解决企业或组织所面临的问题,对内来看,可以提高工作效率;对外来看,获得竞争优势。管理信息系统的开发方法有生命周期法、原型法和面向对象的开发方法等。生命周期法(Life Cycle Method)是20世纪60年代发展起来的一种应用广泛且比较成熟的管理系统开发方法,它的基本思想是将系统的开发工作从开始到结束划分为若干个阶段,每个阶段都有明确的任务,而系统开发出来后,并不意味着生命周期的结束,而意味着根据组织的需要对系统的修改和重建的开始;原型法(Prototyping Method)是20世纪80年代发展起来的
6、,旨在改变生命周期法的缺点的一种系统开发方法,该法的开发思路是首先根据用户的要求,由用户和开发者共同确定系统的基本要求和主要功能,利用系统快速生成工具,建立一个系统模型,再在此基础上与用户交流,将模型不断补充、修改、完善,如此反复,最终直至用户和开发者都比较满意为止,从而形成一个相对稳定、较为理想的管理信息系统;面向对象(Object Oriented)的开发方法于20世纪80年代开始兴起的,是一种基于问题对象的自底向上的一种系统开发方法,这种方法的特点是以对象为基础,对象是分析问题和解决问题的核心。基于以上三种方法的特点和各自的优缺点,本图书馆管理系统利用软件工程化思想和方法,总体上是采用结
7、构化生命法进行系统分析和设计的,而系统实现等步骤则采用了原型法和面对对象的方法。我校图书馆工作大部分还是进行着手工管理,工作起来效率很低,并且不能及时了解图书馆各类图书的存库,学生们比较需求的图书等等,不便于动态及时地调整图书结构,以便更好地适应当前学生的借阅需求。手工管理还存在这许多弊端,由于不可避免的人为因素,经常造成数据的遗漏、误报。计算机信息化管理有着储存信息量大、速度快等许多优点,提供给我们的处理信息及时快捷,同时也提高了我们工作人员的自身素质。1.2 Visual Basic 6.0概述 Visual Basic 6.0是Microsoft公司推出的可视化开发工具组建Visual
8、Studio 6.0的组建之一,是基于BASIC语言的可视化程序设计语言。Visual Basic 6.0既继承了BASIC语言的简单易懂的特点,又采用了面向对象、事件驱动的编程机制,提供了一种所见即所得的可视化程序设计方法。1.2.1 Visual Basic 6.0的发展1. BASIC语言 BASIC是英文Beginners All-Purpose Symbolic Instrction Code的缩写,BASIC语言是美国著名大学Dartmouth学院的两位教授于1964年开发的,专门为初学者设计的计算机语言,主要用于教学。BASIC语言的功能有限,很难进行大型应用程序的开发,常用于小
9、型事务处理。2. Visual Basic 随着Windows操作系统的出现,广大用户有了一个直观并造作简便的工作环境。但是这种出色的环境却增加了程序员编程的难度。因为他们需要下降编制程序去实现窗口、菜单和对话框等,开发工作非常繁重。这个问题一直到Microsoft公司于1991年推出Visual Basic 软件才得到解决。所谓“Visual”,指的是可视化,也就是指此软件是用来开发图形用户界面的。Visual Basic被称为“可视化的程序设计语言”,即不需要编写大量代码去描述接口元素的外观和位置,而只要把预先建立的对象安放到设计窗体的某一位置即可,从而大大降低了编程的难度和工作量,提高了
10、程序的开发效率。3. Visual Basic的版本 Microsoft公司于1991年推出的Visual Basic 1.0获得了巨大成功,随后又陆续推出了更新的版本2.0、3.0、4.0、5.0以及6.0。从而从1.0到4.0的版本都只有英文版,5.0和6.0的版本才真正出现了中文版,这大大方便了中国用户。随着各种版本的不断改进,Visual Basic已逐渐替代了以往传统的程序设计语言,成为编制Windows应用程序、数据库应用程序、多媒体程序及网上应用程序的理想工具。它不仅为广大程序员所钟爱,而且还成为了众多初学者编程者的良师益友,真正做到了实用且易掌握。 Visual Basic 6
11、.0包括三种版本:学习版、专业版和企业版。这三种版本的基础是一致的,只不过为了适应不同层次用户的需要,在工具的提供方面有所不同。因此,大多应用程序可以在三种不同版本中通用。1.2.2 Visual Basic的特点 Visual Basic是新型的计算机程序设计语言,与传统程序设计语言相比,Visual Basic有许多特点,最突出的特点是可视化、面向对象和事件驱动。1、 可视化使用传统的计算机高级语言开发应用程序,应用程序界面需要程序员编写语句来实现。在设计过程中看不到界面的实际显示效果,必须编译后运行程序时才能观察到。如果对界面效果不满意,还要回到程序中去修改,开发工作非常繁杂,影响了软件
12、开发效率。Visual Basic提供了可视化设计工具,把Windows界面设计的复杂性“封装”起来,开发人员不必为界面设计而编写大量程序代码。只需要按设计要求的屏幕布局,用系统提供的工具,在屏幕上画出各种“部件”,即图形对象,并设置这些对象的属性。Visual Basic自动产生界面设计代码,程序设计人员只需要编写实现程序功能的那部分代码,从而大大提高了程序设计的效率。2、 面向对象面向对象编程思想诞生与20世纪80年代初期,并在C+等程序设计语言中实现,随着面向对象编程思想的成熟和它所具有的优越性,面向对象编程这一思想已逐步被应用到各种传统高级语言中,自然也被嵌入到Visual Basic
13、。但Visual Basic与一般的面向对象的程序设计语言不完全相同。在一般的面向对象程序设计语言中,对象由程序代码和数据组成,是由抽象的概念;而Visual Basic则是应用面向对象的程序设计方法(OOP),把程序和数据封装起来作为一个对象,并为每个对象赋予应有的属性,使对象成为实在的东西。在设计对象时,不必编写建立和描述每个对象的程序代码,而是用工具画在界面上,Visual Basic自动生成对象的程序代码并封装起来。每个对象以图形方式显示界面上,都是可视的。3、 事件驱动事件驱动是非常适合图形用户界面的编程方式。在传统的或“过程化”的应用程序中,应用程序自身控制了执行哪一部分代码和按何
14、种顺序执行代码。Visual Basic通过事件来执行对象的操作。一个对象可能会产生多个事件,每个事件都可以通过一段程序来响应。事件可以由用户操作触发,也可以由来自操作系统或其他应用程序的消息触发,甚至由应用程序本身的消息触发。这些事件的顺序决定了代码执行的顺序,因此应用程序每次运行时所经过的代码的路径都不相同。第二章 系统需求分析2.1现行业务描述:通过调查,先画出图书馆的组织结构图如下:馆 长采编组书库阅览室工具书室目录厅借阅室 图1 图书馆组织结构图通过调研了解到,该图书馆各个部门负责的主要业务如下:(1)采编组主要负责图书采编工作,包括购置新书、打印编目、增加数量。(2)目录厅主要负责
15、读者查询工作,包括可借图书(按图书类别、图书名称或图书作者查询);新书目录(按图书类别、日期查询);借书情况(按读者借书证号查询)(3)借阅组主要负责图书流通、查询统计、借阅查询等工作。(4)阅览室、工具书室主要负责读者阅览工作,包括:阅览各种杂志、报纸、阅览各种工具书。下面绘制出图书馆流通业务中借书的流程图。(1)读者在目录厅查阅索引卡;(2)读者写出所借图书的分类号、种次号、交给图书管理员,并出示本人的借书证;(3)图书管理员根据图书的分类号、种次号到书库找书;(4)将图书交给读者,并由读者填写所借图书的借书卡。(5)图书管理员把借书卡保存到写有该读者借书证号的口袋里。得出该图书馆业务流程
16、图如下所示:分类号种次号借书卡图书借书证存档管理人员书库图2 图书馆业务流程图2.2现行系统存在问题的分析该图书馆工作大部分还是进行着手工管理,工作起来效率很低,并且不能及时了解图书馆各类图书的存库,学生们比较需求的图书等等,不便于动态及时地调整图书结构,以便更好地适应当前学生的借阅需求。手工管理还存在这许多弊端,由于不可避免的人为因素,经常造成数据的遗漏、误报。计算机信息化管理有着储存信息量大、速度快等许多优点,提供给我们的处理信息及时快捷,同时也提高了我们工作人员的自身素质。2.3解决方案基于以上的对问题的分析,利用计算机给我们提供信息,及时地调整学校图书馆图书结构,并且对学生们的借阅过程
17、形成一整套动态的管理就十分必要了。图书馆信息系统的建立,需要进行用户的需求调查与分析,以确定系统目标,提出解决问题的详细方案,这是系统建设的重要环节。学校图书馆规模相对于商业图书馆小,但要有着完善的图书信息,对每一册书要有详细的记录信息,功能上对系统的需求是全面的。因此对用户的需求可分为四个方面:一方面是图书馆工作人员通过计算机来管理各类图书,分类编号,调整图书结构,增加图书库存,适应学生的需求;二方面是学生们能通过计算机来查询浏览图书馆中的图书,来确定自已需要的书籍,为借阅做好准备;三方面是工作人员对学生们的借书证发放,登记能作好全面的掌握,及时得到每个借书证的当前状态和历史借阅记录;四方面
18、也是图书馆的核心工作,对图书的借阅管理。这四个方面形成了学校图书馆一个工作整体,采用计算机自动化信息处理,可方便快捷地共享信息、交流信息,高效地协同工作。在软、硬件方面对系统的需求,软件要求易学,界面友好,容易掌握,可以很简单方便的管理各种图书信息。硬件的配置要求不能太高,这样可以很好的适应当前的学校图书馆。在开发方式上对系统的需求,由于学校图书馆是一种无商业利益的,所以系统设计开发的周期要短,在短时间内完成,减少开发成本,提高开发效率,方便、简单、实用作为系统开发的指导思想。2.4可行性分析通过对该图书馆的各个方面进行了具体的了解之后,现对该单位开发图书管理系统的可行性进行分析。技术上可行:
19、该系统所需硬件设备,市场上销售且价格较低,甚至可以使用原有的设备,软件上,操作系统采用Windows系列操作系统,数据库管理系统采用Visual Basic,这些软件在MIS开发中已被大量应用,技术上都比较成熟。因此在技术上是可行的。经济上可行:由于学校急需采用计算机来进行图书馆的管理,因此对开发图书管理系统大力支持,开发经费没有问题。管理上可行:该学校的图书馆有很多的管理体制,每位借书人均有借书证,同时图书馆还为每位借书人建立了档案。因此管理上可行。另外,图书馆管理人员对开发该系统也是大力支持的,同时制定了培训计划,并进行了实施MIS的物质准备和工作准备。综上所述,开发图书管理系统在技术上、
20、经济上、管理上都是可行的。2.5系统开发环境系统开发环境包括硬件平台和软件平台两种。硬件平台是指开发与运行所需要的硬件环境,主要包括计算机机型及硬件配置。由于本系统是一个小型的MIS管理系统,因此对计算机硬件的要求不高,比较经济,只要配备有PII处理器(或以上)、64M内存(或以上)、10G硬(或以上)的普通微机即可顺利运行。软件平台是指系统开发与运行的软件环境。本系统在开发时选用了稳定性较强的Windows XP中文专业版和Visual Basic6.0作为开发语言,同时选用了Access数据库,由于这些软件产品都是Microsoft公司的产品,因此彼此之间的兼容性较好,开发出的应用系统稳定
21、性较高。Visual Basic 6.0具有可视化的开发环境,可以快速完成系统的开发,内部集成的数据库访问通道,使得可以轻松方便的对数据库管理。数据库采用MICROSOFT ACCESS,由于我们的系统要求,采用它完全可以适合我们的工作需求,并且它所支持的数据类型十分丰富,维护简便,费用比较低,人员素质要求不是很高,容易升级。本系统在单机上运行。第三章 系统逻辑方案3.1初步调研在本系统被批准立项之后,我实地去该图书馆进行了参观和学习,现对该单位图书馆的整体情况进行调研,调研分两步进行,一是初步调研,二是详细调研。由于该图书馆职工人数较少,因此在调研时采用了会议讨论法和个人访谈法两种方法,通过
22、会议讨论法了解图书馆的整体情况,对开发新系统的态度等。通过个人访谈法了解各个部门的主要职能及具体运作方式、过程等。对该图书馆进行初步调研的具体内容为:(1)图书馆的规模:现藏书册数、种类;(2)图书馆的主要业务;(3)图书馆下高几个部门;(4)图书馆职工人数;(5)职工受教育程度;(6)主要购书单位;(7)图书编码方式;(8)现在多少读者在此借书;(9)读者借书凭证;(10)读者分类;(11)图书馆的上级领导;(12)对开发新系统的态度;(13)开发新系统所需的时间(规定多长时间开发完成)。3.2详细调研3.2.1组织结构调研在对该图书馆的手工管理模式和业务流程进行认真分析和研究的基础上,经过
23、与该图书馆的相关人员的反复协商、论证,最后确定了该图书管理系统的逻辑模型。下面以数据流图和数据字典的方式来描述新系统的逻辑功能。3.2.2数据流图图书管理员借书读者借书证号已填借书卡D1 索引卡D2 索引卡查询信息索引信息已填借书卡借书信息借书业务第一层DFD借书信息借书证号读者图书管理员D2 索引卡已填借书卡查询信息借书信息索引信息查询结果借书情况D1 索引卡1. 1查询图书待填借书卡拉奇卡 借书业务第二层DFD图3 数据流图3.2.3数据字典: 下面为借书业务流程图中的每一部分编制数据字典。(1)数据元素:每本书都有单价这个信息,其描述内容如下:数据元素名称:单价 类型:数字
24、长度:6位,其中整数部分占3位,小数部分占2位 数据值类型:离散 取值范围:0-999.99相关的数据结构:索书号+藏书号+作者+书名+出版社+单价+册数+内容摘要(2)数据流。数据流“借书信息”条目如下:数据流名称:借书信息 说明:读者的借书内容数据流来源:读者数据流去向:图书管理员数据流组成:分类号种次号数据流的流通量:大约份/天()数据存储:数据存储“借书情况”条目如下:数据存储名称:借书情况简述:存放的是每个读者的借书情况输入数据:借书情况数据存储组成:借书证号藏书号借书日期存储方式:按借书的先后顺序排列()数据处理。数据处理“查询图书”条目如下:数据处理名称:查询图书数据处理编号:.
25、简要描述:根据读者写的图书的分类号和种次号查询输入数据流:借书信息输出数据流:查询结果处理逻辑:根据读者写的图书的分类号和种次号检索相应的图书信息。()外部实体。外部实体“图书管理员”的条目如下:外部实体名称:图书管理员输入数据流:借书信息、借书证号、已填借书卡、查询结果输出数据流:待填借书卡、借书信息。数目:人第四章 系统总体结构设计4.1软件模块结构设计4.1.1系统方案确定通过对系统调研与分析,系统主要应完成的功能如下:书库信息管理、读者档案管理、借阅管理、还书管理、图书检索、系统维护。4.1.2软件结构设计图书馆管理系统包含图书采编、读者管理、流通、查询等功能。该系统执行时,先输入数据
26、,然后根据输入的数据选择执行路径;购入图书进行登记、编目调用图书采编功能,借书、还书调用功能,查询调用查询功能。图书馆管理系统属于事务型系统,其系统示意图如下图所示:接受数据事务中心图书采编读者管理图书流通查询图4 图书馆管理系统示意图系统功能图如下:图书馆管理系统系统登陆系统管理图书管理借书证管理借 书帮 助登 陆修改密码注 消退 出新书入库图书信息查询新开借书证借书证查询借 书还 书关 于图5 系统功能图4.2数据库设计数据库采用了Microsoft推出的Access数据库,这是微软集成到Office中的一个桌面数据库,能够快速方便的和Office的其他套件综合使用。由于Access具有显
27、著的简易性和有效性,大量的桌面数据库系统都采用Access作为后台数据库。使用Access的好处还在于,如果你的系统扩展到Client/Server模式的时候,可以使用Microsoft的数据库服务器软件SQL Server,此时,程序只需要简单的修改一下链接(ADO的数据源)就可以,这样,为程序的平滑扩展提供了非常有力的条件。本系统使用的系统中包括四个表,名称及功能说明如下:表1 数据库系统功能说明TblOperator操作员表,定义操作员的ID和密码,作为系统登录检查的依据,提供唯一的管理员ID。TblLoan借阅表,通过借书证ID和图书ID反映图书的借阅关系。TblCard借书证表,提供
28、读者信息等,同时包括借书证是否可用,提供唯一的借书证ID。TblBook图书表,保存馆内所有图书的信息,提供唯一的图书ID。本系统涉及到的实体:(1)本系统中所涉及到的主要实体及其属性有:tblbooK(图书管理)表:图书编号,馆藏编号,书名,作者,出版社,出版日期,入库日期,价格,操作员tblCard(借书证)表:借书证编号,是否有效,姓名,男女,身份证号,部门,电话,地址,最大供书量,操作员,创建日间tblLoan(借阅)表:借书证编号,书号,借书日期,还书日期,操作员tblOperator(操作员)表:操作员编号,姓名,密码,备注(2)本系统的实体-联系(E-R)图为了使E-R图表示得更
29、加清晰,现将E-R图分成实体及其属性图和实体及其联系图。分别如下图所示:图书编号馆藏编号书名作者出版社出版日期价格数量入库时间操作员备注图书管理借书证编号是否有效姓名男女身份证号部门地址有效日期电话最大借书量操作员借书证管理办证时间图6 E-R实体及其属性图操作员操作员编号姓名密码备注借阅借书证编号图书编号借书日期还书日期操作员图7 E-R实体及其联系图各表的物理结构如下:表2 TblBook(图书管理)表:字段代码字段名称类型宽度小数位数Bookid图书编号长整型Libid馆藏编号文本8BookName书名文本100Author作者文本60Publisher出版社文本50PublishDat
30、e出版日期文本50Price价格货币2Amount馆藏册数数字整形2createdate入库时间日期/时间Operator操作员数字Memo备注文本255表3 TblCard(借书证管理)表:字段代码字段名称类型宽度小数位数CardId借书证编号自动编号长整型Enabled是否有效是/否Name姓名文本8Gender男女数字长整型IdCard身份证号文本18Vocation部门文本50Phone电话文本50Address地址文本50MaxBookNum最大借书量数字整型AvailDateNum有效时间数字长整型Operator操作员数字长整型CreateDate办证时间日期/时间表4 TblL
31、oan(借阅)表:字段代码字段名称类型宽度小数位数CardID借书证编号数字长整型BookID图书编号数字长整型LoanDate借书日期日期/时间ReturnDate还书日期日期/时间Operator操作员文本表5 TblOperato表:字段代码字段名称类型宽度小数位数OperatorID操作员编号自动编号Name姓名文本50Password密码文本50Memo备注文本255E-R图向关系模型转换的结果如下:图书管理(图书编号,馆藏编号,书名,作者,出版社,出版日期,入库日期,价格,操作员)图书编号为此关系的码。借书证(借书证编号,是否有效,姓名,男女,身份证号,部门,电话,地址,最大借书量
32、,操作员,创建日间)借书证编号为此关系的码。借阅(借书证编号,书号,借书日期,还书日期,操作员)借书证编号为此关系的码。操作员(操作员编号,姓名,密码,备注)操作员编号为此关系的码。4.3计算机系统的配置方案硬件环境: 表6 硬件配置表内容最低配置建议配置主机奔腾二代300MP4 1.6GHZ以上内存64MBDDR256MB以上硬盘20GB40GB以上显示器VGA以上软件环境:操作系统:Windows 2000或Windows XP中文版编程软件和数据库:Visual Basic6.0中文版+Access2000中文版4.4系统的安全性和可靠性设计对所有登录本系统的使用用户进行严格的用户名和密
33、码的管理,如果不属于系统事先设定好的合法用户,则系统无法登录,为了防止密码外泄,本系统具备密码修改功能。第五章 系统详细设计程序按照三个主要管理功能进行组织,其中借书和还书由于经常使用,单独列出来。下面我们按照操作顺序对程序的操作、界面的源程序进行详细说明。5.1启动:双击图标运行程序以后,就可以看到程序的主界面。由于这个时候还没有登陆系统,因此系统提示未登录。这时,需要通过通过系统管理菜单进行登录操作。图8 启动后的主界面5.2登录系统进行登录时,用户单击了菜单“登录”,此时系统开始显示登录窗口。Private Sub mnuSysLogin_Click() frmLogin.Show vb
34、Modal If CurrentUser.LoginSuccess Then Me.Caption = App.Title & " (" & CurrentUser.Name & ")" Else Me.Caption = App.Title & " (未登录)" End IfEnd Sub程序首先显示frmLogin窗口,由于这个窗口是模态(vbModal)显示的,因此如果用户只能关闭这个窗口后才能进行其他的操作。VB的窗口分成模块窗口和非模态窗口两种,普通情况下都是非模态窗口,但是多数对话框是模态窗
35、口。程序的后面使用了一个结构体,这个结构体在公共模块定义,程序的任何地方都可以访问这个结构体,同时程序初始化了一个全局变量CurrentUser。该变量用来指示当前是否有用户登陆,用户的ID和名称是什么等信息。Type Users ID As Integer Name As String Password As String LoginSuccess As BooleanEnd TypePublic CurrentUser As Users这里我们首先运行了frmLogin窗体,然后根据frmLogin窗体对用户信息的判断,由frmLogin窗体设置CurrentUser信息。如果成功,Cur
36、rentUser的LoginSuccess属性将为True,否则为False。如果CurrentUser的LoginSuccess属性为True,则主窗体显示当前用户登录的用户名。下面我们主要看frmLogin窗体的操作。图9 登录窗体这里我们详细讲解登录的全部过程,因为这个过程中涉及到DAO数据库访问的全部过程,因此我们将着重介绍这些过程。以后程序中使用同样功能的部分将不再介绍。Private Sub cmdOK_Click()Dim strUserID As StringDim strUserPwd As StringDim db As DatabaseDim rs As Recordse
37、t '获取用户输入 If txtUserName.Text = "" Then MsgBox "请输入正确的用户名", vbInformation txtUserName.SetFocus Exit Sub End If strUserID = txtUserName.Text If txtPassword.Text = "" Then MsgBox "请输入用户密码", vbInformation txtPassword.SetFocus Exit Sub End If strUserPwd = txtP
38、assword.Text '开始校验密码 Set db = OpenDatabase(DB_NAME) Set rs = db.OpenRecordset("select * from tblOperator where Name=" _ & Chr(34) & strUserID & Chr(34) & " and Password=" & _(34) & strUserPwd & Chr(34) If rs.RecordCount > 0 Then rs.MoveFirst Cur
39、rentUser.Name = strUserID CurrentUser.ID = rs!OperatorID CurrentUser.LoginSuccess = True Else CurrentUser.Name = "" CurrentUser.LoginSuccess = False CurrentUser.ID = 0 MsgBox "无效的用户名或者密码,请重新登录", vbCritical End If Set db = Nothing Set rs = Nothing Unload Me End Sub程序首先定义了四个变量,其中st
40、rUserID、strUserPwd是基本变量,用来临时存储用户的登录信息;db和rs是DAO对象变量,其中db是数据库对象,用于连接数据库,也可以用来直接执行部分SQL语句(insert、delete、update等,通过使用Database对象的Execute方法)。rs是记录集对象(Recordset),它可以对应数据库的一个表,或者是一个查询执行结果。Recordset是最为常用的数据对象,可以实现数据的漫游,数据的添加和删除。表7 RecordSet的常用方法AddNew增加一条新记录Delete删除当前的记录MoveFirst移动到最前面一条记录MoveLast移动到最后一条记录M
41、ovePrevious移动到前一条记录MoveNext移动到后一条记录Edit当前记录进入修改状态Update刷新当前记录集,将AddNew或者Edit所进行的操作提交到数据库对象变量在使用前需要进行实例化,这一点和普通变量是不同的。对象变量的实例化使用Set语句进行的。 Set db = OpenDatabase(DB_NAME) Set rs = db.OpenRecordset("select * from tblOperator where Name=" _ & Chr(34) & strUserID & Chr(34) & &quo
42、t; and Password=" & _(34) & strUserPwd & Chr(34)这里我们使用了DAO提供的OpenDatabase来进行db的实例化,其中DB_NAME是一个全局常量,在系统初始化时定义。 DB_NAME = App.Path & "Library.mdb"其中App是一个VB的对象,保存了应用程序的很多属性。在整个程序中我们使用了App对象的两个属性,即Path属性(表示应用程序所在的路径)和Title属性(表示应用程序的标题)。Db初始化完成以后就可以使用他的方法和属性。这里我们使用Databas
43、e对象的OpenRecordset方法来进行初始化,OpenRecordSet可以直接对一个表进行操作,例如OpenRecordSet(“tblCard”),也可以通过执行一个SQL语句来获得记录集,如上面的例子。我们查询数据库的管理员表,如果用户提交的登录信息存在,也就是用户是合法用户,则Recordset中有记录,否则recordset将返回一个空记录集。这里我们通过Recordset的RecordCount属性来访问。 If rs.RecordCount > 0 Then rs.MoveFirst CurrentUser.Name = strUserID CurrentUser.I
44、D = rs!OperatorID CurrentUser.LoginSuccess = True Else CurrentUser.Name = "" CurrentUser.LoginSuccess = False CurrentUser.ID = 0 MsgBox "无效的用户名或者密码,请重新登录", vbCritical End If如果用户存在,则我们将用户的信息复制到CurrentUser中,同时设置登录成功的标志。保存用户ID是因为针对管理员的所有操作都是通过其ID来访问的(而不是名称),这在其他几个表中有所反映。由于用户的ID绝对是唯一
45、的,而用户的名字可能不是唯一的。因为如果一个用户使用某一个用户名进行登记,此时这个用户名将备这个用户占用,别的用户将不能使用同样的名字。但是如果用户销户以后,用户名就可以被别的用户使用。只有用户ID是唯一的,即即使以后的用户使用同样的用户名进行注册,系统也会分配给他一个不同的ID,这样就可以区别他们是两个不同的用户。在程序中主要的表都使用了唯一的ID,都是基于这样的原因。对象使用完成以后必须显式的进行关闭和注销,这也是使用了set语句。进行注销时,只需要简单的将对象的值设置为nothing就可以了。 Set db = Nothing Set rs = Nothing整个数据库访问过程就结束了。
46、程序段的最后一句是unload me,me是一个窗体级变量,指向窗体变量自身,这句语句相当于unload frmLogin,也就是关闭当前的窗口。如果用户登录失败或者未登录,用户只能使用登录菜单或者帮助的关于菜单。在未登录的情况下,如果用户试图使用系统的其他功能,系统将会显示提示登录窗口。因为在程序在运行每一项功能的时候,都会检查用户的登录情况(也就是CurrentUser 的各项属性,主要是LoginSuccess属性),如果LoginSuccess为False,则意味者用户没有登录,系统将提示登录。如果我们不是简单的使用Boolean的字段,而是使用功能较为完备的机制,我们将可以实现复杂的
47、权限控制。图10 提示登录鉴权代码如下: If CurrentUser.LoginSuccess Then frmNewBook.Show Else MsgBox LoginPrompt, vbCritical End If通用的流程是,根据权限设置判定用户是否有权使用某项功能,如果有,则允许使用;如果没有,则给出错误的提示。用户登录成功以后就可以使用系统的所有功能。同时,主窗体上将会显示当前登录用户的名称。当然,如果用户选择注销,则主窗体会显示未登录。用户登录成功以后就可以使用系统的所有功能。图书管理包括新书入库和信息查询两项功能,都包含在图书管理的菜单下。5.3新书入库图11 新书入库新书
48、入库的程序段采用了更为完备的功能,它首先检测用户输入是否合法,然后整理用户的输入信息,通过Database的Execute方法将SQL语句写入到数据库中,由于写入过程有可能出错(数据库共享冲突、硬件故障等),所以代码段中使用了差错控制机制,VB的差错控制通过两个语句来完成On Error Goto Line_Indentity或者On Error Resume Next其中第一句表示如果发生错误时将转到Line_Indentity开始的地方进行处理,第二句表示如果发生错误时强制程序继续运行以后的语句。 str1 = "LibID" str2 = Chr(34) & Text1.Text & Chr(34) 5.4图书信息查询图书信息查询用于显示所有的图书信息,或者根据用户设定的条件进行查询,因此你将会在窗口的左上方看到两个Radio选项
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 26年银发认知能力评估步骤课件
- 面向程序基础设计 7
- 2022-2023学年人教B版(2019)高中数学必修第四册 10.1.1复数的概念课件1
- 2026年内蒙古包头市青山区中考语文一模试卷(含详细答案解析)
- 2025年设备监理师考试真题附答案
- 乱砍滥伐整治不力问题排查及整改报告
- 2025年监理工程师之监理概论高分通关题型题库附解析答案
- 大学生征兵工作总结
- 公路路政员试用期转正工作总结
- 上海市幼儿园课程十节示范课
- IPC7525B2011(CN)Stencildesignguidelines模板设计指南(中文版)
- 系统上线后运行情况汇报
- 劳动争议调解员培训课件
- 水电站大坝安全现场检查技术规程 -DL-T 2204
- 信用停车积分管理办法
- 建设用地报批培训课件
- 移动公司水电管理办法
- 涉密部门业务管理制度
- 回收制冷设备方案(3篇)
- 银行委托律师协议书
- 2025年中考数学总复习《圆综合》专项检测卷及答案
评论
0/150
提交评论