当前位置:首页Delphi → DELPHI图书馆管理系统

DELPHI图书馆管理系统

更新日期:2008-11-2
  • 论文设计编号: Delphi-120
  • 论文设计语言: Delphi
  • 论文设计评级: 3星级
  • 论文设计页数: 36 页
  • 论文设计字数: 12000 字左右

DELPHI图书馆管理系统

 
 图书管理系统是典型的信息管理系统(MIS),其开发主要包括后台数据库的建立和维护以及前端应用程序的开发两个方面。对于前者要求建立起数据一致性和完整性强、数据安全性好的库。而对于后者则要求应用程序功能完备,易使用等特点。

  因此本人结合开入式图书馆的要求,对MS SQL Server2000数据库管理系统、SQL语言原理、Delphi应用程序设计,Delphi数据库技术进行了较深入的学习和应用,主要完成对图书管理系统的需求分析、功能模块划分、数据库模式分析,并由此设计了数据库结构和应用程序。系统运行结果证明,本文所设计的图书管理系统可以满足借阅者、图书馆工作人员和高级管理员三方面的需要。

第一章对数据库应用系统开发和图书管理系统进行了简明的介绍,并分析了开发图书管理系统所应进行的工作。

第二章对数据库的设计和SQL语言的使用进行了系统分析,为深入理解数据库应用打下了基础。

第三章学习了具体的开发工具Delphi 6.0,对其数据库组件,SQL语言在Delphi中的应用等数据库编程关键技术进行了系
统的介绍。

第四章分析了图书管理信息系统的应用需求,按照数据库设计理论一步一步地给出了系统需求说明书、局部ER图、全局ER图、系统关系模式,子模式,利用MS SQL Server2000建立了数据库

 

设计充分利用Delphi 6MS SQL Server2000数据库技术的强大力量,提高了编程效率和可靠性。

关键词:数据库,SQL语言,MS SQL ServerDelphi6,数据库组件,图书管理,窗体,listview组件

目 录
摘 要 ……………………………………………………………………………… I
第一章 绪 论 …………………………………………………………………… 1
§1.1
数据库应用系统开发简介 ……………………………………………… 1
§1.2
图书管理系统 ……………………………………………………… 4
§1.3
本文所做的主要工作 …………………………………………………… 6
第二章 数据库理论基础 ………………………………………………………… 7
§2.1
数据库系统设计及范式分析 …………………………………………… 7
§2.2 SQL
语言介绍………………………………………………………………… 11
2.2.1 SQL
基础 ………………………………………………………………… 11
2.2.2 SQL
语句 ………………………………………………………………… 12
第三章 应用系统开发工具………………………………………………… 16
§3.1 Delphi6.0
 VCL组件的体系结构……………………………………… 16
§3.2
数据库组件介绍 …………………………………………………………… 17
§3.3 SQL
语言在Delphi中的应用 …………………………………………… 18
§3.4 MS SQL Server
简述 …………………………………………………… 22
第四章 图书管理系统设计分析 ………………………………………… 24
§4.1
应用需求分析 …………………………………………………………… 24
§4.2
系统功能模块划分 ……………………………………………………… 29
§4.3
系统数据库设计 ………………………………………………………… 29
第五章 图书管理系统应用程序设计 …………………………………… 37
§5.1
系统窗体模块组成 ………………………………………………………… 37
§5.2
数据模块窗体的设置 ……………………………………………………… 37
§5.3
启动画面的实现…………………………………………………………… 38
§5.4
用户登录窗体的的实现……………………………………………………… 39
§5.5
用户密码认证窗体的的实现………………………………………………… 39
§5.6
借阅者服务模块的实现…………………………………………………… 40
5.6.1
图书查询功能的实现………………………………………………… 41
5.6.2
借阅者登录功能的实现………………………………………………… 42
5.6.3
借阅者借阅情况功能的实现…………………………………………… 43
5.6.4
借阅者个人资料维护功能的实现……………………………………… 47
§5.7
工作人员-图书借阅/归还模块的实现……………………………………… 49
5.7.1
工作人员进行图书借阅功能实现……………………………………… 50
5.7.2
工作人员进行图书归还功能实现……………………………………… 53
§5.8
图书馆管理员模块的实现…………………………………………… 54
5.8.1
图书馆管理员图书管理功能的实现…………………………………… 55
5.8.2
图书馆管理员工作人员和管理员管理功能的实现…………………… 58
5.8.3
图书馆管理员修改图书类别及统记功能的实现……………………… 60
5.8.4
图书馆管理员借阅者管理功能的实现………………………………… 62
5.8.5
图书馆维护借阅者管理功能的实现………………………………… 62
5.8.6
图书馆身份维护功能的实现……………………………………… 64
5.8.7
图书馆借阅者统计功能的实现………………………………… 65
5.8.8
图书馆统计借阅过期记录功能的实现………………………… 67
§5.9
系统信息显示的实现………………………………………………… 68
第六章 结束语 ……………………………………………………………… 69
致 谢 ………………………………………………………………………………70
参考书目 …………………………………………………………………………… 70

