-測(cè)繪程序設(shè)計(jì)實(shí)習(xí)報(bào)告_第1頁(yè)
-測(cè)繪程序設(shè)計(jì)實(shí)習(xí)報(bào)告_第2頁(yè)
-測(cè)繪程序設(shè)計(jì)實(shí)習(xí)報(bào)告_第3頁(yè)
-測(cè)繪程序設(shè)計(jì)實(shí)習(xí)報(bào)告_第4頁(yè)
-測(cè)繪程序設(shè)計(jì)實(shí)習(xí)報(bào)告_第5頁(yè)
已閱讀5頁(yè),還剩38頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

1、東華理工大學(xué)高職學(xué)院 測(cè)繪程序設(shè)計(jì)(VB)2012測(cè)繪程序設(shè)計(jì)(VB) 課間實(shí)習(xí)報(bào)告 姓名:_學(xué)號(hào):_班級(jí):_1141502_2012年10 月目 錄1 實(shí)習(xí)目的32 實(shí)習(xí)儀器與軟件32.1 Visual Basic 6.033 實(shí)習(xí)要求44 實(shí)習(xí)內(nèi)容45 實(shí)習(xí)步驟45.1 坐標(biāo)正反算45.2 水準(zhǔn)測(cè)量55.3 導(dǎo)線計(jì)算55.4 集成化設(shè)計(jì)56 實(shí)習(xí)總結(jié)56.1 實(shí)習(xí)問(wèn)題總結(jié)56.2 程序調(diào)試總結(jié)57 附錄57.1 正算代碼5測(cè)繪程序設(shè)計(jì)實(shí)習(xí)報(bào)告1 實(shí)習(xí)目的掌握Visual Basic(VB)程序設(shè)計(jì)的基本理論、方法和應(yīng)用,掌握VB程序應(yīng)用于測(cè)繪專業(yè)的程序開(kāi)發(fā),理解程序設(shè)計(jì)在測(cè)繪數(shù)據(jù)處理中的作

2、用和地位,學(xué)會(huì)利用模塊化程序設(shè)計(jì)的基本技術(shù),掌握面向?qū)ο蟪绦蛟O(shè)計(jì)方法,應(yīng)用測(cè)繪專業(yè)的基本技能,測(cè)繪專業(yè)模塊程序包開(kāi)發(fā)的基本方法,以及掌握一些最基本的知識(shí),編程里面的英語(yǔ)以及函數(shù)有很多不知道,以至學(xué)習(xí)編程有點(diǎn)困難。、 對(duì)水準(zhǔn)網(wǎng)觀測(cè)高程間接平差理論內(nèi)容的驗(yàn)證與應(yīng)用。通過(guò)學(xué)習(xí)掌握測(cè)繪軟件開(kāi)發(fā)過(guò)程與方法,初步具備測(cè)繪軟件開(kāi)發(fā)基本技能。、實(shí)驗(yàn)原理和過(guò)程通過(guò)本學(xué)期對(duì)測(cè)繪程序設(shè)計(jì)課程的學(xué)習(xí),編寫(xiě)一份綜合性實(shí)驗(yàn)報(bào)告我選取的題目是利用vb語(yǔ)言進(jìn)行編程。 熟悉程序設(shè)計(jì)任務(wù)書(shū)的基本內(nèi)容,調(diào)查了解軟件需求狀況,進(jìn)行需求分析,。計(jì)算機(jī)的基礎(chǔ)比較差,要想將編程學(xué)好得掌握更多的函數(shù)以及專用的編程語(yǔ)言,工程測(cè)量運(yùn)用編程來(lái)計(jì)算

3、是比較普遍的,運(yùn)用編程的方面也比較多,因此努力去掌握一些基礎(chǔ)非常重要,為學(xué)習(xí)后續(xù)課程和專業(yè)技術(shù)工作打下基礎(chǔ)。2 實(shí)習(xí)儀器與軟件實(shí)習(xí)期間主要用到的軟件有Visual Basic(VB),數(shù)據(jù)庫(kù)軟件Access、Office軟件Word等。2.1 Visual Basic 6.0VB是美國(guó)microsoft公司在1991年推出的windouus環(huán)境下的軟件開(kāi)發(fā)工具。Visual意思為可視化的,指的是一種開(kāi)發(fā)圖形用戶界面的方法。Basic是20世紀(jì)60年代出場(chǎng)的一門(mén)計(jì)算機(jī)程序語(yǔ)言,它以簡(jiǎn)單易學(xué),使用方便的特點(diǎn),得到廣泛應(yīng)用。VB語(yǔ)言是一種面向?qū)ο蟮目梢暬绦蛟O(shè)計(jì)語(yǔ)言。這門(mén)語(yǔ)言進(jìn)行簡(jiǎn)要的敘述,包括VB

4、的開(kāi)發(fā)環(huán)境,對(duì)象的概念以及編寫(xiě)VB應(yīng)用程序的步驟。通過(guò)本章的學(xué)習(xí),使讀者對(duì)VB有個(gè)大致的了解,并能夠編寫(xiě)一些簡(jiǎn)單的程序。VB使用了可以簡(jiǎn)單建立應(yīng)用程序的GUI系統(tǒng),但是又可以開(kāi)發(fā)相當(dāng)復(fù)雜的程序。VB的程序是一種基于窗體的可視化組件安排的聯(lián)合,并且增加代碼來(lái)指定組件的屬性和方法。因?yàn)槟J(rèn)的屬性和方法已經(jīng)有一部分定義在了組件內(nèi),所以程序員不用寫(xiě)多少代碼就可以完成一個(gè)簡(jiǎn)單的程序。過(guò)去的版本里面VB程序的性能問(wèn)題一直被放在了桌面上,但是隨著計(jì)算機(jī)速度的飛速增加,關(guān)于性能的爭(zhēng)論已經(jīng)越來(lái)越少。VB是基于basic語(yǔ)言可視化程序設(shè)計(jì)語(yǔ)言。它繼承了其先輩basic所具有的簡(jiǎn)單易用的特點(diǎn),又采用了面向?qū)ο?,事?/p>

