毕业论文范文网-论文范文
电气工程 会计论文 金融论文 国际贸易 财务管理 人力资源 学前教育 德语论文 工程管理 文化产业 工商管理 会计专业 行政管理 广告学
机械设计 汉语文学 英语论文 物流论文 电子商务 法律论文 工商管理 旅游管理 市场营销 药学论文 播音主持 人力资源 金融论文 保险学
制药工程 生物工程 包装工程 模具设计 测控专业 工业工程 教育管理 行政管理 计算机论 电子信息 市场营销 法学论文 财务管理 投资学
体育教育 小学教育 印刷工程 土木工程 书法论文 护理论文 心理学论 信息管理 公共事业 给水排水 新闻专业 摄影专业 广电编导 经济学
  • 范文首页 |
  • 毕业论文 |
  • 论文范文 |
  • 计算机论文 |
  • 外文翻译 |
  • 工作总结 |
  • 工作计划 |
  • 现成论文 |
  • 论文下载 |
  • 教学设计 |
  • 免费论文 |
  • 原创论文 |
搜索 高级搜索

原创毕业论文

当前位置:毕业论文范文网-论文范文 -> 免费论文 -> 计算机论文

Microsoft Visual Basic图书管理系统

作者: 浏览:7次
免费专业论文范文
免费专业论文
政治工作论文
计算机论文
营销专业论文
工程管理论文范文
医药医学论文范文
法律论文范文
生物专业论文
物理教学论文范文
人力资源论文范文
化学教学论文范文
电子专业论文范文
历史专业论文
电气工程论文
社会学专业论文
英语专业论文
行政管理论文范文
语文专业论文
电子商务论文范文
焊工钳工技师论文
社科文学论文
教育论文范文
数学论文范文
物流论文范文
建筑专业论文
食品专业论文
财务管理论文范文
工商管理论文范文
会计专业论文范文
专业论文格式
化工材料专业论文
英语教学专业论文
电子通信论文范文
旅游管理论文范文
环境科学专业论文
经济论文
人力资源论文范文
营销专业论文范文
财务管理论文范文
物流论文范文
财务会计论文范文
数学教育论文范文
数学与应用数学论文
电子商务论文范文
法律专业论文范文
工商管理论文范文
汉语言文学论文
计算机专业论文
教育管理论文范文
现代教育技术论文
小学教育论文范文
机械模具专业论文
报告,总结,申请书
心理学论文范文
学前教育论文范文

收费计算机专业论文范文
收费计算机专业论文
Delphi
ASP
VB
JSP
ASP.NET
VB.NET
java
VC
pb
VS
dreamweaver
c#.net
vf
VC++
计算机论文
毕业论文范文题目:Microsoft Visual Basic图书管理系统,论文范文关键词:Microsoft Visual Basic图书管理系统
Microsoft Visual Basic图书管理系统毕业论文范文介绍开始:

摘 要

 本文以学校图书馆管理系统为开发背景,针对于传统的人工图书管理方式存在的一些问题进行了调查分析,并按照软件工程的理论、方法和规范;遵循实用性、系统性、逐步完善、逐步发展的原则;采用结构化生命周期法和原型法相结合进行图书管理系统的开发。系统以Microsoft Visual Basic 6.0 作为前台界面开发工具,Microsoft SQL Server 2000作为后台数据库支持,并且采用了当前最流行的C/S运算模式,使其既有直观友好的用户界面、高效稳定的性能,又能与校园网紧密结合,充分发挥校园网的强大功能。该系统运行于Windows平台上,具有图书编目、典藏、流通、查询以及读者管理和报表生成打印输出等功能,基本实现了图书管理的网络化、信息化和自动化。
 
 
 
关键字: C/S校园网 信息系统 图书管理 读者管理

Abstract and Keywords

 This article depict the development for school library management system. I have made some inquisition and analysis aiming at some problems exist in artificial management for books. According to the theories , method and normal of software engineering and the principle of practicality . Systemicality gradual perfectness and gradual development, using the method of construction of life cycle combined with the prototype method. System used the Microsoft Visual Basic 6.0 conduct and actions as stage interface development tool, Microsoft SQL Server 2000 conduct and actions as backstage database support , and adopted the most popular C/S calculate the mode currently .So this system has intuitionistic and popular user’ interface , efficient and stable function . It is also closely combined with the campus net, so that the powerful function of campus net can be brought into full play. This system is designed running on the windows platform, It has functions of cataloging, collection, circulation, searching for books, readers management report print and so on. This system has fundamentally realized books management through network,  informationalization and automation .
 
 Keywords: C/S Campus Net   Information systems  
  Books Management    Readers Management
目录

第一章 前言 ……………………………………………………………………
第二章 管理信息系统 …………………………………………………………
 2.1管理信息系统概述 ……………………………………………………
 2.2 管理信息系统的结构  ………………………………………………
第三章 管理信息系统开发方法学 ……………………………………………
 3.1 管理信息系统的开发原则  …………………………………………
 3.2 管理信息系统的开发方法  …………………………………………
     3.2.1 生命周期法  …………………………………………………
     3.2.2 原形法  ………………………………………………………
     3.2.3 面向对象法  …………………………………………………
 3.3 图书馆管理系统开发方法的确定  …………………………………
第四章 系统的调查与分析 ……………………………………………………
    4.1 系统初步调查  ………………………………………………………
    4.2 可行性分析  …………………………………………………………
 4.2.1技术可行性 ……………………………………………………
 4.2.2经济可行性 ……………………………………………………
 4.2.3管理可行性 ……………………………………………………
 4.3 现行系统的详细调查 ………………………………………………
 4.4 新系统逻辑方案的提出 ……………………………………………
第五章 系统设计 ………………………………………………………………
 5.1系统的总体设计  ……………………………………………………
 5.1.1系统功能结构的划分 …………………………………………
 5.1.2系统环境的配置 ………………………………………………
     5.1.2.1确定系统设备配置的拓扑结构 ………………………
     5.1.2.2 机器选型 ………………………………………………
     5.1.2.3 软件配置 ………………………………………………
 5.1.3 确定系统的计算机处理流程 …………………………………
 5.2  具体物理设计 ………………………………………………………
 5.2.1 代码设计 ………………………………………………………
 5.2.2 输出设计 ………………………………………………………
 5.2.3 输入设计 ………………………………………………………
 5.2.4 数据存储设计 …………………………………………………
 5.2.4.1数据库设计的要求 ………………………………………
 5.2.4.2数据库设计的开发过程   ………………………………
 5.2.4.3 需求分析 …………………………………………………
 5.2.4.4 概念设计 …………………………………………………
 5.2.4.5 逻辑设计 …………………………………………………
 5.2.4.6 物理设计 …………………………………………………
第六章  系统实施 ………………………………………………………………
 6.1  程序设计 ……………………………………………………………
 6.1.1 流通 ……………………………………………………………
 6.1.2 读者管理 ………………………………………………………
 6.2 系统测试  ……………………………………………………………
 6.2.1 调试过程 ………………………………………………………
 6.2.2 调试方法 ………………………………………………………
第七章  系统管理与维护 ………………………………………………………
第八章 结束语  …………………………………………………………………
参考文献   ………………………………………………………………………

 

 

 

 

前言

 在当今知识大爆炸的时代,图书作为信息的一种载体,仍是人们获得知识的一种重要途径,因而作为图书管理与借阅的图书馆,它的运行情况则关系到知识的传播速度问题。以往旧的图书馆管理模式完全是手工操作,从新书的购买、编码、入库、上架,到借阅、续借、归还、查询,无一不是人工处理,需要大量的劳动力与工作量,而且由于人为的原因造成一些错误,也是再所难免的。当读者想要借阅一本书时,首先要查询大量的卡片,而且要有一定的图书管理知识,才能很快的查到。自己想要的图书,在借阅过程中还要填写许多相关的卡片,使得图书馆的管理效率低下,图书流通速度较慢,因而从一定程度上也影响了知识的传播速度。
 信息技术发展日新月异,区域信息化建设如火如荼,作为信息资源基础建设主体的图书馆面临着前所未有的挑战和机遇。
 近几年随着计算机技术、网络技术的不断发展和普及,目前很多学校都建起了校园网,进一步推动了图书馆的信息化建设。正是基于这种现状,我们开发了这套图书馆管理系统,该系统充分发挥了计算机技术、网络技术的强大功能,从整体上改善了图书馆的管理工作,提高了图书馆服务的功能和质量,实现了图书管理的信息化、网络化、自动化。
 
管理信息系统

2.1管理信息系统概述
科学技术的进步和生产的发展使人类知识总量的增长不断加快,生产社会化趋势的扩大和社会对产品需求的多样性使得组织在营运活动中所涉及的内部和外部信息量迅速地膨胀起来。,面对激烈的市场竞争,人们对这些信息进行收集、加工、传递等过程的时间性和准确性提出了更高的要求。这一切使得传统的手工作业为基础的信息系统陷入了机构日益庞大,效率日益降低的困境。电子计算机的出现为摆脱这种困境找到了出路。计算机用于管理信息处理的突出优点是迅速、准确、可靠、具有很大的存储能力,适应于管理信息量大、面宽的特点,适合于管理信息处理及时、准确的要求。
管理信息系统(MIS,Management Information System)是一个由人和计算机等组成的能够提供信息以支持一个组织机构内部的作业、管理、分析和决策职能的系统。管理信息系统利用计算机的硬件和软件,手工规程、分析、计划、控制和决策用的模型,以及数据库对信息进行收集、传输、加工、保存和使用。因此,管理信息系统是一个信息处理系统。
管理信息系统科学依赖于管理科学和技术科学的发展而形成的。管理信息系统科学的三要素是系统的观点,数学的方法以及计算机的应用。这三要素充分结合,相互利用,从而使管理信息系统形成了一个有着鲜明特色的边缘学科。
2.2 管理信息系统的结构
管理信息系统的结构是指管理信息系统各个组成部分之间相互关系的总和,它是信息收集和加工的体系。
管理信息系统的结构构成原则:职能式结构、横向综合结构、纵向综合结构、总的综合结构。

第三章 管理信息系统开发方法学

3.1 管理信息系统的开发原则
管理信息系统的开发是面向企、事业管理的一项应用软件工程。为了使开发工作顺利进行,使开发出来的系统达到实用可靠、高效先进的目的,系统开发一般应遵循如下原则。
实用性原则
实用性是系统开发所要遵循的最重要的原则,系统必须满足用户管理上的要求,即保证系统功能的正确性又方便实用,需要友好的用户界面、灵活的功能调度和完善的系统维护措施。为此,系统的开发必须采用成熟的技术,认真细致地作好功能和数据的分析,并充分利用代码技术、菜单技术及人机交互技术,力求向用户提供良好的环境与信心保证。
系统的原则
 管理信息系统是组织实体内部进行综合信息管理的软件系统,有着鲜明的整体性、综合性、层次结构性和目的性。它的整体功能是由许多子功能的有序组合而成的,与管理活动和组织职能相互联系、相互协调。系统各子功能处理的数据既独立又相互关联,构成一个完整而又共享的数据体系。因此,在管理信息系统的开发过程中,必须十分注重其功能和数据上的整体性、系统性,这就是我们所强调的系统的原则。
