浅谈VC++6.0开发扶绥县水利水电管理系统
2019-09-10杨碧芳陶增才
杨碧芳 陶增才
【摘 要】本文阐述了扶绥县水利水电管理系统的目标与任务;分析了是系统开发的技术依据;叙述了VC++6.0开发语言的特点;论述了系统开发的总体框架;剖析了系统各模块的功能,并给出了部分典型代码;旨在能给广大同行带来抛砖引玉的作用。
【关键词】水利水电;VC++6.0;系统开发
1 目标与任务
扶绥县水利水电建库系统总体目标是健全全县水利水电资源信息化体系,加快基础数据和基础网络建设,实现数据资源和应用系统的有效整合,推行水利水电资源政务管理和决策支持的系统建设,增强水利水电资源行政管理的效能。稳步推行网上双向互动式的水利水电资源信息服务体系,满足社会公众对水利水电资源信息的需求。
(1)数据的统一、规范化管理
结合“一张图”工程,系统涉及遥感影像、矢量数据等多种格式、多种精度异构数据的统一管理。数据格式必须具有通用性,能同时兼容国家、区厅已明确的数据格式和标准,能和其他相关软件共享数据。
(2)实现县局内办公的无纸化
建成县局水利水电资源数据中心,实现基础数据库、业务数据库和平台支撑数据库的统一管理,为水利水电管理系统提供有力数据支持,实现水利水电资源管理各业务主流程的信息化,实现局内无纸化办公。
(3)构建起一站式办公环境
按照多层架构思想统筹规划、设计、开发、部署,实现系统统一管理,实现不同类水利水电资源应用系统间的集成,达到从系统界面、用户身份认证等方面的“一站式”服务。
(4)实现图文一体化办公
实现OA、MIS、GIS技术上一体化,为水利水电资源管理部门各级领导和工作人员提供了图文一体化的基于B/S结构的工作环境。
(5)建成双向互动式的水利水电资源公众信息服务体系
协助建立集信息发布、信息查询、网上举报和电子信访的县级水利水电资源门户网站;逐步建立面向社会公开办事为主要内容的网上申报服务系统;建立水利水电资源专业化信息服务系统。
2 技术依据
(1)《中华人民共和国行政区划代码》,GB 2260—2002。
(2)《地球空间数据交换格式》,GB/T 17798—1999
(3)《水利基础信息数据分类与代码》,GB/T 13923-1992
(4)《城市地理要素—城市道路、道路交叉口、街坊、市政工程管线,编码结构规则》,GB 14395-93
(5)《国家基本比例尺地形图分幅和编号》,GB/T 13989—1992
(6)《1∶500 1∶1000 1∶2000,地形图要素分类与代码》,GB 14804-1993
(7)《1∶500 1∶1000 1∶2000,地形图图式》,GB/T 20257.1-2007
(8)《1∶500 1∶1000 1∶2000地形图数字化规范》,GB/T 17160-1997
(9)《大比例尺地形图机助成图规范》,GB 14912-1994
3 VC++6.0开发语言
Microsoft Visual C++6.0(简称Visual C++、MSVC、VC++或VC)是微软公司的C++开发工具,具有集成开发环境,可提供编辑C语言,C++以及C++/CLI等编程语言。VC++集成了便利的除错工具,特别是集成了微软Windows视窗操作系统应用程序接口(Windows API)、三维动画DirectX API,Microsoft.NET框。[1]
VC++6.0以拥有“语法高亮”,IntelliSense(自动完成功能)以及高级除错功能而著称。比如,它允许用户进行远程调试,单步执行等。还有允许用户在调试期间重新编译被修改的代码,而不必重新启动正在调试的程序。其编译及建置系统以预编译头文件、最小重建功能及累加连结著称。这些特征明显缩短程式编辑、编译及连结花费的时间,在大型软件计划上尤其显著。[2]
4 系统框架
5 系统实现
5.1 网络层
建立各级水利水电资源管理部门局域网,支撑市、县两级水利水电资源业务在本系统内运行;建立水利水电资源政务专网,支撑水利水电资源纵向业务的网上运行;依托Internet,向社會提供水利水电资源信息服务,其典型代码如下:
CMenu* pSysMenu = GetSystemMenu(FALSE);
if(pSysMenu != NULL)
CString strAboutMenu;
if(!strAboutMenu.IsEmpty())
{pSysMenu->AppendMenu(MF_SEPARATOR);}
SetIcon(m_hIcon,TRUE);SetIcon(m_hIcon,FALSE);return TRUE;
5.2 资源层
以水利水电资源各类数据为核心,依托成熟的数据库管理系统和GIS平台,按照统一的标准,建立集数据管理、数据处理、数据交换等功能为一体的水利水电资源数据中心,提供业务系统运行所需的基础数据、管理数据支撑,其典型代码如下:
pdateData(TRUE);
AREA_HINST aHinst = _InitWorkArea(NULL);
CString strPath,str;
GetDlgItemText(IDC_EDIT_DLTB,strPath);
shortDLTBAi = _OpenFileArea(aHinst,(LPTSTR)(LPCTSTR)strPath);
short lai = _OpenLinArea(aHinst);
5.3 支撑层
实现统一系统应用权限、统一应用服务,用户协同办公、单点登录、内容管理、分类管理、知识管理、工作流管理、统一搜索引擎、目录服务、即时消息等功能,整合有关业务办公信息、事务处理信息及交互类信息,并建立系统应用规范、统一技术标准等为目标的全局应用框架,其典型代码如下:
if(_GetLinTop(DLTBAi,labs(rData[ii]),&linTop)<= 0)continue;
if(linTop.rPoly==0 && linTop.lPoly>0)
stnod=linTop.stNod;linTop.stNod=linTop.endNod;
linTop.endNod=stnod;linTop.rPoly=linTop.lPoly;
linTop.lPoly=0;weight=linTop.lWeigh;
linTop.lWeigh=linTop.rWeigh;linTop.rWeigh=weight;}
_WriteLinTop(DLTBAi,labs(rData[ii]),&linTop);
5.4 业务层
围绕水利水电资源管理业务,建立并集成水利管理信息系统、水电管理信息系统、综合事务管理信息系统,开发水利水电资源信息统计分析与决策支持系统、水利水电资源信息服务系统,其典型代码如下:
_GetLin(DLTBAi,labs(rData[ii]),&dat,&len,&inf);
nod = linTop.stNod;_GetNodPos(DLTBAi,nod,&pos);
if(fabs(dat[0].x-pos.x)<=0.000001&&fabs(dat[0].y-pos.y)<=0.000001)
{linID=_AppendLin(lai,dat,len,&inf);}
else if(fabs(dat[len-1].x-pos.x)<=0.000001&&fabs(dat[len-1].y-pos.y)<=0.000001)
{D_DOT *tmpdat = new D_DOT[len];
for(int j=0;j {tmpdat[j] = dat[len-1-j];} linID=_AppendLin(lai,tmpdat,len,&inf);delete[] tmpdat;} if(_GetAtt(lai,LIN,linID,&linstru,&linatt)<=0)continue; 6 小 结 本文详细分析了VC++6.0开发扶绥县水利水电管理系统的实现过程,应用表明,该系统界面友好、操作便利、较大的提高了扶绥县水利水电管理的业务办事效率,在现阶段具有一定的理论与实践意义。 參考文献: [1] Microsoft Visual C++ .摩尔新闻网[引用日期2016-11-26]. [2] 使用 Visual Studio 的 C/C++ .Visual Studio[引用日期2016-10-07].