5、驅(qū)動(dòng)的編程機(jī)制,提夠了一種所見(jiàn)及所得的可視化界面設(shè)計(jì)方法。 VB使得大量的外界控件有了自己的生存空間。大量的第三方控件針對(duì)VB提供。VB也提供了建立、使用和重用這些控件的方法,但是由于語(yǔ)言問(wèn)題,從一個(gè)應(yīng)用程序創(chuàng)建另外一個(gè)并不簡(jiǎn)單。3 實(shí)習(xí)要求1較為熟練地掌握VB程序設(shè)計(jì)與開(kāi)發(fā)2掌握測(cè)繪外業(yè)工作需要的一些基本理論與方法3掌握測(cè)繪內(nèi)業(yè)數(shù)據(jù)處理的流程4掌握常用測(cè)繪專業(yè)軟件的交換格式。5 每次去機(jī)房首先找到與今天相關(guān)的程序進(jìn)行調(diào)試6 對(duì)程序的調(diào)試發(fā)揮自己所有的知識(shí)對(duì)程序進(jìn)行編改7 可以通過(guò)網(wǎng)絡(luò)相結(jié)合找到一些相關(guān)的知識(shí)驚醒運(yùn)用8 每次將調(diào)試后的程序進(jìn)行運(yùn)行,如果沒(méi)用繼續(xù)調(diào)試,直到調(diào)試能夠運(yùn)行9 如果實(shí)在

6、不行可以以郵件形式進(jìn)行詢問(wèn)10 每次的作業(yè)以電子郵件的形式發(fā)11 按時(shí)間交作業(yè) 4 實(shí)習(xí)內(nèi)容充分學(xué)習(xí)VB可視化編程以后,熟悉各種常用控件的使用。再結(jié)合測(cè)量專業(yè)數(shù)據(jù)處理,編寫(xiě)全部或部分專業(yè)程序。要求進(jìn)行循序漸進(jìn)的方式,先采用基本結(jié)構(gòu)編寫(xiě),在隨后的課程學(xué)習(xí)當(dāng)中,采用數(shù)組,函數(shù),再生成數(shù)據(jù)文件格式,從低級(jí)到高級(jí)應(yīng)用,最后通過(guò)窗體應(yīng)用與函數(shù)的方法進(jìn)行集成,將所有的實(shí)習(xí)最后集成到一個(gè)程序當(dāng)中,使之進(jìn)一步完善與改進(jìn)等。 坐標(biāo)正反算坐標(biāo)反算一般主要應(yīng)用于測(cè)繪工程、建設(shè)工程之中,具體在建筑設(shè)計(jì),工程測(cè)量,測(cè)繪制圖等領(lǐng)域。總的來(lái)說(shuō)坐標(biāo)計(jì)算分為坐標(biāo)正算和坐標(biāo)反算兩種,這兩種在實(shí)際中是較常見(jiàn)的。所要求的公式為:XB

7、=XA+lcosaABYB=YA+lsinaABl= (XB-XA)+(YB-YA) 簡(jiǎn)易水準(zhǔn)平差平差公式=(閉合差/線路總長(zhǎng))*距離 交會(huì)測(cè)量程序交會(huì)測(cè)量(intersection survey)是根據(jù)多個(gè)已知點(diǎn)的平面坐標(biāo)(或高程),通過(guò)測(cè)定已知點(diǎn)到某待定點(diǎn)的方向或(和)距離(或測(cè)定其豎直角),以推求此待定點(diǎn)平面坐標(biāo)(或高程)的測(cè)量技術(shù)和方法。以確定待定點(diǎn)平面坐標(biāo)為目的者,稱平面交會(huì)測(cè)量;以確定待定點(diǎn)高程者,稱高程交會(huì)測(cè)量;以確定待定點(diǎn)三維坐標(biāo)的,稱空間交會(huì)測(cè)量;若僅在已知點(diǎn)設(shè)站進(jìn)行觀測(cè)稱前方交會(huì),僅在待定點(diǎn)設(shè)站進(jìn)行觀測(cè)稱后方交會(huì)既在待定點(diǎn)設(shè)站又在個(gè)別已知點(diǎn)設(shè)站進(jìn)行觀測(cè)稱側(cè)方交會(huì)。在平面和空

8、問(wèn)交會(huì)測(cè)量中,若經(jīng)觀測(cè)獲得的僅有角元素稱測(cè)角交會(huì),而經(jīng)觀測(cè)獲得的僅有邊元素者稱測(cè)邊交會(huì),經(jīng)觀測(cè)直接或間接獲得的既有角元素又有邊元素則稱邊角交會(huì)。在平面測(cè)角交會(huì)中,若控制點(diǎn)的平面位置是用解析法求得平面坐標(biāo)值稱解析交會(huì),用圖解法確定且直接展繪到圖板上則稱圖解交會(huì)。角度與弧度的轉(zhuǎn)換在python和Delphi中,牽涉到角度計(jì)算時(shí),例如:sin(x),cos(x)等,這里的x都是弧度,而不是直接的角度。因此,在計(jì)算對(duì)應(yīng)角度的三角函數(shù)時(shí),需要先將角度轉(zhuǎn)換成弧度再計(jì)算?;《群徒嵌鹊霓D(zhuǎn)換公式是:角度=弧度*180.0f/PI弧度=角度*PI/180.0f(根據(jù)實(shí)際實(shí)習(xí)內(nèi)容寫(xiě))5 實(shí)習(xí)步驟實(shí)習(xí)主要在北區(qū)機(jī)房?jī)?nèi)

