尹璐
摘要: 隨著信息化技術(shù)的發(fā)展,為了節(jié)省大量的項(xiàng)目成本,工程造價軟件在建筑行業(yè)中得到了大量的應(yīng)用,而且應(yīng)用越來越細(xì)。本文針對日常實(shí)際中的工作特點(diǎn),基于面向?qū)ο蟮某绦蛟O(shè)計(jì)思想,結(jié)合C++語言開發(fā)了工程造價輔助軟件。利用此軟件能夠方便快速地對預(yù)算文件進(jìn)行工程量統(tǒng)計(jì)、得到相關(guān)的工程指標(biāo)和經(jīng)濟(jì)指標(biāo)、對預(yù)算文件快速進(jìn)行數(shù)值化處理。同時,本軟件還實(shí)現(xiàn)了與廣聯(lián)達(dá)計(jì)價軟件的接口,為工程造價輔助程序的進(jìn)一步開發(fā)提供了一個有效的平臺。
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.
關(guān)鍵詞: 工程造價;工程量;軟件開發(fā);面向?qū)ο?/p>
Key words: project cost;engineering quantity;software development;object-oriented
中圖分類號:TP311.5 文獻(xiàn)標(biāo)識碼:A 文章編號:1006-4311(2018)18-0248-04
1 工程造價輔助軟件開發(fā)的目的
隨著信息化技術(shù)的的發(fā)展,計(jì)算機(jī)應(yīng)用的模式已經(jīng)發(fā)生了根本的變化,建筑行業(yè)也不例外,計(jì)算機(jī)輔助工程造價在建筑行業(yè)中得到了大量的應(yīng)用。與傳統(tǒng)手工工作相比,計(jì)算機(jī)輔助程序具有準(zhǔn)確、快速兩大特點(diǎn),因此借助于現(xiàn)代化信息技術(shù)能夠節(jié)省大量的人力、物力、財(cái)力,達(dá)到節(jié)約項(xiàng)目成本的效果。
目前國內(nèi)市場的工程造價軟件大多為計(jì)價及算量軟件,應(yīng)用在工程概預(yù)算、工程報(bào)價及招投標(biāo)階段,主要的造價軟件有廣聯(lián)達(dá)、神機(jī)、PKPM、清華斯維爾等。它們雖然功能強(qiáng)大,但是針對性不是很強(qiáng),只能滿足用戶的一般需求,對于造價過程中的一些具體需求沒有涉及到。
本文針對核電行業(yè)工程造價過程中的具體工作,基于面向?qū)ο蟮某绦蛟O(shè)計(jì)思想,結(jié)合C++語言開發(fā)了工程造價輔助軟件。利用此工具軟件能夠方便快速地對預(yù)算文件進(jìn)行工程量統(tǒng)計(jì)、得到相關(guān)的工程指標(biāo)和經(jīng)濟(jì)指標(biāo)、對預(yù)算文件快速進(jìn)行數(shù)值化處理,同時還實(shí)現(xiàn)了與廣聯(lián)達(dá)計(jì)價軟件的接口,從而為造價工作帶來便利。
2 工程造價輔助軟件開發(fā)的方法
2.1 面向?qū)ο蟮某绦蛟O(shè)計(jì)方法簡介
在現(xiàn)實(shí)生活中,在解決一個具體問題前,你首先考慮的是被考察對象的用途和行為,然后才會考慮選用的工具和過程。也就是說,解決問題的方案要適合問題的需要。
面向?qū)ο蟮某绦蛟O(shè)計(jì)簡單來說就是先把需要解決的問題分類,組建成不同的組,然后再考慮每一個問題與組之間的聯(lián)系,將組中的問題按一定的順序組織起來,這些分組就各自形成了獨(dú)立的對象單元。這種面向?qū)ο蟮某绦蛟O(shè)計(jì)思想大大簡化了傳統(tǒng)的編程方法,使得程序設(shè)計(jì)更加邏輯和系統(tǒng)化。
工程造價輔助軟件由于涉及到的工程相關(guān)數(shù)據(jù)及結(jié)構(gòu)體數(shù)量比較多,需要一套邏輯比較嚴(yán)密的編程思想來管理,而面向?qū)ο蟮某绦蛟O(shè)計(jì)方法能很好的解決這類問題。因此工程造價輔助軟件就是采用面向?qū)ο蟮某绦蛟O(shè)計(jì)方法開發(fā)出來的。
面向?qū)ο蟮某绦蛟O(shè)計(jì)的兩個基本元素是類和對象,類是許多對象抽象出來的一個集合,它能準(zhǔn)確地描述所包含的所有對象,對象則只是類中的一個小單元??梢赃@樣理解,對象是類的子類,對象繼承了類的所有屬性和操作。如把工程量作為一個類,而工程量這一類中又可以分為眾多對象:土方、鋼筋、混凝土等。而每一個對象都有著相同的屬性和自己特有的屬性,比如混凝土的部位,混凝土的單位、混凝土的數(shù)量等等。
面向?qū)ο蟮某绦蛟O(shè)計(jì)最核心的三個特點(diǎn)就是封裝、繼承和多態(tài)性。下文中結(jié)合工程造價輔助軟件對這三個特點(diǎn)加以闡述。
2.2 基于面向?qū)ο蟪绦蛟O(shè)計(jì)的工程造價輔助軟件
面向?qū)ο蟮某绦蛟O(shè)計(jì)最核心的三個特點(diǎn):封裝、繼承和多態(tài)性。
2.2.1 封裝
封裝是將數(shù)據(jù)以及和數(shù)據(jù)有關(guān)的功能、操作結(jié)合封裝在一起,形成一個類的實(shí)體。這個實(shí)體具有一定的實(shí)際功能,使得用戶能夠根據(jù)類的外部接口訪問類,并且實(shí)現(xiàn)某些操作。以處理Excel類為例。
class ExcelTesDlg : public CDialog
{
public:
voidSimpleData(); //簡化數(shù)據(jù)函數(shù)
CArray
CArray
CArray
//文件路徑結(jié)構(gòu)體
CArray
//工程量指標(biāo)結(jié)構(gòu)體
protected:
//{{AFX_MSG(ExcelTesDlg)
afx_msg void OnOpenRead(); //讀取數(shù)據(jù)函數(shù)
afx_msg void OnResult(); //讀取結(jié)果函數(shù)
afx_msg void OnOpenadd(); //輸出數(shù)據(jù)函數(shù)
//}}AFX_MSG
DECLARE_MESSAGE_MAP()
};
在處理Excel這一類中,包含了工程造價輔助軟件對Excel處理的各個屬性和功能。具體如圖1所示。
由此可見,用戶只需要操作簡單的接口函數(shù),就可以實(shí)現(xiàn)整個Excel的處理與存儲過程。至于整個建模功能如何去實(shí)現(xiàn),使用者則不必了解。這便是面向?qū)ο蟪绦蛟O(shè)計(jì)的封裝性的特點(diǎn)。
2.2.2 繼承
客觀世界中普遍存在著整體和部分的關(guān)系,共性和特性的關(guān)系。引入繼承的概念之后,則可以把這種對象與對象之間的層次關(guān)系明確化,從而提高程序的邏輯性和可重復(fù)利用性。
在面向?qū)ο蟮某绦蛟O(shè)計(jì)中,類與類之間往往存在著繼承關(guān)系。原始類稱為基類或父類,新生成的類稱為派生類或子類。子類由父類派生而來,繼承了父類所有的數(shù)據(jù)、操作和功能,而子類還可以增加自己特有的數(shù)據(jù)和功能。以對話框類class CDialog部分功能為例:
class CDialog : public CWnd
{
public:
virtual int DoModal(); //調(diào)用對話框
virtual BOOL OnInitDialog(); //初始化對話框
virtual void OnSetFont(CFont* pFont);
//設(shè)置對話框上文字字體
protected:
virtual void OnOK(); //對話框上OK按鈕消息處理
virtual void OnCancel(); //對話框上Cancel按鈕消息處理
};
父類class CDialog定義了對話框的共同操作和功能,其他對話框類基于它衍生而來時,就不用重新定義,而直接具備這些數(shù)據(jù)和操作。因此,面向?qū)ο蟮某绦蛟O(shè)計(jì)繼承性的特點(diǎn)是不同對象的分層次處理,共有的性質(zhì)和功能只需要定義一次,從而可以充分利用已有的類,大大提高了編程的效率。
2.2.3 多態(tài)性
多態(tài)性就是有多種表現(xiàn)形式,即一個對外的接口,有多種算法來實(shí)現(xiàn)。舉一個例子,在輸出工程量到Excel文件中時可以采用不同文字格式,如黑色、加粗或者畫格子等。但是不管是什么文字格式,輸出的的算法還是一樣的,最終也都完成了輸出工程量這一操作。針對提供的不同文字格式,程序自動選擇相應(yīng)的函數(shù)去完成。因此,多態(tài)性就是一種允許一個外部接口實(shí)現(xiàn)多個相關(guān)功能的特點(diǎn),而特殊的性質(zhì)的實(shí)現(xiàn)由傳入的參數(shù)決定。
工程造價輔助軟件根據(jù)面向?qū)ο蟮某绦蛟O(shè)計(jì)的這三個特點(diǎn),將整個輔助造價過程抽象化,建立了相應(yīng)的對象和類:讀取Excel文件類、Excel數(shù)值化類、外部軟件接口類、工程量指標(biāo)類等。
通過對上述對象和類的抽象和提取,使得工程造價輔助軟件的邏輯性和條理性更強(qiáng),更加易于用戶操作。
3 工程造價輔助軟件的應(yīng)用
工程造價輔助軟件是利用MFC中AppWizard引導(dǎo)功能生成的應(yīng)用程序框架。AppWizard引導(dǎo)功能能夠生成創(chuàng)建應(yīng)用程序所必需的文件,如工程概況,工程量等的交互式輸入;同時還能實(shí)現(xiàn)一些用戶特殊的功能,如預(yù)算文件的數(shù)值化等。
如圖2所示為工程造價輔助軟件的主界面。
主界面大致分為三部分:主菜單,工具欄及文字輸出區(qū)域。其中一些常用的操作或者工具都放置在工具欄中,其余的命令則在主菜單欄里。工具欄可以根據(jù)需要隨意拖曳、隱藏和顯示,繪圖區(qū)域和文字輸出區(qū)域也可以隨意更改大小。另外,軟件的界面比較美觀,工具欄按鈕采用帶字母的小圖片設(shè)計(jì)而成,醒目而且易懂。總體來說,主界面功能基本比較清晰,便于操作,但還需完善。
下面以福建福清04262RF工程量為例,具體介紹一下工程造價輔助軟件的應(yīng)用。
3.1 工程量統(tǒng)計(jì)的應(yīng)用
圖3所示為工程量統(tǒng)計(jì)對話框,工程概況信息比較簡單,只需要輸入工程名稱和子項(xiàng)號即可。然后選擇需要統(tǒng)計(jì)工程量的Excel文件,可以選擇一個也可以選擇多個,等軟件讀取工程量完畢后,點(diǎn)擊顯示按鈕,即可顯示簡化后的相應(yīng)定額號和工程量。最后,點(diǎn)擊寫出按鈕將統(tǒng)計(jì)結(jié)果輸出到excel文件中,結(jié)果如表1所示。
3.2 工程指標(biāo)統(tǒng)計(jì)的實(shí)現(xiàn)
在工程估算和概算階段,因?yàn)橛捎谠O(shè)計(jì)深度的限制,經(jīng)常需要參考其他類似工程的工程指標(biāo),這樣,統(tǒng)計(jì)工程指標(biāo)是十分必要的。工程造價輔助軟件能夠快速地將工程指標(biāo)統(tǒng)計(jì)并計(jì)算出來,改變了目前人為統(tǒng)計(jì)的現(xiàn)狀,從而節(jié)省了計(jì)算成本。
工程指標(biāo)統(tǒng)計(jì)對話框如圖4所示,用戶可以根據(jù)自己的需要,選擇需要統(tǒng)計(jì)的工程量,然后通過讀取上一步驟輸出的Excel文件,最終得到需要的工程量指標(biāo)。圖4選擇的是鋼筋和混凝土,最終得出的結(jié)果是鋼筋量657.71t,混凝土量1929.50m3,鋼筋/混凝土指標(biāo)為0.34t/m3。同樣,單方造價等其他工程量指標(biāo)也可以類似得出。
3.3 與廣聯(lián)達(dá)接口的實(shí)現(xiàn)
圖5所示為廣聯(lián)達(dá)接口對話框,選擇的文件為表1所示的Excel文件,導(dǎo)入文件之后自動轉(zhuǎn)化成能夠?qū)霃V聯(lián)達(dá)軟件的文件,同時,軟件自動開啟廣聯(lián)達(dá)計(jì)價程序GBQ4.exe。導(dǎo)入廣聯(lián)達(dá)后的結(jié)果如圖6所示。
與廣聯(lián)達(dá)接口功能的實(shí)現(xiàn),不僅提高了編制工程造價文件的速度,而且寫入數(shù)據(jù)都是計(jì)算機(jī)輔助,能夠有效地減少人為錯誤,提高編制造價文件的準(zhǔn)確性。
最后,在日常工作中,我們在編制完預(yù)算文件后,文件中保留了大量的公式及鏈接,通常我們都需要人為一個一個地對文件進(jìn)行數(shù)值化處理。對此,軟件還實(shí)現(xiàn)了預(yù)算文件數(shù)值化功能,大大節(jié)省了對預(yù)算文件數(shù)值化的時間。
4 結(jié)論與展望
本文針對核電行業(yè)工程造價過程中的具體工作,采用面向?qū)ο蟮木幊淘O(shè)計(jì)方法和VC++編程開發(fā)了工程造價輔助軟件。利用此軟件能夠方便快速地對預(yù)算文件進(jìn)行工程量統(tǒng)計(jì)、得到相關(guān)的工程指標(biāo)和經(jīng)濟(jì)指標(biāo)、對預(yù)算文件快速進(jìn)行數(shù)值化處理。與廣聯(lián)達(dá)計(jì)價軟件的接口上,本軟件根據(jù)廣聯(lián)達(dá)計(jì)價軟件數(shù)據(jù)文件的特點(diǎn),將統(tǒng)計(jì)出的工程造價信息轉(zhuǎn)換成廣聯(lián)達(dá)計(jì)價軟件需要的文件,從而可以調(diào)用廣聯(lián)達(dá)計(jì)價軟件進(jìn)行計(jì)價,節(jié)省了造價工作的時間。
工程造價輔助軟件僅完成了對廣聯(lián)達(dá)計(jì)價軟件的接口功能,今后還需要實(shí)現(xiàn)對其它行業(yè)定額計(jì)價軟件的接口功能,同時軟件的界面、處理文件能力仍要進(jìn)一步完善。本文中的軟件能夠成為一套在核電行業(yè)造價工作有用的輔助軟件。
參考文獻(xiàn):
[1]伽瑪(Galnlna.E.),等著,李英軍,等譯.設(shè)計(jì)模式一可復(fù)用面向?qū)ο筌浖幕A(chǔ)[M].機(jī)械工業(yè)出版社,2007年03月.
[2]張耀仁.C++程序設(shè)計(jì)與應(yīng)用[M].華中科技大學(xué)出版社,2000.
[3]陳越.幾種主要工程造價軟件的評估分析[J].科技情報(bào)開發(fā)與經(jīng)濟(jì),2004,14,10.