收藏 分享(赏)

智能安防集成监控平台-电子地图子系统.doc

上传人:wo7103235 文档编号:6250255 上传时间:2019-04-03 格式:DOC 页数:51 大小:1.71MB
下载 相关 举报
智能安防集成监控平台-电子地图子系统.doc_第1页
第1页 / 共51页
智能安防集成监控平台-电子地图子系统.doc_第2页
第2页 / 共51页
智能安防集成监控平台-电子地图子系统.doc_第3页
第3页 / 共51页
智能安防集成监控平台-电子地图子系统.doc_第4页
第4页 / 共51页
智能安防集成监控平台-电子地图子系统.doc_第5页
第5页 / 共51页
点击查看更多>>
资源描述

1、厦门大学软件学院毕业论文I本科毕业论文(科研训练、毕业设计)题 目:智能安防集成监控平台电子地图子系统姓 名:学 院:软件学院系:专 业:软件工程年 级:学 号:指导教师(校内): 职称: 指导教师(校外): 职称: 年 月厦门大学软件学院毕业论文II摘 要集成监控平台是将安防领域中相对独立的设备、系统、信息、计算机网络系统,经开发整合为一个相互关联的、统一的、协议兼容的,适应于安防行业等不同领域的系统核心平台。如:网络监控、门禁控制、防盗报警、语音信息、环境监控,通过数据库形式链接相关各子系统数据,将采集到的信息进行数字化管理,实现安防多级联动视频监视管理体系。现在的监控平台基本上都是针对某

2、个项目定制,完成的平台在其它类似项目中无法移植,往往使程序员重复的做相同的工作。为了解决这个问题,我们公司经过一段时间的考察,决定开发一个智能集成安防监控平台。智能集成安防监控平台采用 C+Builder 6.0 作为开发平台。本文介绍安防监控平台的子系统电子地图系统的开发过程和结果。关键词:监控 安防 监控平台电子地图厦门大学软件学院毕业论文IIIAbstractThe integrated supervision terrace is to defend the opposite and independent equipments,system,information,the Compu

3、ter network system in the Safety protection realm to be a system nucleus platform,which is mutually of,unify of,protocol compatible, and adapt to defence profession in Anne etc. Such as:The network supervision, controlment of gate, guard against theft to give an alarm,the speech information,environm

4、ent supervision etc connect each related subsystem data through the database form chain, and carry the collected information to turn a numeral management.Carrying out Anne to defend to be many linkage video frequency surveillance management system.The supervision platform of now is mostly made to or

5、der to a certain item. The finished terrace cant transplant in other similar items, usually making the procedure member repeating of doing a same work.For resolving this problem, our company decided to develop an supervision terrace of Anne defends ,which is intelligent and integrated, by investigat

6、ing a period of time.The intelligence and integrated supervision terrace of Anne defend adopt C+Builder 6.0 Be developing terrace.This text will introduce the development process and results of electronic map system which is the sub-system of the integrated supervision terrace. Key words: Supervisio

7、n; Anne to defend ; The electronic map of the supervision platform.厦门大学软件学院毕业论文IV目录第一章 引言 11.1 课题背景 11.2 电子地图系统行业开发现状 11.3 电子地图系统简介 1第二章 开发环境、工具 22.1 操作系统平台 22.2 开发平 台 22.3 数据库平台 22.4 开发语言 32.5 版本管理器 Microsoft Visual SourceSafe6.03第三章 系统的总体设计 53.1 设计思想 53.2 系统组成 63.3 系统流程图 73.4 系统过程时序图 73.5 系统数据库设计

8、9第四章 系统的详细设计 .124.1 系统面向对象设计 .124.1.1 类的设计 124.1.2 类图 164.2 用例图 .174.3 数据库操作实现 .184.4 功能实现 .194.4.1 权限判断 194.4.2 主地图的操作 204.4.3 图片管理 21厦门大学软件学院毕业论文V4.4.4 树形图的操作 224.4.5 子地图的操作 244.4.6 设备的操作 244.4.7 其它操作 254.5 系统运行测试 .26第五章 结论 .27致谢 28参考文献 29附录 A.30附录 B.31厦门大学软件学院毕业论文VIContentsChapter 1 Introduction.