9、進(jìn)行,主要按實(shí)習(xí)內(nèi)容進(jìn)行1要對(duì)每次的實(shí)習(xí)作業(yè)要進(jìn)行早預(yù)習(xí)2每次讀應(yīng)該對(duì)實(shí)習(xí)做一個(gè)充分的準(zhǔn)備3調(diào)試的程序一般在光盤(pán)上需要每次帶好4一到機(jī)房的第一件事情就是找到相關(guān)的程序,并進(jìn)行觀察以及查找什么地方能夠進(jìn)行改寫(xiě)6對(duì)于調(diào)試一個(gè)程序就是講程序改成最簡(jiǎn)單,不會(huì)很復(fù)雜7對(duì)于調(diào)試好的程序接下來(lái)就是對(duì)界面的設(shè)計(jì),界面需要整潔以及美觀等等。調(diào)試好的程序喲按那個(gè)狗運(yùn)行8最后看程序是否能夠運(yùn)用一些數(shù)學(xué)函數(shù)來(lái)編寫(xiě),那樣能夠使程序更加簡(jiǎn)易以及更加的的容易看9最后就是將調(diào)試好的程序以電子郵件發(fā)送到郵箱時(shí)間在一周之內(nèi)。10實(shí)習(xí)完應(yīng)該對(duì)之進(jìn)行體會(huì)與思考,將知識(shí)掌握得跟好5.1 坐標(biāo)正反算 坐標(biāo)反算是根據(jù)已知點(diǎn)坐標(biāo),計(jì)算兩點(diǎn)間

10、距離和角度,正算公式為:a為坐標(biāo)方位角,S為兩點(diǎn)的距離公式分析: 從式上可以知道公式需要知道初始始坐標(biāo),距離和角度,即需要四個(gè)輸入,若需要在一個(gè)函數(shù)中實(shí)現(xiàn),返回值有二個(gè),可以有二種方法1. 單個(gè)函數(shù)實(shí)現(xiàn)Function Dis2xy(ByVal Dis as Double ,ByVal Ang as Double) as Double利用數(shù)據(jù)返回End Function2. 兩個(gè)函數(shù)實(shí)現(xiàn)Function Dis2xy(ByVal Dis as Double,ByVal Ang as Double,ByVal Flag as Integer) as Double增加參數(shù)控制End Functio

11、n 5.2 水準(zhǔn)測(cè)量水準(zhǔn)測(cè)量又名“幾何水準(zhǔn)測(cè)量”,是用水準(zhǔn)儀和水準(zhǔn)尺測(cè)定地面上兩點(diǎn)間高差的方法。在地面兩點(diǎn)間安置水準(zhǔn)儀,觀測(cè)豎立在兩點(diǎn)上的水準(zhǔn)標(biāo)尺,按尺上讀數(shù)推算兩點(diǎn)間的高差。通常由水準(zhǔn)原點(diǎn)或任一已知高程點(diǎn)出發(fā),沿選定的水準(zhǔn)路線逐站測(cè)定各點(diǎn)的高程。由于不同高程的水準(zhǔn)面不平行,沿不同路線測(cè)得的兩點(diǎn)間高差將有差異,所以在整理國(guó)家水準(zhǔn)測(cè)量成果時(shí),須按所采用的正常高系統(tǒng)加以必要的改正,以求得正確的高程。本節(jié)介紹水準(zhǔn)測(cè)量成果的計(jì)算程序采用多窗口的方式組織,在主窗體上顯示信息和執(zhí)行各種操作,再輸入窗口輸入數(shù)據(jù)。方便主窗口與輸入窗口的數(shù)據(jù)傳遞,本程序還是用了標(biāo)準(zhǔn)模塊水準(zhǔn)路線依據(jù)工程的性質(zhì)和測(cè)區(qū)情況,可以布設(shè)

12、以下幾種形式。1 閉合水準(zhǔn)路線高程控制測(cè)量(即水準(zhǔn)路線測(cè)量)分為閉合水準(zhǔn)路線測(cè)量、附和水準(zhǔn)路線測(cè)量和支水準(zhǔn)路線測(cè)量。閉合水準(zhǔn)路線測(cè)量有一個(gè)已知高程點(diǎn),待測(cè)點(diǎn)分布成一個(gè)閉合環(huán)(所有點(diǎn)已知高程點(diǎn)、待測(cè)點(diǎn)都在這個(gè)圈里,按序依次測(cè)量),即從已知點(diǎn)出發(fā),到已知點(diǎn)結(jié)束。附和水準(zhǔn)線路測(cè)量有兩個(gè)已知點(diǎn),待測(cè)點(diǎn)分布成一個(gè)彎折的線,從一個(gè)已知點(diǎn)出發(fā),到另一個(gè)已知點(diǎn)結(jié)束(通常這兩個(gè)已知點(diǎn)距離很遠(yuǎn),甚至數(shù)十公里)。支水準(zhǔn)路線測(cè)量往往依附于上面兩種水準(zhǔn)路線,作為布線死角的補(bǔ)充,有一個(gè)已知點(diǎn),待測(cè)點(diǎn)數(shù)個(gè)成線狀分布,從已知點(diǎn)出發(fā),到最后一個(gè)待測(cè)點(diǎn)后,再原路返測(cè)(即往返側(cè))。閉合水準(zhǔn)路線線路封閉,易于平差和糾錯(cuò);特殊情況下可

13、以做獨(dú)立高程系統(tǒng)。2 符合水準(zhǔn)路線附合水準(zhǔn)路線是測(cè)量學(xué)的術(shù)語(yǔ)。從某個(gè)已知高程的水準(zhǔn)點(diǎn)出發(fā),沿路線進(jìn)行水準(zhǔn)測(cè)量,最后連測(cè)到另一已知高程的水準(zhǔn)點(diǎn)上,這樣的水準(zhǔn)路線稱為附合水準(zhǔn)路線。h理H終一H始 (式中H終與H始分別表示最終點(diǎn)與起始已知點(diǎn)的高程)。按高差閉合差的定義可知: fh h測(cè)h理h測(cè)一(H終一H始) (312)高差閉合差的允許值和校核要求與閉合水準(zhǔn)路線相同?,F(xiàn)以圖320和表33中的觀測(cè)數(shù)據(jù)為例來(lái)說(shuō)明附合水準(zhǔn)路線高差閉合差調(diào)整與高程計(jì)h理H終一H始 (式中H終與H始分別表示最終點(diǎn)與起始已知點(diǎn)的高程)。按高差閉合差的定義可知: fh h測(cè)h理h測(cè)一(H終一H始) (312)高差閉合差的允許值和