符合软件工程规范的原则
管理信息系统的开发是一项复杂的应用软件工程,应该按照软件工程的理论、方法和规范去组织和实施。无论采用的是那一种开发方法,都必须注重软件表现工具的运用、论文资料的整理、阶段性评审,以及重视项目管理。
逐步完善,逐步发展的原则
管理信息系统的建立不可能一开始就十分完善和先进,而总是经历一个逐步完善、逐步发展的过程。事实上,管理人员对对系统的认识不断得加深,管理工作对信息需求和处理手段的要求越来越高,设备需要更新换代,人才培养也需要一个过程。贪大求全,试图一步到位不仅违反客观发展的规律,而且使系统研制的周期过于漫长,影响了信心,增大了风险。
为了贯彻这个原则,开发工作应该先有一个总体的规划,然后分布实施。系统的功能结构及设备配置方案,都要考虑日后的扩充和可兼容程度,使系统具有良好的灵活性和可扩充性。
3.2 管理信息系统的开发方法
 开发一个管理信息系统,除了把握有关原则之外,采用的方法也是开发者们必须认真考虑的问题。目前,管理信息系统的开发方法有许多,如流行的生命周期法、原形法、面向对象法等。
3.2.1生命周期法
生命周期法的依据是软件生存期的概念。一个管理信息系统从它的提出、开发应用到系统的更新经历一个孕育、生长到消亡的过程。这个过程周而复始,循环不息,每一次循环称为它的一个生命周期。生命周期法就是按照软件系统的生命周期规律,给管理信息系统的开发定义一个过程,对其每一阶段规定它的任务、工作流程、管理目标及要编制的论文等,使开发工作易于管理和控制,形成一个可操作的规范。
管理信息系统的生命周期包括四个主要阶段:
 系统调查与分析
从用户提出的初始要求出发,通过初步调查,可行性分析,详细调查,以及在分析的基础上建立新系统的逻辑模型。
 系统设计
在系统调查与分析的基础上,对新系统进行物理设计。包括系统的总体设计,代码设计,输出/输入设计,数据存储设计。
 系统实施
按照实施方案对新系统进行环境的实施,程序设计,调试,转换和系统验收等,最后交给用户使用。
 系统管理与维护
包括系统投入正常运行后的管理,维护与评价等。此阶段直至提出更新系统的要求,从而进入下一个生命周期为止。
生命周期法通常是在系统需求比较确定的情况下采用。它具有目标明确,阶段性强,开发过程易于控制的优点。但往往由于周期长,见效慢,风险也就比较大。在实际开发中,这种传统的开发方法已经逐渐渗入新的思想,或者与其他方法结合起来使用。
3.2.2原形法
原型法是计算机软件技术发展到一定阶段的产物。与生命周期法系统开发方法不同,原型法不注重对管理系统全面的、系统的详细调查与生命周期法分析,而是本着系统开发人员对用户需求的理解,先快速实现一个原型系统。然后通过反复修改来实现管理信息系统。
原型法提出了一种从设计到工具,手段都全新的系统开发方法。它扬弃了那种一步步周密细致地调查分析,然后逐步整理出文字方案,最后才能让用户看到结果的烦琐作法。它一开始就凭借系统开发人员对用户要求的理解,在强有力的软件环境的支持下,给出一实实在在的系统原型,然后与用户反复协商修改,最终形成实际系统。原型法设计示意图如图3—1所示。

3.2.3面向对象法
面向对象方法又简称OO方法。它产生于60年代。80年代以来,随着应用系统日益复杂,庞大。面向对象方法以其直观,方便的优点获得广泛应用。面向对象方法以类,类的继承,聚集等概念描述客观事物以及联系。为管理信息系统的开发提供了全新的思路,面向对象方法以对象为中心。
 面向对象方法学认为,客观世界是由各种各样的对象组成的。每种对象都有各自的内部状态和运动规律,不同的对象之间的相互作用和联系就构成了各种不同的系统。设计和实现一个客观系统时,如能在满足需求的条件下,把系统设计成由一些不可变的(相对独立)部分组成的最小集合,它就把握了事物的本质,因而不会被周围环境(物理环境和管理模式)的变化以及用户没完没了的变化需求所左右,这些不可变的部分就是所谓的对象。对象是OO方法的主体,其特征主要有模块性,继承性和类比性,动态连接性。
3.3图书馆管理系统开发方法的确定
对于大系统和缺乏经验的情况,采用生命周期法可以立足全局,步步为营,减少返工,有利于提高开发质量,加快工程进度。而原型法可以加速系统开发中用户需求的获得,有助于解决规模不大但不确定的因素较多的管理决策问题,有助于提高系统开发的效率和有效性。根据面临的实际情况,综合考虑上述两种开发方法的特点,在图书馆管理系统开发过程中采取结构化生命周期法与原型法相结合,总体上采用结构化生命周期法,而在系统实施阶段采用原型法。

第四章 系统的调查与分析

 系统的调查与分析,简称系统分析,是管理信息系统开发工作的第一个阶段,也是最重要的一个环节。系统分析在整个系统开发过程中是解决系统是“干什么”的,逐步明确系统的目标,系统的界面以及系统的基本功能等。为下一阶段进行物理方案设计,解决“怎么干”提供依据。
这个阶段的主要活动有:系统初步调查、可行性研究、系统详细调查、新系统逻辑方案的提出。
4.1系统初步调查
系统的初步调查是系统分析的第一项活动,也是整个系统开发的第一项活动。初步调查是在“图书馆”的最高层进行的,系统分析员站在高层观察“图书馆”的现状,分析系统的运营情况。初步调查主要由两部分组成:一般调查和信息需求调查。前者包括了解“图书馆”的内部环境和管理目标,调查分析“图书馆”的业务流程,明确进行改造的需求以及确定系统目标和主要功能;后者是初步调查的主要内容,调查组织系统的工作职责和各职能部门所要处理的数据。
本系统的初步调查采用的主要方式是系统分析人员与“图书馆”的主要的管理人员进行交流,询问情况,掌握第一手资料。图书馆现行的图书管理方法是完全以人工的方式进行的图书的编目、典藏、查询、流通和维护等工作。
4.2 可行性分析
可行性分析也称可行性研究,是决策部门在采取一项重大改革或投资行动之前,对该项目的必要性和可能性进行分析与论证的活动。
4.2.1 技术可行性
图书馆管理系统是在局域网环境下,采用C/S(客户端/服务器)的体系结构。即客户端程序向数据库服务器发布标准SQL命令和接收数据库服务器的运算结果,数据库服务器则负责数据查询、更改、统计等运算,并将运算结果返回客户端。这是世界上较先进的运算模式,这一运算模式的好处是数据运算集中在服务器端进行,在网络上传输的只是检索式与运算结果。
增强的数据可靠性机制。增加了大型数据库才有的提交机制,因此数据操作更为安全可靠。
1.采用进入功能的口令权限检查,对应不同的用户拥有不同操作权限。这些口令又可以方便地进行修改,系统并对设置的口令自动进行加密处理。(对于口令修改是由图书管理员本人来完成的)
2.对数据进行分类,以便区分各种功能对数据的读或写访问,分别授以不同的功能访问权限,特别是只能对自己有权修改的数据执行写操作。
易使用性。通过专门的查询设计,可进行高效率检索查询。系统不仅可以进行单条件查询还可以进行多条件的组合查询。
4.2.2经济可行性
 新系统利用现有的校园网资源,节省了购买设备的费用;新系统自行设计自行开发,具有很高的性价比;新系统投入使用后,可节省人力,减轻劳动强度,从而降低了成本,节省了开支。
4.2.3管理可行性
旧的图书馆管理模式完全是手工操作,从新书的购买、编码、入库、上架,到借阅、续借、归还、查询,无一不是人工处理,需要大量的劳动力与工作量,而且由于人为的原因造成一些错误。
新的图书馆管理系统充分发挥了计算机技术、网络技术的强大功能,从整体上改善了图书馆的管理工作,提高了图书馆服务的功能和质量,实现了图书管理的信息化、网络化、自动化。
通过对经济、技术、管理可行性的充分研究,确定了图书馆管理系统的开发是必要的、可行的。
4.3 现行系统的详细调查
现行系统详细调查是在可行性研究的基础上进一步对系统进行全面的深入的调查和分析。弄清现行系统的运行状况,发现其薄弱环节,找到要解决问题的实质。确保新系统比旧系统更有效。调查采用按事先准备好的提纲和有关管理人员进行面谈的方式,由上而下、逐步细化地对图书馆管理工作进行了解。随着教学规模日益扩大,图书信息量不断增加,现在决定建立图书馆管理系统,要把图书管理计算机化,逐步实现图书馆管理的现代化。
详细调查的一项工作是对管理业务的流程进行描述,在这里我们采用系统流程图中部分工具来描述业务流程图,符号说明如图4—1所示,现行图书馆管理系统业务流程图如图4—2所示。
 
 
4.4新系统逻辑方案的提出
逻辑方案是新系统开发中要采用的管理模式和信息处理方法。系统分析阶段的详细调查、系统化分析都是为建立新系统的逻辑方案作准备。逻辑方案是系统分析阶段的最终结果,也是今后进行系统设计和实现的依据。
这一阶段的主要目标是明确用户的信息需求,确定新系统的逻辑功能,提出新系统的逻辑方案,创建新系统的逻辑模型。新系统的逻辑模型与调查所得的现行系统的逻辑模型相比,变化并不大,可能只是在功能、业务流程等方面加以改进。
因此,建立新图书馆管理系统的逻辑模型是在现行系统的调查与分析的基础上,了解系统存在的问题,对影响其效率的不合理因素作出修改,并最终形成新的逻辑方案。对现行图书馆管理系统的分析和修改从以下几方面进行:
1.现行系统功能的改进。图书馆现行的图书管理方法是完全以人工的方式进行的图书的编目、典藏、查询、流通等工作。新图书馆管理系统基于计算机和网络技术,实现编目、典藏、流通、读者、查询、系统维护功能。新系统对整体功能进行完善,增加了读者管理功能。新系统对子系统进行调整和划分,编目包括图书/期刊简易编目和维护作业;典藏可以进行新增、修改及删除馆藏等操作;流通实现借书、还书、续借等各项操作;读者实现对读者资料的各项操作;查询按读者个人借阅情况、编目、馆藏及分类进行查询;系统维护实现对操作员的管理与维护、系统参数维护、操作员登录密码的修改等。
2.业务流程的改进。新图书馆管理系统对原系统中没有但又必要的环节要增补,不必要的多余环节要删去,重复的环节要合并,使业务流程更加科学、合理和讲求效率。新图书馆管理系统的业务流程图如图4-3所示。

 

 


 

 

 

 

 

 


第五章 系统设计
 
