核电工程造价辅助软件的开发与应用
2018-07-20尹璐
尹璐
摘要: 随着信息化技术的发展,为了节省大量的项目成本,工程造价软件在建筑行业中得到了大量的应用,而且应用越来越细。本文针对日常实际中的工作特点,基于面向对象的程序设计思想,结合C++语言开发了工程造价辅助软件。利用此软件能够方便快速地对预算文件进行工程量统计、得到相关的工程指标和经济指标、对预算文件快速进行数值化处理。同时,本软件还实现了与广联达计价软件的接口,为工程造价辅助程序的进一步开发提供了一个有效的平台。
Abstract: With the development of information technology, in order to save a lot of project costs, engineering cost software has been widely applied in the construction industry, and the application is getting more and more detailed. This paper aims at the characteristics of daily practical work, based on object-oriented programming ideas, combined with C + + language to develop the project cost aid software. With this software, it is possible to quickly and easily perform project volume statistics on budget documents, obtain relevant engineering and economic indicators, and quickly perform numerical processing on budget documents. At the same time, the software also realizes the interface with GDL's pricing software and provides an effective platform for the further development of engineering cost-assisted programs.
關键词: 工程造价;工程量;软件开发;面向对象
Key words: project cost;engineering quantity;software development;object-oriented
中图分类号:TP311.5 文献标识码:A 文章编号:1006-4311(2018)18-0248-04
1 工程造价辅助软件开发的目的
随着信息化技术的的发展,计算机应用的模式已经发生了根本的变化,建筑行业也不例外,计算机辅助工程造价在建筑行业中得到了大量的应用。与传统手工工作相比,计算机辅助程序具有准确、快速两大特点,因此借助于现代化信息技术能够节省大量的人力、物力、财力,达到节约项目成本的效果。
目前国内市场的工程造价软件大多为计价及算量软件,应用在工程概预算、工程报价及招投标阶段,主要的造价软件有广联达、神机、PKPM、清华斯维尔等。它们虽然功能强大,但是针对性不是很强,只能满足用户的一般需求,对于造价过程中的一些具体需求没有涉及到。
本文针对核电行业工程造价过程中的具体工作,基于面向对象的程序设计思想,结合C++语言开发了工程造价辅助软件。利用此工具软件能够方便快速地对预算文件进行工程量统计、得到相关的工程指标和经济指标、对预算文件快速进行数值化处理,同时还实现了与广联达计价软件的接口,从而为造价工作带来便利。
2 工程造价辅助软件开发的方法
2.1 面向对象的程序设计方法简介
在现实生活中,在解决一个具体问题前,你首先考虑的是被考察对象的用途和行为,然后才会考虑选用的工具和过程。也就是说,解决问题的方案要适合问题的需要。
面向对象的程序设计简单来说就是先把需要解决的问题分类,组建成不同的组,然后再考虑每一个问题与组之间的联系,将组中的问题按一定的顺序组织起来,这些分组就各自形成了独立的对象单元。这种面向对象的程序设计思想大大简化了传统的编程方法,使得程序设计更加逻辑和系统化。
工程造价辅助软件由于涉及到的工程相关数据及结构体数量比较多,需要一套逻辑比较严密的编程思想来管理,而面向对象的程序设计方法能很好的解决这类问题。因此工程造价辅助软件就是采用面向对象的程序设计方法开发出来的。
面向对象的程序设计的两个基本元素是类和对象,类是许多对象抽象出来的一个集合,它能准确地描述所包含的所有对象,对象则只是类中的一个小单元。可以这样理解,对象是类的子类,对象继承了类的所有属性和操作。如把工程量作为一个类,而工程量这一类中又可以分为众多对象:土方、钢筋、混凝土等。而每一个对象都有着相同的属性和自己特有的属性,比如混凝土的部位,混凝土的单位、混凝土的数量等等。
面向对象的程序设计最核心的三个特点就是封装、继承和多态性。下文中结合工程造价辅助软件对这三个特点加以阐述。
2.2 基于面向对象程序设计的工程造价辅助软件
面向对象的程序设计最核心的三个特点:封装、继承和多态性。
2.2.1 封装
封装是将数据以及和数据有关的功能、操作结合封装在一起,形成一个类的实体。这个实体具有一定的实际功能,使得用户能够根据类的外部接口访问类,并且实现某些操作。以处理Excel类为例。
class ExcelTesDlg : public CDialog
{
public:
voidSimpleData(); //简化数据函数
CArray
CArray
CArray
//文件路径结构体
CArray
//工程量指标结构体
protected:
//{{AFX_MSG(ExcelTesDlg)
afx_msg void OnOpenRead(); //读取数据函数
afx_msg void OnResult(); //读取结果函数
afx_msg void OnOpenadd(); //输出数据函数
//}}AFX_MSG
DECLARE_MESSAGE_MAP()
};
在处理Excel这一类中,包含了工程造价辅助软件对Excel处理的各个属性和功能。具体如图1所示。
由此可见,用户只需要操作简单的接口函数,就可以实现整个Excel的处理与存储过程。至于整个建模功能如何去实现,使用者则不必了解。这便是面向对象程序设计的封装性的特点。
2.2.2 继承
客观世界中普遍存在着整体和部分的关系,共性和特性的关系。引入继承的概念之后,则可以把这种对象与对象之间的层次关系明确化,从而提高程序的逻辑性和可重复利用性。
在面向对象的程序设计中,类与类之间往往存在着继承关系。原始类称为基类或父类,新生成的类称为派生类或子类。子类由父类派生而来,继承了父类所有的数据、操作和功能,而子类还可以增加自己特有的数据和功能。以对话框类class CDialog部分功能为例:
class CDialog : public CWnd
{
public:
virtual int DoModal(); //调用对话框
virtual BOOL OnInitDialog(); //初始化对话框
virtual void OnSetFont(CFont* pFont);
//設置对话框上文字字体
protected:
virtual void OnOK(); //对话框上OK按钮消息处理
virtual void OnCancel(); //对话框上Cancel按钮消息处理
};
父类class CDialog定义了对话框的共同操作和功能,其他对话框类基于它衍生而来时,就不用重新定义,而直接具备这些数据和操作。因此,面向对象的程序设计继承性的特点是不同对象的分层次处理,共有的性质和功能只需要定义一次,从而可以充分利用已有的类,大大提高了编程的效率。
2.2.3 多态性
多态性就是有多种表现形式,即一个对外的接口,有多种算法来实现。举一个例子,在输出工程量到Excel文件中时可以采用不同文字格式,如黑色、加粗或者画格子等。但是不管是什么文字格式,输出的的算法还是一样的,最终也都完成了输出工程量这一操作。针对提供的不同文字格式,程序自动选择相应的函数去完成。因此,多态性就是一种允许一个外部接口实现多个相关功能的特点,而特殊的性质的实现由传入的参数决定。
工程造价辅助软件根据面向对象的程序设计的这三个特点,将整个辅助造价过程抽象化,建立了相应的对象和类:读取Excel文件类、Excel数值化类、外部软件接口类、工程量指标类等。
通过对上述对象和类的抽象和提取,使得工程造价辅助软件的逻辑性和条理性更强,更加易于用户操作。
3 工程造价辅助软件的应用
工程造价辅助软件是利用MFC中AppWizard引导功能生成的应用程序框架。AppWizard引导功能能够生成创建应用程序所必需的文件,如工程概况,工程量等的交互式输入;同时还能实现一些用户特殊的功能,如预算文件的数值化等。
如图2所示为工程造价辅助软件的主界面。
主界面大致分为三部分:主菜单,工具栏及文字输出区域。其中一些常用的操作或者工具都放置在工具栏中,其余的命令则在主菜单栏里。工具栏可以根据需要随意拖曳、隐藏和显示,绘图区域和文字输出区域也可以随意更改大小。另外,软件的界面比较美观,工具栏按钮采用带字母的小图片设计而成,醒目而且易懂。总体来说,主界面功能基本比较清晰,便于操作,但还需完善。
下面以福建福清04262RF工程量为例,具体介绍一下工程造价辅助软件的应用。
3.1 工程量统计的应用
图3所示为工程量统计对话框,工程概况信息比较简单,只需要输入工程名称和子项号即可。然后选择需要统计工程量的Excel文件,可以选择一个也可以选择多个,等软件读取工程量完毕后,点击显示按钮,即可显示简化后的相应定额号和工程量。最后,点击写出按钮将统计结果输出到excel文件中,结果如表1所示。
3.2 工程指标统计的实现
在工程估算和概算阶段,因为由于设计深度的限制,经常需要参考其他类似工程的工程指标,这样,统计工程指标是十分必要的。工程造价辅助软件能够快速地将工程指标统计并计算出来,改变了目前人为统计的现状,从而节省了计算成本。
工程指标统计对话框如图4所示,用户可以根据自己的需要,选择需要统计的工程量,然后通过读取上一步骤输出的Excel文件,最终得到需要的工程量指标。图4选择的是钢筋和混凝土,最终得出的结果是钢筋量657.71t,混凝土量1929.50m3,钢筋/混凝土指标为0.34t/m3。同样,单方造价等其他工程量指标也可以类似得出。
3.3 与广联达接口的实现
图5所示为广联达接口对话框,选择的文件为表1所示的Excel文件,导入文件之后自动转化成能够导入广联达软件的文件,同时,软件自动开启广联达计价程序GBQ4.exe。导入广联达后的结果如图6所示。
與广联达接口功能的实现,不仅提高了编制工程造价文件的速度,而且写入数据都是计算机辅助,能够有效地减少人为错误,提高编制造价文件的准确性。
最后,在日常工作中,我们在编制完预算文件后,文件中保留了大量的公式及链接,通常我们都需要人为一个一个地对文件进行数值化处理。对此,软件还实现了预算文件数值化功能,大大节省了对预算文件数值化的时间。
4 结论与展望
本文针对核电行业工程造价过程中的具体工作,采用面向对象的编程设计方法和VC++编程开发了工程造价辅助软件。利用此软件能够方便快速地对预算文件进行工程量统计、得到相关的工程指标和经济指标、对预算文件快速进行数值化处理。与广联达计价软件的接口上,本软件根据广联达计价软件数据文件的特点,将统计出的工程造价信息转换成广联达计价软件需要的文件,从而可以调用广联达计价软件进行计价,节省了造价工作的时间。
工程造价辅助软件仅完成了对广联达计价软件的接口功能,今后还需要实现对其它行业定额计价软件的接口功能,同时软件的界面、处理文件能力仍要进一步完善。本文中的软件能够成为一套在核电行业造价工作有用的辅助软件。
参考文献:
[1]伽玛(Galnlna.E.),等著,李英军,等译.设计模式一可复用面向对象软件的基础[M].机械工业出版社,2007年03月.
[2]张耀仁.C++程序设计与应用[M].华中科技大学出版社,2000.
[3]陈越.几种主要工程造价软件的评估分析[J].科技情报开发与经济,2004,14,10.