14、校核要求與閉合水準(zhǔn)路線相同。3 支水準(zhǔn)路線支水準(zhǔn)路線是從一已知高級(jí)水準(zhǔn)點(diǎn)出發(fā),終點(diǎn)不附合于另一已知高級(jí)水準(zhǔn)點(diǎn)的水準(zhǔn)路線。從給定的已知點(diǎn)出發(fā),在已知點(diǎn)和ZDl間安置水準(zhǔn)儀。立尺于已知點(diǎn)上,讀取其后視讀數(shù),記入手簿相應(yīng)欄內(nèi)。立尺于ZDl的尺墊上,該取其前視讀數(shù),記入手簿相應(yīng)欄內(nèi)。至此,第一站觀測(cè)完畢,計(jì)算第一站高差并記入手簿相應(yīng)欄內(nèi);ZDl尺墊不動(dòng),水準(zhǔn)儀遷站,安置于ZD1和ZD2之間,依同法讀取ZD1的后視讀數(shù)和ZD2的前視讀數(shù),記入手簿相應(yīng)欄內(nèi),并計(jì)算第二站的高差。依同法直至最后一站,讀取并完成相應(yīng)的記錄和計(jì)算,以上為往測(cè),計(jì)算往測(cè)的后視讀數(shù)總和a、前視讀數(shù)總和b和高差總和h,并進(jìn)行計(jì)算檢核,

15、即abh,應(yīng)成立,依同法完成返程的觀測(cè)、記錄、計(jì)算及其檢核。根據(jù)往、返測(cè)的高差計(jì)算高差閉合差fh,根據(jù)指導(dǎo)教師給定的單程水準(zhǔn)路線長(zhǎng)度L計(jì)算容許高差閉合差Fh。比較二者,若fhFh,表明未達(dá)到精度,應(yīng)予重測(cè),若fh Fh,表明達(dá)到精度,則在固定表格內(nèi)計(jì)算高差最或是值并推算未知點(diǎn)的高程。注意事項(xiàng)1照準(zhǔn)目標(biāo)應(yīng)檢查并消除視差;2讀數(shù)時(shí),符合水準(zhǔn)長(zhǎng)氣泡應(yīng)嚴(yán)格居中;3前、后視距離應(yīng)大致相等(扶尺員可用步測(cè));4最大視線長(zhǎng)度不得大于100 m;5最小尺讀數(shù)不得小于0.3m;6在已知點(diǎn)和未知點(diǎn)上立尺時(shí)不得安放尺墊;4 閉合差的計(jì)算(1)閉合水準(zhǔn)路線。閉合差為實(shí)測(cè)高差總合即:f = h測(cè)(2)符合水準(zhǔn)路線。閉合

16、差為起點(diǎn)高程,中點(diǎn)高程差與實(shí)測(cè)高程總和之差,即:f = h測(cè) (h終-h始)(3)支水準(zhǔn)路線。閉合為往,放測(cè)量的高差代數(shù)和,即:f=h往-h返5 高差閉合差不超過(guò)一定的限度時(shí),認(rèn)為精度合格,成果可用。普通水準(zhǔn)測(cè)量終容許高差閉合差一般規(guī)定為:F容=+-40lF容=-12n式中 L- 水準(zhǔn)路線長(zhǎng)度,單位kmn- 測(cè)站數(shù)閉合差不超過(guò)限時(shí),以距離為權(quán)分配閉合差。設(shè)整條線錄長(zhǎng)為L(zhǎng),莫段水準(zhǔn)路線長(zhǎng)為S整條路線閉合差為f,則該站分配到的閉合差為:H=-f*s/l程序分析和設(shè)計(jì)Public Sub AddData(iMark As Integer, dist, dH As Single) dis(iMark)

17、 = dist detH(iMark) = dHEnd Sub7 在閉合差符合要求的情況下,將閉合差以每一站的前后視距和為權(quán)進(jìn)行分配,最后得出每一轉(zhuǎn)點(diǎn)的高程。5.3 導(dǎo)線計(jì)算導(dǎo)線是將一系列測(cè)量控制點(diǎn),依相鄰次序連接而構(gòu)成折線形式的平面控制圖形。由一系列導(dǎo)線元素構(gòu)成:導(dǎo)線點(diǎn),是導(dǎo)線上的已知點(diǎn)和待定點(diǎn);導(dǎo)線邊,是連接導(dǎo)線點(diǎn)的折線邊;導(dǎo)線角,指導(dǎo)線邊之間所夾的水平角。與已知方向相連接的導(dǎo)線角稱為連接角(亦稱定向角)。導(dǎo)線角按其位于導(dǎo)線前進(jìn)方向的左側(cè)或右側(cè)而分別稱為左角或右角,并規(guī)定左角為正、右角為負(fù);單一導(dǎo)線與導(dǎo)線網(wǎng),其區(qū)別在于前者無(wú)結(jié)點(diǎn),而后者具有結(jié)點(diǎn)。單一導(dǎo)線可布設(shè)成:附合導(dǎo)線,起始于一個(gè)已知點(diǎn)

18、而終止于另一個(gè)已知點(diǎn);閉合導(dǎo)線,起閉于同一個(gè)已知點(diǎn);支導(dǎo)線,是從一個(gè)已知點(diǎn)出發(fā),既不附合于另一個(gè)已知點(diǎn),也不閉合于同一個(gè)已知點(diǎn)。導(dǎo)線網(wǎng)可布設(shè)為:附合導(dǎo)線網(wǎng),具有一個(gè)以上已知點(diǎn)或具有其他附合條件;自由導(dǎo)線網(wǎng),網(wǎng)中僅有一個(gè)已知點(diǎn)和一個(gè)起始方位角而不具有附合條件。 本節(jié)將介紹導(dǎo)線計(jì)算的程序設(shè)即方法,包括必和導(dǎo)線和符合導(dǎo)線的輸入檢查,容差計(jì)算和簡(jiǎn)易評(píng)查計(jì)算。本程序的界面采用主窗體和關(guān)于窗體的方式,主窗體上使用菜單來(lái)組織,數(shù)據(jù)的輸入和輸出都采用讀寫(xiě)文件的方式來(lái)完成,數(shù)據(jù)的顯示和提示信息在主窗體上的文本框中顯示。導(dǎo)線測(cè)量是道路及橋梁工程中常采用的一種控制布網(wǎng)方式,但由于受到施工現(xiàn)場(chǎng)的地形及環(huán)境限制,導(dǎo)線的