系统设计是管理信息系统开发过程的第二个阶段。在这一阶段中我们将根据系统调查与分析阶段的结果,进行新系统的设计。系统设计包括两个方面的工作:首先是系统总体结构的设计,即把系统的功能分解成许多基本的功能模块,确定它们之间的联系,规定它们的功能和处理流程;其次是具体的物理设计,即对实现系统的各项功能,选择具体的技术手段和处理方式。因此,如果说系统研制人员在系统调查与分析阶段的任务是在逻辑上弄清楚系统“作什么”的话,在系统设计阶段的任务则是在物理上确定系统“如何去做”。
系统设计包括如下工作内容:
系统的总体设计
系统功能结构的划分
系统环境的配置
确定系统的计算机处理流程
具体物理设计
代码设计
输出设计
输入设计
数据存储设计

5.1系统的总体设计
系统的总体设计,是指在系统调查与分析的基础上,对整个系统在结构上的划分,硬软件环境的配置和确定子系统与模块的处理流程。
5.1.1系统功能结构的划分
总体设计最核心的问题是系统总体功能结构的确定和子系统与模块的划分。结构化系统设计的思想,就是自顶向下地将系统划分为若干个子系统,而子系统又划分为模块,模块又划分为子模块,层层划分直到每一个模块能够作为计算机可执行的单独程序为止。
从图书馆管理系统的整体出发,根据系统的目标将其分解成一系列子系统,各个子系统既相互配合,又各自具有一定的独立功能,共同实现整个系统的目标。然后每一个子系统都根据目标和功能的关系,再进一步逐层向下分解,直到分解到最小的子系统为止。越上层的子系统其功能越笼统、越抽象,越下层的子系统其功能越简单、越优越,越具体。对于每一个子系统或系统模块,都应该尽量使其相对独立,要尽可能减少各个子系统之间的联系。
 系统划分的结果最终为一张分层的树型结构图——图书馆管理系统的功能结构图如5—1所示。
根据图书管理的功能要求,结合学校图书馆的实际情况,系统分成以下若干模块:编目、典藏、流通、读者、查询、系统维护。各模块完成如下功能:
编目:实现图书/期刊的简易编目与维护。其中“图书/期刊简易编目”作业的作用是新增简单编目,可简单至只需要入书刊名、作者、语种。“图书/期刊简易维护作业”的作用是处理图书和期刊的编目信息,在这里可以查询书目、修改书目和进行馆藏维护等工作。
典藏:实现对馆藏资料的管理和维护。在“典藏资料管理”作业中操作员可以进行新增、修改及删除馆藏等操作。
流通:实现图书馆柜台出纳的各项操作。流通柜台是图书馆对外的窗口,馆员可在“柜台出纳”作业中按读者证号查询读者相关资料及其借书、还书、续借等情况,并进行借书、还书、续借等各项操作。
读者:实现对读者资料的各项操作。在“读者管理”作业中可以按照各种条件来查询读者相关资料,并进行新增读者、修改读者资料、删除读者、换借阅证、证件挂失、重新设置读者权限、更改读者身份、办理读者的离校/离职等各项操作。
查询:实现对读者个人借阅/预约情况查询、编目查询、馆藏查询及分类查询。“读者个人借阅/预约查询”、“编目查询”和“馆藏查询”作业可以按照所选择或输入的多项查询条件,以条件之间的“与”、“或”关系进行查询。“分类查询”作业则是按照图书分类法,从大类直到细类逐层进行查询。
系统维护:实现对操作员的管理与维护、系统参数维护、操作员登录密码的修改等。其中“操作员管理”作业可对系统操作人员进行管理与维护,包括对部门和组员的增加与删除,并可对组员的各项权限进行修改。“系统参数维护”作业可对系统内使用到的各种数据、参数等进行维护,例如管理员可以编辑或修改“读者身份”、“借阅规则”等(注:系统内默认“读者身份”中教师读者的书刊借阅、预约数为10,学生读者的书刊借阅、预约数为5:默认“借阅规则”中外借天数为30天,既借阅当天日期向后顺延30天)。“修改登录密码”作业用来修改操作员的登录密码。
5.1.2系统环境的配置
系统环境的配置包括确定系统设备配置的拓扑结构、机器设备的选择和软件配置方案的确定。
5.1.2.1确定系统设备配置的拓扑结构
从学校图书馆的管理模式出发,图书馆管理系统分为几个职能子系统。根据这种特点,网络采用微机局域网作为系统的基本物理结构。为了提高整个图书馆管理系统的可靠性和扩充性,系统采用C/S(客户端/服务器)运算模式。客户端程序向数据库服务器发布标准SQL命令和接收数据库服务器的运算结果,数据库服务器则负责数据查询、更改、统计等运算。由于大型数据库的多任务,多线程机制比较完善,当大量用户通过网络访问数据库时,系统性能下降比率是非常小的。至今为止,这是世界最先进的运算模式,这一运算模式的好处是数据运算集中在服务器端进行,在网络上传输的只是检索式与运算结果。
图书馆管理系统网络拓扑图如图5-2所示。

5.1.2.2机器选型
由于本系统是由各部门使用,各部门之间相隔较远,不宜数据集中处理,所以应校园网为基础进行数据的共享和交换处理。全部数据库存放在中心服务器里,各个终端通过局域网对数据库进行操作。根据学校的规模以及图书的数量,决定数据库的容量以及留有数据的一定冗余量和备份,从而确定服务器需要大约120G硬盘空间、512M内存空间。根据系统的实用性,即系统对数据进行交换、处理的速度要求,服务器终端宜用586以上的微机。

服务器:CPU:P4 2.0G   内存:512M   硬盘:120G
客户机:586以上微机,64M以上的内存,50M以上可用硬盘空间。
5.1.2.3软件配置
服务器:操作系统    Windows 2000 Server      
        数据库系统   SQL Server 2000  
客户机:操作系统    Windows 98、Windows 2000
        应用程序   VISUAL BASIC 6.0
网络协议:TCP/IP
Windows 2000 现已成为人们普遍接受的网络操作系统。Windows 2000支持多种多重CPU,支持与大型计算机相同的高容量内存,支持多种网络协议,Windows 2000是局域网络、广域网络,甚至是分布式网络操作系统。

图书管理系统以SQL SERVER 2000大型数据库系统为数据库。
SQL SERVER是MICROSOFT 服务器套件BACKOFFICE的成员之一,是面向网络的新一代企业级服务器(MICROSOFT.NET ENTERPRISE SERVERS),它代表着数据库的发展趋势。从功能上讲,它是一个面向网络的为大型数据库提供存储、分析和数据挖掘的平台,可以自成系统,也可以是一个加在既有系统之上的系统。它与其他软件(WINDOWS NT、 INTERNET INFORMATION SEVER、EXCHANGE SERVER等)能有机结合,并充分利用它们所提供的服务或功能(如安全管理、事件日志,性能监视器、内存管理和异步I/O等),从而增强了SQL SERVER数据库系统的功能,同时占用较少的系统资源。未来微软有关数据存储方面都会依靠SQL SERVER。
SQL SERVER 数据库管理系统是一个高性能的关系型数据库管理系统,它具有完全的客户端/服务器体系结构。这一结构可以更有效的使用网络,因为在客户端/服务器运算模式下,数据库的查询操作都集中在服务器方进行,在网络上传输的是用户的请求命令和服务器的检索结果,而不是整个数据库文件,这样可以减少网络上的信息流量,从而提高网络的使用效率。
SQL SERVER 是多线程体系结构,支持多线程操作,在多用户并发访问时,系统在产生较小额外负担的情况下能够进行并行处理,从而减少内存需求,提高系统的吞吐量。在用户数量增加时,SQL SERVER的运行速度也不会明显变慢。
SQLServer 在性能方面的扩展性非常好,而且速度很快。它很明确的一点是它只专著于Windows ,因而可以百分之百地为这个操作系统而优化,不需要为适应别的操作系统来牺牲自己的性能。

图书馆管理系统以Microsoft VISUAL BASIC 6.0 为主要开发工具。
VISUAL BASIC 6.0是Microsoft 服务器套件BackOffict的成员之一,它能与微软的其他产品如Microsoft SQL Server 、Windows 2000、Windows 98完美结合。
5.1.3确定系统的计算机处理流程
这项工作的主要任务是给组成系统的各个子系统和模块勾画出大致的计算机处理流程。目的是让开发人员明确子系统或模块中信息的流动、转换、存储和处理情况,以便进一步明确模块物理设计及日后模块实现的任务和工作要点,从而把系统的总体设计思想落实到每一个子系统和功能模块之中。
子系统和模块计算机处理流程,可以用一种基于计算机处理的业务流图来表示。图书馆管理系统计算机处理的业务流图如图5-3所示。

 

 

 

     

 

 

5.2 具体物理设计
5.2.1代码设计
代码是一组有序的数字或字母的排列,是代表客观存在的实体或属性的符号,代码设计就是给系统中某些实体及其属性予相应的编码。在管理信息系统中,代码是人和计算机对实体及其属性进行识别、记载和处理的共同语言,成为人和机器交换信息的有力工具。
通过对数据库及彼此之间的联系进行分析,对所有数据文件中的主码和外来码的构成进行设计。
  本系统中进行数据库数据元素的代码设计主要应用复合码和助忆码的设计方法。
    复合码:复合码是一种应用较多的含义码,它常常是由两个或两个以上完整独立的代码组成。例如:读者姓名可表示为 “ReadNa”,书目号可表示为“BookID”。
  
               ╳╳╳        ╳╳╳
                 ↓            ↓
             表征对象特征    表征对象属性
                                       
助忆码: 既用文字、数字或英文来表示客观事物的特点属性。其特点可通过联想帮助记忆。如:馆藏地——Place 。
5.2.2输出设计
输出设计在系统设计中占有重要的地位,因为输出是向用户提供信息处理结果的唯一手段,也是评价一个信息系统的重要依据之一。另一方面,从系统开发的角度来看,输出决定输入,即只有明确了输出,才能最后确定输入。
对于输出,用户最关心的是输出的内容与格式,看它是否符合系统功能和用户所需的要求。因此,输出设计的详细步骤应该包括确定输出内容、选择输出方式和进行具体的输出格式设计等。
 图书馆管理系统输出内容包括满足图书馆管理员所需的各种报表和借阅证等;输出方式选择打印机打印各种数据和报表,终端显示器显示数据、文本和图形;输出格式选用表格式和多窗口关联式。(表格式包括读者情况表和借阅证等。多窗口关联式是在屏幕输出中多窗口显示关联数据的格式,此格式能够实现关联数据的实时动态响应,尤其适合于基本信息查删改操作,是目前流行的一种屏幕输出风格。)
输出设计示例:
表5-1显示读者借阅证的输出设计格式。


