DelphiAccess图书管理系统方案.docx
《DelphiAccess图书管理系统方案.docx》由会员分享,可在线阅读,更多相关《DelphiAccess图书管理系统方案.docx(25页珍藏版)》请在冰豆网上搜索。
![DelphiAccess图书管理系统方案.docx](https://file1.bdocx.com/fileroot1/2023-1/5/9554ada9-77e4-4e17-88df-d217903e03c4/9554ada9-77e4-4e17-88df-d217903e03c41.gif)
DelphiAccess图书管理系统方案
图书管理系统
摘要:
当今,信息技术飞速发展,深刻的影响着我们的日常生活的方方面面。
随着信息技术的不断发展,其在图书信息化管理方面也得到越来越深入且广泛的应用。
如何将先进的信息技术运用到图书管理中,用来改变图书的传统管理模式,多方面的、多角度满足图书管理的要求,成为了高校系部图书管理的当务之急。
要高效率地把部活动有机地组织起来,就必须建立与自身特点相适应的图书管理系统。
本文介绍了在Delphi7环境下采用“自上而下地总体规划,自下而上地应用开发”的策略开发一个图书馆管理系统的过程。
通过分析图书馆对于书本,读者,用户的管理,创建了一套行之有效的计算机管理的方案。
主要完成对图书管理系统的分析与设计、数据库模式分析、系统功能模块划分,并由此设计了数据库结构和应用程序。
本系统界面友好,操作简单,比较实用。
关键词:
图书管理系统;Delphi;Access数据库
第一章系统概述
在如今的各行各业中都离不开信息处理,这正是计算机被广泛应用于信息管理系统的环境。
计算机的最大好处在于利用它能够进行信息管理。
使用计算机进行信息控制,不仅提高了工作效率,而且大大的提高了其安全性。
尤其对于复杂的信息管理,计算机能够充分发挥它的优越性。
计算机进行信息管理与信息管理系统的开发密切相关,系统的开发是系统管理的前提。
本系统就是为了管理好图书馆书籍、读者信息而设计的。
传统的系部图书管理一直采用手工操作,入库、借阅、查询等各个环节都大量消耗了人力、物力,流程繁琐复杂,管理难度大,加之图书库存的日益庞大,数据受工作量、工作习惯等因素制约,工作人员难以对图书数据进行准确的统计、分析,致使在工作中经常出现错误和漏洞。
采用计算机管理系统管理图书,可以充分利用现代化管理手段规操作,科学、有序、高效地进行图书信息管理,并且由系统自动进行图书入库、出库等计算,相关信息不需要重复录入,杜绝了差错,大大提高了工作效率。
本图书管理系统可以说是一个综合性的图书管理系统,它集成了图书管理系统、读者管理系统、借阅管理系统等多种功能,紧密结合用户的使用要求,因而具有较强的实用性和先进性。
第二章开发工具简介
2.1Delphi简述
本系统选用的数据库语言介绍如下:
Delphi是一种可视化的、面对对象和调用事件驱动方式的结构化高级程序设计,可用于开发Windows环境下的种类应用程序。
它简单易学、效率高,且功能强大,程序开发人员不必具有C/C++编程基础。
在Delphi环境下,利用事件驱动的编程机制、新颖易用的可视化设计工具,使用Windows部的应用程序接口(API)函数,以与动态库(DLL)、动态数据交换(DDE)、对象的与嵌入(OLE)、开放式数据访问(ODBC)等技术,可以高效、快速地开发出Windows环境下功能强大、图形界面丰富的应用软件系统。
总的来说,Delphi具有以下特点:
(1)可视化编程:
用传统程序设计语言设计程序时,都是通过编写程序代码来设计用户界面,在设计过程中看不到界面的实际显示效果,必须编译后运行程序才能观察。
如果对界面的效果不满意,还要回到程序中修改。
有时候,这种编程-编译-修改的操作可能要反复多次,大大影响了软件开发效率。
Delphi提供了可视化设计工具,把Windows界面设计的复杂性“封装”起来,开发人员不必为界面设计而编写大量程序代码。
只需要按设计要求的屏幕布局,用系统提供的工具,在屏幕上画出各种“部件”,即图形对象,并设置这些图形对象的属性。
Delphi自动产生界面设计代码,程序设计人员只需要编写实现程序功能的那部分代码,从而可以大大提高程序设计的效率。
(2)面向对象的程序设计
Delphi7支持面向对象的程序设计,但它与一般的面向对象的程序设计语言(C++)不完全一样。
在一般的面向对象程序设计语言中,对象由程序代码和数据组成,是抽象的概念;而Delphi则是应用面向对象的程序设计方法(OOP),把程序和数据封装起来作为一个对象,并为每个对象赋予应有的属性,使对象成为实在的东西。
在设计对象时,不必编写建立和描述每个对象的程序代码,而是用工具画在界面上,Delphi自动生成对象的程序代码并封装起来。
每个对象以图形方式显示在界面上,都是可视的。
(3)结构化程序设计语言
Delphi具有高级程序设计语言的语句结构,接近于自然语言和人类的逻辑思维方式。
Delphi语句简单易懂,其编辑器支持彩色代码,可自动进行语法错误检查,同时具有功能强大且使用灵活的调试器和编译器。
Delphi是解释型语言,在输入代码的同时,解释系统将高级语言分解翻译成计算机可以识别的机器指令,并判断每个语句的语法错误。
在设计Delphi程序的过程中,随时可以运行程序,而在整个程序设计好之后,可以编译生成可执行文件(.EXE),脱离Delphi环境,直接在Windows环境下运行。
(4)事件驱动编程机制
Delphi通过事件来执行对象的操作。
一个对象可能会产生多个事件,每个事件都可以通过一段程序来响应。
例如,命令按钮是一个对象,当用户单击该按钮时,将产生一个“单击“(CLICK)事件,而在产生该事件时将执行一段程序,用来实现指定的操作。
在用Delphi设计大型应用软件时,不必建立具有明显开始和结束的程序,而是编写若干个微小的子程序,即过程。
这些过程分别面向不同的对象,由用户操作引发某个事件来驱动完成某种特定的功能,或者由事件驱动程序调用通用过程来执行指定的操作,这样可以方便编程人员,提高效率。
(5)访问数据库
Delphi具有强大的数据库管理功能,利用数据控件和数据库管理窗口,可以直接建立或处理MicrosoftAccess格式的数据库,并提供了强大的数据存储和检索功能。
同时,Delphi还能直接编辑和访问其他外部数据库,如Sql,dBASE,FoxPro,Paradox等,这些数据库格式都可以用Delphi编辑和处理。
Delphi提供开放式数据连接,即ODBC功能,可通过直接访问或建立连接的方式使用并操作后台大型网络数据库,如SQLServer,Oracle等。
在应用程序中,可以使用结构化查询语言SQL数据标准,直接访问服务器上的数据库,并提供了简单的面向对象的库操作指令和多用户数据库访问的加锁机制和网络数据库的SQL的编程技术,为单机上运行的数据库提供了SQL网络接口,以便在分布式环境中快速而有效地实现客户/服务器(client/server)方案。
(6)动态数据交换(DDE)
利用动态数据交换(DynamicDataExchange)技术,可以把一种应用程序中的数据动态地到另一种应用程序中,使两种完全不同的应用程序建立起一条动态数据链路。
当原始数据变化时,可以自动更新的数据。
VisualBasic提供了动态数据交换的编程技术,可以在应用程序中与其他Windows应用程序建立动态数据交换,在不同的应用程序之间进行通信。
(7)对象的与嵌入(OLE)
对象的与嵌入(OLE)将每个应用程序都看做是一个对象(object),将不同的对象(link)起来,再嵌入(embed)某个应用程序中,从而可以得到具有声音、影像、图像、动画、文字等各种信息的集合式的文件。
OLE技术是Microsoft公司对象技术的战略,它把多个应用程序合为一体,将每个应用程序看做是一个对象进行和嵌入,是一种应用程序一体化的技术。
利用OLE技术,可以方便地建立复合式文档(compounddocument),这种文档由来自多个不同应用程序的对象组成,文档中的每个对象都与原来的应用程序相联系,并可执行与原来应用程序完全一样的操作。
(8)动态库(DLL)
Delphi是一种高级程序设计语言,不具备低级语言的功能,对访问机器硬件的操作不太容易实现。
但它可以通过动态库技术将C/C++或汇编语言编写的程序加入到Delphi应用程序中,可以像调用部函数一样调用其他语言编写的函数。
此外,通过动态库,还可以调用Windows应用程序接口(API)函数,实现SDK所具有的功能。
2.2Access简介
MicrosoftOfficeAccess(前名MicrosoftAccess)是由微软发布的关联式数据库管理系统。
它结合了MicrosoftJetDatabaseEngine和图形用户界面两项特点,是MicrosoftOffice的成员之一。
其实Access也是微软公司另一个通讯程序的名字,想与ProComm以与其他类似程序来竞争。
可是事后微软证实这是个失败计划,并且将它中止。
数年后他们把名字重新命名于数据库软件。
另外,Access还是c语言的一个函数名和一种交换机的主干道模式。
Access的主要用途:
MicrosoftAccess在很多地方得到广泛使用,例如小型企业,大公司的部门,和喜爱编程的开发人员专门利用它来制作处理数据的桌面系统。
它也常被用来开发简单的WEB应用程序.这些应用程序都利用ASP技术在InternetInformationServices运行。
比较复杂的WEB应用程序则使用PHP/MySQL或者ASP/MicrosoftSQLServer。
它的使用方便程度和强大的设计工具为初级程序员提供许多功能。
不过,这种便于使用可能使人误解。
这类开发者都是没有在应用或者数据设计方面训练的办公室从业人员。
因此许多人以为这样的开发者能够创造可用的系统,但也有很多人认为工具本身的局限性产生了这样的误导。
一些专业的应用程序开发人员使用Access用作快速应用开发,特别是给街道上的推销员制作一个初型或独立应用程序的工具。
可是如果是透过网络存取数据的话,Access的可扩放性并不高.因此当程序被较多使用者使用时,他们的选择多会是倾向于一些客户端-服务器为本的方案,例如Oracle、DB2、MicrosoftSQLServer、WindowsSharePointServices、PostgreSQL、MySQL、AlphaFive、MaxDB,或者Filemaker。
无论如何,不少Access的功能(表单,报告,序列和VB代码)可以用作其他数据库的后期应用,包括JET(档案为主的数据库引擎,Access缺省使用)、MicrosoftSQLServer、Oracle和任何其他跟ODBC兼容的产品。
这种方法允许开发者把一个成熟的应用的数据移动到一台更大功率的服务器而没有已经在适当的位置牺牲发展。
很多MicrosoftAccess的开发者使用Leszynski命名约定,虽然这不普遍;它是一次编程大会,并非一个DBMS实施的规章。
Access的优点:
(1)存储方式简单,易于维护管理
Access管理的对象有表、查询、窗体、报表、页、宏和模块,以上对象都存放在后缀为(.mdb或.accdb)的数据库文件中,便于用户的操作和管理。
(2)面向对象
Access是一个面向对象的开发工具,利用面向对象的方式将数据库系统中的各种功能对象化,将数据库管理的各种功能封装在各类对象中。
它将一个应用系统当作是由一系列对象组成的,对每个对象它都定义一组方法和属性,以定义该对象的行为和外国,用户还可以按需要给对象扩展方法和属性。
通过对象的方法、属性完成数据库的操作和管理,极简化了用户的开发工作。
同时,这种基于面向对象的开发方式,使得开发应用程序更为简便。
(3)界面友好、易操作
Access是一个可视化工具,是风格与Windows完全一样,用户想要生成对象并应用,只要使用鼠标进行拖放即可,非常直观方便。
系统还提供了表生成器、查询生成器、报表设计器以与数据库向导、表向导、查询向导、窗体向导、报表向导等工具,使得操作简便,容易使用和掌握。
(4)集成环境、处理多种数据信息
Access基于Windows操作系统下的集成开发环境,该环境集成了各种向导和生成器工具,极提高了开发人员的工作效率,使得建立数据库、创建表、设计用户界面、设计数据查询、报表打印等可以方便有序地进行。
(5)Access支持ODBC(开发数据库互连,OpenDataBaseConnectivity),利用Access强大的DDE(动态数据交换)和OLE(对象的联接和嵌入)特性,可以在一个数据表中嵌入位图、声音、Excel表格、Word文档,还可以建立动态的数据库报表和窗体等。
Access还可以将程序应用于网络,并与网络上的动态数据相联接。
利用数据库访问页对象生成HTML文件,轻松构建Internet/Intranet的应用。
(6)支持广泛,易于扩展,弹性较大
能够将通过表的方式来打开EXCEL文件、格式化文本文件等,这样就可以利用数据库的高效率对其中的数据进行查询、处理。
还可以通过以Access作为前台客户端,以SQLServer作为后台数据库的方式(如ADP)开发大型数据库应用系统。
第三章系统分析
3.1系统需求分析
根据高校图书管理的实际要求,结合本系统开发的要求,对与本章所要介绍的“图书管理系统”的需现如下功能:
(1)信息管理功能:
这一功能包括书籍信息管理,读者信息管理,借阅信息管理三部分。
其中书籍信息管理包括添加书籍信息、修改书籍信息、删除书籍信息等;读者信息管理包括添加读者信息、修改读者信息、删除读者信息等;借阅信息管理包括添加借阅信息,修改借阅信息,删除借阅信息等。
(2)信息查询:
这一功能包括书籍信息查询,读者信息查询,借阅信息管理三部分。
其中书籍信息查询是通过书名、书号等对书籍信息进行查询;读者信息查询是通过读者名,借书证号等对读者信息进行查询;借阅信息查询是通过书名、书号等对图书的借出和归还情况进行查询。
3.2系统的可行性分析
开发任何一个基于计算机的系统,都会受到时间和资源上的限制。
因此,在接受任何一个项目开发任务之前,必须根据客户可能提供的时间和资源条件进行可行性分析,以减少项目开发的风险,避免人力、物力和财力的浪费。
本系统数据库采用目前比较流行的MicrosoftAccess,该数据库处理数据库比较方便,对于普通用户操作起来也比较方便;开发工具采用Delphi7,Delphi7是目前应用最广泛的数据库系统开发工具,可以快速开发Windows应用程序。
第四章系统设计
4.1项目规划
图书管理系统是一个典型的数据库应用系统,包括图书管理模块,读者管理模块,借阅管理模块,信息查询模块等。
(1)图书管理模块
图书管理模块主要实现新书录入和书籍信息的添加、修改、删除等功能。
(2)读者管理模块
读者管理模块主要实现读者信息的添加、修改、删除等功能。
(3)借阅管理模块
借阅管理模块主要实现书籍借出归还信息的添加、修改、删除等功能。
(4)信息查询模块
信息查询模块主要实现书籍信息,读者信息和借阅信息的查询功能。
4.2功能框架图
图书管理系统的功能框架图如图1所示
图1系统功能框架图
4.3逻辑结构设计
由于图书管理系统涉与到的数据量不是很大,Access数据库就能满足存储数据的要求,所本系统采用Access数据库作为系统的后台数据库。
数据库名称为BookManage.mdb,在该数据库中共包含了3表。
数据库建立成功后就要开始建立数据库中的各个表。
本系统包含的表有Book,Lend,Reader。
4.3.1数据表概要说明
如表1所示
表1数据库表
表名称
功能描述
Book
图书信息
Lend
书籍借阅信息
Reader
读者信息
4.3.2主要数据表结构
图书信息表主要保存书籍详细信息,结构如表2所示
表2Book
字段名
数据类型
长度
主键否
允许空否
Code
文本
10
是
否
Name
文本
50
否
否
Author
文本
50
否
否
Press
文本
50
否
否
OutDate
日期/时间
否
否
Memo
文本
225
否
Cost
数字
长整型
否
否
Lost
文本
50
否
否
读者信息表主要保存读者详细信息,结构如表3所示
表3Reader
字段名
数据类型
长度
主键否
允许空否
ReaderID
文本
10
是
否
Name
文本
50
否
否
Sex
文本
1
否
否
IDCardNo
文本
20
否
否
借阅信息表主要保存书籍出归还的详信息,结构如表4所示
表4Lend
字段名
数据类型
长度
主键否
允许空否
Code
文本
10
是
否
Reader
文本
10
否
否
OutDate
日期/时间
否
否
4.4主要功能模块设计
4.4.1主窗体设计
主窗体是程序的控制中心,其他模块都是通过主窗体来调用的,所以主窗体的界面设计要美观而且易于操作。
图书管理系统主窗体运行结果如图2所示
图2主窗体截图
主窗体功能实现部分代码如下
unitMain;
interface
uses
Windows,Messages,SysUtils,Variants,Classes,Graphics,Controls,Forms,
Dialogs,StdCtrls,Buttons,ComCtrls,ExtCtrls,jpeg;
type
TMainForm=class(TForm)
Image1:
TImage;
Panel1:
TPanel;
Panel2:
TPanel;
PageControl1:
TPageControl;
TabSheet1:
TTabSheet;
BitBtn3:
TBitBtn;
BitBtn2:
TBitBtn;
BitBtn4:
TBitBtn;
BitBtn1:
TBitBtn;
TabSheet2:
TTabSheet;
BitBtn8:
TBitBtn;
BitBtn5:
TBitBtn;
BitBtn6:
TBitBtn;
BitBtn7:
TBitBtn;
Label1:
TLabel;
procedureFormCreate(Sender:
TObject);
procedureBitBtn1Click(Sender:
TObject);
procedureBitBtn2Click(Sender:
TObject);
procedureBitBtn3Click(Sender:
TObject);
procedureBitBtn4Click(Sender:
TObject);
procedureBitBtn5Click(Sender:
TObject);
private
{Privatedeclarations}
public
Logined:
Boolean;
{Publicdeclarations}
end;
……
……
begin
LendForm.Show;
end;
procedureTMainForm.BitBtn4Click(Sender:
TObject);
begin
Close;
end;
procedureTMainForm.BitBtn5Click(Sender:
TObject);
begin
QueryForm.Show;
end;
end.
4.4.2图书管理模块设计
通过图书管理主要实现图书的入库记录以与图书信息的添加、修改、删除等。
其运行结果如图3、图4所示。
图3图书管理截图
(1)
图4图书管理截图
(2)
图书管理功能实现部分代码如下
unitBook;
interface
uses
Windows,Messages,SysUtils,Variants,Classes,Graphics,Controls,Forms,
Dialogs,StdCtrls,ExtCtrls,ComCtrls,DB,ADODB,DBCtrls,Mask;
type
TBookForm=class(TForm)
PageControl1:
TPageControl;
TabSheet1:
TTabSheet;
Panel1:
TPanel;
Bevel2:
TBevel;
StaticText1:
TStaticText;
……
……
procedureDataSource1DataChange(Sender:
TObject;Field:
TField);
private
{Privatedeclarations}
public
{Publicdeclarations}
end;
var
BookForm:
TBookForm;
implementation
usesDataModule;
{$R*.dfm}
procedureTBookForm.Button1Click(Sender:
TObject);
begin
ifLength(CodeEdit.Text)<>10then
begin
MessageDlg('书号不正确',mtError,[mbok],0);
CodeEdit.SetFocus;
Exit;
end;
withDataModuleADO.ADOQuery1do
……
……
procedureTBookFormboBox1Change(Sender:
TObject);
begin
ifLength(ComboBox1.Text)=10then
begin
try
withDataModuleADO.ADOTable1do
begin
TableName:
='book';
DBOutDate.DataField:
='OutDate';
DBName.DataField:
='Name';
DBAuthor.DataField:
='Author';
DBPress.DataField:
='Press';
DBCost.DataField:
='Cost';
DBMemo.DataField:
='Memo';
Active:
=True;
Locate('code',ComboBox1.Text,[]);
Edit;
end;
except
MessageDlg('数据操作出错',mtError,[mbok],0);
end;
end;
end;
……
……
begin
end;
end.
4.4.3读者管理模块设计
通过读者管理功能主要实现对读者详细信息的添加、修改、删除等功能。
其运行结果如图5所示
图5读者管理截图
图书管理功能实现部分代码如下
unitReader;
interface
uses
Windows,Messages,SysUtils,Variants,Classes,Graphics,Controls,Forms,
Dialogs,StdCtrls,ComCtrls;
type
TReaderForm=class(TForm)
GroupBox3:
TGroupBox;
Button3:
TButton;
Button4:
T