第一章 管理信息系统概述
§1.1 管理信息系统简介
管理信息系统就是我们常说的MIS(Management Information System),在强调管理,强调信息的现代社会中它变得越来越普及。MIS是一门新的学科,它跨越了若干个领域,比如管理科学、系统科学,运筹学、统计学以及计算机科学。在这些学科的基础上,形成信息收集和加工的方法,从而形成一个纵横交织的系统。
管理信息系统是现代信息管理工作不可缺少的一部分,是适应现代高科技信息管理尺度的要求、推动信息管理走向科学化、规范化的必要条件。只有信息管理规范了,才能给人们提供更好的生活环境及便利的生活空间。
信息是管理上的一项极为重要的资源,管理工作的成败取决于能否做出有效的决策,而决策的正确程度则在很大程度上取决于信息的质量。
在21世纪,人类将步入知识经济时代,知识经济时代是科技发展日新月异和知识、信息呈爆炸膨胀的时代。有所谓信息威胁之说,这是指人类面临的要处理的信息量大到难以处理的地步,以至造成混乱的结果。
计算机的出现解决了这个问题,由于计算机迅速、准确为信息收集、加工、使用、查询提供可能。
随着以计算机技术、通信技术、网络技术为代表的现代信息技术的飞跃发展,人类正在从工业时代向信息时代迈进,人们越来越重视信息资源的开发和利用,“信息化”已成为一个国家经济和社会发展的关键环节,信息化水平的高低已成为衡量一个国家现代化水平和综合国力的重要标志。
管理信息系统是一个由人和计算机等组成的,能进行管理信息的收集、传递、加工、保存、维护和使用的系统,它能实测国民经济和企业的行为、帮助实现其规划目标。
管理信息系统功能包括:信息收集、信息存储、问题处理、对话及信息输出、信息管理机构。
计算机辅助管理的发展经历了四个阶段:事务处理、系统处理、支持决策、综合服务。
§1.2计算机信息系统的发展
从 1945 年美国第一台电子数字积分计算机ENIAC 诞生以来,短短四、五十年,计算机技术发展异常迅速,应用日益广泛。从硬件上由电子管、晶体管、集成电路、大规模、超大规模集成,价格降低、可靠性增强。计算机尤其是微型计算机逐渐普及,从开始 4 位微处理器的微型机到现今 32 位高档微机,主频速度越来越快。随着硬件的发展,软件也不断更新,由 2 进制代码到机器语言汇编语言、高级程序语言,到现今面对对象的非过程化语言,人们不必关心问题的解法和计算过程描述,只需告诉它干什么,至于如何干,则由软件自动完成,这给软件开发人员带来及大的便利。软件开发人员不必化大多时间和精力在描述程序的具体细节上,提高效率,减少手工编程中的误差。计算机的应用也由原先单纯的数值计算,到数据处理如办公自动化,辅助教学,工业的自动控制、人工智能,可以说渗透到生产生活的各个领域。计算机的应用提高了效率,降低了成本,节省人力物力。但要发挥其巨大作用,还需提高人们的应用水平。
§1.3 管理信息系统的发展现状
现代社会、社会化趋势的扩大和社会产品需求使企业在生产经营活动中涉及的内外部信息积聚膨胀,随着科学技术突飞猛进和生产迅速发展,使人类知识量增长速度不断加快,信息量的增加,外部环境变化的变快,人工已无法胜任。如何收集足够的信息资源,强有力的信息并加以利用,积极的开发和及时利用信息爆炸有效的信息资源,已成为现代社会的难题。计算机的出现解决了这个问题,由于计算机迅速、准确为信息收集、加工、使用、查询提供可能。计算机技术与通信技术结合极大的促进现代信息技术的发展,各国加快信息进程,国际社会建设信息高速公路的热潮和中国工人“金”字号工程为代表的国家信息工程项目的开展,使中国的企业信息化面临新的形势。
电子计算机适应现代社会管理信息量迅速增长,信息寿命短,要求及时转换的问题。信息系统由电子数据处理,信息报告系统,决策支持系统进一步发展到专家系统及支持领导层的决策执行信息程序,在竞争中支持战略决策的战略信息系统。当今社会现代信息技术广泛迅速的渗透到社会生活的各领域但目前在管理信息系统应用还很不完善,属于起步阶段。计算机对管理工作的支持,不仅是数据处理、而且是辅助决策的工具,能够从海量的信息中收集、整理,分析提供给管理者、决策有关的信息,相关的决策分析,甚至可和管理者交互对话,生成决策。目前各个行业的计算机处理信息管理,很大一部分仍停留在单项业务理,处在电子数据处理阶段,各单位由事务处理到系统处理转向支持系统还建立起真正的具有预测控制和支持决策功能的管理信息系统。虽然信息系统已有一定发展,在业务处理过程控制办公自动化方面已有长足进步,但很不完善。要充分利用计算机处理信息,必须从目前情况入手,着眼于未来,开发适合本单位、行业的小型管理系统,甚至是其中一步分,如工资管理系统,然后逐步完善,不断扩充。管理信息系统的特点之一就是数据集中统一,采用数据库。利用数据库技术可解决数据共享问题。数据库用一定数据模型组织数据,使数据面向系统,程序独立于数据,实现数据独立性,减少数据冗余和不一致性,且易编程、扩充、移走。尤其 20 世纪 70 年代后期产生的分布式、面对对象数据库,使数据和数据操作方法作为对象由数据库管理,系统更好用,减少出问题的可能性.其属性继承性可在对象中共享数据和操作,极大的方便了用户。总而言之管理信息系统是集科学化、计算机及系统方法为一体的综合性边缘性学科。
§1.4 开发管理信息系统应注意的问题
成功地开发一套管理信息系统,不仅需要具备一定的理论基础,而且还需要对开发过程中所面临的问题有一个充分、清醒的认识,例如:社会因素、文化背景、企业体制、起点环境等。特别是在中国当前IT行业飞速发展的形势下,更要强调这些方面对管理信息系统开发的影响。在查阅了一些资料后,我认为以下几个问题是需要特别注意的:
1.市场经济的客观因素要求:市场经济是一种信息反馈体系,市场调节也离不开信息反馈体系。随着我中改革开放的不断深入,高校也要发展、生存,要想在激烈的市场竞争中立于不败之地,没有信息和现代化的信息处理技术是办不到的。现代化的计算机图书管理信息系统是高校图书馆发展的关键。因此,管理信息系统的开发是高校图书馆掌握现代信息技术和信息现代化的必由之路和必要手段。
2.人的因素:计算机管理信息系统是由人、硬件、软件、网络组成。人的因素是管理信息系统建设过程中需要考虑的。在管理信息系统的建设中,图书管理人员和图书借阅者之间的关系以种种行为特征直接影响图书管理信息系统的开发质量和运行效果。
3.管理信息系统开发的起点:当今,计算机技术和网络通讯动手术日新月异,而管理信息系统的开发是一项复杂的系统工程,协调技术更新期与开发周期的矛盾就显得尤为重要。管理信息系统的开发一定要避免在低水平上开发,一定要慎重选择软件的应用平台以及软件的开发工具等。
§1.5 图书管理系统
随着计算机技术的飞速发展,计算机在企业管理中应用的普及,利用计算机实现图书信息的管理势在必行。目前学校图书馆的借阅工作部分还是手工管理,工作效率很低,并且不能及时了解图书的种类和学生们比较需求的图书等,不能更好的适应当前学生的借阅要求。手工管理还存在这许多弊端,由于不可避免的人为因素,造成数据的遗漏、误报。计算机信息化管理有着储存量大,速度快等许多优点,提供给我们的处理信息及时快捷,因此我们利用计算机提供给我们的信息对学生们的借阅过程形成一整套动态的管理能够极大地提高图书馆管理的效率,这也是企业、学校的科学化、正规化管理,与世界接轨的重要条件。
第二章 管理信息系统开发方法的选择
§2.1 软件工程简介
自第一台计算机问世以来,计算机硬件的发展经历了电子管、晶体管、集成电路和大规模集成电路、超大规模集成电路四个时代,而计算机软件也很自然地随着硬件的发展而发展。
计算机软件已经由过去的无足轻重发展到今天这样在计算机系统中占有如此重要的地位。然而,软件数量的迅速膨胀,又使人们承受不了软件的资源耗费。因此,有必要对软件生产方式进行彻底的改造。软件工程正是从管理和技术两个方面研究更好地开发和维护计算机软件的一门学科。
软件工程学是研究软件开发和维护的普遍原理与技术的一门工程学科。所谓软件工程是指,采用工程的概念、原理、技术和方法指导软件的开发与维护。软件工程学的主要研究对象包括软件开发与维护的技术、方法、工具和管理等方面。在软件研制开发过程中,若能严格遵循工程的方法论,便可提高软件开发的成功率,减少软件开发和维护中出现的各种风险。
软件工程注重研究如何指导软件生产全过程的所有活动,以最终达到“在合理的时间、成本等资源的约束下,生产出高质量的软件产品”的目标。为了更有效、更科学地组织和管理软件生产,根据某一软件从被提出并着手开始实现,真到软件完成其使命为止的全过程划分为一些阶段,并称这一全过程为软件生命周期。通常,软件生命周期包括八个阶段:问题定义、可行性研究、需求分析、系统设计、详细设计、编码、测试、运行维护。
§2.2 管理信息系统开发方法
管理信息系统的开发方法是一个复杂的系统工程,它涉及到计算机处理技术,系统理论,组织结构,管理功能,管理知识等各方面的问题,至今没有一种统一完备的开发方法,但是每一种开发方法都要遵循相应的开发策略。任何一种开发策略都要明确以下问题:
1.系统要解决的问题:如采取何种方式解决管理人员,读者和图书三方面的关系问题,对新书如何入库和上架等。
2.系统可行性研究:确定系统所要实现的目标。通过对企业状况的初步调研得出现状分析的结果,然后提出可行性方案并进行论证。系统可行性的研究包括目标和方案可行性、技术可行性、经济可行性和社会影响方面的考虑。
3.系统开发的原则:在系统开发过程中,要遵循领导参与、优化创新、实用高效、处理规范化的原则。
4.系统开发前的准备工作:作好开发人员的组织准备和图书馆基础准备工作。
5.系统开发方法的选择和开发计划的制定:针对已经确定的开发策略选定相应的开发方法是结构化系统分析和设计方法,还是选择原型法或面向对象的方法。开发计划的制定是要明确系统开发的工作计划、投资计划、工程进度计划和资源利用计划。
目前,管理信息系统常用的开发方法有:结构化生命周期开发方法、原型法等。
2.2.1 管理信息系统常用开发方法之一:结构化生命周期开发方法
任何系统都会经历一个发生、发展和消亡的过程。管理信息系统也不例外。这种周而复始,循环不息的过程被称为系统生命周期。
所谓生命周期法,就是按照管理信息系统生命周期的概念,严格的按照系统生命周期的各个过程和步骤去开发系统。当人们发现了原系统(手工系统或已应用计算机的信息系统)存在的问题,并提出了开发新系统的要求后,首先要对开发新系统的必要性和可行性进行分析。只有当可行性分析确认可以开发,并经过领导批准后,才可以进入应用系统的开发。
目前较为流行的管理信息系统开发方法是结构化生命周期开发方法,结构化生命周期法是一种传统的管理信息系统开发方法。其基本思想是:用系统的思想和系统工程的方法,用户至上的原则,结构化、模块化地自上而下的对生命周期进行分析与设计。用结构化生命周期开发方法开发一个系统,将整个开发过程分为5个依次连接的阶段:
1.系统规划阶段:主要任务是明确系统的方法要求,并进行逐步的调查,通过可行性的研究确定下一阶段的实施。系统规划方法有战略目标集转化法(SST, Strategy set transformation)、关键成功因素法(CSF, Critical success factors)和企业规划法(BSP, Business system planning)。
2 系统分析阶段:主要任务是对组织结构与功能进行分析,理清企业业务流程和数据流程的处理,并且将企业业务流程与数据流程抽象化,通过对功能数据的分析,提出新系统的逻辑方案。
3 系统设计阶段:主要任务是确定系统的总体设计方案、划分子系统功能、确定共享数据的组织,然后进行详细设计,如处理模块的设计、数据库系统的设计、输入输出界面的设计和编码的设计等。
4 系统实施阶段:主要任务是讨论确定设计方案、对系统模块进行调试、进行系统运行所需数据的准备、对相关人员进行培训等。
5 系统运行与维护阶段:主要任务是进行系统的日常运行管理,评价系统的运行效率,对运行费用和效果进行监理审计,如出现问题则对系统进行修改、调整。
这5个阶段共同构成了系统开发的生命周期。结构化生命周期开发方法严格区分了开发阶段,非常重视文档工作,对于开发过程中出现的问题可以得到及时的纠正,避免了出现混乱状态。但是,该方法不可避免的出现开发周期长、系统预算超支的情况,而且在开发过程中用户的需求一旦发生变化,系统将很难做出调整。
2.2.2 管理信息系统常用开发方法之二:原型法
原型法(prototyping approach)是对软件生命周期法的改进。原型法鼓励用户与软件开发人员通力合作,共同工作,在软件开发的相关阶段中都有用户的参与。这样,在软件开发的全过程中,都能及时反映用户的要求,不断缩小开发人员与用户之间对要求理解的差距,从而降低软件开发的风险,同时提高最终的软件产品的质量。
原型法将软件开发过程分为以下四个步骤:
1.用户的基本要求
2.开发初始原型
3.实现并运行原型
4.修改并完善原型
由以上步骤可以看出,设计软件原型是一个迭代过程,它以初始原型为输入,随着不断试验、纠错、使用、评价和修改,不断获得新的原型。在每一次的迭代过程中,都有用户的参加,面对实际存在的模型,用户也就有了实在的感受,从而能提出切合实际的要求,经过每一次修改得到的新的原型将完成更多的任务,具有更强的功能。如此反复,直到用户满意为止。采用原型法开发软件,可以使系统开发更加迅速,整个开发过程为用户提供了一个可塑的系统,从而能使用户很有兴趣地参与到开发过程中。
2.2.3 本系统开发方法的选择
根据本系统的基本要求,决定综合利用上述两种方法,以取长补短。总体上是采用结构化生命周期法进行系统分析和设计的,采用了快速原型法来实现系统。
首先将系统分成五个管理模块:管理员信息管理模块、读者信息管理模块、新书入库管理模块、新书上架管理模块、图书查询模块;然后对每一个模块的内容进行更详细的划分,确定每一部分的内容;最后采用原型法对每一部分细节进行设计。
第三章 系统设计
§3.1 开发及运行环境的选择
3.1.1运行环境的选择
由于本系统是针对学院图书管理而开发的,对运行环境的要求不是太高,服务器端在Windows 2000 Profession 下安装使用,容易操作且维护简单。客户端可以在Windows 98下运行使用。
3.1.2 数据库的选择
在多种数据库软件中,选择了相对来说比较易用的SQL server 2000作为后台数据库。
Microsoft SQL server是一个高性能的关系型数据库管理系统,它具有客户机/服务器体系结构,能够满足大规模分布式计算环境的需要。
Microsoft SQL server数据库管理系统特点如下:
(1)完全的客户机/服务器体系结构。
(2)简单的图形化管理工具。
(3)隐含的迸发控制能力。
(4)丰富的编程接口工具。
(5)多线程体系结构。
(6)SQL server是Microsoft服务器套件BackOffice的成员之一,它与其它软件(Windows 2000、Internet Information Server、Exchange Server等)有机结合,并充分利用它们所提供的服务或功能,从而增强了SQL server数据库系统的功能,同时占用较少的资源。
(7)SQL server数据库系统各种对象的范围更加广泛。
3.1.3 开发工具的选择
Delphi是著名的Borland(现在已和Inprise合并)公司开发的可视化软件开发工具。Delphi被称为第四代编程语言,它具有以下特性:基于窗体和面向对象的方法,高速的编译器,强大的数据库支持,与Windows编程紧密结合,强大而成熟的组件技术和简单、高效、功能强大的特点。在Delphi众多的优势当中,它在数据库方面的特长显得尤为突出:适应于多种数据库结构,从客户机/服务机模式到多层数据结构模式;高效率的数据库管理系统和新一代更先进的数据库引擎;最新的数据分析手段和提供大量的企业组件,借于DELPHI相对于其他开发软件的优势和本管理体统的特点,首选DELPHI开发环境为佳。
§3.2 本系统的设计目标
图书管理系统代替了原来的手工操作,从而快速、准确地对读者及图书等各种信息进行管理和维护。具体有四个目标:
1. 支持学校完成并实现规范化的图书管理;
2. 支持高效率的完成图书管理日常工作的运行,其中有新书入库,读者信息建立、读者查询图书等方面的维护更新工作;
3. 使学院的教职工和学生等广大读者更方便快捷的进行图书查询和借阅。
4.校园图书管理工作的计算机化,各种读书信息可以通过计算机快速,准确地增加、修改、删除、查询。使管理人员对所有读者信息和图书信息的基本概况一幕了然,便于管理。
§3.3 系统功能整体设计
在系统开发总体任务的基础上做系统功能分析,系统开发的总体任务如下:
1. 管理员信息管理模块:涉及到该系统的使用权限,只有管理员能够完成图书的借阅和归还等功能
2. 读者信息管理模块:包括包括读者对自身信息的增加、修改、删除、查询;
3. 新书入库管理模块:包括新到图书的整理和图书的入库工作的完成。
4. 新书上架管理模块:包括对新到图书的上架工作,以供管理员管理和读者查询。
5. 图书查询模块:包括读者对所需文献的参考,查询等各项工作。
图书管理系统的功能模块图 如图 3.3.1所示:
图书管理系统 |
图 3.3.1 功能模块图 |
模块功能分析分析:
图书馆管理人员:负责全院教职工和学生借阅和归还图书的全面工作。
读者信息管理:此项为管理员权限,只有管理员才能实现读者信息的添加、删除、以及详细信息的修改工作。
新书入库信息管理:同上,仍为管理员操作权限,填写新书的详尽信息,如:书名、作者、出版社、出版时间、价格、数量、ISBN、备注等相关信息方可入库。
新书上架:主要对新书安排书库和书架,完成上架功能。
图书信息的查询:对普通读者开放次功能,便于读者完成图书的查询工作。
§3.4 数据库设计
3.4.1 概念结构设计、管理功能图
图书管理系统 |
人员信息 |
图书信息 |
管理人员 |
读者信息 |
新书入库 |
新书上架 |
添
加 |
修
改 |
删
除 |
借阅图书 |
作
者 |
备
注 |
出版社 |
价
格 |
书
名 |
出版时间 |
数
量 |
I S BN |
借阅怔号 |
书本编号 |
查阅图书 |
作
者 |
书本编号 |
出版社 |
价
格 |
书
名 |
出版时间 |
数
量 |
图 3.4.1 管理功能图
3.4.2图书管理系统实体E-R图
数据流图是组织中住处运动的抽象,是管理信息系统逻辑模型的主要模式,它可以用少数几种符号综合地反映出信息在系统中的流动、处理和存储情况。
各个实体的E-R图如下:
图 书 信 息 实 体 |
书本编号 |
出版社 |
作者 |
书名 |
读 者 信 息 实 体 |
证 号 |
姓 名 |
班级 |
类 型 |
…… ………
借 阅 信 息 实 体 |
应还时间 |
书本编号 |
证 号 |
管 理 员 实 体 信 息 |
用户名 |
密 码 |
3.4.3 数据库的逻辑结构设计
逻辑结构设计是将概念数据模型转换成特定的数据库管理系(DBMS)支持的数据模型。根据系统数据库概念设计模型,得出下面的表结构:
表1借阅者基本信息表的结构(User):
表2图书信息表的结构(Book):
表3管理员登陆信息表的结构(yhb):
表4 借阅情况信息表的结构(borrow):
§3.5 数据库保护
运行中的数据库系统容易受到来自多方面的干扰和破坏。如硬件设备和软件系统的故障,未经授权使用数据库的人偷窃信息,利用计算机进行犯罪活动以及系统对于事务处理不当或程序员的误操作等都可能破坏数据库。
数据库的保护就是要排除和防止各种对数据库的干扰破坏,确保数据安全、可靠,以及在数据库已经遭到破坏后如何尽快地恢复正常。对数据库的保护是通过对数据库的恢复、完整性控制、并发控制和安全性控制四个方面实现。
(1)数据的安全性:本系统将各个模块分开,以防有人盗取其它人员的密码进行超出职权的行为。而且,在系统进入时需要密码验证,防止他人偷窃或篡改商业信息。
(2)数据的完整性:为保证数据的正确与相容性,本系统针对用户输入的数据进行检验,对已存在的数据进行选择式输入,而不采用直接输入,这样可防止用户输入错数据。
(3)数据库备份与恢复:为了防止由于硬件或软件原因导致的数据丢失,本系统采用人工或自动方式进行数据库的备份与恢复。
具体的数据备份方式为以下三步:
1、完全备份:可指定在星期几的结业后对数据库进行全部备份,备份时间可能较长(根据数据多少而定)。
2、差异备份:可指定在营业前或结业后对数据库进行差异备份,备份内容为当前数据库内容与上一次全部备份时的差异,比全部备份时间要短。
3、事务日志备份:可在指定的时间对数据库的事务日志进行备份,备份时间最短。
当故障发生时,先备份当前事务日志。然后用以下的四个步骤进行数据恢复:
1、还原最近一次的数据库完全备份。
2、还原最近一次的差异备份,将数据库前滚到这一时刻。
3、还原当天的事务日志备份,以将数据库前滚到最近的备份状态。
4、还原故障之后的日志备份。这将使数据库前滚到故障发生的那。
第四章 系统实施
§4.1 数据模块窗体的设置
在编写数据库应用程序时,经常要遇到这样的情况,即好多组件、窗体同时访问相同的数据源,如果为每一个组件或者窗体都设置一个数据源将是十分耗时的工件,而且要保证这些数据源的确是相同的也需花一番功夫。那么,能不能将这些数据源集中管理,最好是做成一个统一的模块,需要时就将该模块引入而不必直接操作数据源本身呢?数据模块(DataModule)是解决这个问题最好的答案。简单说来,数据模块是用来集中管理数据源的一个窗体,该窗体可被需要的地方随时引入。
但本人在开发这个系统时,开始使用了一下数据模块,但在使用过程中却碰到了一些问题。并且考虑这个系统使用到的TADOQuery控件比较多,如果使用数据控件可能会带来管理上的麻烦,如弄混各个数据控件的作用。还考虑到使用动态生成ADOQuery可能会更节省资源。所以在本人的系统中,开始做的第一个模块“借阅者个人模块”中还稍微使用了一下数据模块。但在后面做的两个模块中大多都是用动态生成ADOQuery来实现的。并且由于SQL语句是动态加入的所以datamodule中的控件也不会多。
该程序按功能分为3大块,主要包括系统管理模块、信息 资料模块和信息查询模块。主模块主要设置下拉菜单,以及对各功能模块的调用,大部分功能模块均采用独立的窗体设计。
主程序主要设计主菜单,通过模块调用,实现对各功能模块的调用。主程序的设计步骤如下:
(1) 新建工程文件,将工程文件保存为BOOK.DPQ,源程序存盘为MAIN.PAS,修改其CAPTION属性为“图书管理系统1.0”,NAME属性值该为MAINFORM。
(2) 向MAINFORM中加入下拉菜单TMAINMENU控件对象,双击该控
(3) 件对象,在“操作”菜单项下,分别设置菜单条“新书入库”、“新书上架”、“读者信息管理”、“借书”、“还书”、“欠费补交”、“信息查询”、“系统登录”、“退出”。在“管理”菜单项下,分别设置菜单条“用户管理”、“读者类型管理”。在“帮助”菜单项下,分别设置菜单条“使用帮助”、“关于”。
(4) 双击菜单项“操作”中的菜单条“退出”,创建ONCLICK事件,是系统具备退出功能。
§4.2启动画面的实现
启动画面是为了给用户一个良好的印像,加深软件的亲和力,没有实际的功能,在Form1窗体中加入了Image和Time组件。源代码比较简单,略,启动画面的窗体如下图4.2-1
§4.3 用户登录窗体的的实现
本窗体是为两种不同的用户(一般用户,管理员)提供选择以进入不同的模满足不同用户的需求。源代码比较简单,略
§4.4 用户密码认证窗体的的实现
本窗体是为了让工作人员或图书馆管理员按照用户名和密码进行登录,并且跟据用户名检查Keyer表中的“权限”字段,该模块主要实现登陆用户的合法性检查和读取操作权限。用户在启动应用程序时,首先要求用户输入登录名和密码,程序对输入的用户名和密码进行验证。如果验证没有通过,则允许重试3次,若3次均出错,则退出,如果正确用户可以进入主程序,该项为管理员操作项目,仅管理员有次权限。普通借阅者无权利进入。而普通借阅者无须登陆进入主程序,它直接可使用“操作”菜单下的“查询信息”的功能,无其他权限,而其他的借书程序由管理员来完成,所以作为普通借阅者,在“操作”菜单下其他菜单条设置为灰色(即ENABLES属性为FALSE状态),用户无法点击。具体设计步骤如下:
(1) 新增一个窗体(NEW FORM)。保存源程序为LOGIN.PAS,设置其CAPTION属性为“用户登录”,设置其NAME属性为LOGINFORM。
(2) 向该窗体中加入2个TLABEL控件对象,2个TEDIT控件对象和2个TBITBEN控件对象,其NAME属性值分别为LABEL1、LABEL2、EDIT1、EDIT2、BITBTN1和BITBTN2,这些控件对象的其他属性设置略
(3) 向窗体中加入一个TDATABASE控件对象,用它连接并打开数据库文件BOOK。设置该对象的ALIASNAME属性为BOOK,设置LOGINPROMPT属性值为FALSE,表示在打开数据库文件时不弹出数据库登陆窗口,为了能使数据库文件能正常打开,为该控件对象设置ONLOGIN事件,当试图打开数据库十触发该事件,一般在该事件处理中提供数据库的用户名和密码,该事件的代码略……
(4) 选中该窗体,通过双击OBJECT INPECTOR 窗口的EVENT页的ONACTIVATE栏,创建ONACTIVATE事件处理程序,该程序在主要模块启动时执行,这里完成初始化的功能。
(5) 双击“确定”按钮,建立该按钮的ONCLIVK事件处理程序,即对输入的登录名和密码进行验证。
(6) 双击“退出”按钮,为该按钮建立ONCLICK事件,为该按钮设置退出功能。
(7) 在主程序MAINFORM中,为该模块建立事件调用,通过该模块的OBJECT INSPECTOR窗口EVENT页,双击ONACTIVATE栏,建立ONACTIVATE事件,该时间在主程序启动时执行,部分代码如下:
用户登入 |
否
是否合格格法 |
是
系统主窗口 |
if fieldbyname('yh_password').asstring=userkey.text then
begin //密码正确,可以进入
operator:=username.Text;
logined:=true;
mainform.init;
closebtn.Click;
end else
begin//密码不正确,不能进入
messagebox(application.handle,'用户名和密码不匹配,请重新输入!','错误信息',mb_ok or mb_iconerror);
userkey.SetFocus;
number:=number+1;
if number=3 then
begin
messagebox(application.handle,'你不是一个合法的用户!你不能再试了!','严重警告',mb_ok or mb_iconinformation);
closebtn.Click;
§4.5 借阅者服务模块的实现
借阅者服务窗体的功能主要是图书的查询,个人借阅情况查看及个人部分信息的修改。界面图如下:
4.5.1图书查询功能的实现
在本系统中,任何人都有权限使用查询功能,不做任何限制。界面如下,
由于实现的查询功能有多种,如按图书编号、图书名称等字段进行完全体配查找和部分体配的模糊查找,其中实现的方法者差不多,所以只给出部分体配查找的关键代码,如下:
Memo1.Lines.Add('书名:'+bookAdo.fieldbyname('book_name').AsString);
Memo1.Lines.Add('书本编号:'+bookAdo.fieldbyname('book_id').AsString);
Memo1.Lines.Add('ISDN号:'+bookAdo.fieldbyname('isbn').AsString);
Memo1.Lines.Add('作者:'+bookAdo.fieldbyname('author').AsString);
Memo1.Lines.Add('出版社:'+bookAdo.fieldbyname('publish_company').AsString);
Memo1.Lines.Add('价格:'+bookAdo.fieldbyname('price').AsString);
4.5.2密码修改模块功能的实现
该模块主要对操作员密码进行修改,具体管理权的操作员可以修改其密码,具体设计步骤如下:
(1) 新增一个窗体(NEW FORM)。保存源程序为PASSWORD.PAS,设置其CAPTION属性为“密码修改”,设置其NAME属性为PASSWORLDFORM。
(2) 向该窗体中加入3个TLABEL控件对象,3个TEDIT控件对象和2个TBITBEN控件对象,其NAME属性值分别为LABEL1、LABEL2、LABEL3、EDIT1、EDIT2、EDIT3、BITBTN1和BITBTN2,这些控件对象的其他属性设置略
(3) 向窗体中加入一个TDATABASE控件对象,其NAME属性值为DATABASE1,用DATABASE1控件对象连接并打开数据库文件BOOK。设置该对象的ALIASNAME属性为BOOK,设置LOGINPROMPT属性值为FALSE,表示在打开数据库文件时不弹出数据库登陆窗口,为了能使数据库文件能正常打开,为该控件对象设置ONLOGIN事件,当试图打开数据库十触发该事件,一般在该事件处理中提供数据库的用户名和密码,该事件的代码略……
(4) 为“退出”按钮创建ONACTIVATE事件,该程序在主要模块启动时执行,这里完成初始化的功能。
(5) 为该窗体创建ONCLIVK事件处理程序,该程序在主要模块启动十执行,这里完成初始化的功能。
(6) 为EDIT1创建ONEXIT事件处理,当光标离开该控件对象时,触发该事件处理,检测所输入的用户名是否存在。
(7) 为“确定”按钮创建ONCLICK事件。当确认输入信息时,触发该事件处理。
(8) 在MAINFORM中建立调用本模块的事件。
4.5.3借阅者借阅情况功能的实现
当借阅者正确登录到系统后,此功能将被激活,使用户能查看到自身的借阅情况。在此系统中,信息的显示一般用ListView来实现,只在较少的情况下用到了DBgrid,因为我觉得ListView更好实现,并能使信息数据对用户的完全分离。
4.5.4借阅者个人资料维护功能的实现
此功能实现当前借阅者部份资料的修改,但借书证号和身份类别这样的信息不允许修改,这是图书馆管理员模块的功能。在此界面中点击修改按钮将出现“修改”窗体(Form8),点击修改密码按钮将出现groupbox8,在这里进行密码修改。
4.6工作人员-图书借阅/归还模块的实现:
4.6.1工作人员进行图书借阅功能实现
在这个功能中,工作人员输入借阅者的借阅证号和所要借阅的图书的图书编号,然后点击借阅按钮就可进行图书借阅。考虑到实际中可能会出现只知图书名而不知图书编号的情况,在此界面下方加入了一个转换功能,可以把图书名称转换成图书编号,再进行图书借阅。
在借阅完成后会生借阅报表以便借阅者检查和确认,借阅报表的打印效果如下图,实现比较简单,略去实现过程。
4.6.2工作人员进行图书归还功能实现
在此功能中,工作人员根据借阅者的借书证号和归还的图书编号进行图书的归还工作。并且根据现实中可能会出现的只知图书名不知图书编号的归还情况,所以加入了按书籍名称进行归还的功能。这个功能是图书借阅功能中把图书名称转换成图书编号的一种改进方法,这样就不用如借阅功能中一样要先转换再借阅了。归还完成后,同样会打印出归还报表以便用户检查和确认。
4.7图书馆管理员模块的实现
4.7.1图书馆管理员图书管理功能的实现
在这个功能中可以在(*图书编号)中输入图书编号,点查找按钮后就会在各个相应的组件中显示出信息,或按图书名称模糊查找到所要的记录,在各个相应的组件中显示第一条记录的信息,也可在下端的ListView组件中点击某一条记录,在各个相应的组件中也会显示所选记录的信息。在入库功能中只要不是相同的图书编号并且带*号提示的字段不为空就可插入新的图书记录。删除则删除那些Book表中的图书记录,如果借出还可依用户要求连带删除owner表中的记录。因为图书修改与图书入库的功能与工作人员记录修改和工作人员记录添加的实现过程一样。
4.7.2图书馆管理员工作人员和管理员管理功能的实现
在此功能中可以加入工作人员或是管理员,或是修改他们的密码、权限。
在此功能中如果选中ListView中的记录,则在右边相应的组件中显示出信息,并且管理员还可对这些记录进行修改或加入新的记录。并且也可以点删除按钮删除选中的一条或多条记录,删除功能与图书记录的删除相同。
4.7.3图书馆管理员修改图书类别及统记功能的实现
在此窗体中能对图书的类别进行删除,添加和修改,这模块的功能的实现过程与图书记录的删除,添加和修改一样的,但是这个窗体还能跟据图书类别进行统计,还可根据Book表和owner表统计出图书总数目,库存图书数目,借出图书数目及借阅过期的图书数目。在这里给出统计图书总数目,库存图书数目,借出图书数目及借阅过期的图书数目的实现过程中的几个函数和过程。
4.7.4图书馆新书入库功能的实现
新书入库完成的是将新进的图书整理后按照图书的相关内容分类,然后实现入库操作,具体设计步骤如下:
(1)新增一个窗体(NEW FORM)。保存源程序为NEWBOOK.PAS,设置其CAPTION属性为“新书入库”,设置其NAME属性为NEWBOOKDFORM。
(2) 向该窗体中加入7个TLABEL控件对象,7个TEDIT控件对象和3个TBITBEN控件对象,其NAME属性值分别为LABEL1、LABEL2、LABEL3、LABEL4、LABEL5、LABEL6、LABEL7、EDIT1、EDIT2、EDIT3、EDIT4、EDIT5、 EDIT6、 EDIT7、BITBTN1、 BITBTN2和BITBTN3,这些控件对象的其他属性设置略
(3) 向窗体中加入一个TDATABASE控件对象,其NAME属性值为DATABASE1,用DATABASE1控件对象连接并打开数据库文件BOOK-INFO设置该对象的ALIASNAME属性为NEWBOOK,设置LOGINPROMPT属性值为FALSE,表示在打开数据库文件时不弹出数据库登陆窗口,为了能使数据库文件能正常打开,为该控件对象设置ONLOGIN事件,当试图打开数据库十触发该事件,一般在该事件处理中提供数据库的用户名和密码,该事件的代码略……
(5) “退出”按钮创建ONACTIVATE事件,该程序在主要模块启动时执行,这里完成初始化的功能。
(6) 为该窗体创建ONCLIVK事件处理程序,该程序在主要模块启动十执行,这里完成初始化的功能。
(7) 为EDIT1创建ONEXIT事件处理,当光标离开该控件对象时,触发该事件处理,。
(8) 为“确定”按钮创建ONCLICK事件。当确认输入信息时,触发该事件处理。
(9) 为“清空”按妞创建ONACTIVATE事件,需要清空时,触发该事件进行处理
(10)为该窗体创建ONCLIVK事件处理程序,该程序在主要模块启动十执行,这里完成初始化的功能。
(11)为EDIT1创建ONEXIT事件处理,当光标离开该控件对象时,触发该事件处理,检测所输入的用户名是否存在。
(12)在MAINFORM中建立调用本模块的事件。
4.7.5图书馆维护借阅者管理功能的实现
此功能能对借阅者信息进行查看添加、删除、修改。在这里给出添加的代码,其他详尽代码见附录:
begin
if not Assigned(ReadInfoForm) then
begin
ReadInfoForm:=TReadInfoForm.Create(nil);
end;
ReadInfoForm.flag:=true;
ReadInfoForm.Retrieve;
setwindowpos(ReadInfoForm.handle,hwnd_top,0,0,0,0,SWP_NOSIZE or SWP_NOMOVE or SWP_SHOWWINDOW);
end;
4.7.6图书馆身份维护功能的实现
这一部分是对借阅者身份进行管理,能对身份进行添加、删除、修改。并且同样的在listview中选中某条或多条记录时会在相应的右边的组件中显示出信息。此功能实现过程与前面所叙有雷同,略。
4.7.7图书馆借阅者统计功能的实现
此功能按借阅者身份进行统计,得出具有某种身份的借阅者总数,此种身份的并借阅图书的借阅者数和所借阅的图书数。
第五章 系统的运行和维护
§5.1 系统的运行
5.1.1 初始数据的录入
本系统初始数据采用键盘手工录入,为了演示方便已向数据库中添加了一些记录内容。
5.1.2 如何进入本系统进行操作
1. 打开计算机启动 Windows 2000 Professional操作系统
2. 打开“我的电脑”,选择E盘:E/guangrong/程序
3. 用鼠标点击BOOK.EXE 即可在DELPHI7.0环境下运行该系统。
5.1.3 系统菜单功能介绍
1. “登录窗口”由合法用户正确输入用户名和密码,然后才可进入系统。
2. “系统管理”菜单包括“添加用户”、“修改密码”、“退出系统”。
(1) 系统管理员可以通过“添加用户”功能来添加本系统的合法用户。
(2) 合法用户可以通过“修改密码”功能来修改自己的登录密码。
5.1.4 系统安全的维护
安排图书馆专职管理人员定期维护系统,非图书馆管理人员不得擅自打开本系统进行修改和操作。
§5.2 系统的维护与评价
管理信息系统是一个复杂的人机系统。系统外部环境与内部因素的变化,不断影响系统的运行,这时就需要不断地完善系统,以提高系统运行的效率与服务水平,这就需要从始至终地进行系统的维护工作。
系统评价主要是指系统建成后,经一段时间的运行后,要对系统目标与功能的实现情况进行检查,并与系统开发中设立的系统预期目标进行对比,及时写出系统评价报告。
系统维护与评价阶段是系统生命周期中的最后一个阶段,也是时间最长的一个重要阶段,就像汽车的维护工作好可以延长汽车的使用寿命和提高其使用效率一样,系统维护工作的好坏可以决定系统的生命周期的长短和使用效果。
第六章 开发总结
在做毕业设计以前,我对管理信息系统开发的理解只是停留在理论和知识的水平上,只是一味地去为了考试通过而理解和背书。只是所谓的“纸上谈兵”而已,缺乏实际的软件开发经验和动技术,缺乏对所学知识的融会贯通。通过这次毕业论文的设计,我通过自学DELPHI7.0,完成了《图书管理系统》的设计与开发。在论文设计的整个过程中我遇到了很低多的问题,但我都在慢慢地学习过程中一点一点地克服了。同时我发现真正学好、学懂一门新的语言是有难度,值得庆幸的是,在此期间指导老师给了我很大的帮助和鼓励。使我通过这次毕业论文的设计又学习了好多好多在平常考试过程中学习不到的知识和自己动手的能力。在边自学边设计的过程中,我查阅了好多的资料,请教了不少的同学和老师。在刚开始编程的时候还是不能得心应手,训练应用。在一次又一次的修改过程中不断地进步和提高,但是还是有些功能我无法把它用到我的论文中来,真有点遗憾,同时由于这次时间比较紧,相信我会在接下来的时间里更深入地去钻研这门课程。这次毕业设计是我这几年来所学知识的综合应用,使我对几年来所学的专业课有了更加深刻的认识,使得所学的知识得到融会贯通,得到了以前学习任何一门课都没有的提高与进步,对我来说是一次很好的锻炼,这不仅把以前所学的知识再重温习一遍,而且又学会了一门新的语言。
总之,通过短短三个月的论文设计,我最终完成了《图书管理系统》的软件开发。在开发本系统的过程中,我不仅学会DELPHI 7.0这门语言,还学会应用SQL Server 2000数据库管理系统来建立数据库,更重要的是学到了很多编程思想。我会在以后的学习中去学习更多的计算机语言,来更加完善我的编程能力。
参考文献
(1) 黄梯云,《管理信息系统》,经济科学出版社,2000.3
(2)甘仞初,《信息系统开发》,经济科学出版社,2000.6
(3)主编:求是科技,《DELPHI7数据库项目案例导航》,清华大学出版社,2005.1
(4)李增民,《DELPHI7数据库开发技术与工程实践》,人民邮电出版社,2004.4
(5)Delphi主讲教师:谢新华,《delphi高级程序员认证教材》北京科海培训中心 2003.5
(6)徐人凤 曾建华 主编,《SQL Server2000数据库及应用基础》凤 高等教育现版社 2004