5.2.3输入设计
输入设计是根据系统对数据输入功能的要求,在保证输入信息的正确性的前提下,确定输入信息的内容、输入方式和进行具体的输入格式设计。
图书馆管理系统输入内容是根据输出功能的要求来确定各种输入的数据项;输入方式选用键盘人工输入;输入格式为全屏幕编辑方式,在屏幕上造出与数据库相一致的表,通过移动记录指针或选择字段实现记录的追加、修改和删除等操作。
5.2.4数据存储设计
数据存储设计的任务是根据系统功能的要求(特别是数据存储的要求),决定数据的组织形式和存储方法,以便获得最好的文件结构和文件组织形式。数据存储设计主要是进行数据库设计。
5.2.4.1 数据库设计的要求
 管理信息系统的数据都被组织成数据库的形式。因此数据库设计也是管理信息系统系统设计的重要组成部分。数据库必须根据用户的具体要求进行分析和设计。它的核心问题是如何从系统的观点出发建立一个数据模式,并且要满足一定的条件,即符合用户的需求;与所选用的DBMS所支持的数据模式相匹配;数据组织合理、应易操作、易维护,易理解。
5.2.4.2 数据库设计的开发过程
 数据库设计是要在一个给定的应用环境中通过合理的逻辑设计和有效的物理设计来构造较优的数据库模式,建立数据库及其应用系统,满足用户的各种信息需求。从数据应用系统和开发的全过程来考虑,数据库的设计可分为四个阶段:需求分析、概念设计、逻辑设计、物理设计。需求分析阶段综合用户的需求;在概念设计阶段形成独立于数据库管理系统DBMS的概念模式(可用E/R图描述);逻辑设计阶段将概念模式转化为DBMS支持的数据模型(如关系模型),形成数据库的逻辑模式。然后根据用户的需求,在基本表的基础上建立必要的视图形成数据的外模式。在物理设计阶段根据DBMS的特点和处理要求,进行物理存储安排,建立索引形成数据库内模式。下图5-4为数据设计开发过程的描述:
 
 
 
 
            应用1                   应用1          应用2           应用3


                                                                映象
            应用2

 

            应用3

       
                       综合               映象              映象

图5—4数据库设计开发过程的各级模式示意图
5.2.4.3需求分析
读者信息的操作流程如图5-5所示:

馆藏信息的操作流程如图5-6所示:

3. 图书管理员
   图书管理员的工作是完成读者和馆藏信息的新增、修改、查询和删除以及对读者借阅、续借、归还的确认。
5.2.4.4 概念设计
 概念设计就是将现实世界中的客观对象设计成不依赖于任何具体机器的信息结构,这种信息结构不是DBMS支持的数据模型,而是概念级模型。因此,概念模型可以看成是现实世界到机器世界的一个过渡的中间层次。也就是说概念模型的设计与数据库将来怎么实现无关。
 概念设计的表示方法最常用的是实体—联系方法,这个方法是用E—R图来描述某组织的概念模型。图书馆管理系统的E—R图如图5—7所示:
 
5.2.4.5逻辑设计
 逻辑设计的任务就是把概念设计阶段的E—R图转换为DBMS支持的数据模型(如关系模型),形成数据库的逻辑模式。转化时要解决的问题就是如何将实体间的联系转化为关系模型:
 对于实体,将每个实体转换为一个关系,实体的属性即为关系的属性,实体的码即为关系的码。
 若实体间的联系是1 :1,可以在两个实体转换成两个关系中任意一个关系的属性中加入另一个关系的码。
 若实体间的联系是m :n,则将联系转换为关系。关系的属性为诸实体的码加上联系具有的属性,而关系的码为诸实体码的组合。
5.2.4.6 物理设计
 物理设计是为数据模型在存储设备上选择合适的存储结构和存储方法,以获得数据库的最佳存取效率,其设计原则如下:
 1. 尽可能的坚守数据冗余和重复
 合理的数据库表的设计应该是在满足需求的前提下,是数据的重复量小,应尽量按照关系数据库系统理论方法去设计一个数据库,减少数据的冗余。
 2. 构设计与操作设计相结合
 在设计数据库结构时,有时为了编程实现的简捷和思路的清晰,往往故意增加一些冗余数据,这虽然有同于传统的关系数据库理论,但是考虑到选择的机器型号和档次等因素,如果增加的冗余数据不会明显增加存储空间、降低处理效率,并且对编程实现有很大的帮助,往往可以采用这种方法。
 3. 数据结构具有相对的稳定性
 数据结构的相对稳定性,可以作为新、旧信息系统转换的依据,无论采用何种方法或手段去处理日常事物,都应该能完成相应的功能,决不会因为采用了计算机而丢失了必要的功能,或彻底改变了原有的工作流程和模式,计算机系统的建成是建立在对原系统充分调研的基础上的,它既不能脱离原系统的大框架,也不是简单的重复和代替,所以数据库表结构设计应保证数据的相对稳定性,这样才能考虑到在新的数据结构下的业务处理方式。
基于上述这些设计原则,本系统中关于数据库的结构设计如下:
数据库名为book,共有22个表:
  1.BM(编目)
字段名 字段类型 字段长度 小数位 字段说明
BookID Varchar 10  书目号
Booktype Varchar 1  图书类型(中文图书,中文期刊,西文图书,西文期刊)
Yz Varchar 20  语种
BookNa Varchar 50  书刊名
ISBM Varchar 30  ISBM
Author Varchar 20  作者
Cbs Varchar 50  出版者(出版社)
Cbd Varchar 20  出版地
Cbn Varchar 4  出版年
Zt Varchar 50  主题
Csna Varchar 50  丛书名
Price Varchar 5 (8,2) 价格
ZttypeID Varchar 20  中国法分类号
Sfgc Varchar 1  是否馆藏
Djrq Varchar 8  登记日期
Zip_id Varchar 20  邮发代号(期刊)

2.Bmtb(操作员所在部门表)
字段名 字段类型 字段长度 小数位 字段说明
Bmbh Varchar 3  部门编号
Bmna Varchar 30  部门名称

3.Czry(操作员表)
字段名 字段类型 字段长度 小数位 字段说明
Bh Varchar 5  编号
Xm Varchar 8  姓名
Mm Varchar 8  密码
Bmbh Varchar 3  部门编号
Qx Varchar 50  权限

4.Dwdm(单位代码)
字段名 字段类型 字段长度 小数位 字段说明
DwID Varchar 3  单位编号
Dwmc Varchar 30  单位名称
Dwlx Varchar 20  单位类型

5.Dwlx(读者身份)
字段名 字段类型 字段长度 小数位 字段说明
DzID Varchar 5  读者身份编号
Dzdm Varchar 5  读者代码
Dzmc Varchar 20  读者名称
Kjcs Int 4  可借册数
Kyycs Int 4  可预约册数

6.Dzzt(读者状态)
字段名 字段类型 字段长度 小数位 字段说明
ZtID Varchar 2  状态编号
Ztmc Varchar 30  状态

7.FJP(附件品)
字段名 字段类型 字段长度 小数位 字段说明
FJID Varchar 2  附件编号
FJmc Varchar 20  附件名称

8.Flc(次分类)
字段名 字段类型 字段长度 小数位 字段说明
Cflh1 Varchar 5  次分类号1
Cflh2 Varchar 5  次分类号2
Cfl Varchar 30  次分类号名称
Csm Varchar 50  次分类说明

9.Flf(分类法)
字段名 字段类型 字段长度 小数位 字段说明
TypeID Varchar 3  分类法编号
TypeDM Varchar 5  分类法代码
Typemc Varchar 30  分类法名称

10.Flxx(分类细目<每类>)
字段名 字段类型 字段长度 小数位 字段说明
Flh Varchar 5  细分类编号
Fl Varchar 30  细分类名称
Sm Varchar 50  说明

11.Flxz(分类细则)
字段名 字段类型 字段长度 小数位 字段说明
Flh1 Varchar 5  分类起始号
Flh2 Varchar 5  分类终止号
Fl Varchar 30  分类名称
Sm Varchar 50  说明

12,Gc(馆藏)
字段名 字段类型 字段长度 小数位 字段说明
BookID Varchar 10  书目号
BookNa Varchar  30  书刊名
Bookbh Varchar 10  图书登录号
TypeID Varchar 20  分类号
Gcadd Varchar 20  馆藏地
Tch Varchar 20  特藏号
Flf Varchar 30  分类法
Tszt Varchar 20  图书状态
Tsyt Varchar 20  图书用途
Bookyear Varchar 30  年代范围
Copynum Int 4  复本书
Csh Varchar 20  册次号
Price Numeric 5  导购实价
Bj Varchar 50  注记
Rcjq Varchar 50  入藏卷期
Zch Varchar 5  种次号
Bookindex Varchar 50  索书号
Djrq Datetime 8  登记日期
Djr Varchar 10  登记人

13,ISBN
字段名 字段类型 字段长度 小数位 字段说明
Isbndm Varchar 20  Isbn代码
Cbz Varchar 30  出版社
Cbd Varchar 30  出版地

14,place(馆藏地)
字段名 字段类型 字段长度 小数位 字段说明
PlaceID Varchar 2  编号
Place Varchar 20  馆藏地

15.Readdz (读者)
字段名 字段类型 字段长度 小数位 字段说明
ReadID Varchar 12  读者证号
ReadNa Varchar 12  读者姓名
Sdeptype Varchar 30  单位所系
Readsf Varchar 30  身份
Readzk Varchar 30  读者状况
Readsex Varchar 2  读者性别
Sfzh Varchar 18  身份证号
Brith Email 8  生日
Temptel Varchar 30  联络电话
Parmtel Varchar 30  永久电话
Tempadd Varchar 80  联络地址
Parmadd Varchar 80  永久地址
Email Varchar 40  Email
Grade Varchar 20  年级
Kjycs Int 4  可借阅册数
Kyycs Int 4  可预约册数
Jyfqr Datetime 8  借阅复权日
Yyfqr Datetime 8  预约复权日
Jyfqr Datetime 8  借阅违规日
Yyfqr Datetime 8  预约违规日
Jywges Int 4  借阅已违规次数
ywges Int 4  预约已违规次数
Readmemo Varchar 254  读者备注
Yjycs Int 4  已借阅册数
Yyycs Int 4  已预约册数
Password Varchar 30  用户密码
BzrID Varchar 12  保证人证号

16,Sjly(数据来源)
字段名 字段类型 字段长度 小数位 字段说明
SjID Varchar 2  编号
Sjmc Varchar 30  名称

17.Tch(特藏号)
字段名 字段类型 字段长度 小数位 字段说明
TcID Varchar 2  特藏代码
Tcmc Varchar 20  特藏名称

18.Yt(用途表)
字段名 字段类型 字段长度 小数位 字段说明
YtID Varchar 1  用途号
Ytna Varchar 20  用途名

19.Yzdm(语种表)
字段名 字段类型 字段长度 小数位 字段说明
Yzdm Varchar 3  语种代码
Yzmc Varchar 30  语种名称

20.Zt(状态)
字段名 字段类型 字段长度 小数位 字段说明
 ZtID Varchar 2  状态号
Ztnc Varchar 20  状态名

21.Readjl(读者借阅记录)
字段号 字段类型 字段长度 小数位 字段说明
ReadID Varchar 12  读者证号
Bookbh Varchar 10  图书登录号
Bookna Varchar 30  书刊名
Jyrq Datetime 8  借阅日期
Yhrq Datetime 8  应还日期
Xjcs Int 4  续借次数
Cq Varchar 2  超期
Place Varchar 20  馆藏地
Cbs Varchar 30  也版社
Bz Varchar 1  借还标志
Author Varchar 20  作者
Hsrq Datetime 8  还书日期