第一章

§1.1
数据库应用系统开发简介

 在数据库应用系统开发之前,对开发数据库的基本概念应当了解,对数据库的结构、开发数据库应用程序的步骤、开发体系及方法都应当有相当清晰的了解和认识。
数据库应用系统开发的目标是建立一个满足用户长期需求的产品。开发的主要过程为:理解用户的需求,然后,把它们转变为有效的数据库设计。把设计转变为实际的数据库,并且这些数据库带有功能完备、高效能的应用。
数据库技术在计算机软件邻域研究中一直是非常重要的主题,产生于60年代,30多年来数据库技术得到了迅速发展,并已形成较为完整的理论体系和一大批实用系统。并且,近年来,随着World Wide Web(WWW)的猛增及Internet技术的迅速发展,使得数据库技术之时成为最热门技术之一。

1.1.1
数据库

  如图1.1显示了数据库系统的主要组件。数据库由DBMS(数据库管理系统)处理,DBMS则由开发人员和用户通过应用程序直接或间接地使用。它主要包括四个要素:用户数据、元数据、索引和应用元数据。

1.1.1.1
用户数据

  目前,大多数主流数据库管理系统把用户数据表示为关系。现在把关系看作数据表。表的列包含域或属性,表的行包含对应业务环境中的实体的记录。并非所有的关系都同样符合要求,有些关系比其它关系更结构化一些。第二章描述了一个用以产生良好结构关系的过程,称作规范化。
为了对比结构差的关系和结构好的关系之间的差别,以本文所设计的图书管理系统中的图书和图书借阅者关系为例来说明,假若设计关系R1(借书证号,姓名,性别,身份编号,身份证,联系电话,图书编号,图书名称,图书类别,作者,出版社,出版日期,备注,价格,数量);这个关系的问题出在它有关于两个不同主题的数据,就是图书借阅者和图书。用这种方式构成的关系在进行修改时,会出现问题。因为一个图书借阅者可能借阅多本书,如果某个图书借阅者的某个字段(如联系电话)出现变更,它所借阅的图书记录(可能多个)也就必须变化,这是不好的。因此数据用两个关系表示更好。现在如果某图书借阅者改变了它的联系电话,只有关系(表)user的对应行需要改变。当然,要想产生一个,显示图书名称及其借阅者联系电话的报表,就需要将这两个表的行结合起来。结果表明,将关系分别存储,在生成报表的时候将它们结合起来,比把它们存储在一个合成的表中更好。
user
(借书证号,姓名,性别,身份编号,身份证,联系电话,)
book
(图书编号,图书名称,图书类别,作者,出版社,出版日期,备注,价格,数量)

1.1.1.2
元数据

  数据库是自描述的,这就意味着它自身包含了它的结构的描述,这种结构的描述称作元数据。因为DBMS产品是用来存储和操纵表的,所以大多数产品把元数据以表的形式存储,有时称作系统表。这些系统表存储了数据库中表的情况,指出每一个表中有多少列,那一列是主关键字,每一列的数据类型的描述,它也存储索引、关键字、规则和数据库结构的其他部分。
  在表中存储元数据不仅对DBMS是有效的,对用户也是方便的,因为他们可以使用与查询用户数据同样的查询工具来查询元数据。本文第二章所介绍的SQL语言可以同时用于元数据和用户数据。