19、布設(shè)方式就會(huì)有很大的隨意性,這樣就涉及到各種形式的導(dǎo)線平差計(jì)算問(wèn)題。然而實(shí)際工作中所使用的大多數(shù)全站儀卻只有支導(dǎo)線點(diǎn)的計(jì)算功能,這就給在施工現(xiàn)場(chǎng)進(jìn)行導(dǎo)線測(cè)量的平差1 導(dǎo)線的簡(jiǎn)易計(jì)算將測(cè)區(qū)內(nèi)相鄰口指點(diǎn)連接成直線的折現(xiàn),稱為導(dǎo)線。這些控制點(diǎn),稱為導(dǎo)線點(diǎn)。導(dǎo)線測(cè)量就是一次側(cè)定格導(dǎo)線邊的長(zhǎng)度和各折角值,根據(jù)起算數(shù)據(jù)推算各邊的坐標(biāo)方位角,從而求出個(gè)導(dǎo)線的坐標(biāo)。導(dǎo)線測(cè)量是建立小地區(qū)平面控制網(wǎng)常用的一種方法,特別是地物分布較復(fù)雜的建筑區(qū),實(shí)現(xiàn)障礙較多的隱蔽區(qū)和帶狀地區(qū),多采用導(dǎo)線測(cè)量的方法,通常分為一級(jí)導(dǎo)線,二級(jí)導(dǎo)線,三級(jí)導(dǎo)線和圖更導(dǎo)線登幾個(gè)等級(jí)。根據(jù)測(cè)區(qū)的不同情況和要求,導(dǎo)線可不設(shè)成必和導(dǎo)線復(fù)合導(dǎo)線一級(jí)無(wú)

20、定向?qū)Ь€和支導(dǎo)線等級(jí)形式。本節(jié)介紹計(jì)算前兩種導(dǎo)線的程序設(shè)計(jì)方法,后兩種形式導(dǎo)線的計(jì)算留給讀者完成。(1)閉合導(dǎo)線。起訖于同一己知點(diǎn)的導(dǎo)線,稱閉和導(dǎo)線閉合導(dǎo)線是導(dǎo)線測(cè)量的一種,根據(jù)測(cè)量夾角和邊長(zhǎng),推算出平面坐標(biāo)的測(cè)量稱為導(dǎo)線測(cè)量,常用的導(dǎo)線測(cè)量還包括附和導(dǎo)線和支導(dǎo)線。閉合導(dǎo)線就是已知一條邊,測(cè)量若干個(gè)邊長(zhǎng)和夾角后又閉合到已知邊的導(dǎo)線測(cè)量方法。通過(guò)計(jì)算平差后,可計(jì)算得到經(jīng)過(guò)的未知點(diǎn)的平面坐標(biāo)。 閉合導(dǎo)線平差計(jì)算步驟: 1,繪制計(jì)算草圖,在圖上填寫(xiě)已知數(shù)據(jù)和測(cè)量數(shù)據(jù)。 2,角度閉合差的計(jì)算與調(diào)整。 3,按新的角值,計(jì)算各邊坐標(biāo)增量。 4,坐標(biāo)增量閉合差得計(jì)算與調(diào)整。 5,根據(jù)坐標(biāo)增量計(jì)算坐標(biāo)。 (2

21、)附合導(dǎo)線。布設(shè)在兩已知點(diǎn)間的導(dǎo)線,稱為附合導(dǎo)線附合導(dǎo)線是導(dǎo)線測(cè)量的一種,通過(guò)測(cè)量夾角和邊長(zhǎng)計(jì)算點(diǎn)的平面坐標(biāo)的方法稱為導(dǎo)線測(cè)量,它還包括閉合導(dǎo)線和支導(dǎo)線。附合導(dǎo)線是由一個(gè)已知點(diǎn)出發(fā)開(kāi)始測(cè)量,經(jīng)過(guò)若干未知點(diǎn),到達(dá)另一個(gè)已知點(diǎn),然后通過(guò)平差計(jì)算得到未知點(diǎn)平面坐標(biāo)的導(dǎo)線測(cè)量。 附合導(dǎo)線平差的一般步驟: 1,繪制計(jì)算草圖,在圖上填寫(xiě)已知數(shù)據(jù)和測(cè)量數(shù)據(jù)。 2,角度閉合差的計(jì)算與調(diào)整。 3,按新的角值,計(jì)算各邊坐標(biāo)增量。 4,坐標(biāo)增量閉合差得計(jì)算與調(diào)整。 5,根據(jù)坐標(biāo)增量計(jì)算坐標(biāo)。 (3)閉合導(dǎo)線的計(jì)算角度閉合差的計(jì)算于調(diào)整:b=(n-2)*180由于觀測(cè)角不可避免地含有誤差,因此會(huì)產(chǎn)生角度閉合差:Fb=

