尹璐
摘要: 隨著信息化技術的發展,為了節省大量的項目成本,工程造價軟件在建筑行業中得到了大量的應用,而且應用越來越細。本文針對日常實際中的工作特點,基于面向對象的程序設計思想,結合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所示為工程造價輔助軟件的主界面。
主界面大致分為三部分:主菜單,工具欄及文字輸出區域。其中一些常用的操作或者工具都放置在工具欄中,其余的命令則在主菜單欄里。工具欄可以根據需要隨意拖曳、隱藏和顯示,繪圖區域和文字輸出區域也可以隨意更改大小。另外,軟件的界面比較美觀,工具欄按鈕采用帶字母的小圖片設計而成,醒目而且易懂??傮w來說,主界面功能基本比較清晰,便于操作,但還需完善。
下面以福建福清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.