第三章 应用系统开发工具

§3.1 Delphi6.0 VCL组件的体系结构

  Delphi类可以粗略地分成两部分:一部分是组件类,这些组件类通常以某种方式出现在组件面板上,当用户从组件面板上点取一个类的图标后,在程序中就自动生成了该类的对象(非可视组件除外);另一部分是功能类,这此功能类的对象通常出现在程序代码中,起着不可代替的作用,但是这些功能类在组件面板上是找不到的。在Delphi中,每一个类的祖先都是Tobject,整个类的层次结构就像一棵倒挂的树,在最顶层的树根即为Tobject类。这样,按照面向对象编程的基本思想,就使得用户可用Tobject类这个类型代替任何其它类的数据类型。实际上在Delphi的类库中,Tobject类派生出了为数相当众多的子类,它们形成了一个庞大的体系,通常情况下,如果不自行开发组件,就不必了解整个类的体系结构,只用到类层次树的叶结点就足够了。
  这一小节简略介绍一下Delphi 6.0VCL(可视化组件库)组件的体系结构。凡是做过程序开发的人都知道从来没有单纯的数据应用程序,也就是说,数据库应用程序必须和用户界面(可以是图形界面,也可以是命令接口)元素相结合,只讲界面或只讲数据库本身都构不成数据库应用程序,因而用Delphi 6.0开发数据库应用程序就隐含着界面开发。Delphi6中的VCL组件可用图3-1来说明。
  组件在Delphi程序的开发中是最显眼的角色。大家知道,在编写程序时一般都开始于在组件面板上选择组件并定义组件间的相互作用。但也有一些组件不在组件面板上,例如TformTapplication(典型的非可视组件)。组件是Tcomponents派生出来的子类,可以流的形式存放在DFM文件中,具有事件和Publish属性。
窗口组件类是窗口化的可视化组件类,在Delphi的类库中占有最大的份额。在实际编程中,窗口组件类的对象都有句柄,可以接受输入焦点和包含其它组件。
  图形组件与窗口组件并列,是另一大类组件。图形组件不是基于窗口的,因而不能有窗口句柄,不能接受输入焦点和包含其它组件。从图8-43中可以看出,图形组件的基类是TgraphicControl,在实际编程中,它们必须寄生于它们的宿主——窗口组件类的对象,由它们的拥有者负责其显示,而且它们还能触发一些和鼠标活动相关的事件。图形控件最典型的例子是TlabelTspeedButton。由此可以看出图形组件的功能很弱,图形组件的用处何在呢?其实使用图形组件的最大好处在于节省资源,正是因为它们的功能较弱,所以使用的系统资源就要少。在一个应用程序中,如果能在不影响其功能的前提下合理大量地使用图形组件,将会大减少程序对系统资源的消耗。
非可视组件是与可视组件相并列的另一类组件,非可视组件在程序运行中是不可见的(除各种对话框组件之外,事实上有人认为对话框组件不能归入非可视组件,应该是另一种介于可视与非可视之间的组件)。
最后要说明一下,常说的控件实际上是一种组件。也就是说组件这个概念要大于控件,控件在内涵上包含于组件中。控件由Windows系列操作系统提出并使用,而组件是Borland和其它厂商在对Windows控件做了必要的扩展之后提出来的概念,它们是在不同时期由不同的厂商提出的概念。

§3.2
数据库组件介绍


 数据模块设计窗口 数据模块设计窗口是用来设计和维护数据模块的。数据模块设计窗口中包含了所有以.DTI作为文件扩展名的Data Diagram文件的信息。DTI文件在编译时不起任何作用。

§3.3 SQL
语言在Delphi中的应用

  在Delphi中使用SQL语言非常方便,一般来说,都是通过TqueryTADOquery组件来使用SQL语言的。可以在TqueryTADOquery组件的SQL属性中设置SQL语句。设计程序时,在该组件的属性对话框中选择SQL属性,单击带省略号的按钮,就可以打开String List Editor对话框,然后我们就可以在对话框中添加SQL语句。还可以使用DelphiSQL Builder来自动生成SQL语句,这样可以避免手工编写SQL而可能造成的语法错误。
