1.3 本应用软件的基本介绍 本应用软件先是打开一个启动窗口,就可以进入应用程序的主窗口了。主界面是一个图型界面窗口,整个平台显示采用图标方式,可以非常方便的管理壁球,乒乓球,桌球,棋艺,的开台与酒水截钟,结帐等基本信息,管理日常经营的基本情况,通过各种条件查询桌次的占用基本信息,以及显示出查询出的基本信息,总之一切娱乐场所基本信息都会显示在系统平台上。另外在屏幕左侧有快捷铵钮,弹出式菜单和主窗口菜单相同,可方便选择,大大提高了管理人员的工作效率。 paper51.com 2 本应用程序的构成和开发步骤 内容来自论文无忧网 www.paper51.com 下面从软件工程的角度介绍本程序的基本开发步骤。Delphi 应用程序一般包含以下三个基本部分: 应用程序运行的接口:负责系统整体环境的设置,运行状态的监视,应用程序的启动等。 应用程序的主体:主要完成用户的业务逻辑功能,如开台,酒水截钟,结帐等信息. 内容来自论文无忧网 www.paper51.com
应用程序的辅助部分:协助程序主体完成的一些工作。下面从软件工程的角度描述本程序的开发生命周期,开发过程和组织过程。 内容来自www.paper51.com 2.1 可行性研究 paper51.com 任何一个系统或一项工程,在建立之前,必须首选进行可行性分析,可行性分析包括两层含义,一是可能性,二是必要性。可能性指开发信息系统的条件是否具备,必要性是指客观上是否真正需要,通过可行性研究,可避免盲目投资,减少政治性要的损失。下面从四方面来讨论: paper51.com
2.1.1 经济可行性 paper51.com 主要是只指算一个新的系统开发所需要的投资费用和运算费用,并与估计的新系统收益进行比较,看是否有利。本系统所需的软硬件成本比较低,投资小,具有一定的通过性,因此 ,在经济上是可行的。 内容来自www.paper51.com 2.1.2 时间可行性 内容来自www.paper51.com 主要包括系统在目前环境下能否正常运行,运行后所引起的各方面,以及这些变化对社会或人的因素所产生的影响。本系统对人事的管理比较全面,可长期使用。 http://www.paper51.com 2.1.3 技术可行性 内容来自www.paper51.com
利用现有的设备,软件及技术人员,新系统的目标能否达到,这也是可行性研究中需要考虑的一个问题。关系型数据库的高速发展使管理信息系统具备了良好的开发环境。本系统使用的Delphi 普及性好,操作简单,用户可以很快掌握使用方法,因此,在技术上是完全可行的。 copyright paper51.com 2.1.4 社会可行性 paper51.com
人类社会文明的发展已进入信息化的高速发展时期,传统的手工方式支持下的管理模式,已经不能满足各方面的需要。开发本系统的目标不仅是提高工作效率,减轻劳动强度,而且减少出错率,具有很好的社会意义。 paper51.com 2.2 数据库的建立和连接 paper51.com 这个程序采用的数据库是Microsoft Access2000,Delphi作为数据库的前台开发工具,必须与后台数据库进行连接,这样才能控制和进行操作数据库,数据库的连接方式有两种,ODBC和ADO。 内容来自www.paper51.com ODBC是数据库的通用接口,其缺点是效率低;专用接口调用直接速度快,但是通用性差,如果用ODBC连接数据库一般要两个步骤:1.要创建数据源;2.创建描述文件。数据库的建立则时在access2000中建立的,在这里你可以设置数据库的密码,对数据库进行保护。在创建数据源时可以通过BDE administrator进行创建,也可以通过系统控制面板中的ODBC数据源进行建立。而描述文件则可以在Delphi的主程序中用Database Profile中进行建立,之后进行数据库的连接。接下来的工作是建表。同样建表的过程也不是唯一的,但是最终实现的结果是唯一的。你可以通过Access进行建表,也可以通过在 DELPHI6.0 主程序中建表,也可以通过powerdesigner进行可视化的建立,不过用这种方法,在导入的时候要把数据库要先断开,否则数据库的数据容易丢失。建表的过程注意规范化命名规则,如表的字段名等等。同时也要注意表的字段长度和可否为空。因为以后要设计到主键,外键的问题。如果字段名不同,同一字段长度不同则主键和外键将会连接不上。可见建表时应做好全局的打算。我在程序开发的初期,同样犯了这个错误,导致数据库出错,有时还要向表中新加入字段。导致数据窗口不好用的连锁反映。 内容来自www.paper51.com 2.3 系统的总体设计 内容来自论文无忧网 www.paper51.com 这个管理系统从4月1日开始着手设计开发,经过一段时间的分析,并根据对影音店光盘管理的具体要求及需要本软件实现的功能,将本软件分为5个大的模块,分别是:第一部分:状态;第二部分:开台;第三部分:结帐; 第四部分:日结。 内容来自www.paper51.com
程序流程图如下: 内容来自www.paper51.com http://www.paper51.com 3 本程序的技术实现及具体功能 http://www.paper51.com 3.1 登录的界面与程序设计实现 内容来自论文无忧网 www.paper51.com
内容来自论文无忧网 www.paper51.com 代码设计: paper51.com
unit GetStru; copyright paper51.com
interface paper51.com
uses 内容来自www.paper51.com
Windows, Messages, SysUtils, Classes,Graphics, Controls, Forms, Dialogs, http://www.paper51.com
StdCtrls, DbTables, BDE, ExtCtrls; 内容来自www.paper51.com type paper51.com TReadStru = class(TForm) 内容来自论文无忧网 www.paper51.com List1: TListBox; 内容来自论文无忧网 www.paper51.com List2: TListBox; 内容来自论文无忧网 www.paper51.com Label3: TLabel; 内容来自论文无忧网 www.paper51.com Alias: TComboBox; 内容来自www.paper51.com procedureFormCreate(Sender: TObject); 内容来自www.paper51.com
procedureAliasChange(Sender: TObject); http://www.paper51.com procedureAliasExit(Sender: TObject); copyright paper51.com procedureAliasKeyPress(Sender: TObject; var Key: Char); copyright paper51.com procedureList1Click(Sender: TObject); paper51.com private 内容来自www.paper51.com { Privatedeclarations } 内容来自www.paper51.com procedureShowFields(T: TTable); http://www.paper51.com public paper51.com { Publicdeclarations } paper51.com end; paper51.com var copyright paper51.com
ReadStru: TReadStru; http://www.paper51.com implementation 内容来自论文无忧网 www.paper51.com
{$R *.DFM} paper51.com procedure TReadStru.ShowFields(T: TTable); 内容来自www.paper51.com
var paper51.com curProp: CURProps; http://www.paper51.com
pfldDes,pCurFld: pFLDDesc; copyright paper51.com
i: Integer; paper51.com MemSize: Integer; 内容来自论文无忧网 www.paper51.com FieldList: string; 内容来自www.paper51.com S: string; 内容来自www.paper51.com begin http://www.paper51.com
T.Open; copyright paper51.com Check(DbiGetCursorProps(T.Handle,curProp)); 内容来自www.paper51.com MemSize :=curProp.iFields * SizeOf(FLDDesc); 内容来自论文无忧网 www.paper51.com pfldDes :=AllocMem(MemSize); 内容来自www.paper51.com List2.items.Clear; copyright paper51.com try paper51.com pCurFld:= pfldDes; copyright paper51.com
DbiGetFieldDescs(T.Handle,pfldDes); 内容来自论文无忧网 www.paper51.com forI := 0 to curProp.iFields - 1 do 内容来自论文无忧网 www.paper51.com
with pCurFld^ do begin http://www.paper51.com case iFldType of copyright paper51.com 1: S := '字符'; copyright paper51.com 2: S := '日期'; 内容来自www.paper51.com 3: S := '备注'; copyright paper51.com 4: S := '逻辑'; http://www.paper51.com
5: S := '短整'; 内容来自论文无忧网 www.paper51.com
6: S := '长整'; paper51.com 7: S := '浮点'; paper51.com 8: S := 'BCDm'; http://www.paper51.com 9: S := '字节'; copyright paper51.com
10: S := '时间'; 内容来自www.paper51.com 11: S := '邮戳'; 内容来自论文无忧网 www.paper51.com else S := '未知' +inttostr(iFldType); end; http://www.paper51.com FieldList := szName + paper51.com StringofChar(#32, 10 - Length(trim(szName))) + 内容来自论文无忧网 www.paper51.com Format('(%4s,%3d,%2d)', [S, iUnits1, iUnits2]); 内容来自论文无忧网 www.paper51.com List2.items.Add(Trim(FieldList)); 内容来自论文无忧网 www.paper51.com
inc(pCurFld); http://www.paper51.com end; 内容来自www.paper51.com finally copyright paper51.com FreeMem(pfldDes,MemSize); 内容来自www.paper51.com
end; paper51.com T.Close; paper51.com end; 内容来自www.paper51.com procedure TReadStru.FormCreate(Sender: TObject); copyright paper51.com var T: TDataBase; 内容来自论文无忧网 www.paper51.com begin 内容来自www.paper51.com
T :=TDataBase.Create(Self); copyright paper51.com T.LoginPrompt :=False; paper51.com ifSession.Active = false then paper51.com Session.Open; copyright paper51.com
Session.GetAliasNames(Alias.Items); 内容来自www.paper51.com
end; 内容来自www.paper51.com procedure TReadStru.AliasChange(Sender: TObject); copyright paper51.com
begin paper51.com ifAlias.ItemIndex = -1 then Exit; copyright paper51.com
Session.GetTableNames(Alias.Text,'', true, false, List1.Items); paper51.com end; 内容来自论文无忧网 www.paper51.com procedure TReadStru.AliasExit(Sender: TObject); paper51.com begin paper51.com with Alias do 内容来自论文无忧网 www.paper51.com if(Text <> '') and (Items.indexof(Text) = -1) then copyright paper51.com begin 内容来自论文无忧网 www.paper51.com
Items.Add(Text); 内容来自论文无忧网 www.paper51.com Alias.ItemIndex := Items.indexof(Text); paper51.com
AliasChange(Self); copyright paper51.com end; paper51.com end; paper51.com procedure TReadStru.AliasKeyPress(Sender: TObject;var Key: Char); http://www.paper51.com begin 内容来自论文无忧网 www.paper51.com if Key = #13then AliasExit(Self); copyright paper51.com
end; copyright paper51.com procedure TReadStru.List1Click(Sender: TObject); 内容来自论文无忧网 www.paper51.com var T: TTable; http://www.paper51.com begin 内容来自论文无忧网 www.paper51.com
T :=TTable.Create(Self); paper51.com T.DatabaseName :=Alias.Text; copyright paper51.com
with List1 doT.TableName := Items[ItemIndex]; 内容来自www.paper51.com ShowFields(T); 内容来自www.paper51.com end; paper51.com end. 内容来自www.paper51.com
|