9、11.1 Topic background 11.2 Present development condition of the electronic map system 11.3 Brief introduction of the electronic map system .1Chapter 2 Developing environment and tools.22.1 Operating system terrace 22.2 Developing terrace 22.3 Database terrace 22.4 Developing language .32.5 The editi

10、on manager Microsoft Visual SourceSafe6.0 3Chapter 3 The total design of the system.53.1 Design idea .53.2 The system constitute .63.3 System flow chart .73.4 System process sequence diagram .73.5 The system database design 9Chapter 4 The detailed design of system.124.1 The system OOD .124.1.1 The d

11、esign of the classes.124.1.2 Class diagram.164.2 Use_Case diagram .174.3 carrying out of The database operation .184.4 carrying out of The functions 194.4.1 judgement of The jurisdiction.194.4.2 The operation of the main map.204.4.3 The picture management21厦门大学软件学院毕业论文VII4.4.4 The operation of the T

12、reeView.224.4.5 The operation of the sub-map244.4.6 The operation of the Devices244.4.7 Other operations254.5 The system running test 26Chapter 5 Conclusion27AcknowLedgement.28References29Supplement A30Supplement B31厦门大学软件学院毕业论文1第一章 引言1.1 课题背景安防产品在中国作为一个相对新兴的产业计算机技术的迅速发展和推广,使世界掀起一股强大的数字化浪潮,数字化以其独特的先

13、进性、强大的扩充性等诸多特点成为世界产业发展的一个基本的规律。安防产品在中国作为一个相对新兴的产业,可以说在其迅速扩展式发展的二十一世纪初便深深打上了数字化的烙印。在产业数字化的发展过程中,软件的应用在其发展中起着决定性的作用。1.2 电子地图系统行业开发现状目前在安防行业中做得较好的有华为科技和海康数字科技等,它们在软件的功能实现及界面设计中都有自己的特色与优势。我们的软件在设计初期也借鉴了它们产品的设计。虽然监控平台的设计在最近几年的发展中逐步的完善与改进,但还是存在着一些缺陷,其中最突出的就是缺少再工程监控平台,大部分的平台都是有针对性的开发,针对工程、针对项目或者针对某个地域而开发制作

14、。这必然会使公司的软件开发开销增加很多。1.3 电子地图系统简介电子地图系统主要是对于一个监控网络的平面直观表示,比如在厦门建立了一个监控站,那么我们只要在电子地图的相应位置上添加这些站点的表示,站点上的设备等也添加到电子地图中,那么工作员就能在一个地方监控整个厦门的监控站。所以电子地图的主要功能就在于提供用户一个浏览监控网络的平台及操作各种设备的接口。在我们的电子地图系统中,主要的特点就是稳定性、通用性及可扩展性,这些在安防国内的安防业中是占有很大优势的。厦门大学软件学院毕业论文2第二章 开发环境、工具2.1 操作系统平台操作系统采用的是 WindowsXP Professional。该系统

15、具有稳定性好、可靠性高、集成度高和界面友好等特点。2.2 开发平台系统的开发平台采用的是 C+Builder 6.0。Borland C+Builder 是 Borland 公司 98 年推出的全新 32 位 Windows 开发工具。不仅继承了 Delphi 使用简便,功能强大,效率高等特点,而且它还结合 C+语言所有优点。C+Builder 相较 VC+有其优势所在,比如:通常我们利用 Visual C+开发一套软体时,设计 GUI 所花的时间几乎占掉程式开发周期的三分之一甚至到二分之一以上,而设计和界面无关的核心程式通常只占了不到二分之一左右至三分之二的时间,但是使用 C+ Builde