22.Jygz(借阅规则)
字段名 字段类型 字段长度 小数位 字段说明
Wjcs Int 4  外借册数
Xjcs Int 4  续借次数
Wjts Int 4  外借天数
Kxts Int 4  宽限天数
Fkyj Numeric 5 (5,2) 罚款规定
Sffk Varhcar 2  是否罚款

第六章 系统实施

在管理信息系统的生命周期中,经过了系统分析和系统设计阶段以后,便开始了系统实施阶段。系统实施阶段要继承此前各阶段的工作成果,将技术设计转化成为物理实现,因此系统实施的成果是系统分析和设计阶段的结晶。此阶段需要完成程序设计和系统调试等任务。
6.1 程序设计
程序设计是系统实施工作中工作量最大、耗时最多的工作,是开发管理信息系统的主要环节。正确的程序设计思想和良好的方法学指导是非常重要的。传统的结构化程序设计把一个大程序分解成具有层次结构的若干个模块,每层模块在分解成下一层子模块,如此自顶向下,逐步细分,就可以把复杂的大模块分解成功能单一的小模块。在这些小模块完成设计之后,再按其逻辑结构,层层向上组织起来,大的程序就得到了解决。而近几年出现的面向对象程序设计方法,以对象和类为基本构件,以方法、消息和继承为基本机制,其基本思想和手段是提高软件开发的抽象层次与软件的重用性,把程序设计的焦点集中在类和类层次结构的设计、实现和重用上,从而使程序设计更加符合人类对现实世界的理解和描述,大大提高了程序设计的能力。
基于上述特点,决定了采用结构化程序设计和面向对象程序设计相结合的方法,以Microsoft Visual Basic 6.0 为开发工具进行程序设计,不仅实现了系统各模块的功能,而且具有直观友好的用户界面,使用户操作简单、方便、快捷,也大大减轻了管理员的工作量,提高了图书馆管理的自动化程度。
我负责读者和流通两大模块的设计工作,以下对两大模块的程序设计工作分别做详细的介绍。
6.1.1流通
选择【流通】菜单中的【柜台出纳】命令,出现如图6-1所示窗口。

图6-1【柜台出纳】窗口
【柜台出纳】主要功能:
     流通柜台是图书馆对外的窗口,实现图书馆柜台出纳的各项操作,是图书馆业务的主要环节之一。馆员可在“柜台出纳”作业中按读者证号查询读者相关资料及其借书、还书、续借等情况,并进行借书、还书、续借等各项操作。
【柜台出纳】主界面由以下三部分组成
左侧『查询条件』框架。
右侧『借书』选项卡。
右侧『还书』选项卡。
『查询条件』
『查询条件』主要功能:
 可以根据输入的读者证号查询出符合条件的读者资料。
 读者资料包括读者姓名、单位所系、读者状况、读者身份、已借册数、可借册数、读者备注以及借书、还书、续借情况。
『查询条件』有3个功能按钮:确认、刷新、退出

(1)确认按钮:     (Command1)
【功能】
 为本框架内与数据库有联系的文本框、列表框及表格控件TDBGrid1和TDBGrid2等连接数据源,并在右侧列表中显示出该读者前次借阅图书信息和归还情况。
【代码】
Private Sub Command1_Click()
Dim dzRS As New ADODB.Recordset
dzRS.Open "select * from readdz where readID='" + Trim(txtdz(0).Text) + "'", g_CN, adOpenKeyset
If dzRS.RecordCount > 0 Then
    txtdz(1).Text = dzRS!readNA
    txtdz(2).Text = dzRS!sdeptype
    txtdz(3).Text = dzRS!readzk
    txtdz(4).Text = dzRS!readsf
    txtdz(5).Text = dzRS!yjycs
    txtdz(6).Text = dzRS!kjycs
    txtdz(11).Text = dzRS!readmemo
    Label11.Caption = "前次借阅   " + Trim(dzRS!yjycs) + "本"
End If
    Set dqkk = Nothing
    dqkk.Open "select * from readjl where readID='" + txtdz(0).Text + "' and bz='0'", g_CN, adOpenKeyset
    If dqkk.RecordCount > 0 Then
        TDBGrid2.DataSource = dqkk
        TDBGrid2.Refresh
    End If
    Set dqkk = Nothing
    dqkk.Open "select * from readjl where readID='" + txtdz(0).Text + "' and bz='1'", g_CN, adOpenKeyset
    If dqkk.RecordCount > 0 Then
        TDBGrid1.DataSource = dqkk
        TDBGrid1.Refresh
    End If
End Sub
(2)刷新按钮:          (Cmd1)
【功能】
      调用Command1_Click,功能同上。
【代码】
Private Sub cmd1_Click()
Call Command1_Click
End Sub
(3)退出按钮:          (Cmd2)
【功能】
      退出流通柜台界面,回到程序主窗口。
【代码】
Private Sub cmd3_Click()
Unload Me
End Sub
『借书』
『借书』窗口如图6-2所示。

图6-2 『借书』窗口
『借书』主要功能:
    使读者有效地完成图书借阅工作,并查询出未还书情况,对过期未还或即将到期的图书进行续借。
『借书』有4个功能按钮:借书、本次借阅、未还书查询、续借
(1)借书按钮:    (Command10)

【功能】
      用SQL语句定义表格控件TDBGrid2的各个字段并赋予数据源,读者借阅图书后更新馆藏的图书状态、已借阅册数、借阅记录等信息,将操作中出现的错误用对话框的方式加以提示。
【代码】
Private Sub Command10_Click()
Dim csRS As New ADODB.Recordset
Dim bmRS As New ADODB.Recordset
Dim jyRS As New ADODB.Recordset
Dim jyRS1 As New ADODB.Recordset
If txtdz(0).Text = "" Then
    rt = MsgBox("请输入读者证号!", vbOKOnly, "提示")
    txtdz(0).SetFocus
    Exit Sub
End If
If txtdz(3).Text <> "有效读者" Then
    rt = MsgBox("读者状况无效,不可借阅!", vbOKOnly, "提示")
    Exit Sub
End If
If Val(txtdz(5).Text) >= Val(txtdz(6).Text) Then
    rt = MsgBox("读者借阅册数超过规定,不可借阅!", vbOKOnly, "提示")
    Exit Sub
End If
Set dqkk = Nothing
dqkk.Open "select * from gc where bookbh='" + Trim(txtdl) + "'", g_CN, adOpenKeyset
csRS.Open "select * from jygz", g_CN, adOpenKeyset
If dqkk.RecordCount > 0 Then
    If dqkk!tszt <> "未借出" Then
        rt = MsgBox("本借阅数据状态未不可借阅,请查明数据状态!", vbOKOnly, "提示")
        Exit Sub
    End If
    If dqkk!tszt <> "未借出" Then
        rt = MsgBox("本借阅数据状态未不可借阅,请查明数据状态!", vbOKOnly, "提示")
        Exit Sub
    End If
    bmRS.Open "select * from bm where bookID='" + Trim(dqkk!bookID) + "'", g_CN, adOpenKeyset
    SQL = "insert into readjl(readID,bookbh,bookna,jyrq,yhrq,place,author,cbs)"
    SQL = SQL + " values('" & Trim(txtdz(0).Text) & "',"         'readID
    SQL = SQL + " '" & Trim(txtdl.Text) & "',"    'bookbh
    SQL = SQL + " '" & Trim(dqkk!bookna) & "',"   'bookna
    SQL = SQL + " '" & Format(Date, "yyyy-mm-dd") & "',"          'jyrq
    SQL = SQL + " '" & Format(Date + csRS!wjts, "yyyy-mm-dd") & "',"          'yhrq
    SQL = SQL + " '" & Trim(dqkk!gcadd) & "',"             'place
    If bmRS.RecordCount > 0 Then
        SQL = SQL + " '" & Trim(bmRS!author) & "',"             ' author
        SQL = SQL + " '" & Trim(bmRS!cbs) & "')"             'cbs
    End If
    g_CN.Execute SQL
       
    strsql = "Update gc set tszt  = '已被外借'"
    strsql = strsql & " where bookbh='"
    strsql = strsql & Trim(txtdl.Text) & "'"
    g_CN.Execute strsql
   
    strsql = "Update readdz set yjycs  ='" + Trim(Str(Val(txtdz(5).Text) + 1)) + "'"
    strsql = strsql & " where readID='"
    strsql = strsql & Trim(txtdz(0).Text) & "'"
    g_CN.Execute strsql
    jyRS.Open "select * from readjl where readID='" + txtdz(0).Text + "'", g_CN, adOpenKeyset
    If jyRS.RecordCount > 0 Then
        TDBGrid2.DataSource = jyRS
        TDBGrid2.Refresh
        jyRS1.Open "select * from readjl where readID='" + txtdz(0).Text + "' and jyrq='" + Format(Date, "yyyy-mm-dd") + "'", g_CN, adOpenKeyset
        Label14.Caption = "本次借阅   " + Trim(Str(jyRS1.RecordCount)) + "本"
    End If
    Call Command1_Click
Else
    rt = MsgBox("查无此图书登录号!", vbOKOnly, "提示")
    txtdl.SetFocus
    Exit Sub
End If
End Sub
【使用说明】
a.输入读者证号,单击    或按回车键(列出读者基本情况)

b.输入图书登录号,单击     或按回车键(完成借阅)

备注:
 a.如果未输入读者证号,单击     或按回车键,则弹出对话框(图6-3)。

                           图6-3
 b.若输入图书登录号错误或典藏中不存在,则弹出对话框(图6-4)。
 
 图6-4
 c.如果输入的读者证号是非有效读者,则弹出对话框(图6-5)。
                          
 图6-5
 d.如果所借阅图书状态为不可借阅,则弹出对话框(图6-6)。
 
 图6-6
 e.如果读者的借阅册数超过可借阅册数,则弹出对话框(图6-7)。

图6-7

(2)本次借阅:    (Command9)     

【功能】
      查看本次借阅的图书信息,将借阅记录集中存储的数据源赋予表格控件TDBGrid2的各个字段并显示出来。
【代码】
Private Sub Command9_Click()
Dim jyRS As New ADODB.Recordset
jyRS.Open "select * from readjl where readID='" + txtdz(0).Text + "' and bz='0' and jyrq='" + Format(Date, "yyyy-mm-dd") + "'", g_CN, adOpenKeyset
TDBGrid2.DataSource = jyRS
TDBGrid2.Refresh
End Sub
【使用说明】
a.输入读者证号,单击    或按回车键。
b.单击本次借阅按钮 。      
c.右侧表格中列出本次借阅明细。

(3)未还书查询:  (Command8)
【功能】
      查看未归还的图书的信息,将未还书记录集中存储的数据源赋予表格控件TDBGrid2的各个字段并显示出来。