静态SQL语句在程序设计时便已固定下来,它不包含任何参数和变量。
动态SQL语句,也被称作参数化的语句,在其中间包含着表示字段名或表名的参数,例如下面的语句是一条动态SQL语句:
Select * From Book Where
图书编号 =:bookCode; 
其中的变量bookCode便是一个参数变量,它由一个冒号引导,在程序运行过程中,必须要为该参数赋值,该条SQL语句才能正确执行,每次运行应用程序时可以为该参数变量赋予不同的值。为参数赋值有三种方法:
根据参数在SQL语句中出现的顺序,设置TADOQuery组件的parameters属性值为参数赋值。
直接根据SQL语句中各参数的名字,调用ParamByName方法来为各参数赋值。
TADOQuery组件的DataSource属性设置为另一个数据源,这样将另一个数据源中与当前TADOQuery组件的SQL语句中的参数名相匹配的字段值赋给其对应的参数。利用这种方法也能实现所谓的连接查询,创建主要明细型数据库应用。
  在使用动态SQL语句编程时,常常用到一个很重要的方法Prepare,调用Prepare 方法之后,Delphi会将带参数的SQL语句传送给与其对应的数据库引擎,对动态SQL语句进行语法分析和优化。虽然在用动态SQL语句编程时,调用Prepare方法并不是必须的,但是调用Prepare方法后,会极大地提高动态SQL 语句的执行性能,特别是当要反复多次执行同一条动态SQL语句时,其优越性会更加明显。 如果在应用程序中执行一条SQL语句之前并没有显式地调用Prepare方法,每次在执行SQL 语句时,Delphi会隐含地调用Prepare方法以准备这个查询。
  TadoQuery部件还有一个Prepare属性,这是一个布尔型属性,当其属性值为True时, 表明该查询已被准备好了( SQL 语句已被传送到数据库引擎中 ) 当我们使用参数编辑器Param

 

 

5.8.2图书馆管理员工作人员和管理员管理功能的实现
  在此功能中可以加入工作人员或是管理员,或是修改他们的密码、权限。

在此功能中如果选中ListView中的记录,则在右边相应的组件中显示出信息,并且管理员还可对这些记录进行修改或加入新的记录。并且也可以点删除按钮删除选中的一条或多条记录。删除功能与图书记录的删除一般,所以下面只给出添加与修改的实现过程。

5.8.3
图书馆管理员修改图书类别及统记功能的实现

  在此窗体中能对图书的类别进行删除,添加和修改,这模块的功能的实现过程与图书记录的删除,添加和修改一样的,但是这个窗体还能跟据图书类别进行统计,还可根据Book表和owner表统计出图书总数目,库存图书数目,借出图书数目及借阅过期的图书数目。在这里给出统计图书总数目,库存图书数目,借出图书数目及借阅过期的图书数目的实现过程中的几个函数和过程

5.8.4
图书馆管理员借阅者管理功能的实现

  查询借阅者可根据借阅者的借书证号或姓名或身份编号查找到借阅者的信息,也可以实行模糊查找,这个功能的实现与前面图书查找的实现过程一般,就不再详细说明。
5.8.5
图书馆维护借阅者管理功能的实现

此功能能对借阅者信息进行查看添加、删除、修改。在这里给出刷新按钮的实现过程

5.8.6
图书馆身份维护功能的实现

  这一部分是对借阅者身份进行管理,能对身份进行添加、删除、修改。并且同样的在listview中选中某条或多条记录时会在相应的右边的组件中显示出信息。此功能实现过程与前面所叙有雷同,略。

5.8.7图书馆借阅者统计功能的实现


DELPHI图书馆管理系统






本站公告

欢迎来到LW208计算机毕业设计,本站提供这些设计的初衷是为大家在毕业设计过程中作参考之用或研究编程作参考之用,切勿直接把它用来作为你自己的毕业设计交给老师,否则对提高自己的能力和水平没有任何益处.
从本站获得相关设计资料后,你最好参考该设计的源代码用相应的编程工具重新做一遍,可以增删或修改某些模块.对于论文要结合源程序和自己的工作生活实际进行相应的修改.

www.LW208.com Beta V1.5 2004-2008 Inc.