16、r 则可以大幅简化这个问题。C+ Builder 的 VCL 提供大量的各式各样 GUI 软体元件,让我们可以将大部分的心力放在核心程式码的设计上,而不必跟 Windows 系统的讯息 、界面去搏斗。同时 C+Builder 还有强大的第三方控件支持,大大地提高了编程效率。2.3 数据库平台数据库平台采用的是 SQL Server2000。SQL Server2000 是为创建可伸缩电子商务、在线商务和数据仓储解决方案而设计的关系型数据库管理与分析系统。随着 SQLServer 7.0 联机分析处理(OLAP)服务的引入,SQL Server 已成为颇受众多客户关系管理(CRM)应用程序、商务

17、智能(BI)应用程序、企业资源计划ERP)应用程序及其它在线商务应用程序厂商和客户所青睐的数据库产品,而这则主要应归功于该产品在对称多处理(SMP)硬件方面所具有的可伸缩性和较低的数据库维护需求。厦门大学软件学院毕业论文32.4 开发语言本系统采用 C+作为主要的开发语言,这主要是由于 C+具有以下一些特点:1、性能高C+性能良好,因为它被编译为机器代码。对于 VBScript 和 Java 等语言,代码在运行时由程序解释,而且每次运行程序时都要将代码转换为机器码,这样做效率比较低,因为C+是编译语言,而且非常自然,比 VB 更接近机器代码,所以由 C+编译器产生的代码一定比 VB 的编译代码

18、效率更高。2、错误处理C+中有“异常处理”,所以错误处理比较好。3、最小的依赖性C+是一种编译语言,即 C+代码在执行之前已转换为机器码。只要此代码不依赖于外部的动态链接库(DLL),C+就可以在不需要安装额外程序的情况下移动到运行同样操作系统的其他机器和微处理器上,而移动 Java 程序时需要先安装 Java 运行期库。4、利用现有的代码由于 C 和 C+已经存在许多年了,现在有许多可利用的代码,你的服务器组件可以使用现有的 C/C+代码或库。5、最大化 COM 特征在 C+中,几乎可以使用所有的 COM 特征。2.5 版本管理器 Microsoft Visual SourceSafe6.0

19、VSS6.0 是一种版本控制其,它是 Microsoft Visual Studio6.0 这个开发产品家族的一员。在本系统的编码过程中,我们使用它来控制源代码版本。下面简单介绍 VSS 的工作原理。VSS 有效地帮助项目开发组的负责人对项目程序进行管理,将所有的项目源文件(包括各种文件类型)以特有的方式存入数据库。开发组的成员不能对该数据库中的文件进行直接的修改,而是由该版本管理器将该项目的源程序或是子项目的源程序拷贝到各个成员自己的工作目录下进行调试和修改,然后将修改后的项目文件作 Checkin 提交给 VSS,由它进行综厦门大学软件学院毕业论文4合更新。VSS 也支持多个项目之间文件的

20、快速高效的共享。当某个成员向 VSS 中添加文件时,该文件将会被备份到数据库中,以便所有的成员都能共享该文件。而且每个成员对所有的项目文件所作的修改都将被记录到数据库中,从而使得修改的恢复和撤销在任何时刻,任何位置都成为可能。小组的成员可能得到该项目的最新版本,对它进行修改,并保存一个新的版本。厦门大学软件学院毕业论文5第三章 系统的总体设计3.1 设计思想系统采用 C/S 结构设计,其逻辑示意图如图 3-1 所示。图 3-1 电子地图系统逻辑示意图由图 3-1 可知,系统的设计分成五层,它们是:硬件层、控制层、服务器层、数据库层和客户端层。首先工程施工员连接好硬件,测试硬件的可用性。硬件在连

21、接装备完成后开始正常工作,控制层在硬件工作时实时检测硬件的相关属性,并将操作属性及动作参数返回给服务器,服务器将数据统一记录进相应的数据表中。当客户端要对设备操作或管理时则通过命令连接服务器,获取服务器中硬件的相关数据,初始化客户端,普通客户可以通过服务厦门大学软件学院毕业论文6器访问到硬件的相关参数,高级客户(一般为管理员)还可以通过访问服务器修改数据库中相应的数据,控制层实时检测服务器中相关的数据并对硬件下达命令以完成相关的操作。其中控制层及客户端层要通过程序编码实现。3.2 系统组成系统分为主地图模块和树形图模块,虽然这两个模块都是对这个地图平台的直观表示,但彼此却是相对独立的。主地图模