【代码】
Private Sub Command8_Click()
Dim whRs As New ADODB.Recordset
whRs.Open "select * from readjl where readID='" + txtdz(0).Text + "' and bz='0'", g_CN, adOpenKeyset
TDBGrid2.DataSource = whRs
TDBGrid2.Refresh
End Sub

【使用说明】
a.输入读者证号,单击    或按回车键。
b.单击未还书查询按钮 。      
c.右侧表格中列出本次借阅明细。(图6-2)

(4)续借:        (Command4)
【功能】
    从借阅记录集中选取需要续借的书目后加以判断,对符合续借条件的更新其记录集和该读者的借阅权限,并提示续借完成;对超过续借次数的提示不可续借。
【代码】
Private Sub Command4_Click()
Dim xjRS As New ADODB.Recordset, jyRS As New ADODB.Recordset
If TDBGrid2.Columns(0) = "" Then
     rt = MsgBox("请选择需要续借的书目!", vbOKOnly, "提示")
     Exit Sub
Else
     jyRS.Open "select * from jygz", g_CN, adOpenKeyset
     Set xjRS = Nothing
     xjRS.Open "select * from readjl where readID='" + Trim(txtdz(0).Text) + "' and bookbh='" + Trim(TDBGrid2.Columns(0)) + "'", g_CN, adOpenKeyset
     If xjRS!xjcs < jyRS!xjcs Then
        SQL = "update readjl set yhrq='"+ Format(xjRS!yhrq + 30, "yyyy-mm-dd") + "',"    
  SQL = SQL + " xjcs='" + Str(xjRS!xjcs + 1) + "'" 
  SQL=SQL+"where readid='"+Trim(txtdz(0).Text)+"'and bookbh='" + Trim(TDBGrid2.Columns(0)) + "'"
        g_CN.Execute SQL
        rt = MsgBox("续借完成!", vbOKOnly, "提示")
            If rt = 1 Then
                Call Command1_Click
            End If
     Else
         rt = MsgBox("续借次数已经达到,不能续借!", vbOKOnly, "提示")
         Exit Sub
     End If
End If
End Sub
【使用说明】
a.输入读者证号,单击    或按回车键。
b.单击未还书查询按钮 。     
c. 选中图书(鼠标左键单击图书)。
d. 鼠标左键单击续借按钮。
e. 右侧栏位表格中的续借列将显示续借次数。
备注:
 a.若未选择需要续借的书目,单击续借按钮,弹出对话框(图6-8)。

图6-8
 b.若续借次数超过规定次数,单击续借按钮,弹出对话框(图6-9)。
 
图6-9
 c.若续借成功则弹出对话框(图6-10)。
 
 图6-10
3.『还书』
『还书』窗口如图6-11所示。
『还书』主要功能:
 读者输入图书登录号归还图书,还书表格中列出归还的书目,借书表格中减少相应的书目。
『还书』功能按钮:还书     (Command11)
【功能】
    通过执行SQL命令更新读者还书后的权限(增加再借书数量)并赋予表格控件TDBGrid1相应的数据源,以及相应地显示出图书的本次借阅册数和本次还书册数。

图6-11『还书』窗口

【代码】
Private Sub Command11_Click()
Dim hsRS As New ADODB.Recordset
Dim jyRS As New ADODB.Recordset
Dim jyRS1 As New ADODB.Recordset
hsRS.Open "select * from readjl where readID='" + Trim(txtdz(0).Text) + "' and bookbh='" + Trim(Text1(5).Text) + "' and bz='0'", g_CN, adOpenKeyset
Set dqkk = Nothing
dqkk.Open "select * from gc where bookbh='" + Trim(Text1(5).Text) + "'", g_CN, adOpenKeyset

If hsRS.RecordCount > 0 Then
    If Trim(Text1(5).Text) <> hsRS!bookbh Then
        rt = MsgBox("图书登录号错误!", vbOKOnly, "提示")
        Text1(5).SetFocus
        Exit Sub
    Else
        Set bmRS = Nothing
        bmRS.Open "select * from bm where bookID='" + Trim(dqkk!bookID) + "'", g_CN, adOpenKeyset
        SQL = "update readjl set hsrq='" + Format(Date, "yyyy-mm-dd") + "',"        'jyrq
        SQL = SQL + "bz='1' where readid='" + Trim(txtdz(0).Text) + "' and bookbh='" + Trim(Text1(5).Text) + "'"
        g_CN.Execute SQL
       
        If Val(txtdz(5).Text) > 0 Then
            strsql = "Update readdz set yjycs  ='" + Trim(Str(Val(txtdz(5).Text) - 1)) + "'"
            strsql = strsql & " where readID='"
            strsql = strsql & Trim(txtdz(0).Text) & "'"
            g_CN.Execute strsql
        Else
            Exit Sub
        End If
        Set hsRS = Nothing
        hsRS.Open "select * from readjl where readID='" + txtdz(0).Text + "' and bz='1'", g_CN, adOpenKeyset
        If hsRS.RecordCount > 0 Then
            TDBGrid1.DataSource = hsRS
            TDBGrid1.Refresh
           
         jyRS.Open "select * from readjl where readID='" + txtdz(0).Text + "'and bz='0'", g_CN, adOpenKeyset
            If jyRS.RecordCount >= 0 Then
            TDBGrid2.DataSource = jyRS
            TDBGrid2.Refresh
            jyRS1.Open "select * from readjl where readID='" + txtdz(0).Text + "'and jyrq='" + Format(Date, "yyyy-mm-dd") + "'and bz='0'", g_CN, adOpenKeyset
            Label14.Caption = "本次借阅   " + Trim(Str(jyRS1.RecordCount)) + "本"
            End If
           
            Label17.Caption = "本次还书   " + Trim(Str(hsRS.RecordCount)) + "本"
        End If
        Call Command1_Click
    End If
   
End If
End Sub
【使用说明】
a.输入读者证号,单击    或按回车键(列出读者基本情况)

b.输入图书登录号,单击     或按回车键(完成还书)

 


6.1.2读者管理
选择【读者】菜单中的【读者管理】命令,出现如图6-12所示窗口。

图12 【读者管理】窗口
【读者管理】主要功能:
 读者管理具有新增、删除、修改及查询读者信息的功能。其中,新增读者可以建立一条新的读者记录,删除则可以将已建立的读者记录删除,修改可以修改所选择读者的基本资料。另外,可以对读者资料进行换借阅证、证件挂失、重设权限、更改身份、离校/离职的更改、设定。查询可以按输入的查询条件查出符合条件的读者,并可以打印读者证及读者资料。
 程序代码直接利用SQL语句对SQL SERVER数据库中的表进行查找、添加、修改、删除的操作。
 读者管理部分可以轻松地实现对读者借阅证及读者资料的管理,及时、方便地更改、设定读者情况,并能立即打印出读者证及读者资料。为读者提供方便,并节省管理人员的时间,提高了工作效率。
【读者管理】主界面由两大部分组成。
1.左侧『查询条件』。
2.右侧『读者资料管理及维护』。
1.『查询条件』
『查询条件』主要功能:
 可以根据输入的条件查询出符合条件的读者,并将结果显示在读者情况列表中。如不输入任何查询条件,则会列出所有的读者。
 查询条件包括:读者证号、读者姓名、身份证号、单位所系、读者身份、读者状况、就读年级、已借阅册数、建档日期,这些条件可以分别使用,也可以组合使用,方便查询。
『查询条件』有4个功能按钮:清除、查询、刷新、退出。

(1)清除按钮:     (Cmd1)
【功能】
     点击清除按钮可清除查询条件中所有输入和选择的条件。由于单位所系、读者身份、读者状况、已借阅册数的选项在选择之后不能清空,所以在查询所有读者和不需要选择这些条件时用清除按钮,一次性清除所有已输入和选择的条件,方便查询所有的读者情况和其它条件的重新输入。
【代码】
Private Sub cmd1_Click()
For i = 0 To 6
    txtdz(i).Text = ""
Next
For i = 0 To 2
    dcmb(i).Text = ""
Next
Combo1.ListIndex = -1
End Sub
(2)查询按钮:      (Cmd1)
【功能】
     在输入查询条件并点击查询按钮后,判断每一个查询条件是否输入,并把输入的条件用SQL语句连接到一起进行筛选,显示出所有符合条件的读者信息。这样就可以随时扩大和缩小查询范围,即单独使用一个查询条件或同时使用多个查询条件进行查询都可以查找到符合条件的读者,如不填写任何查询条件,则会查询出所有的读者。查询结果将出现在右侧读者情况列表中。
【代码】
Private Sub cmd2_Click()
Call dzcx
End Sub

Private Sub dzcx()
Dim qstr As String
On Error Resume Next
qstr = ""
If Trim(txtdz(0).Text) <> "" Then
    qstr = "readID='" + Trim(txtdz(0).Text) + "' and "
End If
If Trim(txtdz(1).Text) <> "" Then
    qstr = qstr + "readNA='" + Trim(txtdz(1).Text) + "' and "
End If
If Trim(txtdz(2).Text) <> "" Then
    qstr = qstr + "sfzh='" + Trim(txtdz(2).Text) + "' and "
End If
If Trim(dcmb(0).Text) <> "" Then
    qstr = qstr + "sdeptype='" + Trim(dcmb(0).Text) + "' and "
End If
If Trim(dcmb(1).Text) <> "" Then
    qstr = qstr + "readsf='" + Trim(dcmb(1).Text) + "' and "
End If
If Trim(dcmb(2).Text) <> "" Then
    qstr = qstr + "readzk='" + Trim(dcmb(2).Text) + "' and "
End If
If Trim(txtdz(3).Text) <> "" Then
    qstr = qstr + "grade='" + Trim(txtdz(3).Text) + "' and "
End If
If Trim(txtdz(4).Text) <> "" Then
    qstr = qstr + "yjycs'" + Trim(Combo1.Text) + "'" + (txtdz(4).Text) + "' and "
End If
If Trim(txtdz(5).Text) <> "" Then
      qstr = qstr + "convert(datetime,djrq)>='" + Format(txtdz(5).Text, "YYYY-MM-DD") + "' and "
    If Trim(txtdz(6).Text) <> "" Then
        qstr = qstr + "convert(datetime,djrq)<='" + Format(txtdz(6).Text, "YYYY-MM-DD") + "' and "
    End If
Else
    If Trim(txtdz(6).Text) <> "" Then
        qstr = qstr + "convert(datetime,djrq)<='" + Format(txtdz(6).Text, "YYYY-MM-DD") + "' and "
    End If
End If
If qstr = "" Then
    Set dqkk = Nothing
    dqkk.Open "select * from readdz order by readID", g_CN, adOpenKeyset
Else
    qstr = Left(qstr, Len(Trim(qstr)) - 4)
    Set dqkk = Nothing
    dqkk.Open "select * from readdz where " + qstr + "order by readID", g_CN, adOpenKeyset
End If
If dqkk.RecordCount > 0 Then
    TDBGrid1.DataSource = dqkk
    TDBGrid1.Refresh
    cmd5.Enabled = True
    cmd6.Enabled = True
    cmd7.Enabled = True
    cmd8.Enabled = True
    cmd9.Enabled = True
    cmd11.Enabled = True
    cmd12.Enabled = True
    cmd13.Enabled = True
    cmd14.Enabled = True
