DelphiAccess图书管理系统方案Word格式文档下载.docx
《DelphiAccess图书管理系统方案Word格式文档下载.docx》由会员分享,可在线阅读,更多相关《DelphiAccess图书管理系统方案Word格式文档下载.docx(25页珍藏版)》请在冰豆网上搜索。
(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
Press
OutDate
日期/时间
Memo
225
Cost
数字
长整型
Lost
读者信息表主要保存读者详细信息,结构如表3所示
表3Reader
ReaderID
Sex
1
IDCardNo
20
借阅信息表主要保存书籍出归还的详信息,结构如表4所示
表4Lend
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:
PageControl1:
TPageControl;
TabSheet1:
TTabSheet;
BitBtn3:
TBitBtn;
BitBtn2:
BitBtn4:
BitBtn1:
TabSheet2:
BitBtn8:
BitBtn5:
BitBtn6:
BitBtn7:
Label1:
TLabel;
procedureFormCreate(Sender:
TObject);
procedureBitBtn1Click(Sender:
procedureBitBtn2Click(Sender:
procedureBitBtn3Click(Sender:
procedureBitBtn4Click(Sender:
procedureBitBtn5Click(Sender:
private
{Privatedeclarations}
public
Logined:
Boolean;
{Publicdeclarations}
end;
……
begin
LendForm.Show;
end;
procedureTMainForm.BitBtn4Click(Sender:
Close;
procedureTMainForm.BitBtn5Click(Sender:
QueryForm.Show;
end.
4.4.2图书管理模块设计
通过图书管理主要实现图书的入库记录以与图书信息的添加、修改、删除等。
其运行结果如图3、图4所示。
图3图书管理截图
(1)
图4图书管理截图
(2)
图书管理功能实现部分代码如下
unitBook;
Dialogs,StdCtrls,ExtCtrls,ComCtrls,DB,ADODB,DBCtrls,Mask;
TBookForm=class(TForm)
Bevel2:
TBevel;
StaticText1:
TStaticText;
procedureDataSource1DataChange(Sender:
TObject;
Field:
TField);
var
BookForm:
TBookForm;
implementation
usesDataModule;
{$R*.dfm}
procedureTBookForm.Button1Click(Sender:
ifLength(CodeEdit.Text)<
>
10then
begin
MessageDlg('
书号不正确'
mtError,[mbok],0);
CodeEdit.SetFocus;
Exit;
withDataModuleADO.ADOQuery1do
procedureTBookFormboBox1Change(Sender:
ifLength(ComboBox1.Text)=10then
try
withDataModuleADO.ADOTable1do
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;
except
数据操作出错'
4.4.3读者管理模块设计
通过读者管理功能主要实现对读者详细信息的添加、修改、删除等功能。
其运行结果如图5所示
图5读者管理截图
unitReader;
Dialogs,StdCtrls,ComCtrls;
TReaderForm=class(TForm)
GroupBox3:
TGroupBox;
Button3:
TButton;
Button4:
T