22、块是以级联的形式表示,它的优点是当前地图上的对象易操作、直观,用户从视觉上可以获取更多该地图的信息。但是相对的却无法知道其它地图的基本信息,要找到一个指定的地图或设备也比较难。而在树形图中则刚好相反,树形图能帮助用户很方便的浏览和查找地图或设备,对地图与地图之间、地图与设备之间的层次关系一目了然,但是从树形图中用户能知道某一个对象的信息却很少。系统结合了这两种宏观和微观的表现方式,并通过管理者角色把相互独立的模块关联在一起,主要表现为:在主地图模块中进入某个地图则在树形图中该地图相应的节点会被设为选中状态;在主地图中添加了一个新对象后,这个新对象在树形图中也会被标识为选中状态;在主地图中删除一

23、个对象后,在树形图中相应的节点也要被删除;在树形图中双击一个地图时,就会在主地图中打开该地图;在树形图中删除一个节点时,在主地图中相应的对象也要被销毁。这样的结合使得系统更具实用性。主地图模块的主要功能有:初始化主地图、进入子地图、打开设备、添加子地图、添加设备、删除地图、删除设备、修改地图、修改设备和返回上层地图等。树形图模块的主要功能有:初始化树形图、添加节点和删除节点等。在划分完模块后,对数据库进行整体设计,数据库的设计不仅要考虑数据的完整性,还要考虑到表与表之间的关联以及创建表对编码的影响等。在项目开发中还必须考虑到权限设计。对用户的管理只有超级管理员才能操作,对地图或设备的管理操作只

24、有超级管理员和管理员能操作,而普通用户只拥有地图的浏览和设备的连接权限。3.3 系统流程图厦门大学软件学院毕业论文7下面将以管理者的角色给出电子地图的流程图,因为在我们的电子地图中最大的特色就在于管理者的功能扩展上,而且管理者几乎包含了整个系统的所有操作。系统流程图如图3-2 所示。开 始打开设备 打开地图添加地图 / 设备修改地图 / 设备删除地图关闭主地图添加树形图节点删除子地图 删除设备退出是结束否是图 3-2 电子地图系统流程图如图 3-2 中的所有有关修改或删除的操作都是管理者特有的操作,普通用户没有修改及删除的权限。有图中的工作流,我们就可以看到,几乎所有的操作都是在主地图上进行,

25、每执行完一个操作都要返回到主地图。3.4 系统过程时序图从面向对象的角度来看,系统的功能是由一组对象通过相互发送消息来完成的。顺序图就是通过描述这样的对象和消息来描述系统的动态行为的。用例中在表示业务流程时,一般会用到时序图来表示。时序图多数用于描述业务流程,可以供不同种类的用户使用。用户可以从时序图中看到业务过程的细节;分析人员可以从时序图中看到处理流程;开发人员可以看到需要开发的对象和对这些对象的操作;质量保证工程师可以看到过程的细节,并根据这厦门大学软件学院毕业论文8个过程开发测试案例。时序图能够明显的突出对象间交互的顺序,对项目的各方面人员都有用。如图 3-3 就是电子地图系统的时序图

26、。:Admin MapTre :r :DatBaseMapForm :r1: EntryMap() 2: GetMapInfo()3: ReturnMapInfo()5: InitTre()6: AdMap/Dev 7: AdRecord()8: AdNode()9: DelMap()10: DelSupMap()1: Delevice()12: DelRecord()13: DelNode()14: Modify() 15: ModifyRecord()16: Refrsh()17: OpenDevice() 18: GetDevInfo()19: ReturnDevInfo()20: Lo