Else
    TDBGrid1.DataSource = Nothing
    TDBGrid1.Refresh
End If
ls.Caption = "符合条件的数据有" + Trim(dqkk.RecordCount) + "条"
End Sub
(3)刷新按钮:      (Cmdsx)
【功能】
     根据条件刷新右侧读者情况列表,用法同查询按钮。
【代码】
Private Sub cmdsx_Click()
Call dzcx
End Sub
(4)退出按钮:       (Cmd3)
【功能】
    退出读者管理界面,回到程序主窗口。
【代码】
Private Sub cmd3_Click()
Unload Me
End Sub
2.『读者资料管理及维护』
 『读者资料管理及维护』主要功能:
     馆员在这里管理读者资料,可以进行新增读者、修改读者资料、删除读者、换借阅证、打印借阅证、打印读者资料、证件挂失、重新设置读者权限、更改读者身份、办理读者的离校/离职的操作。方便对读者资料的维护和对读者证件的管理。
 『读者资料管理及维护』有10个功能按钮:新增读者、修改数据、删除读者、换借阅证、证件挂失、重设权限、更改身份、离校/离职、打印读者证、打印数据
(1)新增读者:       (Cmd4)
点击新增读者,出现『读者基本数据—新增』窗口,如图6-13所示。

图6-13『读者基本数据—新增』窗口
【功能】
    输入读者的基本数据信息,其中读者证号、读者状况、单位所系、读者姓名为必填项,若没有填写,则程序会自动提示,并会把光标置在没有填写的项目中,除必填项外其余选项可以不填。读者状况、单位所系、读者身份为选择项,不必直接输入,其余基本情况直接输入即可。输入完毕点击右下角存档按钮即可保存此条记录并退回【读者管理】界面。新增的读者记录会出现在【读者管理】右侧列表中,列表中的数据会按照读者证号由小到大排列。
【代码】
Private Sub cmd4_Click()
BZpp = "0"
frm_dz.Show vbModal
Call dzcx
End Sub
(2)修改数据:       (Cmd5)
点击修改数据,出现『读者基本数据—修改』窗口,界面同『读者基本数据—新增』。
【功能】
    对已存在读者的基本数据进行修改。修改数据界面同新增读者界面,这里读者证号、读者状况、读者身份、可借阅册数不可修改,呈灰色显示,其余各项均可修改。修改完成后点存档按钮即可将修改数据保存并退出。若点退出按钮,则修改无效,程序不会保存修改数据并退回到【读者管理】界面。
【代码】
Private Sub cmd5_Click()
BZpp = "1"
frm_dz.txtdz(0).Text = TDBGrid1.Columns(0)
frm_dz.txtdz(1).Text = TDBGrid1.Columns(1)
frm_dz.Caption = "读者基本数据-修改"
Call frm_dz.dzxs
frm_dz.Show vbModal
Call dzcx
End Sub


『读者基本数据—新增/修改』窗口『存档』按钮
Private Sub cmd1_Click()
Dim dzRS As New ADODB.Recordset
If Trim(txtdz(0).Text) = "" Then
    rt = MsgBox("请输入读者证号!", vbOKOnly, "提示")
    txtdz(0).SetFocus
    Exit Sub
End If
If Trim(txtdz(1).Text) = "" Then
    rt = MsgBox("请输入读者姓名!", vbOKOnly, "提示")
    txtdz(1).SetFocus
    Exit Sub
End If
If Trim(dcmbdz(0).Text) = "" Then
    rt = MsgBox("请选择读者状况!", vbOKOnly, "提示")
    dcmbdz(0).SetFocus
    Exit Sub
End If
If Trim(dcmbdz(1).Text) = "" Then
    rt = MsgBox("请选择单位所系!", vbOKOnly, "提示")
    dcmbdz(1).SetFocus
    Exit Sub
End If
If Trim(dcmbdz(2).Text) = "" Then
    rt = MsgBox("请选择读者身份!", vbOKOnly, "提示")
    dcmbdz(2).SetFocus
    Exit Sub
End If
idcard = ""
If txtidcard(0).Text <> "" Then
    For i = 0 To 17
        c = txtidcard(i).Text
        idcard = Trim(idcard) + c
    Next
End If
idcard = Trim(idcard)
If Trim(idcard) = "" Then
    rt = MsgBox("请输入身份证号!", vbOKOnly, "提示")
    txtidcard(0).SetFocus
    Exit Sub
End If
If BZpp = "0" Then
    Set dzRS = Nothing
    dzRS.Open "select * from readdz where readID='" + Trim(txtdz(0).Text) + "'", g_CN, adOpenKeyset
    If dzRS.RecordCount <> 0 Then
        rt = MsgBox("读者证号重复,请重新输入!", vbOKOnly, "提示")
        txtdz(0).SetFocus
        Exit Sub
    End If
    Set dzRS = Nothing
    dzRS.Open "select * from readdz", g_CN, adOpenStatic, adLockOptimistic
    dzRS.AddNew
    dzRS!readID = Trim(txtdz(0).Text)
    dzRS!readNA = Trim(txtdz(1).Text)
    dzRS!readzk = Trim(dcmbdz(0).Text)
    dzRS!readsex = IIf(Option1.Value = True, "男", "女")
    dzRS!sdeptype = Trim(dcmbdz(1).Text)
    dzRS!grade = Trim(txtdz(2).Text)
    dzRS!readsf = Trim(dcmbdz(2).Text)
    dzRS!brith = DTPicker1.Value
    dzRS!sfzh = idcard
    dzRS!Password = Trim(txtdz(3).Text)
    dzRS!bzrID = Trim(txtdz(4).Text)
    dzRS!temptel = Trim(txtdz(5).Text)
    dzRS!parmtel = Trim(txtdz(6).Text)
    dzRS!tempadd = Trim(txtdz(7).Text)
    dzRS!parmadd = Trim(txtdz(8).Text)
    dzRS!email = Trim(txtdz(9).Text)
    dzRS!readmemo = Trim(txtdz(10).Text)
    dzRS!kjycs = Val(Trim(txtdz(11).Text))
    dzRS!djrq = Date
    dzRS.Update
Else
    strsql = "Update readdz set readID  = '" + Trim(txtdz(0).Text) + "',"
    strsql = strsql & "readNA = '" + Trim(txtdz(1).Text) + "',"
    strsql = strsql & "readzk ='" + Trim(dcmbdz(0).Text) + "',"
    strsql = strsql & "readsex ='" + IIf(Option1.Value = True, "男", "女") + "',"
    strsql = strsql & "sdeptype = '" + Trim(dcmbdz(1).Text) + "',"
    strsql = strsql & "grade ='" + Trim(txtdz(2).Text) + "',"
    strsql = strsql & "readsf = '" + Trim(dcmbdz(2).Text) + "',"
    strsql = strsql & "brith = '" + Format(DTPicker1.Value, "yyyy-mm-dd") + "',"
    strsql = strsql & "sfzh = '" + idcard + "',"
    strsql = strsql & "Password ='" + Trim(txtdz(3).Text) + "',"
    strsql = strsql & "bzrID ='" + Trim(txtdz(4).Text) + "',"
    strsql = strsql & "temptel = '" + Trim(txtdz(5).Text) + "',"
    strsql = strsql & "parmtel = '" + Trim(txtdz(6).Text) + "',"
    strsql = strsql & "tempadd = '" + Trim(txtdz(7).Text) + "',"
    strsql = strsql & "parmadd = '" + Trim(txtdz(8).Text) + "',"
    strsql = strsql & "email ='" + Trim(txtdz(9).Text) + "',"
    strsql = strsql & "readmemo = '" + Trim(txtdz(10).Text) + "',"
    strsql = strsql & "kjycs =" + Trim(txtdz(11).Text) + ","
    strsql = strsql & "djrq = '" + Format(Date, "yyyy-mm-dd") + "'"
    strsql = strsql & " where readID='"
    strsql = strsql & frm_wh.TDBGrid1.Columns(0) & "'"
    g_CN.Execute strsql
    rt = MsgBox("读者数据修改完成!", vbOKOnly, "提示")
End If
Unload Me
End Sub
【说明】
 由于新增读者和修改数据界面相同,所以利用Bzpp的值控制要执行的程序段。若Bzpp=0,则执行新增读者部分,若Bzpp=1则执行修改数据部分。当Bzpp=0,程序判断必填项是否输入,若有空项则程序会提示将其输入完整,并置光标到相应的选项中。填写完毕,程序利用SQL语句新增一条记录,并将新增数据写入对应的字段中。当Bzpp=1时,用修改后数据替换以前的数据。

Public Sub dzxs()
Set dqkk = Nothing
dqkk.Open "select * from readdz where readID='" + txtdz(0).Text + "'", g_CN, adOpenKeyset
If dqkk.RecordCount <> 0 Then
    txtdz(0).Text = dqkk!readID
    txtdz(1).Text = dqkk!readNA
    dcmbdz(0).Text = dqkk!readzk
    If dqkk!readsex = "男" Then
        Option1.Value = True
    Else
        Option1.Value = False
    End If
    dcmbdz(1).Text = dqkk!sdeptype
    txtdz(2).Text = dqkk!grade
    dcmbdz(2).Text = dqkk!sdeptype
    txtdz(2).Text = dqkk!grade
    dcmbdz(2).Text = dqkk!readsf
    DTPicker1.Value = dqkk!brith
    idcard = dqkk!sfzh
    For i = 0 To 17
        txtidcard(i).Text = Mid(idcard, i + 1, 1)
    Next
    txtdz(3).Text = dqkk!Password
    txtdz(4).Text = dqkk!bzrID
    txtdz(5).Text = dqkk!temptel
    txtdz(6).Text = dqkk!parmtel
    txtdz(7).Text = dqkk!tempadd
    txtdz(8).Text = dqkk!parmadd
    txtdz(9).Text = dqkk!email
    txtdz(10).Text = dqkk!readmemo
    txtdz(11).Text = dqkk!kjycs   
End If
txtdz(0).Enabled = False
dcmbdz(0).Enabled = False
dcmbdz(2).Enabled = False
txtdz(11).Enabled = False
End Sub
【说明】
     Dzxs过程的作用是将需修改数据的读者情况依次显示在『读者基本数据—修改』窗口中,并让读者证号、读者状况、读者身份、可借阅总册数可用属性变为否。
(3)删除读者:       (Cmd6)

【功能】
    选择要删除的读者,点击删除读者按钮,系统提示是否删除,若删除则点确定,这条读者数据就被删除了。若不进行删除,则点取消返回【读者管理】窗口。
【代码】
Private Sub cmd6_Click()
rt = MsgBox("真的删除读者证号[" + TDBGrid1.Columns(0) + "]的记录?", vbYesNo, "警告")
If rt = 6 Then
    g_CN.Execute "delete from readdz where readID='" + TDBGrid1.Columns(0) + "'"
    rt = MsgBox("记录已成功删除!", vbOKOnly, "提示")
