版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、<p><b> 本科生畢業(yè)設(shè)計(jì)</b></p><p> 設(shè)計(jì)題目:開采沉陷實(shí)測(cè)數(shù)據(jù)處理系統(tǒng)</p><p><b> 專 題:</b></p><p> 2012年 6月 </p><p><b> xx畢業(yè)設(shè)計(jì)任務(wù)書</b></p>
2、<p> 任務(wù)下達(dá)日期:2012年 2月 20 日</p><p> 畢業(yè)設(shè)計(jì)日期:2012年 3 月 28 日至 2012年 6 月15 日</p><p> 畢業(yè)設(shè)計(jì)題目:開采沉陷實(shí)測(cè)數(shù)據(jù)處理系統(tǒng)</p><p><b> 畢業(yè)設(shè)計(jì)專題題目:</b></p><p> 畢業(yè)設(shè)計(jì)主要內(nèi)容和要求
3、:</p><p> 根據(jù)開采沉陷的基本知識(shí),結(jié)合礦山實(shí)際需求,以Visual C++為開發(fā)平臺(tái),以SQL Server 2000為后臺(tái)數(shù)據(jù)庫(kù)平臺(tái),綜合運(yùn)用MFC ADO訪問技術(shù),采用C++編程語(yǔ)言,開發(fā)一套界面設(shè)計(jì)良好、操作過程便捷、功能相對(duì)完善的開采沉陷實(shí)測(cè)數(shù)據(jù)處理系統(tǒng),內(nèi)容包括:實(shí)測(cè)數(shù)據(jù)輸入模塊、計(jì)算模塊以及繪圖。系統(tǒng)要求智能化地完成開采沉陷數(shù)據(jù)的數(shù)據(jù)管理、數(shù)據(jù)查詢、數(shù)據(jù)計(jì)算和根據(jù)計(jì)算結(jié)果繪制所需曲線圖形
4、等基本操作。</p><p> 院長(zhǎng)簽字:指導(dǎo)教師簽字:</p><p><b> 摘要</b></p><p> 本論文主要是基于Visual C++6.0MFC和SQL2000的開采沉陷實(shí)測(cè)數(shù)據(jù)處理系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn),并利用實(shí)例進(jìn)行測(cè)試和軟件的系統(tǒng)分析,本文有作者獨(dú)立完成,并進(jìn)行了該論文的撰寫。</p><p>
5、 論文主要闡述里軟件設(shè)計(jì)的理論模型,及在軟件設(shè)計(jì)過程中的關(guān)鍵問題。運(yùn)用MFC和SQL進(jìn)行數(shù)據(jù)的輸入、計(jì)算和查詢工作,并進(jìn)行曲線的可視化輸出。本論文在下列方面具有理論和實(shí)踐意義:利用C++底層編程語(yǔ)言實(shí)現(xiàn)繪圖操作,提供了軟件的共享和進(jìn)一步的開發(fā);曲線擬合精度較高,適合進(jìn)行根據(jù)實(shí)測(cè)資料進(jìn)行相關(guān)規(guī)律的研究。</p><p> 關(guān)鍵詞:開采沉陷;數(shù)據(jù)處理;MFC:SQL2000;繪圖;規(guī)律研究</p>
6、<p><b> ABSTRACT</b></p><p> This thesis mainly is based on Visual C++ 6.0 MFC and SQL2000 mining subsidence of the measured data processing system design and implementation, and use an ex
7、ample of the software and test system analysis, this paper has the author independently, and the writing of the paper.</p><p> The paper mainly expounds the design of software theory model, and in the key p
8、roblems in the process of software design. Using MFC and SQL data input, calculation and inquires the work, and the visualization of curve output. This paper in the following aspects has theoretical and practical signifi
9、cance: by using c + + computer programming language realization bottom graphics operation, provide the sharing of software and the further development; The curve fitting accuracy is higher, according t</p><p&g
10、t; Keywords:Mining subsidence; Data processing; MFC: SQL2000; Drawing; Law research</p><p><b> 第一章 引言</b></p><p> 1.1開采沉陷學(xué)的概念和研究?jī)?nèi)容</p><p> 1.1.1 開采沉陷學(xué)的概念</p>
11、<p> 有用礦物被采出后,開采區(qū)域周圍的巖體的原始應(yīng)力平衡狀態(tài)受到破壞,應(yīng)力重新分布,達(dá)到新的平衡。在此過程中,使巖體和地表產(chǎn)生連續(xù)的移動(dòng)、變形和非連續(xù)的破壞(開裂、冒落等),這種現(xiàn)象稱為“開采沉陷”[1]。</p><p> 開采沉陷學(xué)是一門實(shí)用性很強(qiáng)的學(xué)科,主要研究由于采礦引起的巖層、地表位移與變形的技術(shù),受采動(dòng)影響的建(構(gòu))筑物變形和防護(hù)加固機(jī)理,保護(hù)煤柱設(shè)計(jì)和與開采沉陷有關(guān)的礦區(qū)周圍環(huán)境保
12、護(hù)與修復(fù)技術(shù)的學(xué)科。通過實(shí)地監(jiān)測(cè)、理論研究和實(shí)驗(yàn)?zāi)M等多種技術(shù)手段分析采礦引起的巖層和地表移動(dòng)變形的時(shí)空狀態(tài),直接推理計(jì)算某礦區(qū)相同和相似地質(zhì)采礦條件下的開采沉陷預(yù)計(jì)參數(shù),為解決“三下”采煤、保護(hù)煤柱的合理留設(shè)以及礦區(qū)生態(tài)環(huán)境修復(fù)與重建等提供各種技術(shù)信息和技術(shù)依據(jù)。</p><p> 由于巖體本身是一種非常復(fù)雜的介質(zhì),它不僅是由各種不同性質(zhì)的巖層組成,而且還由于各種地質(zhì)作用(如褶皺、斷層和開裂、火成巖侵入、陷落
13、柱等)而產(chǎn)生了大量的不連續(xù)面。在未經(jīng)采動(dòng)時(shí),巖層在地殼內(nèi)受到各個(gè)方向力的約束,處于自然應(yīng)力平衡狀態(tài);在受到采動(dòng)的影響下,產(chǎn)生的開采沉陷的形式和大小在不同的時(shí)間和空間上都是復(fù)雜的物理變化。若開采范圍較大、開采礦物的埋藏深度較小,則開采沉陷波及的范圍就會(huì)從巖體發(fā)展到地表,引起地表移動(dòng)。由于人類的生產(chǎn)和生活活動(dòng)大部分都是在地表進(jìn)行,所以地表移動(dòng)對(duì)人類的影響更為普遍。</p><p> 1.1.2 開采沉陷學(xué)研究的內(nèi)容
14、</p><p> 開采沉陷學(xué)是研究由于地下開采而引起的巖層及地表移動(dòng)規(guī)律,涉及測(cè)量、采礦、地質(zhì)、電子計(jì)算機(jī)等多門學(xué)科的一門課程[3]。主要研究?jī)?nèi)容有:</p><p> ?。?)巖層及地表移動(dòng)的觀測(cè)方法與數(shù)據(jù)處理;</p><p> (2)巖層及地表沉陷的一般規(guī)律;</p><p> ?。?)開采沉陷預(yù)計(jì)及防治;</p>
15、<p> ?。?)“三下”(建筑物下、水體下和鐵路下)采煤方法研究;</p><p> ?。?)地下開采對(duì)采礦及周圍環(huán)境的影響和整治。</p><p> 1.1.3 開采沉陷學(xué)研究的意義</p><p> 開采沉陷的研究對(duì)國(guó)民經(jīng)濟(jì)的發(fā)展和人民生活的提高都有著重要的意義。為了進(jìn)行現(xiàn)代化建設(shè),需要開采大量的有用礦物,但是開采這些有礦物產(chǎn)生的開采沉陷,又反過
16、來影響和破壞巖體內(nèi)和地面上的一些生產(chǎn)和生活設(shè)施,影響生產(chǎn)的發(fā)展和人民生活的提高。要解決好這一矛盾,只有依靠對(duì)開采沉陷的深入研究。僅僅從我國(guó)“三下”(建筑物下、水體下和鐵路下)壓煤的情況來看:據(jù)1982年底的不完全統(tǒng)計(jì),我國(guó)生產(chǎn)礦井“三下”壓煤量總計(jì)達(dá)到133.48億噸。但是到目前為止,我國(guó)從“三下”采出的煤炭尚不足7億噸,只占整個(gè)“三下”壓煤量的5%左右。</p><p> 地下有用礦物的大面積開采,會(huì)使地表及
17、巖層內(nèi)部的的平衡應(yīng)力狀態(tài)受到破壞,殃及地表,使建(構(gòu))筑物受到破壞以及井下的透水等事故慘案的發(fā)生。由此可見,開采沉陷的研究對(duì)我們的生產(chǎn)生活具有重要的意義。</p><p> 1.2 國(guó)內(nèi)外研究現(xiàn)狀</p><p> 1.2.1 開采沉陷的發(fā)展歷程及現(xiàn)狀</p><p> 開采沉陷學(xué)開始于19世紀(jì)末,第二次世界大戰(zhàn)后得到迅速發(fā)展,到20世紀(jì)60年代形成了獨(dú)立的科
18、學(xué)。其發(fā)展大致有兩個(gè)階段:</p><p> 第一階段為19世紀(jì)末到第二次世界大戰(zhàn)期間為初始階段。采礦業(yè)剛剛涉及到“三下”開采問題,人們依據(jù)實(shí)測(cè)資料提出地表下沉的經(jīng)驗(yàn)公式。</p><p> 第二階段為第二次世界大戰(zhàn)到現(xiàn)在的迅猛發(fā)展。1957年波蘭學(xué)者Litwiniszyn提出隨機(jī)介質(zhì)理論,使本學(xué)科得到質(zhì)的飛躍,從理論上奠定了基礎(chǔ);60年代,計(jì)算機(jī)技術(shù)的應(yīng)用,解決了繁重的計(jì)算問題,使理
19、論和實(shí)踐結(jié)合有了銜接的契機(jī),進(jìn)一步促進(jìn)了學(xué)科的發(fā)展;70年代聯(lián)邦德國(guó)的克拉茨將有限元法應(yīng)用到本學(xué)科,使其應(yīng)用范圍擴(kuò)大,計(jì)算精度提高[4]。</p><p> 我國(guó)對(duì)開采沉陷的研究工作是從新中國(guó)成立以后開始的。上個(gè)世紀(jì)50年代起,在我國(guó)的一些主要礦區(qū),如淮南、開灤、撫順、阜新、峰峰、大同、鶴崗、新汶、陽(yáng)泉、本溪等,先后建立了地表觀測(cè)站,開展了開采沉陷觀測(cè)工作。經(jīng)過近60多年的女里,我國(guó)不僅積累了上千條觀測(cè)線的實(shí)測(cè)
20、資料,并由此對(duì)開采沉陷的基本規(guī)律有了進(jìn)一步的認(rèn)識(shí),而且還提出可具有我國(guó)特色的預(yù)計(jì)方法,在“三下”開采實(shí)踐中,也取得了很大的成績(jī),積累了較為豐富的經(jīng)驗(yàn)[1]。1959年劉寶坤、劉天泉等第一批留波博士回國(guó)將隨機(jī)介質(zhì)理論譯成中文把波蘭在城市下開采的先進(jìn)技術(shù)和經(jīng)驗(yàn)帶回國(guó)內(nèi)。后來劉寶坤院士又在水平煤層開采的基礎(chǔ)上發(fā)展了傾斜煤層開采后地表移動(dòng)的時(shí)間過程;1965年唐山煤炭科學(xué)研究分院的周國(guó)銓提出了負(fù)指數(shù)法,在國(guó)內(nèi)應(yīng)用廣泛;1981年xx何國(guó)清教授提
21、出克威布爾函數(shù)法;1985年8月原煤炭部在總結(jié)經(jīng)驗(yàn)的基礎(chǔ)上頒布了《建筑物、水體、鐵路及井巷煤柱留設(shè)與壓煤規(guī)程》[7],對(duì)該領(lǐng)域的研究方法、觀測(cè)手段以及巖移角度參數(shù)、預(yù)計(jì)方第章緒論法和預(yù)計(jì)參數(shù)的選取進(jìn)行了規(guī)范。隨后,1997年趙經(jīng)徹和何滿朝博士提出了跨學(xué)科研究方式將環(huán)境經(jīng)濟(jì)學(xué)、采礦學(xué)、開采沉陷學(xué)、數(shù)學(xué)、力</p><p> 目前國(guó)內(nèi)外在該領(lǐng)域眾多研究方法中變形監(jiān)測(cè)研究仍然是其中的重要手段??茖W(xué)、準(zhǔn)確、及時(shí)地監(jiān)測(cè)、
22、分析和預(yù)報(bào)工程建筑物的變形狀況探討變形發(fā)生的機(jī)理和規(guī)律從而采取適當(dāng)?shù)姆椒ê痛胧﹣肀苊饣驕p少災(zāi)害所帶來的損失。</p><p> 1.2.2開采沉陷軟件的發(fā)展現(xiàn)狀</p><p> 隨著計(jì)算機(jī)語(yǔ)言的發(fā)展、編程技術(shù)的改進(jìn),程序設(shè)計(jì)使用的計(jì)算機(jī)語(yǔ)言也從早期的Basic、Fortran等面向過程的語(yǔ)言過渡到了C++、Delphi等面向?qū)ο蟮恼Z(yǔ)言,從而縮短了開發(fā)周期,提高了運(yùn)行速度。但是早期的軟
23、件產(chǎn)品大都是借助莫以操作系統(tǒng)平臺(tái),利用一種高級(jí)程序設(shè)計(jì)語(yǔ)言來實(shí)現(xiàn)的,而沒有充分利用一些現(xiàn)有的開發(fā)環(huán)境。</p><p> 隨著計(jì)算機(jī)軟硬件技術(shù)的不斷發(fā)展,地理信息系統(tǒng)的研究和應(yīng)用已滲透到自然科學(xué)及應(yīng)用技術(shù)的很多領(lǐng)域,如地理學(xué)、地質(zhì)學(xué)、環(huán)境監(jiān)測(cè)、土地利用等等,并日益受到各國(guó)政府和產(chǎn)業(yè)部門的重視.利用GIS解決開采沉陷中的一些具體問題具有很大的優(yōu)越性和可行性,尤其是它強(qiáng)大的空間查詢和空間分析功能對(duì)地下開采引起的損害
24、進(jìn)行預(yù)測(cè)、分析,為礦山開采、資源管理、土地復(fù)墾提供技術(shù)保障和決策支持[5].</p><p> 目前,集開采沉陷數(shù)據(jù)處理、預(yù)測(cè)、求參及繪圖于一體的綜合系統(tǒng)軟件在我國(guó)已有多種。在智化方面,開采沉陷軟件也有進(jìn)展,如天地科技股份有限公司唐山分公司礦測(cè)中心開采損害及環(huán)境工程研究開發(fā)的可視化智能型巖層移動(dòng)變形分析系統(tǒng)ZNFX-1,綜合了Visual Basic 、AutoCAD和MATLAB等平臺(tái),實(shí)現(xiàn)了對(duì)巖層移動(dòng)變形的
25、智能分析和三維模擬。另一方面,利用地理信息系統(tǒng)軟件、原理、方法開發(fā)出來的開采沉陷預(yù)計(jì)系統(tǒng)越來越多,國(guó)內(nèi)許多科研院所及其他相關(guān)單位都有一系列的成果問世。如2000年xx在加拿大阿波羅科技集團(tuán)和北京東方泰坦科技有限公司的支持下開發(fā)的礦山地理信息系統(tǒng)——TT-MGIS2000,該系統(tǒng)使用Titan-GIS的開發(fā)軟件,采用組件模式進(jìn)行半底層開發(fā),是面向我國(guó)礦業(yè)領(lǐng)域開發(fā)的第一個(gè)國(guó)產(chǎn)礦山GIS基礎(chǔ)平臺(tái)。此外,我國(guó)還開發(fā)了一些特殊條件下的開采沉陷預(yù)計(jì)
26、程序,如山區(qū)地表移動(dòng)變形研究程序、斷層變形研究程序、地表裂縫預(yù)計(jì)程序等[3]。</p><p> 國(guó)外,隨著GMS和GIS的出現(xiàn),以加拿大、澳大利亞、美國(guó)、英國(guó)為代表,陸續(xù)開發(fā)了例如LYNX、MineMAP、MineTEK、MineOFT、MineCAP、VULCAN、GeoQUET和ATAMSNE這樣一些代表性的礦山模擬和礦業(yè)應(yīng)用軟件系統(tǒng),并廣泛獲得應(yīng)用[12-14]。</p><p>
27、; 1.3 目前開采沉陷數(shù)據(jù)管理系統(tǒng)存在的問題</p><p> 雖然開采沉陷數(shù)據(jù)處理系統(tǒng)軟件眾多,但是都有一定的不足之處,這些不足之處如下:</p><p> ?、儆捎诘V山空間數(shù)據(jù)的復(fù)雜性和特殊性,使用通用軟件尚未建立礦山專有的數(shù)據(jù)模型與結(jié)構(gòu),雖然優(yōu)點(diǎn)明顯,但也不能完全適合框圖設(shè)計(jì)的需要。</p><p> ②功能單一簡(jiǎn)單,只是單純的數(shù)據(jù)管理或者是AutoC
28、AD的簡(jiǎn)單可視化而無數(shù)據(jù)管理。對(duì)于任意點(diǎn)的移動(dòng)變形數(shù)據(jù)的處理、存儲(chǔ)與查詢沒有考慮。</p><p> ?、蹧]有充分考慮當(dāng)前煤礦企業(yè)中計(jì)算機(jī)和軟件的使用情況,只注重開發(fā)而忽略軟件的實(shí)用性。對(duì)于軟件的安裝使用,都有很大的限制。</p><p><b> 1.4 本章小結(jié)</b></p><p> 本章主要介紹了開采沉陷的概念以及研究開采沉陷的意
29、義,簡(jiǎn)要介紹了開采沉陷學(xué)國(guó)內(nèi)外研究現(xiàn)狀,提出了論文的研究意義。</p><p> 第二章 系統(tǒng)分析與設(shè)計(jì)</p><p> 2.1 系統(tǒng)開發(fā)環(huán)境</p><p> Visual C++6.0由Microsoft開發(fā), 它不僅是一個(gè)C++ 編譯器,而且是一個(gè)基于Windows操作系統(tǒng)的可視化集成開發(fā)環(huán)境(integrated development enviro
30、nment,IDE)。Visual C++6.0由許多組件組成,包括編輯器、調(diào)試器以及程序向?qū)ppWizard、類向?qū)lass Wizard等開發(fā)工具。 這些組件通過一個(gè)名為Developer Studio的組件集成為和諧的開發(fā)環(huán)境。Microsoft的主力軟件產(chǎn)品。Visual C++是一個(gè)功能強(qiáng)大的可視化軟件開發(fā)工具。自1993年Microsoft公司推出Visual C++1.0后,隨著其新版本的不斷問世,Visual C++
31、已成為專業(yè)程序員進(jìn)行軟件開發(fā)的首選工具。雖然微軟公司推出了Visual C++.NET(Visual C++7.0),但它的應(yīng)用的很大的局限性,只適用于Windows 2000,Windows XP和Windows NT4.0。所以實(shí)際中,更多的是以Visual C++6.0為平臺(tái)。 </p><p> Visual C++6.0以擁有“語(yǔ)法高亮”,自動(dòng)編譯功能以及高級(jí)除錯(cuò)功能而著稱。比如,它允許用戶進(jìn)行遠(yuǎn)程調(diào)
32、試,單步執(zhí)行等。還有允許用戶在調(diào)試期間重新編譯被修改的代碼,而不必重新啟動(dòng)正在調(diào)試的程序。其編譯及創(chuàng)建預(yù)編譯頭文件(stdafx.h)、最小重建功能及累加連結(jié)(link)著稱。這些特征明顯縮短程序編輯、編譯及連結(jié)的時(shí)間花費(fèi),在大型軟件計(jì)劃上尤其顯著。 </p><p> SQL Server 2000 提供了以 Web 標(biāo)準(zhǔn)為基礎(chǔ)的擴(kuò)展數(shù)據(jù)庫(kù)編程功能。豐富的 XML 和 Internet 標(biāo)準(zhǔn)支持允許您使用內(nèi)置
33、的存儲(chǔ)過程以 XML 格式輕松存儲(chǔ)和檢索數(shù)據(jù)。您還可以使用 XML 更新程序容易地插入、更新和刪除數(shù)據(jù)。 通過 Web 輕松訪問數(shù)據(jù)。 </p><p> 有了 SQL Server 2000,您可以使用 HTTP 來向數(shù)據(jù)庫(kù)發(fā)送查詢、對(duì)數(shù)據(jù)庫(kù)中存儲(chǔ)的文檔執(zhí)行全文搜索、以及通過 Web 進(jìn)行自然語(yǔ)言查詢。強(qiáng)大而靈活的基于 Web 的分析。 </p><p> SQL Server 20
34、00 分析服務(wù)功能被擴(kuò)展到了 Internet。您可以通過 Web 瀏覽器來訪問和控制多維數(shù)據(jù)。 高度的可伸縮性和可靠性 使用 SQL Server 2000 可以獲得非凡的可伸縮性和可靠性。通過向上伸縮和向外擴(kuò)展的能力,SQL Server 滿足了苛刻的電子商務(wù)和企業(yè)應(yīng)用程序要求。 </p><p> 向上伸縮。 SQL Server 2000 利用了對(duì)稱多處理器 (SMP) 系統(tǒng)。SQL Server En
35、terprise Edition 最多可以使用 32 個(gè)處理器和 64 GB RAM。 </p><p> 向外擴(kuò)展。 向外擴(kuò)展可以將數(shù)據(jù)庫(kù)和數(shù)據(jù)負(fù)載分配給多臺(tái)服務(wù)器。 </p><p> 可用性。通過增強(qiáng)的故障轉(zhuǎn)移群集、日志傳送和新增的備份策略,SQL Server 2000 達(dá)到了最大的可用性。 </p><p> 集成和可擴(kuò)展的分析服務(wù)。 有了 SQL
36、Server 2000,您可以建立帶有集成工具的端到端分析解決方案,從數(shù)據(jù)創(chuàng)造價(jià)值。此外,還可以根據(jù)分析結(jié)果自動(dòng)驅(qū)動(dòng)商業(yè)過程以及從最復(fù)雜的計(jì)算靈活地檢索自定義結(jié)果集。 </p><p> 快速開發(fā)、調(diào)試和數(shù)據(jù)轉(zhuǎn)換。SQL Server 2000 帶有交互式調(diào)節(jié)和調(diào)試查詢、從任何數(shù)據(jù)源快速移動(dòng)和轉(zhuǎn)化數(shù)據(jù)、以及按 Transact-SQL 方式定義和使用函數(shù)等功能。您可以從任意 Visual Studio 工具以可
37、視化方式設(shè)計(jì)和編寫數(shù)據(jù)庫(kù)應(yīng)用程序。 </p><p> 簡(jiǎn)化的管理和調(diào)節(jié)。 使用 SQL Server 2000,您可以很容易地在企業(yè)資源旁邊集中管理數(shù)據(jù)庫(kù)??梢栽诒3致?lián)機(jī)的同時(shí)輕松地在計(jì)算機(jī)間或?qū)嵗g移動(dòng)和復(fù)制數(shù)據(jù)庫(kù)。</p><p> MFC (Microsoft Foundation Class Library)中的各種類結(jié)合起來構(gòu)成了一個(gè)應(yīng)用程序框架,它的目的就是讓程序員在此基
38、礎(chǔ)上來建立Windows 下的應(yīng)用程序,這是一種相對(duì)SDK來說更為簡(jiǎn)單的方法。因?yàn)榭傮w上,MFC 框架定義了應(yīng)用程序的輪廓,并提供了用戶接口的標(biāo)準(zhǔn)實(shí)現(xiàn)方法,程序員所要做的就是通過預(yù)定義的接口把具體應(yīng)用程序特有的東西填入這個(gè)輪廓。Microsoft Visual C++提供了相應(yīng)的工具來完成這個(gè)工作:AppWizard 可以用來生成初步的框架文件(代碼和資源等);資源編輯器用于幫助直觀地設(shè)計(jì)用戶接口;ClassWizard用來協(xié)助添加代碼
39、到框架文件;最后,編譯,則通過類庫(kù)實(shí)現(xiàn)了應(yīng)用程序特定的邏輯[2]。</p><p><b> 2.2 系統(tǒng)設(shè)計(jì)</b></p><p> 2.2.1 系統(tǒng)功能描述</p><p> 經(jīng)過仔細(xì)分析系統(tǒng)需求之后可知本論文中的數(shù)據(jù)管理系統(tǒng)要完成的主要功能如下:</p><p> 進(jìn)入系統(tǒng)前需要身份驗(yàn)證——數(shù)據(jù)源、用戶名
40、、密碼,輸入正確后方可進(jìn)入。</p><p> 用戶可以根據(jù)需要添加原始測(cè)量數(shù)據(jù)。</p><p> 對(duì)數(shù)據(jù)進(jìn)行添加、修改和刪除以及查詢。</p><p> 對(duì)原始數(shù)據(jù)進(jìn)行計(jì)算、繪圖,并可根據(jù)需要對(duì)計(jì)算結(jié)果進(jìn)行查詢。</p><p> 2.2.2 功能模塊劃分</p><p> 通過對(duì)開采沉陷數(shù)據(jù)管理系統(tǒng)的功
41、能分析,可以定義出系統(tǒng)的功能模塊圖[15],如圖2-1所示。其中定義功能模塊包括以下方面:</p><p> 圖2-1 開采沉陷數(shù)據(jù)管理系統(tǒng)功能模塊示意圖</p><p> 2.2.3系統(tǒng)流程圖</p><p> 前面的分析中已經(jīng)定義了系統(tǒng)各個(gè)功能模塊,屬于靜態(tài)建模的范圍。在系統(tǒng)運(yùn)行時(shí)刻的動(dòng)態(tài)模型應(yīng)該由系統(tǒng)的流程決定。當(dāng)用戶登錄系統(tǒng)后可以擁有權(quán)限對(duì)系統(tǒng)進(jìn)行操作
42、時(shí),具體流程如下圖2-2:</p><p> 圖2-2 系統(tǒng)流程圖</p><p><b> 2.3 數(shù)據(jù)庫(kù)設(shè)計(jì)</b></p><p> 系統(tǒng)設(shè)計(jì)完成后,接下來就是數(shù)據(jù)庫(kù)分析與實(shí)現(xiàn)了。數(shù)據(jù)庫(kù)的建立是整個(gè)數(shù)據(jù)庫(kù)應(yīng)用系統(tǒng)開發(fā)過程中一個(gè)重要的環(huán)節(jié),數(shù)據(jù)庫(kù)結(jié)構(gòu)設(shè)計(jì)的好壞將直接影響到系統(tǒng)的效率和功能的實(shí)現(xiàn)。</p><p&g
43、t; 系統(tǒng)的數(shù)據(jù)庫(kù)需求具體體現(xiàn)在對(duì)各種信息的存儲(chǔ)、修改和查詢等方面。因此,一個(gè)滿足系統(tǒng)要求的數(shù)據(jù)庫(kù)必須充分照顧到對(duì)各種信息的輸入輸出以免遺漏導(dǎo)致開發(fā)時(shí)返工。通過對(duì)系統(tǒng)功能的分析,根據(jù)系統(tǒng)的需求,應(yīng)用SQL Server2000 強(qiáng)大的數(shù)據(jù)存儲(chǔ)、修改和查詢功能,進(jìn)行數(shù)據(jù)庫(kù)的設(shè)計(jì)與實(shí)現(xiàn),開采沉陷數(shù)據(jù)管理系統(tǒng)需要包含以下數(shù)據(jù)庫(kù)信息。</p><p> 添加用戶信息:包括ID、用戶名。密碼,如圖2-3。</p&
44、gt;<p> 原始數(shù)據(jù)信息:包括原始數(shù)據(jù)ID、剖面名稱、觀測(cè)時(shí)間、測(cè)站名稱、首次觀測(cè)標(biāo)高、本次觀測(cè)標(biāo)高、線段名稱、首次觀測(cè)邊長(zhǎng)、本次觀測(cè)邊長(zhǎng)、備注信息,如圖2-4。</p><p> 實(shí)測(cè)數(shù)據(jù)計(jì)算結(jié)果信息:ID、測(cè)點(diǎn)名稱、下沉、傾斜、曲率、線段、水平變形、水平移動(dòng)等,如圖2-5。</p><p> 圖2-3 SQL2000 MS數(shù)據(jù)庫(kù)添加用戶表的屬性</p&g
45、t;<p> 圖2-4 測(cè)量原始數(shù)據(jù)信息表的屬性</p><p> 圖2-5 結(jié)算結(jié)果信息表的屬性</p><p> 2.4 用戶界面設(shè)計(jì)</p><p> 系統(tǒng)用戶界面是系統(tǒng)用戶和系統(tǒng)之間傳遞、交換信息的媒介,是系統(tǒng)的綜合操作環(huán)境與系統(tǒng)監(jiān)護(hù)的唯一通道。系統(tǒng)用戶界面設(shè)計(jì)的好壞、是否人性化,直接影響到系統(tǒng)功能的實(shí)現(xiàn),編碼的封裝簡(jiǎn)化,用戶的使用與推
46、廣。成功的應(yīng)用軟件系統(tǒng)應(yīng)具備完善的功能和有好的操作界面,能夠使用戶集中精力工作,并能夠?qū)τ脩舻拿總€(gè)操作做出預(yù)測(cè)。</p><p> 開采沉陷數(shù)據(jù)管理系統(tǒng)是基于Visual C++ MFC 單文檔 進(jìn)行應(yīng)用程序的設(shè)計(jì),并將相關(guān)信息顯示在視圖中,系統(tǒng)顯示效果圖,如圖2-6。</p><p> 圖2-6 系統(tǒng)顯示效果圖</p><p> 2.5 工程模塊設(shè)計(jì)<
47、/p><p> 2.5.1登錄模塊設(shè)計(jì)</p><p> 在進(jìn)入系統(tǒng)之前,首先調(diào)用登錄對(duì)話框,可以創(chuàng)建一個(gè)對(duì)話框,對(duì)話框包含了用戶名和密碼兩部分,添加的對(duì)話框類名稱CenterDlg,資源ID為IDD_ENTER,對(duì)話框名稱為“登錄”,界面如圖2-7所示。</p><p> 圖2-7 登錄對(duì)話框</p><p> “登錄”對(duì)話框中的控件類
48、型、ID及說明如表2-1所示</p><p> 表2-1 登錄對(duì)話框控件屬性表</p><p> 在這個(gè)模塊中,它的事件處理函數(shù)是進(jìn)入MFC建立的系統(tǒng),與數(shù)據(jù)庫(kù)的連接時(shí)建立在進(jìn)入系統(tǒng)后即默認(rèn)為建立連接,這一點(diǎn)與其他系統(tǒng)不同。用戶名和密碼均存放于數(shù)據(jù)庫(kù)對(duì)應(yīng)的表中,用戶和密碼必須同時(shí)與已存在的用戶相同,如出現(xiàn)不同時(shí),不予進(jìn)入系統(tǒng),并出現(xiàn)相應(yīng)的提示。</p><p>
49、 2.5.2 原始數(shù)據(jù)信息</p><p> 在進(jìn)入系統(tǒng)之后,在數(shù)據(jù)數(shù)據(jù)處理菜單項(xiàng)下,點(diǎn)擊添加添加計(jì)算所需數(shù)據(jù),調(diào)用計(jì)算原始數(shù)據(jù)對(duì)話框,創(chuàng)建一個(gè)對(duì)話框,添加的對(duì)話框類名稱CCalInDlg,資源ID為IDD_CAL_IN,對(duì)話框名稱為“計(jì)算原始數(shù)據(jù)信息”,界面如圖2-8所示。</p><p> 圖2-8 添加和修改計(jì)算所需數(shù)據(jù)對(duì)話框</p><p> 考慮到
50、添加數(shù)據(jù)和修改數(shù)據(jù)使用的對(duì)話框一致,不同的是需要修改時(shí)需要把要修改的計(jì)算數(shù)據(jù)信息參數(shù)自動(dòng)賦值給相應(yīng)的控件變量,并且在主界面調(diào)用這個(gè)對(duì)話框。作者在CcalInDlg類中定義了一個(gè)控制變量 bool m_bAppend,實(shí)現(xiàn)在點(diǎn)擊下拉菜單中的“添加計(jì)算所需數(shù)據(jù)”時(shí),該對(duì)話框的屬性為“添加計(jì)算所需數(shù)據(jù)”,而在點(diǎn)擊“修改計(jì)算所需數(shù)據(jù)”時(shí),該對(duì)話框的屬性為“修改計(jì)算所需數(shù)據(jù)”。</p><p> BOOL CCalInD
51、lg::OnInitDialog()</p><p><b> {</b></p><p> CDialog::OnInitDialog();</p><p> // TODO: Add extra initialization here</p><p> // Set Windows Text</p>
52、;<p> if (m_bAppend) SetWindowText(_T("添加計(jì)算所需數(shù)據(jù)"));</p><p> else SetWindowText(_T("修改計(jì)算所需數(shù)據(jù)"));</p><p> m_oldPart = m_part;</p><p> m_oldTime = m_tim
53、e;</p><p> m_oldPoint = m_point;</p><p> return TRUE; // return TRUE unless you set the focus to a control</p><p> // EXCEPTION: OCX Property Pages should return FALSE</p>
54、<p><b> }</b></p><p> 在該系統(tǒng)中首先通過用戶的右鍵選定觸發(fā)CMSView類中的CalInAlter事件,并通過OnCalInAlter 函數(shù)進(jìn)行處理,然后在這個(gè)函數(shù)中傳遞數(shù)據(jù)到“計(jì)算原始數(shù)據(jù)信息”對(duì)話框。OnCalInAlter 函數(shù)首先從列表控件中獲取要修改的信息,然后把這些信息賦給對(duì)話框類CCalInDlg實(shí)例的成員變量,然后調(diào)用其DoModa
55、l 方法進(jìn)行輸入的等待狀態(tài),就可以在彈出的“修改計(jì)算所需數(shù)據(jù)”對(duì)話框顯示要修改的數(shù)據(jù)信息,并進(jìn)行修改保存。</p><p> 在主菜單項(xiàng)“數(shù)據(jù)輸入管理”的下拉菜單里的“刪除計(jì)算所需數(shù)據(jù)”,可以直接在View主視圖中選中將要?jiǎng)h除的數(shù)據(jù)直接進(jìn)行刪除。</p><p> 原始數(shù)據(jù)查詢對(duì)話框,資源ID為IDD_CAL_IN_SEARCH,添加的對(duì)話框類為CCalInSearchDlg類,對(duì)話框
56、屬性為“原始數(shù)據(jù)查詢”,界面如圖2-9所示。</p><p> 圖2-9 原始數(shù)據(jù)查詢對(duì)話框</p><p> “原始數(shù)據(jù)查詢”對(duì)話框中引入組合框控件,在對(duì)話框CcalInSearchDlg類中對(duì)其初始化,使控件中顯示存在的數(shù)據(jù)記錄,便于查詢,該的控件類型、ID及說明如表2-2所示</p><p> 表2-2 原始數(shù)據(jù)查詢對(duì)話框中控件屬性說明表</p&g
57、t;<p> 該對(duì)話框中組合框下的屬性值,直接由數(shù)據(jù)庫(kù)已有數(shù)據(jù)傳遞獲得,可以實(shí)現(xiàn)查詢選定條件的任意數(shù)據(jù),如果只選定其中一個(gè)或者兩個(gè),則實(shí)現(xiàn)滿足查詢到已選定條件的其他未選定的所有數(shù)據(jù)。</p><p> 2.5.3 數(shù)據(jù)計(jì)算管理</p><p> 點(diǎn)擊mainframe的數(shù)據(jù)計(jì)算管理子菜單里的計(jì)算,彈出數(shù)據(jù)計(jì)算對(duì)話框,資源ID為IDD_CAL_CAL,添加的對(duì)話框類為CC
58、alCALDlg類,對(duì)話框?qū)傩詾椤皵?shù)據(jù)計(jì)算”,界面如圖2-10所示。</p><p> 圖2-10 數(shù)據(jù)計(jì)算對(duì)話框</p><p> “數(shù)據(jù)計(jì)算”對(duì)話框中的控件類型、ID及說明如表2-3所示</p><p> 表2-3 數(shù)據(jù)計(jì)算對(duì)話框中控件屬性說明表</p><p> 本對(duì)話框必須將剖面名稱和觀測(cè)時(shí)間同時(shí)選中才能進(jìn)行計(jì)算,數(shù)據(jù)結(jié)果直接
59、顯示在View視圖中,并將計(jì)算結(jié)果更新到數(shù)據(jù)庫(kù)中,便于日后的使用管理。</p><p> 點(diǎn)擊計(jì)算結(jié)果查詢子菜單,彈出數(shù)據(jù)計(jì)算對(duì)話框,資源ID為IDD_CAL_SEARCH,添加的對(duì)話框類為CCalculateSearchDlg類,對(duì)話框?qū)傩詾椤坝?jì)算結(jié)果查詢”,界面如圖2-11:</p><p> 圖2-11 計(jì)算結(jié)果查詢對(duì)話框</p><p> “計(jì)算結(jié)果查
60、詢”對(duì)話框中的控件類型、ID及說明如表2-4所示</p><p> 表2-4 計(jì)算結(jié)果查詢對(duì)話框控件屬性說明表</p><p> 該對(duì)話框在未選定查詢條件時(shí),將返回所有計(jì)算數(shù)據(jù),當(dāng)選中其中一個(gè)或兩個(gè)作為查詢條件時(shí),將返回所有計(jì)算數(shù)據(jù)中符合選定的查詢條件的數(shù)據(jù)。并將數(shù)據(jù)顯示在主視圖中。</p><p><b> 2.5.4 繪圖</b>&l
61、t;/p><p> 點(diǎn)擊mainframe的數(shù)據(jù)繪圖菜單項(xiàng)的子菜單項(xiàng)繪制實(shí)測(cè)曲線,彈出數(shù)據(jù)繪圖對(duì)話框,資源ID為IDD_DRAWING,添加的對(duì)話框類為CDrawDlg類,對(duì)話框?qū)傩詾椤袄L圖”,界面如圖2-12所示:</p><p> 圖2-12 繪圖對(duì)話框</p><p> “計(jì)算結(jié)果查詢”對(duì)話框中的控件類型、ID及說明如表2-5所示</p>&l
62、t;p> 表2-5 繪圖對(duì)話框控件屬性說明表</p><p> 該對(duì)話框處理實(shí)測(cè)數(shù)據(jù)計(jì)算結(jié)果的曲線圖的繪制,必須同時(shí)選中剖面名稱和觀測(cè)時(shí)間,繪制出實(shí)測(cè)曲線和擬合后的曲線圖,曲線圖點(diǎn)的標(biāo)繪依照第三章3.3.2的理論依據(jù)。</p><p> 2.5.5 其他功能</p><p> 本系統(tǒng)可以實(shí)現(xiàn)修改密碼、添加新用戶兩個(gè)功能,這兩個(gè)功能的實(shí)現(xiàn)是建立在連接數(shù)據(jù)
63、庫(kù)的基礎(chǔ)上,能夠?qū)?shù)據(jù)庫(kù)進(jìn)行數(shù)據(jù)的操作,方便用戶可以根據(jù)自己的喜好和個(gè)人習(xí)慣進(jìn)行本系統(tǒng)的使用。修改密碼對(duì)話框的資源ID為IDD_CHANGE_PASSWORD,添加的對(duì)話框類為CChangePasswordDlg類,對(duì)話框?qū)傩詾椤靶薷拿艽a”,界面如圖2-13所示:</p><p> 圖2-13 修改密碼對(duì)話框</p><p> “修改密碼”對(duì)話框中的控件類型、ID及說明如表2-6所示&
64、lt;/p><p> 表2-6 修改密碼對(duì)話框控件屬性表</p><p> 修改密碼的功能是在第一次進(jìn)入系統(tǒng)后,連接數(shù)據(jù)庫(kù)以后才能實(shí)現(xiàn)該功能,密碼的輸入需要兩次輸入的內(nèi)容一致進(jìn)行確認(rèn),而且修改密碼職位當(dāng)前進(jìn)入對(duì)話框之前的用戶才有效。</p><p> 添加新用戶對(duì)話框的資源ID為IDD_ADD_USER,添加的對(duì)話框類為CAddUser類,對(duì)話框?qū)傩詾椤疤砑有掠脩?/p>
65、”,界面如圖2-14所示:</p><p> 圖2-14 添加新用戶對(duì)話框</p><p> “添加新用戶”對(duì)話框中的控件類型、ID及說明如表2-7所示</p><p> 表2-7 添加新用戶對(duì)話框控件屬性說明表</p><p> 該對(duì)話框的實(shí)現(xiàn)也是在和數(shù)據(jù)庫(kù)連接后進(jìn)行的操作,可以根據(jù)用戶自己的需求進(jìn)行用戶和密碼的添加和修改。<
66、/p><p><b> 2.6 本章小結(jié)</b></p><p> 本章主要介紹了系統(tǒng)的開發(fā)環(huán)境,系統(tǒng)的功能模塊以及系統(tǒng)流程。利用SQL2000和MFC進(jìn)行系統(tǒng)詳細(xì)設(shè)計(jì)和開發(fā)過程的說明。</p><p> 第三章 系統(tǒng)開發(fā)的關(guān)鍵技術(shù)</p><p> 3.1 采用面向?qū)ο蟮木幊陶Z(yǔ)言</p><p&
67、gt; 面向?qū)ο蟪霈F(xiàn)以前,結(jié)構(gòu)化程序設(shè)計(jì)是程序設(shè)計(jì)的主流,結(jié)構(gòu)化程序設(shè)計(jì)又稱為面向過程的程序設(shè)計(jì)。在面向過程程序設(shè)計(jì)中,問題被看作一系列需要完成的任務(wù),函數(shù)(在此泛指例程、函數(shù)、過程)用于完成這些任務(wù),解決問題的焦點(diǎn)集中于函數(shù)。其中函數(shù)是面向過程的,即它關(guān)注如何根據(jù)規(guī)定的條件完成指定的任務(wù)。 </p><p> 在多函數(shù)程序中,許多重要的數(shù)據(jù)被放置在全局?jǐn)?shù)據(jù)區(qū),這樣它們可以被所有的函數(shù)訪問。每個(gè)函數(shù)都可以具有
68、它們自己的局部數(shù)據(jù)。 </p><p> 這種結(jié)構(gòu)很容易造成全局?jǐn)?shù)據(jù)在無意中被其他函數(shù)改動(dòng),因而程序的正確性不易保證。面向?qū)ο蟪绦蛟O(shè)計(jì)的出發(fā)點(diǎn)之一就是彌補(bǔ)面向過程程序設(shè)計(jì)中的一些缺點(diǎn):對(duì)象是程序的基本元素,它將數(shù)據(jù)和操作緊密地連結(jié)在一起,并保護(hù)數(shù)據(jù)不會(huì)被外界的函數(shù)意外地改變。 </p><p> 比較面向?qū)ο蟪绦蛟O(shè)計(jì)和面向過程程序設(shè)計(jì),還可以得到面向?qū)ο蟪绦蛟O(shè)計(jì)的其他優(yōu)點(diǎn): </
69、p><p> 1)數(shù)據(jù)抽象的概念可以在保持外部接口不變的情況下改變內(nèi)部實(shí)現(xiàn),從而減少甚至避免對(duì)外界的干擾; </p><p> 2)通過繼承大幅減少冗余的代碼,并可以方便地?cái)U(kuò)展現(xiàn)有代碼,提高編碼效率,也減低了出錯(cuò)概率,降低軟件維護(hù)的難度; </p><p> 3)結(jié)合面向?qū)ο蠓治?、面向?qū)ο笤O(shè)計(jì),允許將問題域中的對(duì)象直接映射到程序中,減少軟件開發(fā)過程中中間環(huán)節(jié)的轉(zhuǎn)換
70、過程; </p><p> 4)通過對(duì)對(duì)象的辨別、劃分可以將軟件系統(tǒng)分割為若干相對(duì)為獨(dú)立的部分,在一定程度上更便于控制軟件復(fù)雜度; </p><p> 5)以對(duì)象為中心的設(shè)計(jì)可以幫助開發(fā)人員從靜態(tài)(屬性)和動(dòng)態(tài)(方法)兩個(gè)方面把握問題,從而更好地實(shí)現(xiàn)系統(tǒng); </p><p> 6)通過對(duì)象的聚合、聯(lián)合可以在保證封裝與抽象的原則下實(shí)現(xiàn)對(duì)象在內(nèi)在結(jié)構(gòu)以及外在功能上
71、的擴(kuò)充,從而實(shí)現(xiàn)對(duì)象由低到高的升級(jí)。</p><p> 在數(shù)據(jù)輸入模塊內(nèi)部設(shè)計(jì)中,采用面向?qū)ο蟮脑O(shè)計(jì)方法。[6]面向?qū)ο蟮幕靖拍钊缦拢?</p><p> 對(duì)象:對(duì)象是要研究的任何事物。從一本書到一家圖書館,單的整數(shù)到整數(shù)列龐大的數(shù)據(jù)庫(kù)、極其復(fù)雜的自動(dòng)化工廠、航天飛機(jī)都可看作對(duì)象,它不僅能表示有形的實(shí)體,也能表示無形的(抽象的)規(guī)則、計(jì)劃或事件。對(duì)象由數(shù)據(jù)(描述事物的屬性)和作用于數(shù)
72、據(jù)的操作(體現(xiàn)事物的行為)構(gòu)成一獨(dú)立整體。從程序設(shè)計(jì)者來看,對(duì)象是一個(gè)程序模塊,從用戶來看,對(duì)象為他們提供所希望的行為。在對(duì)內(nèi)的操作通常稱為方法[11]。 </p><p> 類:類是對(duì)象的模板。即類是對(duì)一組有相同數(shù)據(jù)和相同操作的對(duì)象的定義,一個(gè)類所包含的方法和數(shù)據(jù)描述一組對(duì)象的共同屬性和行為。類是在對(duì)象之上的抽象,對(duì)象則是類的具體化,是類的實(shí)例。類可有其子類,也可有其它類,形成類層次結(jié)構(gòu)。 </p>
73、;<p> 消息:消息是對(duì)象之間進(jìn)行通信的一種規(guī)格說明。一般它由三部分組成:接收消息的對(duì)象、消息名及實(shí)際變?cè)?</p><p> 面向?qū)ο笾饕卣鳎?</p><p> 封裝性:封裝是一種信息隱蔽技術(shù),它體現(xiàn)于類的說明,是對(duì)象的重要特性。封裝使數(shù)據(jù)和加工該數(shù)據(jù)的方法(函數(shù))封裝為一個(gè)整體,以實(shí)現(xiàn)獨(dú)立性很強(qiáng)的模塊,使得用戶只能見到對(duì)象的外特性(對(duì)象能接受哪些消息,具有那
74、些處理能力),而對(duì)象的內(nèi)特性(保存內(nèi)部狀態(tài)的私有數(shù)據(jù)和實(shí)現(xiàn)加工能力的算法)對(duì)用戶是隱蔽的。封裝的目的在于把對(duì)象的設(shè)計(jì)者和對(duì)象者的使用分開,使用者不必知曉行為實(shí)現(xiàn)的細(xì)節(jié),只須用設(shè)計(jì)者提供的消息來訪問該對(duì)象。 </p><p> 繼承性:繼承性是子類自動(dòng)共享父類之間數(shù)據(jù)和方法的機(jī)制。它由類的派生功能體現(xiàn)。一個(gè)類直接繼承其它類的全部描述,同時(shí)可修改和擴(kuò)充。繼承具有傳遞性。繼承分為單繼承(一個(gè)子類只有一父類)和多重繼承
75、(一個(gè)類有多個(gè)父類)。類的對(duì)象是各自封閉的,如果沒繼承性機(jī)制,則類對(duì)象中數(shù)據(jù)、方法就會(huì)出現(xiàn)大量重復(fù)。繼承不僅支持系統(tǒng)的可重用性,而且還促進(jìn)系統(tǒng)的可擴(kuò)充性。 </p><p> 多態(tài)性:對(duì)象根據(jù)所接收的消息而做出動(dòng)作。同一消息為不同的對(duì)象接受時(shí)可產(chǎn)生完全不同的行動(dòng),這種現(xiàn)象稱為多態(tài)性。利用多態(tài)性用戶可發(fā)送一個(gè)通用的信息,而將所有的實(shí)現(xiàn)細(xì)節(jié)都留給接受消息的對(duì)象自行決定,如是,同一消息即可調(diào)用不同的方法。例如:Pri
76、nt消息被發(fā)送給一圖或表時(shí)調(diào)用的打印方法與將同樣的Print消息發(fā)送給一正文文件而調(diào)用的打印方法會(huì)完全不同。多態(tài)性的實(shí)現(xiàn)受到繼承性的支持,利用類繼承的層次關(guān)系,把具有通用功能的協(xié)議存放在類層次中盡可能高的地方,而將實(shí)現(xiàn)這一功能的不同方法置于較低層次,這樣,在這些低層次上生成的對(duì)象就能給通用消息以不同的響應(yīng)。在OOPL中可通過在派生類中重定義基類函數(shù)(定義為重載函數(shù)或虛函數(shù))來實(shí)現(xiàn)多態(tài)性。 </p><p> 綜
77、上可知,在面對(duì)對(duì)象方法中,對(duì)象和傳遞消息分別表現(xiàn)事物及事物間相互聯(lián)系的概念。類和繼承是是適應(yīng)人們一般思維方式的描述范式。方法是允許作用于該類對(duì)象上的各種操作。這種對(duì)象、類、消息和方法的程序設(shè)計(jì)范式的基本點(diǎn)在于對(duì)象的封裝性和類的繼承性。通過封裝能將對(duì)象的定義和對(duì)象的實(shí)現(xiàn)分開,通過繼承能體現(xiàn)類與類之間的關(guān)系,以及由此帶來的動(dòng)態(tài)鏈編和實(shí)體的多態(tài)性,從而構(gòu)成了面向?qū)ο蟮幕咎卣鳌?</p><p> 面向?qū)ο笤O(shè)計(jì)是一種
78、把面向?qū)ο蟮乃枷霊?yīng)用于軟件開發(fā)過程中,指導(dǎo)開發(fā)活動(dòng)的系統(tǒng)方法,是建立在“對(duì)象”概念基礎(chǔ)上的方法學(xué)。對(duì)象是由數(shù)據(jù)和容許的操作組成的封裝體,與客觀實(shí)體有直接對(duì)應(yīng)關(guān)系,一個(gè)對(duì)象類定義了具有相似性質(zhì)的一組對(duì)象。而每繼承性是對(duì)具有層次關(guān)系的類的屬性和操作進(jìn)行共享的一種方式。所謂面向?qū)ο缶褪腔趯?duì)象概念,以對(duì)象為中心,以類和繼承為構(gòu)造機(jī)制,來認(rèn)識(shí)、理解、刻畫客觀世界和設(shè)計(jì)、構(gòu)建相應(yīng)的軟件系統(tǒng)。。按照Bjarne STroustRUP的說法,面向?qū)ο?/p>
79、的編程范式: </p><p> 1)決定你要的類; </p><p> 2)給每個(gè)類提供完整的一組操作; </p><p> 3)明確地使用繼承來表現(xiàn)共同點(diǎn)。 </p><p> 由這個(gè)定義,我們可以看出:面向?qū)ο笤O(shè)計(jì)就是“根據(jù)需求決定所需的類、類的操作以及類之間關(guān)聯(lián)的過程”。</p><p> 3.2 使
80、用ADO連接數(shù)據(jù)庫(kù)</p><p> ADO(ActiveX Data Object)技術(shù)是基于OLE DB的訪問接口,它繼承了OLE DB技術(shù)的優(yōu)點(diǎn),并且對(duì)OLE DB的接口作了封裝,定義了ADO對(duì)象,使程序開發(fā)得到簡(jiǎn)化。ADO技術(shù)屬于數(shù)據(jù)庫(kù)訪問的高層接口。</p><p> ADO是目前在Windows環(huán)境中比較流行的數(shù)據(jù)庫(kù)編程技術(shù)。它是建立在OLE DB底層技術(shù)之上的高層編程接口
81、,因而具有強(qiáng)大的數(shù)據(jù)處理功能和簡(jiǎn)單易用的編程接口,并且得到了廣泛的應(yīng)用。ADO的底層是OLE DB,所以不僅能夠訪問關(guān)系型數(shù)據(jù)庫(kù),也可以訪問菲關(guān)系型數(shù)據(jù)庫(kù),更是現(xiàn)在最快的數(shù)據(jù)庫(kù)訪問中間層[6]。</p><p> 3.2.1 ADO主要對(duì)象介紹</p><p> Command 對(duì)象:ADO Command 對(duì)象用于執(zhí)行面向數(shù)據(jù)庫(kù)的一次簡(jiǎn)單查詢。此查詢可執(zhí)行諸如創(chuàng)建、添加、取回、刪除或
82、更新記錄等動(dòng)作。如果該查詢用于取回?cái)?shù)據(jù),此數(shù)據(jù)將以一個(gè) RecordSet 對(duì)象返回。這意味著被取回的數(shù)據(jù)能夠被 RecordSet 對(duì)象的屬性、集合、方法或事件進(jìn)行操作。Command 對(duì)象的主要特性是有能力使用存儲(chǔ)查詢和帶有參數(shù)的存儲(chǔ)過程。</p><p> Connection 對(duì)象:ADO Connection 對(duì)象用于創(chuàng)建一個(gè)到達(dá)某個(gè)數(shù)據(jù)源的開放連接。通過此連接,您可以對(duì)一個(gè)數(shù)據(jù)庫(kù)進(jìn)行訪問和操作。如果
83、需要多次訪問某個(gè)數(shù)據(jù)庫(kù),您應(yīng)當(dāng)使用 Connection 對(duì)象來建立一個(gè)連接。您也可以經(jīng)由一個(gè) Command 或 Recordset 對(duì)象傳遞一個(gè)連接字符串來創(chuàng)建某個(gè)連接。不過,此類連接僅僅適合一次具體的簡(jiǎn)單的查詢。</p><p> Recordset 對(duì)象:ADO Recordset 對(duì)象用于容納一個(gè)來自數(shù)據(jù)庫(kù)表的記錄集。一個(gè) Recordset 對(duì)象由記錄和列(字段)組成。在 ADO 中,此對(duì)象是最重要
84、且最常用于對(duì)數(shù)據(jù)庫(kù)的數(shù)據(jù)進(jìn)行操作的對(duì)象。</p><p> _variant_t和_bstr_t 類:_variant_t和_bstr_t這兩個(gè)類分別封裝并管理VARIANT和BSTR這兩種數(shù)據(jù)類型, VARIANT和BSTR這兩種類型是COM中使用的數(shù)據(jù)類型。 </p><p> 為了C++中的變量應(yīng)用到ADO編程中,只能進(jìn)行數(shù)據(jù)類型的轉(zhuǎn)換。通過_variant_t和_bstr_t這
85、兩個(gè)類,就可以方便的把C++類型變量轉(zhuǎn)換成COM中的變量了。實(shí)現(xiàn)_variant_t向int,String ,double,long,byte等類型轉(zhuǎn)換。</p><p> 3.2.2 ADO 的優(yōu)越性</p><p> 對(duì)于數(shù)據(jù)庫(kù)編程人員來說,ADO 具有如下優(yōu)越性:</p><p><b> 便于使用。</b></p>
86、<p> 支持多種編程語(yǔ)言,包括 Visual Basic、Java、C++、VBScript 和JavaScript。</p><p> 支持任何的 OLE DB 服務(wù)器,ADO 可以操作任何的OLE DB 數(shù)據(jù)源。</p><p> 不損失任何 OLE DB 的功能,ADO 支持C++編程人員操作底層的OLE DB 接口。</p><p> 可
87、擴(kuò)展性,ADO 能夠通過提供者屬性集合動(dòng)態(tài)地表示指定的數(shù)據(jù)提供者,還能夠支持COM 的擴(kuò)展數(shù)據(jù)類型[6]。</p><p> 3.2.3引入ADO庫(kù)</p><p> 在Visual C++中使用ADO開發(fā)數(shù)據(jù)庫(kù)之前,需要引入ADO庫(kù)??梢栽赟tdAfx.h 文件末尾引入ADO庫(kù)文件,方法如下:</p><p> #import”C:\ Program Fil
88、es\Common Files\System\ado\msado15.dll" no_namespace rename("EOF","adoEOF")</p><p> 使用預(yù)處理指令import使程序在編譯過程中引入ADO動(dòng)態(tài)庫(kù)(msado15.dll)。no_namespace表明不使用命令空間。rename("EOF","ad
89、oEOF")表明把ADO中用到的EOF改為adoEOF,防止發(fā)生命名沖突。</p><p> 添加的時(shí)候要注意,由于在不同的系統(tǒng)安裝時(shí)這個(gè)路徑可能不同,必須先在系統(tǒng)里查找msado15.dll 文件的路徑。不過通常該文件都在系統(tǒng)的“ Program Files\Common Files\System\ado”路徑下。</p><p> 還有一個(gè)問題要注意,我們?cè)诒緦?shí)例里使用的
90、是ADO 的1.5 版本,也許你的操作系統(tǒng)不支持1.5,只是1.0 版的,或者是2.0 版本,這時(shí)需要將這個(gè)庫(kù)文件名稱改為相應(yīng)的文件名。1.5 版本在對(duì)1.0 版本升級(jí)的時(shí)候改變了一些函數(shù)的接口參數(shù),在實(shí)際編程時(shí)需要注意靈活處理。</p><p> 3.2.4ADO連接數(shù)據(jù)庫(kù)View視圖的顯示</p><p> 為了便于用戶的操作使用,本系統(tǒng)使用View視圖顯示數(shù)據(jù)表以及繪制相關(guān)曲線圖
91、,主要用到ADO類庫(kù)中的對(duì)象有:</p><p> CStatic m_StaticCtrl;</p><p> CListCtrl m_ListCtrl;</p><p> _ConnectionPtr ADOConn;</p><p> _RecordsetPtr m_pADOSet;</p><p>
92、其中,CStatic m_StaticCtrl主要是用于View視圖中的表頭的顯示;CListCtrl m_ListCtrl用于View視圖中數(shù)據(jù)表格的建立和顯示;_ConnectionPtr ADOConn主要用于處理ADO數(shù)據(jù)庫(kù)的連接;_RecordsetPtr m_pADOSet用于程序中對(duì)數(shù)據(jù)庫(kù)中記錄集的操作。</p><p> 3.3 數(shù)據(jù)處理的理論模型</p><p> 3
93、.3.1移動(dòng)、變形計(jì)算</p><p> 觀測(cè)數(shù)據(jù)經(jīng)過整理改正以后,便可計(jì)算觀測(cè)線上各測(cè)點(diǎn)和各測(cè)點(diǎn)間的移動(dòng)和變形。移動(dòng)和變形計(jì)算主要包括:各測(cè)點(diǎn)的下沉和水平移動(dòng),相鄰兩側(cè)點(diǎn)的傾斜和水平變形,相鄰兩線段(或相鄰三點(diǎn))的曲率變形,觀測(cè)點(diǎn)的下沉速度等。</p><p> m次觀測(cè)時(shí)n點(diǎn)的下沉</p><p><b> ,mm (3-1)</b>
94、</p><p> 式中 ——n 點(diǎn)的下沉值;</p><p> ——分別為首次和m次觀測(cè)時(shí)n點(diǎn)的高程。</p><p><b> 相鄰兩點(diǎn)間的傾斜</b></p><p> ,mm/m 或 (3-2)</p><p> 式中 ——n號(hào)點(diǎn)至n+1號(hào)點(diǎn)的水平距離;</p>
95、<p> ——分別表示n+1號(hào)點(diǎn)和n號(hào)點(diǎn)的下沉量。</p><p> n號(hào)點(diǎn)附近的曲率,即號(hào)點(diǎn)至號(hào)點(diǎn)之間的曲率</p><p> ,mm/m2或10-3/m (3-3)</p><p> 式中 ——分別表示n+1號(hào)點(diǎn)至n號(hào)點(diǎn)和n號(hào)點(diǎn)至n-1號(hào)點(diǎn)的傾斜</p><p> ——分別表示n+1號(hào)點(diǎn)至n號(hào)點(diǎn)和n號(hào)點(diǎn)至n-1號(hào)點(diǎn)的水
96、平距離</p><p><b> n號(hào)點(diǎn)的水平移動(dòng)</b></p><p><b> ,mm (3-4)</b></p><p> 式中 Un——n號(hào)點(diǎn)的水平移動(dòng)</p><p> ——分別表示m次觀測(cè)時(shí)和首次觀測(cè)時(shí)n號(hào)點(diǎn)至觀測(cè)線控制點(diǎn)間的水平距離,用點(diǎn)間距累加求的</p>&
97、lt;p> n號(hào)點(diǎn)至號(hào)點(diǎn)間的水平變形</p><p> mm/m或10-3 (3-5)</p><p> 每次觀測(cè)之后均應(yīng)及時(shí)地進(jìn)行移動(dòng)和變形計(jì)算,計(jì)算數(shù)字的取位可參考下表3-1:</p><p> 表3-1 移動(dòng)和計(jì)算結(jié)果取位表</p><p> 3.3.2 繪圖工作</p><p> 根據(jù)每次觀測(cè)
98、的計(jì)算結(jié)果繪制曲線圖,由這種曲線圖能夠清楚地看出沿觀測(cè)線(主斷面)的地表移動(dòng)和變形的分布特征及其發(fā)展過程。</p><p> 繪制移動(dòng)和變形曲線圖時(shí),選擇豎直比例尺的原則是:使繪制的曲線能夠清楚的反映出移動(dòng)和變形的分布規(guī)律,并便于分析比較。水平比例尺與觀測(cè)站平面圖一致,可采用1:1000或1:2000。</p><p> 曲線圖和觀測(cè)線斷面圖應(yīng)繪制在一起,以表明各種地質(zhì)采礦條件對(duì)移動(dòng)和
99、變形分布形態(tài)的影響。每一次觀測(cè)后,要及時(shí)進(jìn)行計(jì)算和繪制移動(dòng)、變形曲線圖。觀測(cè)站觀測(cè)工作全部結(jié)束后,為了求出最終結(jié)果,應(yīng)對(duì)每次觀測(cè)結(jié)果進(jìn)行綜合分析,以便獲得觀測(cè)站受采動(dòng)影響產(chǎn)生的移動(dòng)、變形的發(fā)展過程,以及移動(dòng)和變形的最終值。</p><p> 繪制移動(dòng)、變形曲線時(shí),具有正號(hào)的移動(dòng)、變形值繪制在水平線的上方,負(fù)號(hào)值繪制在水平線的下方,但下沉值除外。繪圖展點(diǎn)時(shí)需注意:下沉值展繪在測(cè)點(diǎn)的正下方;水平移動(dòng)是依據(jù)其正、負(fù)號(hào)
100、分別展繪在測(cè)點(diǎn)的正上方或正下方;傾斜和水平變形是依據(jù)其正、負(fù)號(hào)展繪在兩測(cè)點(diǎn)中點(diǎn)的正上方或正下方;曲率是依據(jù)其正、負(fù)號(hào)展繪在兩相鄰線段的的中點(diǎn)的連線的中點(diǎn)的正上方或正下方。</p><p> 3.3.3 實(shí)測(cè)移動(dòng)變形值分布規(guī)律的研究</p><p> 用上面的方法求定的實(shí)測(cè)參數(shù)的計(jì)算結(jié)果后,就可以用以下方法分析實(shí)測(cè)移動(dòng)變形值分布規(guī)律:</p><p> 分析實(shí)測(cè)
101、計(jì)算結(jié)果,根據(jù)曲線圖分析本地區(qū)內(nèi)下沉、水平移動(dòng)和變形規(guī)律;</p><p> 參照多次測(cè)量結(jié)果分析本地區(qū)內(nèi)的沉陷規(guī)律;</p><p> 總結(jié)該地區(qū)的地表沉陷規(guī)律,并進(jìn)行本地區(qū)內(nèi)其他地表點(diǎn)的沉陷。
102、
103、 </p><p><b> 3.4 本章小結(jié)</b></p><
104、;p> 本章主要介紹了系統(tǒng)開發(fā)過程中遇到的主要問題以及解決方案,著重講述了系統(tǒng)開發(fā)的理論模型。</p><p><b> 第四章 實(shí)例分析</b></p><p> 在系統(tǒng)開發(fā)結(jié)束以后,需要將不同的功能模塊組裝配置起來,進(jìn)行整個(gè)系統(tǒng)正確性和可靠性的系統(tǒng)檢驗(yàn),系統(tǒng)檢驗(yàn)的手段有多種,測(cè)試就是其中的一種,這種方式可使系統(tǒng)有控制的進(jìn)行,并從多種角度觀測(cè)系統(tǒng)運(yùn)行的行
105、為,以發(fā)現(xiàn)系統(tǒng)開發(fā)中存在的問題并加以改正,這個(gè)過程有可能重復(fù)多次系統(tǒng)運(yùn)行狀態(tài)令人滿意為止[21]。</p><p> 在本系統(tǒng)中,系統(tǒng)的測(cè)試包括兩部分:一是數(shù)據(jù)輸入、修改、刪除以及查詢等功能的測(cè)試,對(duì)系統(tǒng)的每個(gè)子菜單項(xiàng)進(jìn)行操作,保證其正常運(yùn)行;二是保證計(jì)算的精確性和圖形功能的實(shí)現(xiàn)。通過測(cè)試,證明本軟件已達(dá)到了預(yù)期效果。下面以一走向觀測(cè)線實(shí)例為例,來說明該軟件的應(yīng)用效果。</p><p>
106、<b> 4.1 實(shí)例來源</b></p><p> 本論文中使用的計(jì)算實(shí)例為參考文獻(xiàn)【1】第63頁(yè)圖2-13的實(shí)例。</p><p> 4.2 實(shí)測(cè)數(shù)據(jù)整理計(jì)算</p><p> 數(shù)據(jù)的輸入對(duì)話框及示例如下圖4-1所示:</p><p> 圖4-1 數(shù)據(jù)輸入示例</p><p> 數(shù)
107、據(jù)的修改對(duì)話框如圖4-2所示:</p><p> 圖4-2 數(shù)據(jù)修改示例</p><p> 數(shù)據(jù)的查詢?nèi)鐖D4-3所示:</p><p> 圖4-3 原始數(shù)據(jù)查詢示例</p><p> 結(jié)果顯示為圖4-4:</p><p> 圖4-4 數(shù)據(jù)查詢結(jié)果顯示</p><p> 通過計(jì)算模塊,
108、直接獲得各觀測(cè)點(diǎn)的移動(dòng)變形值成果表,計(jì)算結(jié)果如下圖4-5:</p><p> 圖4-5 計(jì)算結(jié)果顯示</p><p> 繪圖結(jié)果,右邊根據(jù)實(shí)測(cè)數(shù)據(jù)繪制的曲線圖;左邊為曲線擬合后的曲線圖,其中為了能夠在View視圖中顯示,所有的數(shù)據(jù)都進(jìn)過一定的縮放比例,然后才繪制到視圖中,如下圖4-6:</p><p> 圖4-6 移動(dòng)變形曲線總圖</p><
109、;p> 綜合所有移動(dòng)變形曲線,我們發(fā)現(xiàn),該區(qū)域沿煤層走向,已達(dá)超充分采動(dòng),在10號(hào)點(diǎn)后,下沉基本穩(wěn)定,局部放大圖:</p><p> 圖4-7 曲率曲線圖</p><p> 圖4-8 傾斜、水平變形曲線圖</p><p> 斷面圖的繪制是在下圖4-9的變形曲線上,按臨界值i=3mm/m,K=0.210-3/m,=2mm/m找到相應(yīng)的臨界變形點(diǎn),取這三個(gè)
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 眾賞文庫(kù)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 畢業(yè)設(shè)計(jì)----基于gprs的數(shù)據(jù)處理系統(tǒng)的設(shè)計(jì)
- 油田數(shù)據(jù)處理系統(tǒng)畢業(yè)論文
- sjcl線性工程斷面數(shù)據(jù)處理系統(tǒng)
- 31572.基于網(wǎng)絡(luò)的測(cè)繪數(shù)據(jù)處理系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn)
- 脈沖測(cè)量雷達(dá)數(shù)據(jù)處理系統(tǒng)設(shè)計(jì).pdf
- 招生數(shù)據(jù)處理系統(tǒng)解決方案
- 農(nóng)業(yè)物聯(lián)網(wǎng)數(shù)據(jù)處理系統(tǒng).pdf
- 點(diǎn)云數(shù)據(jù)處理系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn).pdf
- 基于MapX的煤礦開采沉陷預(yù)計(jì)及地表移動(dòng)觀測(cè)站數(shù)據(jù)處理系統(tǒng)的研發(fā).pdf
- 鐵路工程測(cè)量數(shù)據(jù)處理系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn).pdf
- 畢業(yè)論文_考試報(bào)名系統(tǒng)數(shù)據(jù)處理系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn)
- QAR數(shù)據(jù)處理系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn).pdf
- 工程測(cè)量數(shù)據(jù)處理系統(tǒng)的研制與開發(fā).pdf
- 精密光柵數(shù)據(jù)處理系統(tǒng)的研究.pdf
- 畢業(yè)論文_考試報(bào)名系統(tǒng)數(shù)據(jù)處理系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn)
- c語(yǔ)言課程設(shè)計(jì)--銀行數(shù)據(jù)處理系統(tǒng)
- 礦山測(cè)量數(shù)據(jù)處理系統(tǒng)的研究與設(shè)計(jì).pdf
- 沉降觀測(cè)數(shù)據(jù)處理系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn).pdf
- 基于DSP的搜索雷達(dá)數(shù)據(jù)處理系統(tǒng)設(shè)計(jì).pdf
- 船閘人字門應(yīng)變數(shù)據(jù)處理系統(tǒng)設(shè)計(jì).pdf
評(píng)論
0/150
提交評(píng)論