22、b-b1角度閉合差的容許值,說(shuō)明電線的確定,圖根導(dǎo)線規(guī)定為:Fb=-40n12若角度閉合差超過(guò)容許值,說(shuō)明所測(cè)的角度不符合要求,應(yīng)重新檢測(cè)角度,若不超過(guò),可將閉合差反符號(hào)平均分配到各個(gè)觀測(cè)角中。改正之后內(nèi)角和應(yīng)為(n-2)*180,一座計(jì)算校隊(duì)。用改正值的導(dǎo)線左角或右角5.4 集成化設(shè)計(jì)集成化設(shè)計(jì)是基于并行工程思想的設(shè)計(jì),它利用現(xiàn)代信息技術(shù)把傳統(tǒng)廠品設(shè)計(jì)過(guò)程中相對(duì)獨(dú)立的階段、活動(dòng)及信息有效的結(jié)合起來(lái),強(qiáng)調(diào)產(chǎn)品設(shè)計(jì)及其過(guò)程同時(shí)交叉進(jìn)行,減少設(shè)計(jì)過(guò)程的多次反復(fù),力求使產(chǎn)品開(kāi)發(fā)人員在設(shè)計(jì)一開(kāi)始就考慮到廠品整個(gè)生命周期中從概念形成到產(chǎn)品報(bào)廢處理的所有因素,從而最大限度地提高設(shè)計(jì)效率、降低生廠成本的設(shè)計(jì)

23、方法。 集成化設(shè)計(jì)的一個(gè)重要特征是:詳細(xì)用戶界面設(shè)計(jì)的整體方法(即框架)要在初期進(jìn)行開(kāi)發(fā)和測(cè)試。這是以用戶為中心的設(shè)計(jì)和其他單純的遞增技巧之間存在的重要差異。它確保此后各階段中進(jìn)行的遞增式設(shè)計(jì)能夠天衣無(wú)縫地適合框架,而且用戶界面在外觀、術(shù)語(yǔ)和概念上都能保持一致6 實(shí)習(xí)總結(jié)6.1 實(shí)習(xí)問(wèn)題總在這一段時(shí)間的實(shí)習(xí)中,學(xué)到一些關(guān)于程序調(diào)試的知識(shí),但是有感覺(jué)到什么也沒(méi)有學(xué)到一樣,可能對(duì)于vb的知識(shí)不夠好吧。反正學(xué)習(xí)vb也有兩年了,說(shuō)沒(méi)有學(xué)到什么又不能,最起碼對(duì)vb這個(gè)軟件的了解熟了,并且對(duì)于一些簡(jiǎn)單的程序是能夠編寫(xiě)出來(lái),英雌我的體會(huì)就是不是沒(méi)有學(xué)到,而是所做的練習(xí)較少以及實(shí)際操作少。我可能還有個(gè)原因是對(duì)

24、電腦的基本知識(shí)也少,因此對(duì)于vb差的原因也歸納與以上幾個(gè)方面。在編程過(guò)程中遇到了較多的問(wèn)題,解決問(wèn)題的過(guò)程是漫長(zhǎng)而艱苦的,然而在問(wèn)題得到解決的一剎那是很快樂(lè)。比如在調(diào)節(jié)一個(gè)程序的時(shí)候,當(dāng)在你不經(jīng)意的時(shí)候?qū)⒁粋€(gè)能夠運(yùn)行的程序改成了另一種方法來(lái)運(yùn)行,那么你的心里會(huì)感覺(jué)到無(wú)比的興奮。即使你也不知道是怎么改來(lái)的,但這也體現(xiàn)了你的堅(jiān)持以及一些基礎(chǔ),但是這樣的事情也只是很不可能的事情,因此以后還要加強(qiáng)對(duì)vb的學(xué)習(xí)。6.2 程序調(diào)試總結(jié)1、設(shè)計(jì)模塊和過(guò)程(1)模塊和過(guò)程是應(yīng)用程序代碼的框架,建立這樣的框架是應(yīng)進(jìn)行慎密的多方面的考慮(2)涉及術(shù)語(yǔ)過(guò)程:包括Sub過(guò)程,F(xiàn)unction過(guò)程和Property(屬

25、性)過(guò)程。是專門(mén)用于一個(gè)特定 進(jìn)程 的一串語(yǔ)句,過(guò)程可以擁有一組參數(shù),通過(guò)這些參數(shù)與程序的其他部分進(jìn) 行通信,也可以返回一個(gè)值,供程序的其他部分使用。Sub 過(guò)程:用關(guān)鍵字Sub 說(shuō)明的一種過(guò)程,不返回任何值。Function 過(guò)程:用關(guān)鍵字function 說(shuō)明的一種過(guò)程,返回相應(yīng)的值。Property 過(guò)程:用關(guān)鍵字Property、Get、 Property Let 或 Property Set 說(shuō)明的一種過(guò)程(3) 觀察是否出現(xiàn)了可以給過(guò)程分組的條件,然后就可以考慮為過(guò)程的分組,而創(chuàng)建新模通過(guò)創(chuàng)建專用模塊,能增強(qiáng)模塊的內(nèi)聚力。模塊的基本目的是創(chuàng)建相當(dāng)獨(dú)立的程序單元.(4) 盡量使過(guò)程成

26、為自成一體的獨(dú)立過(guò)程,除了盡量使過(guò)程成為專用過(guò)程外,還應(yīng)該盡量使之成為獨(dú)立的過(guò)程。應(yīng)該盡量減少過(guò)程之間的連接關(guān)系,方法之一是盡量減少全局變量和模塊級(jí)變量創(chuàng)建專用過(guò)程指導(dǎo)原則。(5)當(dāng)某個(gè)過(guò)程被許多其他過(guò)程調(diào)用(并且因此 許多其他過(guò)程依賴于他)時(shí),就說(shuō)明它是個(gè)高度扇入的過(guò)程,這是件好事。高度扇入的過(guò)程通常是封裝很好的過(guò)程,它支持代碼復(fù)用的思路。如果一個(gè)過(guò)程要調(diào)用許多其他過(guò)程,而它又 是個(gè)高度扇出的過(guò)程,那么情況就不那么好了,高度扇出意味著該過(guò)程要依賴于許多其他過(guò)程才能完成它的工作。(6)設(shè)計(jì)模塊和過(guò)程要達(dá)到的目的1. 創(chuàng)建更加容易調(diào)試和維護(hù)的過(guò)程,2. 創(chuàng)建具有強(qiáng)大內(nèi)聚力的模塊, 3. 創(chuàng)建高度