End If
Call dzcx
End Sub

 注:由于以下按钮中程序代码与之前的新增、查询、修改比较类似,因此论文中仅以部分主要程序代码为例做功能介绍。以下除打印代码外其他程序不做具体介绍。
 
 (4)换借阅证:      
点击按钮后出现界面如图6-14所示。
其中旧读者证号不可修改,输入新读者证号,程序会判断证号是否存在,若存在则提示“读者证号重复,请重新输入!”并置光标到文本框中,等待重新输入。            
换证规则:1.本人或他人之旧读者证号,系统一概不予以接收。2.换证后,就读者证号从此作废,不复使用。
最后,点存档按钮即可更换读者证。
(5)挂失借阅证:
点击按钮后出现界面如图6-15所示。
这里读者证号与读者姓名不可修改,呈灰色显示。点存档按钮后,此证件即挂失,证件挂失后,读者将停权到证件发放为止。             

(6)重设权限:

点击按钮后出现界面如图6-16所示。
输入该读者要重设的权限,程序会将输入的数据用SOL语句替换原有数据。确定后点存档按钮即可更改权限。                
    (7)修改读者身份:
点击按钮后出现界面如图6-17所示。
单击更改身份的下来选项选择要更改的身份,其中包括图书馆工作人员、学生读者、教师读者三个选项可供选择。选择合适的身份后,单击存档按钮用当前选中的身份替换以前的身份并退出。        

(8)处理离校/离职:
点击按钮后出现界面如图6-18所示。
其中读者证号与读者姓名不可修改,状况描述包括已经毕业、休学、退学三个选项可供选择,选择合适的选项后存档,程序会判断此人是否有书未还,若有书未还则不能办理离校。若符合离校/离职条件则用选择的状况替换原有的状况。                            
(9)打印读者证:
查询出欲打印读者证的读者,单击打印读者证按钮后出现界面如图6-19所示。

图6-19
【代码】
Private Sub cmd9_Click()
ActiveReport6.Show vbModal
End Sub
预览需要打印的读者借阅证

Private Sub ActiveReport_ReportStart()
Set DataControl1.Recordset = dqkk
Field6.Text = Date
End Sub
数据源为记录集变量dqkk,field6为发证时间,取系统时间。
【说明】  打印使用外部控件Data Dynamics ActiveReports。报表设界面如图6-20所示。
 图6-20
其中个控件属性设定如下:
控件名称 Caption属性 Data Field属性 DataSource属性
Field1  ReadID DataControl1
Field2  ReadNA DataControl1
Field3  Readsf DataControl1
Field4  Readsex DataControl1
Field5  sfzh DataControl1
Lable1 读者证号  
Lable2 读者姓名  
Lable3 读者身份  
Lable4 性  别  
Lable5 身份证号  
Lable6 发证时间  
Lable7 读者借阅证  
(10)打印数据:
查询出欲打印读者资料,单击打印数据按钮后出现界面如图6-21所示。

图6-21

6.2 系统测试
系统测试是管理信息系统开发期间中一个十分重要而漫长的阶段。其重要性体现在它是保证系统质量与可靠性的最后关口。且对整个系统开发过程包括系统分析、系统设计和系统实现的最终审查
6.2.1 调试过程
调试过程分为三个阶段:分调、联调、总调。
1.分调也称模块程序调试,是调试工作的基础工作,目标是发现并纠正程序设计阶段产生的错误。具体做法是组织各模块编程人员,对每一个模块进行调试。调试时着重检查了如下几方面:
 模块运行是否正常、无死机。包括检查有无语法错误(例如打错语句、语句不配对等)、逻辑错误(例如文件或变量找不到、变量类型错误等)和流程模块错误(例如模块内的功能调度、模块的进入与退出失败等)。
 模块的功能是否符合设计要求。 包括检查功能有无多余或丢失,功能是否准确无误,算法是否正确,格式是否合理等。
 模块的技术性能如何。包括检查对输入的响应,数据检索、统计与输出的速度等。
 界面是否友好。包括检查画面是否清晰美观,对话是否适度,操作是否方便。
 2.联调是指子系统中各程序模块之间的联合调试,目的是发现并纠正系统设计过程中产生的错误。具体做法是组织编程人员,逐个子系统进行调试。调试时特别检查了如下几方面:
 (1)子系统内模块功能的调度是否正确。包括模块间的进退是否自如,功能调度中变量的传递有无问题等。
 (2)子系统的功能是否符合设计的要求。包括功能是否齐全无错漏。
 (3)子系统内的数据组织是否符合功能的需要。包括基本数据项是否完整,数据文件间的关系是否正确,数据接口设计是否合理等。
 3.总调是对整个程序系统以及人工过程与环境的总调试,目标是发现并纠正系统分析阶段产生的错误。具体做法是由系统开发的技术负责人组织系统分析员及设计编程人员参加,对由各个子系统结合而成的程序系统以及配合系统运行而所需的人工过程或操作环境(例如数据采集、预处理、录入操作和设备设置等)进行统一的综合调试。总调已经有了分调和联调的基础。,其重点应检查了如下几方面:
 (1)系统的整体调度功能是否正常。包括主程序与各级菜单之间的进入与返回 ,口令输入,权限控制等是否都能正确执行。
 (2)系统的功能是否符合系统分析和总体设计的要求。包括系统的功能和结构有为错漏,功能的分配与模块的分解是否合理等。
 (3)系统的数据组织与存储是否符合设计的要求。包括检查数据的总容量,文件或数据库的检索效率几子系统之间的数据联系等。
6.2.2 调试方法
 调试的关键是发现错误,因为只要发现错误,纠正就不难做到。为了有效地发现错误,我采用了两种调试方法:静态调试法、动态调试法
静态调试法
 用人工的方式对论文、程序、数据等资料进行审核,找出其中的错误。这种方法不用运行程序,完全靠调试人员从文字资料的字里行间中进行检查,因而是一种“静态的”调试方法。
动态调试法:
 通过程序系统的运行,在程序的“动态”执行中检查和发现错误。我在正确掌握程序的功能与性能要求的情况下,采用测试用例对程序进行数据驱动下的动态测试。
 我采用了静态调试和动态调试相结合的方法,经历了分调、联调和总调阶段,运用适当的测试用例,对系统进行了测试。经过系统测试,程序运行中出现的一些问题和难点在郭老师的大力帮助下已经一一得到解决,程序基本上实现了读图书馆的管理要求。
 
 第七章 系统管理与维护
 
管理信息系统在完成系统实施,投入正常使用后,即进入了系统的运行和维护的阶段。系统维护是管理信息系统可靠运行的重要技术保障,必须给予高度的重视。
 系统的维护是为了应付信息系统的环境和其它因素的各种变化,保证系统正常工作而采取的一切活动。在系统使用过程中,用户往往要求扩充系统的功能,提高其性能,随着用户对系统的使用和熟悉,这种改革和提高的要求将不断被提出。所以维护工作需要根据用户的要求,在以后的工作中不断改进完善。
 
 第八章 结束语
 
通过进行图书馆管理系统的开发,进一步明确了研制一个管理信息系统的方法和思路,将系统开发的各阶段的基本活动贯穿起来,使我更加形象、具体的了解了管理信息系统。系统开发的过程是一个巩固以前所学的计算机软件开发知识,掌握新技能的过程。我从这一阶段工作中收益非浅,通过前段时间的毕业设计,我能够融会贯通这几年所学的专业基础知识和专业理论知识,对当前计算机软、硬件技术的发展有了进一步地了解和认识,培养我们综合运用专业知识分析问题、解决问题的能力及运用工具软件的能力。不仅弄清了以前对系统开发的一些模糊的认识,而且提高了软件开发的水平,培养了严谨的工作作风,为今后在工作岗位上用好管好计算机打下了坚实的基础。
本程序由于调研时间短,编写时间紧,程序本身还存在一些缺陷和不足,还有许多没考虑全面的地方。希望各位老师多提宝贵意见。本设计是在郭素芳老师的悉心指导下完成的,在此,我深深的感谢我的指导老师以及帮助我、支持我的老师们!
 
参考文献:

[1] 王小铭,信息管理系统及其开发技术,电子工业出版社,1997.1。
[2] 刘遵仁、于忠清,SQL Server 中文版基础培训教程,人民邮电出版社,2002.9。
[3] 李振格,Visual Basic 6.0 中文版入门与提高,清华大学出版社,1999.6。
[4] 史嘉权,数据库系统教程,清华大学出版社,2001.8。


以上为本篇毕业论文范文Microsoft Visual Basic图书管理系统的介绍部分。
本论文在计算机论文栏目,由论文网(www.zjwd.net)整理,更多论文,请点论文范文查找

毕业论文降重 相关论文

收费专业论文范文
收费专业论文
汉语言文学论文
物理学论文
自动化专业论文
测控技术专业论文
历史学专业论文
机械模具专业论文
金融专业论文
电子通信专业论文
材料科学专业论文
英语专业论文
会计专业论文
行政管理专业论文
财务管理专业论文
电子商务国贸专业
法律专业论文
教育技术学专业论文
物流专业论文
人力资源专业论文
生物工程专业论文
市场营销专业论文
土木工程专业论文
化学工程专业论文
文化产业管理论文
工商管理专业论文
护理专业论文
数学教育专业论文
数学与应用数学专业
心理学专业论文
信息管理专业论文
工程管理专业论文
工业工程专业论文
制药工程专业论文
电子机电信息论文
现代教育技术专业
新闻专业论文
艺术设计专业论文
采矿专业论文
环境工程专业论文
西班牙语专业论文
热能与动力设计论文
工程力学专业论文
酒店管理专业论文
安全管理专业论文
交通工程专业论文
体育教育专业论文
教育管理专业论文
日语专业论文
德语专业论文
理工科专业论文
轻化工程专业论文
社会工作专业论文
乡镇企业管理
给水排水专业
服装设计专业论文
电视制片管理专业
旅游管理专业论文
物业管理专业论文
信息管理专业论文
包装工程专业论文
印刷工程专业论文
动画专业论文
环境艺术专业论文
信息计算科学专业
物流专业论文范文
人力资源论文范文
营销专业论文范文
工商管理论文范文
汉语言文学论文范文
法律专业论文范文
教育管理论文范文
小学教育论文范文
学前教育论文范文
财务会计论文范文

电子商务论文范文

上一篇:学籍管理系统 下一篇:基于DREAMWARE和ASP技术的班级网..

最新论文

精品推荐

毕业论文排版

热门论文


本站简介 | 联系方式 | 论文改重 | 免费获取 | 论文交换

本站部分论文来自网络,如发现侵犯了您的权益,请联系指出,本站及时确认删除 E-mail:229120615@qq.com

毕业论文范文-论文范文-论文同学网(www.zjwd.net)提供计算机论文毕业论文,毕业论文范文,毕业设计,论文范文,毕业设计格式范文,论文格式范文

Copyright@ 2010-2024 zjwd.net 毕业论文范文-论文范文-论文同学网 版权所有