27、adDevice()4: InitMap()图 3-3 系统序列图在电子地图系统中,主要包括主地图和树形图结构。大部分的业务流程都是由用户提出操作交给系统,系统与数据库交互完成操作并返回操作结果给用户。厦门大学软件学院毕业论文93.5 系统数据库设计数据库的整体设计是通过各个子模块的数据库设计,再向数据库设计人员提交,设计人员再对各模块的数据需求汇总建立表结构实现的。在系统整体设计中,数据库主要涉及四张数据表,分别是:1、 地图表:存储地图的信息;2、 设备表:存储设备的信息;3、 子地图表:存储子地图的信息;4、 图片表:存储图片信息。表与表之间的关联:1、 地图表中存储了设备表及子地图表的

28、父地图信息;2、 图片表中存储了地图背景图片信息、设备的表示图标信息和子地图的表示图标信息。电子地图系统数据库 ER 图如图 3-4 所示。图 3-4 电子地图 E-R 图在图 3-4 中我们会发现多了一张表 VIDEO_CHANNEL_LIST,这是一张连接视频通道的表,也就是这张表中保存了连接摄像机所需的信息。同样的,如果以后我们要往系统中添加一个设备,首先添加这个设备类的信息表与设备表关联,然后创建一个继承设备类的新类,在新类中定义设备的操作,这样就可以很方便的添加新设备了。厦门大学软件学院毕业论文10下面就以数据表的形式给出电子地图系统详细字段及字段说明。表 3-1 设备表:名称 数据

29、类型 长度 说明EM_IconID int 4 设备流水号EM_DevcieName Varchar 50 设备名称EM_ParentMapID Int 4 父地图 IDEM_Postion Varchar 50 图标在地图上的相对位置EM_PicID Varchar 50 对应的图标图片流水号EM_DeviceStyle Char 10 设备类型表 3-2 主地图表:名称 数据类型 长度 说明EM_MapID Int 4 地图流水号EM_MapName Varchar 50 图片名字EM_MapStyle Char 10 图片类型,M:地图;S:站点EM_PicID Varchar 50 源

30、图片流水号表 3-3 源图片表:名称 数据类型 长度 说明EM_PicID Varchar 50 源图片流水号EM_PicOLE Image 16 存储图片流EM_ISMap Bit 1 是否地图:1:图片,0:图标表 3-4 子地图表:名称 数据类型 长度 说明EM_IconID Int 4 子地图对象流水号EM_IconName Varchar 50 子地图对象名称EM_ParentMapID Int 4 父地图 IDEM_SonMapID Int 4 对应子地图 ID厦门大学软件学院毕业论文11EM_Position Varchar 50 图标在地图上相对位置EM_PicID Varch

31、ar 50 对应的图标流水号EM_SubStyle Varchar 10 图标对应的操作类型厦门大学软件学院毕业论文12第四章 系统的详细设计4.1 系统面向对象设计4.1.1 类的设计电子地图系统把所有的设备及地图都封装成类,设备有摄像机类、灭火器类、点灯灯类、门禁、温湿感应器类、空调类和报警器类等,每个设备都有其相应的属性及操作,但这些设备类都表示某一类设备,它们都具有设备的属性及操作,所以它们都继承自设备类(TEMDevice)。电子地图系统中有一个抽象基类 TEMObject,设备类(TEMDevice)、地图类(TEMap)和子地图类(TEMSupMap)都继承自该基类。在本系统中我

32、们使用了工厂设计模式,创建一个工厂类(factory),由工厂类负责对地图对象及设备对象的创建。该系统用TTreeView 类来实现地图系统所有地图及设备的树形直观图。所有电子地图系统的功能实现都封装在管理者类(TEMManager)中,由管理者要求工厂创建地图对象及设备对象,并要求树形图类创建地图对象及设备对象的树形直观图。然后管理者对创建的地图对象、设备对象及树形图进行实时管理。下面简要介绍系统的主要类。1、 抽象基类 TEMObject 类地图系统的基本对象类,该类是所有地图子对象类的接口,不能实例化。主要成员列表:- virtual TEMObject(); 析构函数,虚函数。- vi