27、專用的過(guò)程,4. 創(chuàng)建松散連接的過(guò)程 5. 盡量使過(guò)程具有獨(dú)立性6. 提高過(guò)程的扇入性 7 . 降低過(guò)程的扇出性(7)編程原則 (1)使代碼更加容易理解,使程序工程的調(diào)試和維護(hù)工作大大改觀。方法: (1) 給過(guò)程命名時(shí)應(yīng)該大小寫(xiě)字母混合使用(2) 定義過(guò)程名時(shí)不使用縮寫(xiě)2、為每個(gè)過(guò)程賦予單個(gè)退出點(diǎn)優(yōu)點(diǎn):使過(guò)程更像是黑箱。代碼的執(zhí)行從一個(gè)門(mén)進(jìn)來(lái),代碼的退出則從另一個(gè)門(mén)出因此產(chǎn)生的錯(cuò)誤比較少,調(diào)試也不太難。方法:在每個(gè)過(guò)程中創(chuàng)建一個(gè)PROC_EXIT標(biāo)注。 在這個(gè)標(biāo)注下面,放入所有必要的清除代碼和一個(gè) 相應(yīng)的Exit語(yǔ)句(Exit Sub、Exit Function和Exit Property)。

28、每當(dāng)你需要退出該過(guò)程時(shí),只需加上一個(gè)GoTo PROC_Exit,而不必直接調(diào)用Exit命令。3、 為每個(gè)過(guò)程賦予明確定義的作用域作用域:工程中的變量或過(guò)程的可視性。創(chuàng)建過(guò)程 時(shí),始終都應(yīng)顯式地定義它的作用域。(8 用參數(shù)在過(guò)程之間傳遞數(shù)據(jù)(1)應(yīng)該盡量避免使用模塊級(jí)變量。(2)為了減少模塊級(jí)變量和全局變量,方法之一是將數(shù)據(jù)作為參數(shù)在不同過(guò)程之間傳遞而不是讓過(guò)程共享全局變量或模塊級(jí)變量。(3)為每個(gè)參數(shù)指定數(shù)據(jù)類型,創(chuàng)建帶有參數(shù)的過(guò)程時(shí),請(qǐng)務(wù)必將每個(gè)參數(shù)明確說(shuō)明為一個(gè)特定的數(shù)據(jù)類型。(4)根據(jù)情況傳遞數(shù)據(jù)ByVal或ByRef。(5)始終要對(duì)數(shù)進(jìn)行檢驗(yàn),決不要假設(shè)你的數(shù)據(jù)沒(méi)有問(wèn)題。(6)當(dāng)參數(shù)

29、只接受較小的一組值時(shí),請(qǐng)使用枚舉值。(7)使用統(tǒng)一和直觀明了的方式來(lái)調(diào)用過(guò)程(8)應(yīng)該避免省略call這種方法。(9)調(diào)用Sub過(guò)程時(shí)始終都要使用Call關(guān)鍵字。通過(guò)使用Call關(guān)鍵字,更容易將Sub調(diào)用與Function調(diào)用區(qū)分開(kāi)來(lái)(10)對(duì)于調(diào)試后進(jìn)行歸納總結(jié),以助更好的學(xué)習(xí)v7 附錄7.1 正算代碼1 水準(zhǔn)測(cè)量 累計(jì)高差和高差閉合差 tDist = tDist + dis(i) Next i totalDetH = 0 For i = 1 To nMarks 計(jì)算累計(jì)高差 totalDetH = totalDetH + detH(i) Next i 計(jì)算閉合差 startPoint =

30、Val(txtStartPoint.Text) endPoint = Val(txtEndPoint.Text) If optAnnex.Value Then 附合水準(zhǔn) closeDetH = (endPoint - startPoint) - totalDetH Else 閉合水準(zhǔn)和支水準(zhǔn) closeDetH = -totalDetH End If 檢查閉合差是否超限 If closeDetH 0.04 * Sqr(tDist) Then 采用40*Sqr(L)來(lái)計(jì)算,單位是毫米 MsgBox 閉合差超限,測(cè)量成果不合格!, , 閉合差超限 txtShowResult.Text = txtS

31、howResult.Text & 閉合差超限,測(cè)量成果不合格! Exit Sub Else MsgBox 閉合差合格,繼續(xù)計(jì)算轉(zhuǎn)點(diǎn)高程!, , 閉合差合格 End If Dim temp! temp = startPoint txtShowResult.Text = txtShowResult.Text & 平差后的高程為: & vbCrLf For i = 0 To nMarks temp = temp + detH(i) + closeDetH * dis(i) / tDist txtShowResult.Text = txtShowResult.Text & ( & Str(i) & )

32、: & Str(Format(temp, 0.000) & vbCrLf Next iEnd SubPrivate Sub cmdExit_Click() EndEnd SubPrivate Sub cmdInput_Click() 檢查輸入的幾個(gè)文本框:是否已經(jīng)輸入了 If txtStartPoint.Text = 0 Then MsgBox 還沒(méi)有輸入起始點(diǎn)高程! Exit Sub End If If txtEndPoint.Text = 0 And optAnnex.Value = True Then MsgBox 還沒(méi)有輸入終點(diǎn)高程! Exit Sub End If If txtBMN

33、um.Text = 0 And optAnnex.Value = True Then MsgBox 還沒(méi)有輸入測(cè)站數(shù)! Exit Sub End If frmInput.ShowEnd SubPrivate Sub optAnnex_Click() txtEndPoint.Enabled = optAnnex.ValueEnd SubPrivate Sub optClose_Click() txtEndPoint.Enabled = Not optClose.ValueEnd SubPrivate Sub optSpur_Click() txtEndPoint.Enabled = Not op

34、tSpur.ValueEnd SubPrivate Sub txtStartPoint_LostFocus() If Not IsNumeric(txtStartPoint.Text) Then MsgBox 輸入的高程含有非數(shù)字字符! txtStartPoint.Text = txtStartPoint.SetFocus Exit Sub End If If Val(txtStartPoint.Text) 5000 Or Val(txtStartPoint.Text) 5000 Or Val(txtEndPoint.Text) -100 Then MsgBox 輸入的高程有誤! txtEnd

35、Point.Text = txtEndPoint.SetFocus Exit Sub End If endPoint = Val(txtEndPoint.Text)End SubPrivate Sub txtBMNum_LostFocus() If Not IsNumeric(txtBMNum.Text) Then MsgBox 輸入的測(cè)站數(shù)含有非數(shù)字字符或尚未輸入! txtBMNum.Text = txtBMNum.SetFocus Exit Sub End If nMarks = Val(txtBMNum.Text) If txtBMNum.Text And (nMarks 20 Or n

36、Marks 500 Or Text7.Text 500 Or Text3.Text 30 Or Text4.Text 3 Or Text12.Text 3 Or Text16.Text -3 Then MsgBox 中絲超出誤差 End If Text17.Text = Val(Text15.Text) + Val(Text21.Text) - Val(Text11.Text) Text18.Text = (Val(Text11.Text) + Val(Text15.Text) + Val(Text21.Text) / 2 高差中數(shù)End Sub4 矩陣的相加 相減 相乘的編程O(píng)ption E

37、xplicitPublic R1%, R2%, C1%, C2% 兩個(gè)輸入矩陣的行數(shù)、列數(shù)Public m%, n%, s% 進(jìn)行運(yùn)算的矩陣大小,相乘時(shí)兩個(gè)矩陣為ms和sn,相加減、轉(zhuǎn)置時(shí)矩陣大小為mnPublic IsFirstMOperated As Boolean 是否當(dāng)前操作是對(duì)第一個(gè)矩陣進(jìn)行Public a() As Double, b() As Double, c() As Double 存放兩個(gè)被操作矩陣和結(jié)果矩陣Public Sub GetMatrix() Dim i%, j%, k% If IsFirstMOperated Then frmMain.txtResult.Tex

38、t = frmMain.txtResult.Text & 第一個(gè)矩陣的內(nèi)容為: & vbCrLf For i = 1 To R1 For j = 1 To C1 a(i, j) = Val(frmInput.txt(i - 1) * C1 + j) frmMain.txtResult.Text = frmMain.txtResult.Text & Str(a(i, j) & , Next j frmMain.txtResult.Text = frmMain.txtResult.Text & vbCrLf Next i Else frmMain.txtResult.Text = frmMain.

39、txtResult.Text & 第二個(gè)矩陣的內(nèi)容為: & vbCrLf For i = 1 To R2 For j = 1 To C2 b(i, j) = Val(frmInput.txt(i - 1) * C2 + j) frmMain.txtResult.Text = frmMain.txtResult.Text & Str(b(i, j) & , Next j frmMain.txtResult.Text = frmMain.txtResult.Text & vbCrLf Next i End IfEnd SubPublic Sub MatrixPlus() MsgBox 第一個(gè)矩陣尚

40、未輸入! Exit Sub End If If R2 1 Or C2 1 Then MsgBox 第二個(gè)矩陣尚未輸入! Exit Sub End If If R1 R2 Or C1 C2 Then MsgBox 輸入的兩個(gè)矩陣維數(shù)不等,不能相加! Exit Sub End If ReDim c(1 To m, 1 To n) As Double frmMain.txtResult.Text = frmMain.txtResult.Text & 兩個(gè)矩陣相加的結(jié)果為: & vbCrLf For i = 1 To m For j = 1 To n c(i, j) = a(i, j) + b(i,

41、j) frmMain.txtResult.Text = frmMain.txtResult.Text & Str(c(i, j) & , Next j frmMain.txtResult.Text = frmMain.txtResult.Text & vbCrLf On Error Resume Next C1 = UBound(a, 2) - LBound(a, 2) + 1 If Err Then MsgBox 第一個(gè)矩陣維數(shù)不對(duì)! Exit Sub End If On Error Resume Next C2 = UBound(b, 2) - LBound(b, 2) + 1 If Er

42、r Then MsgBox 第二個(gè)矩陣維數(shù)不對(duì)! Exit Sub End If R1 = UBound(a, 1) - LBound(a, 1) + 1 R2 = UBound(b, 1) - LBound(b, 1) + 1 If R1 R2 Or C1 C2 Then MsgBox 輸入的兩個(gè)矩陣維數(shù)不等,不能相加!End Sub If R1 1 Or C1 1 Then MsgBox 第一個(gè)矩陣尚未輸入! Exit Sub End If If R2 1 Or C2 1 Then MsgBox 第二個(gè)矩陣尚未輸入! Exit Sub End If If R1 R2 Or C1 C2 Th

43、en MsgBox 輸入的兩個(gè)矩陣維數(shù)不等,不能相減! Exit Sub End If ReDim c(1 To m, 1 To n) As Double frmMain.txtResult.Text = frmMain.txtResult.Text & 兩個(gè)矩陣相減的結(jié)果為: & vbCrLf For i = 1 To m For j = 1 To n c(i, j) = a(i, j) - b(i, j) frmMain.txtResult.Text = frmMain.txtResult.Text & Str(c(i, j) & , Next j frmMain.txtResult.Te

44、xt = frmMain.txtResult.Text & vbCrLf Next iEnd Sub矩陣相減的通用過(guò)程Public Sub MatrixMinus(a, b, c) Dim i%, j% Dim R1%, C1%, R2%, C2% On Error Resume Next C1 = UBound(a, 2) - LBound(a, 2) + 1 If Err Then MsgBox 第一個(gè)矩陣維數(shù)不對(duì)! Exit Sub End If On Error Resume Next C2 = UBound(b, 2) - LBound(b, 2) + 1 If Err Then MsgBox 第二個(gè)矩陣維數(shù)不對(duì)! Exit Sub End If R1 = UBound(a, 1) - LBound(a, 1) + 1 R2 = UBound(b, 1) - LBound(b, 1) + 1 If R1 R2 Or C1 C2 Then MsgBox 輸入的兩個(gè)矩陣維數(shù)不等,不能相減! Exit Sub Public Sub MatrixMulti

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝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ù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(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ì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論