33、rtual void SetIcon(const int 设置图标的属性,纯虚函数。- virtual void Operate(void) = 0; 对子对象的操作,纯虚函数。- virtual const char *GetName(void) = 0; 返回子对象名,纯虚函数- virtual int GetID(void) = 0; 返回子对象 ID 号,纯虚函数。- virtual const char *GetTypeName() = 0; 返回子对象类型,纯虚函数。- virtual const TImage *GetIcon(void) = 0; 返回子对象图标和 Image

34、对象,纯虚函数。厦门大学软件学院毕业论文13- virtual void _fastcall click(TObject *Sender) ; 点击图标的事件处理器。2、 子地图类 TEMSubMap地图对象的类,继承 class TemObject,它的实例只是当前地图的一个子对象,当点击该对象的图标时将进入到与该对象对应的级地图。主要成员变量列表:(1) int FSubmapID; 接收地图对象初始化的 SubMapID;(2) AnsiString FName; 接收地图对象初始化的 Name;(3) TemIcon * m_Icon; 接收地图对象初始化的 Icon;主要成员函数列表

35、: (1) InitSubmap()功能说明:实例化地图对象,工厂类要创建地图对象时就把创建任务交给子地图类来完成; (2) SetMenu()功能说明:设置鼠标右击地图对象时弹出菜单;(3) MenuItemOpenClick()MenuItemModifyClick()MenuItemMoveClick()MenuItemDeleteClick()功能说明:菜单项单击事件;(4) IconMouseUp()IconRigthButtonDown()IconRigthButtonUp()功能说明:地图对象显示的图标的鼠标点击事件;(5) SetIcon()功能说明:设置地图对象显示的图标;由

36、子地图类的这些主要成员我们可以看到,在子地图类中封装了对地图上的子地图对象的相关操作,每个子地图对象在被创建并保存到基类数组 TEMObject中时,就已经定义了这些子地图对象及图标的相应响应事件。3、 设备类 TEMDevice设备对象的类,继承 class TemObject,它的实例只是当前地图的一个子对象,当点击厦门大学软件学院毕业论文14该对象的图标时将打开相应的设备。主要成员变量列表:(1) int FDeviceID 接收设备初始化的 DeviceID(2) AnsiString FName 接收设备初始化的 Name(3) TemIcon *m_Icon 接收设备初始化的 Ic

37、on主要成员函数列表:(1) InitDevice()功能说明:初始化设备类的对象;(2) SetIcon()功能说明:设置设备对象显示的图标;(3) MenuItemOpenClick()MenuItemModifyClick()MenuItemMoveClick()MenuItemDeleteClick()功能说明:菜单项单击事件;(4) IconMouseUp()IconRigthButtonDown()IconRigthButtonUp()功能说明:地图对象显示的图标的鼠标点击事件;(5) SetMenu()功能说明:设置鼠标右击设备对象时弹出菜单;与子地图类一样,设备类在被创建的同时

38、定义了该对象的鼠标相应事件。4、 摄像机类 TEMCamera设备分为很多种,如:摄像机、灭火器、空调、门禁等,这里我们仅以摄像机类为代表。摄像机类是一种设备,所以它继承设备类,并重载了设备类的虚函数 Operate()函数来完成摄像机类所特有的操作。主要成员函数列表:(1) SetIcon()功能说明:设置摄像机对象显示的图标;(2) Operate()厦门大学软件学院毕业论文15功能说明:操作摄像机的 Action 接口;5、 工厂类 TEMFactory工厂类负责生产子地图对象和设备对象。主要成员函数列表:(1) CreateSub()功能说明:创建地图子对象,调用此方法,工厂将根据对象

39、的类型, 自动完成对象的创建;6、 树形图类 TTreeView树形图类主要负责创建及管理系统地图的树形直观图。主要成员函数列表:(1) InitTreeView()功能说明:初始化树形直观图;(2) AddNode()功能说明:在树形图中添加节点;(3) DeleteNode()功能说明:删除树形图中指定的节点。7、 管理者类 TEMManager管理者类负责封装系统的功能实现。主要成员变量列表:(1) int m_Count; 主地图子对象个数(2) AnsiString m_sMapID; 当前主地图流水号主要成员函数列表:(1) InitMap()功能说明:初始化主地图;(2) Ent

40、erSubMap()功能说明:进入子地图;(3) LoadVideo()功能说明:打开摄像机;(4) DeleteMap()功能说明:释放当前主地图的所有子对象;厦门大学软件学院毕业论文16(5) AddSubMap()功能说明:添加子地图;(6) AddDevice()功能说明:添加设备(7) ReBack()功能说明:返回上层地图;(8) SetBG()功能说明:设置背景;(9) DestroyDV()功能说明:删除设备;(10)DestroyMap()功能说明:删除地图(11) ModifyDV()功能说明:修改设备;(12)ModifyMap()功能说明:修改地图;4.1.2 类图类图

41、主要用于描述系统中各种类及其对象之间的静态结构,在与数据库设计和代码生成联系方面,比状态图和时序图的意义还要实用。尤其在数据库领域中,类与关系表是相对应的。电子地图的类图如图 4-1 所示。厦门大学软件学院毕业论文17图 4-1 电子地图系统关系图4.2 用例图用例图(UseC ased iagram)在各种开发活动中被广泛使用,它在 UML 中是非常独特的图形元素,它描述了一个系统的如何使用。用例图告诉大家谁是相关的用户,他们希望系统提供什么服务,以及他们需要为系统提供的服务。用例图是面向对象软件工程(OOSE)的关键元素,面向对象的方法在本项目中广泛地被应用,尤其是在描述子系统中是切实可行

42、的。电子地图系统的用例图如图 4-2 所示。厦门大学软件学院毕业论文18CustomerAdMapOrDeviceAdRecordCreatObjectAdNodeDelMapDelSupMap DelNodeDelevice DelObjectDelRcordAdminModifyUser OpenMapOpenDeviceDatBase图 4-2 系统用例图4.3 数据库操作实现在电子地图系统中,大部分的功能实现都需要数据库操作,系统对数据库的访问十分频繁,所以了解数据库的实现对应设计本系统是有必要的。在 C+Builder 中提供了很多种访问数据库的方法,不管是连接数据库、访问数据库还是

43、管理数据库都非常的简单、方便,在这么多的方法种有些人可能会觉得很乱,其实只要明白了其中的关系就什么问题都解决了。在 C+Builder 中,首先通过 TADOConnection 等连接数据库控件连接数据库,在 TADOConnection 中可以设定数据库连接字符串,然后由TADODataSet、TADOQuery、TADOTable、TADOCommand 等数据库容器控件通过TADOConnection 连接数据库,然后设置其所关联的表。这些数据库容器控件其实就是指向数据表的指针,所以这些控件都可以对数据表直接操作,其差别只在于一些特殊的用法上,对于一般的用途,这些控件都能满足用户的要求

44、。C+Builder 还提供了一系列数据库视图的控件(DBGrid),只要给这些控件指定数据源(DataSource)就能显示相应数据表的内容,而DataSource 通过连接数据库容器控件以指定源数据表。厦门大学软件学院毕业论文19C+Builder 给我们提供了很多的方法访问数据库,以致有些人会难以取舍,其实在使用中只要知道其中的一两种使用方法就已经够用了,比如我只要知道了显示表内容的DBGrid 连接数据源 DataSource、DataSource 连接可操作数据表的TADODataSet、TADODataSet 连接数据库连接的 TADOConnection、TADOConnecti

45、on 连接数据库这一条路线的用法就够了。其它用法用起来也差不多,只要掌握了一种,其它的就很简单了。在电子地图系统中我们创建了一个连接数据库的类供系统所有模块数据库连接使用,避免了数据库连接的重复操作。在本系统的编码过程中对数据表的操作主要应用 TADOQuery和 TADODataSet 等控件。在本系统的使用中,这两个控件的功能是一样的,只有用法上的差别,下面以 TADOQuery 控件为例简要介绍 C+Builder 连接数据表及操作数据表的基本操作:先在窗口中添加一个 TADOQuery 控件 pADOQuery,设置它的 Connection 属性及 SQL(用SQL 语句设定所要访问

46、的数据集)属性,设置 Active 属性为 true,这样就连接上表了,接下来就是对表的操作了:用 TADOQuery 控件执行 SQL 语句:pADOQuery-SQL-Clear();pADOQuery-SQL-Add(“SQL 语句“);pADOQuery-ExecSQL();pADOQuery-Active = true;pADOQuery-First();设定编辑状态: pADOQuery-Edit();读取或修改数据表当前记录的某个字段值:pADOQuery-FieldByName(“字段名“)-AsString;添加一条记录: pADOQuery-Append();提交修改数据表

47、: pADOQuery-Post();4.4 功能实现在管理者类中我们封装了电子地图系统的功能实现,由于篇幅有限,不能对各个功能模块实现办法详细说明,下面只对一些基本功能及主要功能进行阐述。厦门大学软件学院毕业论文204.4.1 权限判断在系统的全局变量文件中定义了一个枚举类型的全局变量 g_Security,如果 g_Security等于 EM_SUPER 即当前用户为超级管理员,如果 g_Security 等于 EM_ADMINISTRATOR 则当前用户为管理员,如果 g_Security 等于 EM_USER 则当前用户为普通用户。只有超级管理员和管理员能对地图执行修改操作,普通用户只

48、能浏览访问电子地图不能对其进行修改操作。而只有超级管理员能管理用户,其它用户不可以。4.4.2 主地图的操作主地图指的是当前窗口显示的地图,对主地图的操作主要分为三种:(1) 主地图的初始化电子地图系统一开始运行就会默认主地图表中的第一条记录为主地图,因为地图的添加总是从上往下添加,没有父地图的子地图是没有意义的。如果主地图表中没有任何地图记录,则系统会自动添加一条记录作为默认主地图,并取名为“根地图” ,表示最上层地图,用户如果进入系统后可重新设置地图背景以达到改变根地图的目的。如果用户是从当前地图中点击某个子地图或在树形图中双击某个子地图节点而进入新主地图的初始化操作则需要向管理者类发送新

49、地图的 ID 号码,管理者类根据这个 ID 号码读取新主地图。主地图的初始化首先从主地图表中读取主地图背景图片以设置窗口的背景,然后管理者类从子地图表和设备表中读取主地图的所有子地图和设备的信息,并将这些信息发送给工厂类要求工厂类创建这些子地图和设备对象,创建的子地图对象和设备对象保存在基类数组TEMObject中,所有这些子地图对象和设备对象都是以图标的形式显示在主地图中。主地图的初始化窗口如图 4-3 所示。厦门大学软件学院毕业论文21图 4-3 初始化窗口(2) 主地图的刷新释放所有子地图对象和设备对象,即释放基类数组 TEMObject中的元素,重新执行一次主地图的初始化操作。(3) 返回上一层管理者类首先获取了当前主地图的父地图 ID 号码,然后释放所有子地图对象和设备对象,以父地图 ID 号码重新初始化主地图。4.4.3 图片管理图片管理即管理图片表。在图片表中保存了所有地图的背景图片、子地图的显示图标和设备的显示图标等系统需要的图片。图片管理主窗口如图 4-4 所示。厦门大学软件学院毕业论文22图 4-4 管理图片窗口对图片表的管理主要有三种操作:(1) 添加图片添加图片即从本地磁盘中导入图片添加到图片表中,图片在表中以流的形式储存。在本系统中允许用

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 学术论文 > 毕业论文

本站链接:文库   一言   我酷   合作


客服QQ:2549714901微博号:道客多多官方知乎号:道客多多

经营许可证编号: 粤ICP备2021046453号世界地图

道客多多©版权所有2020-2025营业执照举报