![[畢業(yè)設(shè)計 論文 精品]基于excel表的附合導(dǎo)線計算程序_第1頁](http://file2.renrendoc.com/fileroot_temp3/2021-6/17/1c7f257e-07fc-42ee-aa3e-b5c114bb6f44/1c7f257e-07fc-42ee-aa3e-b5c114bb6f441.gif)
![[畢業(yè)設(shè)計 論文 精品]基于excel表的附合導(dǎo)線計算程序_第2頁](http://file2.renrendoc.com/fileroot_temp3/2021-6/17/1c7f257e-07fc-42ee-aa3e-b5c114bb6f44/1c7f257e-07fc-42ee-aa3e-b5c114bb6f442.gif)
![[畢業(yè)設(shè)計 論文 精品]基于excel表的附合導(dǎo)線計算程序_第3頁](http://file2.renrendoc.com/fileroot_temp3/2021-6/17/1c7f257e-07fc-42ee-aa3e-b5c114bb6f44/1c7f257e-07fc-42ee-aa3e-b5c114bb6f443.gif)
![[畢業(yè)設(shè)計 論文 精品]基于excel表的附合導(dǎo)線計算程序_第4頁](http://file2.renrendoc.com/fileroot_temp3/2021-6/17/1c7f257e-07fc-42ee-aa3e-b5c114bb6f44/1c7f257e-07fc-42ee-aa3e-b5c114bb6f444.gif)
![[畢業(yè)設(shè)計 論文 精品]基于excel表的附合導(dǎo)線計算程序_第5頁](http://file2.renrendoc.com/fileroot_temp3/2021-6/17/1c7f257e-07fc-42ee-aa3e-b5c114bb6f44/1c7f257e-07fc-42ee-aa3e-b5c114bb6f445.gif)
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認(rèn)領(lǐng)
文檔簡介
1、畢 業(yè) 設(shè) 計基于excel表的附合導(dǎo)線計算程序系 部: 測繪工程系 專業(yè)名稱: 工程測量 指導(dǎo)教師: 姓 名: 二一年十二月畢 業(yè) 設(shè) 計 (論文)評 定 表姓名 學(xué)號 存檔號 系別測繪工程系專業(yè)工程測量班 級80812畢業(yè)論文(設(shè)計)題目基于excel表的附合導(dǎo)線計算程序指導(dǎo)教師評語:簽名: 2010年 月 日 答辯委員會意見:簽名: 2010年 月 日 備注:畢業(yè)設(shè)計(論文)任務(wù)書 學(xué)生用表學(xué) 生姓 名 學(xué) 號 指導(dǎo)教師姓 名 教授系部測繪工程系畢業(yè)設(shè)計(論文)題目基于excel表的附合導(dǎo)線計算程序畢業(yè)設(shè)計(論文)要求:1、完成附和導(dǎo)線的excel計算程序的編寫2、輸入數(shù)據(jù)驗證程序的正確
2、性和可行性3、數(shù)據(jù)輸入計算4、論文格式完成期限和主要措施:2010.10.202010.10.31 論文選題,擬定設(shè)計(論文)計劃 (10天)2010.11.12010.11.20 整理資料,收集文獻,編寫提綱 (20天)2010.11.112010.11.20 準(zhǔn)備初稿,排版 (10天)2010.11.212010.11.30 撰寫論文,定稿 (10天)2010.12.12010.12.10 打印、投交論文為答辯作準(zhǔn)備 (10天)主要參考文獻:1 李孟山、張文彥編.工程測量概論.西安:西安地圖出版社,2004:160.179-180.2 美john walkenback著,excel2003
3、高級vba編程寶典電子工業(yè)出版社3 孔祥元 國家標(biāo)準(zhǔn)新版gb50026-2007 工程測量規(guī)范 武漢大學(xué)測繪學(xué)院指導(dǎo)教師簽名:年 月 日 目 錄摘 要2第1章 附合導(dǎo)線的概述31.1附合導(dǎo)線的簡介31.2附合導(dǎo)線的外業(yè)工作3第2章 附合導(dǎo)線的計算原理52.1附合導(dǎo)線的方位角計算公式52.2附合導(dǎo)線的坐標(biāo)計算公式5第3章 附合導(dǎo)線程序編制73.1 vba語言簡介73.2設(shè)計附合導(dǎo)線的excel表格83.3計算已知方位角93.4角度計算代碼編寫113.5坐標(biāo)計算代碼編寫203.6坐標(biāo)結(jié)果的計算與輸出21第4章 程序的應(yīng)用234.1附合導(dǎo)線計算程序的使用234.1.1程序使用說明234.2程序的驗證
4、244.2.1輸入已知條件244.2.1計算成果24第5章 全文總結(jié)26致謝27參考文獻28摘 要在測量工作中,導(dǎo)線測量占著重要地位,無論是鐵路測量、公路測量、橋梁測量還是地形圖測繪,導(dǎo)線的測量計算都是非常重要的環(huán)節(jié)。第1章主要介紹了附合導(dǎo)線的外業(yè)工作和精度要求;第2章介紹了附合導(dǎo)線的內(nèi)業(yè)計算;第3章主要介紹了利用excel編程語言vba對附合導(dǎo)線的計算;第4章介紹對excel程序的應(yīng)用和驗證。關(guān)鍵詞:vba;附合導(dǎo)線;excel;編程第1章 附合導(dǎo)線的概述1.1附合導(dǎo)線的簡介如圖1-1所示以高級控制點a為起始點,ba方向為起始方向,經(jīng)過若干個導(dǎo)線點后,附合到另外一個高級控制點c和已知方向cd
5、邊上,這種導(dǎo)線稱為附合導(dǎo)線。圖1-1附合導(dǎo)線示意圖1.2附合導(dǎo)線的外業(yè)工作(1)選點根據(jù)測區(qū)的地形情況選擇一定數(shù)量的導(dǎo)線點。在選點之前,應(yīng)收集測區(qū)已有的小比例尺地形圖和控制點的成果資料,然后在地形圖上擬定的布設(shè)方案,最后到野外進行實地踏勘,根據(jù)實地情況進行修改與調(diào)整,選定點位并建立標(biāo)志。若無地形圖可利用時,實地踏勘選點。(2)水平角觀測在附合導(dǎo)線中一般測量其左角,導(dǎo)線觀測角的精度要求見表1-1(3)邊長測量導(dǎo)線邊長測量可以用光電測距儀測定,也可以用鋼尺丈量。若用測距儀測定,應(yīng)測定導(dǎo)線邊的水平長度;若用鋼尺丈量,對一、二、三級導(dǎo)線,應(yīng)采用精密量距法進行丈量;對于圖根導(dǎo)線,則用一般方法往返進行丈量
6、,其相對誤差一般不得超過1/3000在特殊困哪地區(qū)也不得超過1/1000表1-1各級導(dǎo)線測量的主要技術(shù)指標(biāo)等級導(dǎo)線長度/km平均邊長/km測角中誤差測回數(shù)角度閉合差導(dǎo)線全長相對閉合差dj6dj2一級40.5542101/15000二級2.40.25831161/10000三級1.20.11221241/5000圖根1.0m1.5倍測圖最大視距20140(首級)40(一般)1/2000注:表中n為測角個數(shù);m為測圖比例尺分母。第2章 附合導(dǎo)線的計算原理2.1附合導(dǎo)線的方位角計算公式(1)角度與弧度轉(zhuǎn)換公式:弧度=度*/180+分*/(180*60)+秒*/(180*60*60) (2-1) (2
7、)坐標(biāo)計反算: (2-2) 當(dāng)在第一象限時=當(dāng)在第二象限時=+180當(dāng)在第三象限時=+180當(dāng)在第四象限時=+360(3)推算導(dǎo)線各邊的坐標(biāo)方位角: (2-3)(3)附合導(dǎo)線角度閉合差的計算: (2-4)(4)附合導(dǎo)線角度改正數(shù)的計算: (2-5) 注:觀測角度加上角度改正數(shù)即為改正后角度值。2.2附合導(dǎo)線的坐標(biāo)計算公式(1)坐標(biāo)閉合差的計算: (2-6)(2)坐標(biāo)增量的計算: (2-7)(3)x、y坐標(biāo)改正數(shù)的計算: (2-8) (4)坐標(biāo)的計算: (2-9) 注:、為改正后的坐標(biāo)增量值,第3章 附合導(dǎo)線程序編制3.1 vba語言簡介 vba(visual basic for applica
8、tion)語言簡介visual basic for applications(簡稱vba)是新一代標(biāo)準(zhǔn)宏語言,是基于visual basic for windows發(fā)展而來的。它與傳統(tǒng)的宏語言不同,傳統(tǒng)的宏語言不具有高級語言的特征,沒有面向?qū)ο蟮某绦蛟O(shè)計概念和方法。而vba提供了面向?qū)ο蟮某绦蛟O(shè)計方法,提供了相當(dāng)完整的程序設(shè)計語言。vba易于學(xué)習(xí)掌握,可以使用宏記錄器記錄用戶的各種操作并將其轉(zhuǎn)換為vba程序代碼。這樣用戶可以容易地將日常工作轉(zhuǎn)換為vba程序代碼,使工作自動化。因此,對于在工作中需要經(jīng)常使用office套裝軟件的用戶,學(xué)用vba有助于使工作自動化,提高工作效率。另外,由于vba可
9、以直接應(yīng)用office套裝軟件的各項強大功能,所以對于程序設(shè)計人員的程序設(shè)計和開發(fā)更加方便快捷。execl具有強大的運算功能,它能按照用戶的意圖進行各種復(fù)雜的運算(包括編寫公式、調(diào)用函數(shù)等)。vba是基于visual basic發(fā)展而來的,它們具有相似的語言結(jié)構(gòu)。visual basic是microsoft的主要圖形界面開發(fā)工具,vba 5.0 (亦即vba 97)則是visual basic 5.0的子集。visual basic是由basic發(fā)展而來的第四代語言。visual basic作為一套獨立的windows系統(tǒng)開發(fā)工具,可用于開發(fā)windows環(huán)境下的各類應(yīng)用程序,是一種可視化的、
10、面向?qū)ο蟮摹⒉捎檬录?qū)動方式的結(jié)構(gòu)化高級程序設(shè)計語言。它具有高效率、簡單易學(xué)及功能強大的特點。vb的程序語言簡單、便捷,利用其事件驅(qū)動的編程機制,新穎易用的可視化設(shè)計工具,并使用windows應(yīng)用程序接口(api)函數(shù),采用動態(tài)鏈接庫(dll)、動態(tài)數(shù)據(jù)交換(dde)、對象的鏈接與嵌入(ole)以及開放式數(shù)據(jù)庫訪問(odbc)等技術(shù),可以高效、快速地編制出windows環(huán)境下功能強大、圖形界面豐富的應(yīng)用軟件系統(tǒng)。visual basic程序很大一部分以可視(visual)形式實現(xiàn),這意味著在設(shè)計階段就可以看到程序運行的屏幕畫面,用戶可以在設(shè)計時能夠方便地改動畫面圖像、大小、顏色等,直到滿意為止
11、。vb的用戶可以是缺乏windows及c語言開發(fā)經(jīng)驗的專業(yè)軟件人員,也可以是具有一定windows開發(fā)經(jīng)驗的專業(yè)人員,vb的可視化編程方法使得原來繁瑣枯燥、令人生畏的windows應(yīng)用程序設(shè)計變得輕松自如、妙趣橫生。以往的windows應(yīng)用程序開發(fā)工具在設(shè)計圖形用戶界面時,都是采用編程的方法,并伴隨大量的計算任務(wù),一個大型應(yīng)用程序約有90%的程序代碼用來處理用戶界面,而且在程序設(shè)計過程中不能看到界面顯示的效果,只有在程序執(zhí)行時才能觀察到,如果界面效果不佳,還需要回到程序中去修改。visual basic提供了新穎的可視化設(shè)計工具,巧妙地將windows界面設(shè)計的復(fù)雜性封裝起來,程序開發(fā)人員不必
12、再為界面設(shè)計而編寫大量程序代碼,僅需采用現(xiàn)有工具按設(shè)計者要求的布局,在屏幕上畫出所需界面,并為各圖形對象設(shè)置屬性即可,vb自動產(chǎn)生界面設(shè)計代碼,這樣便將事先編制好的控件可視地連接到一起,構(gòu)成一個隨時可調(diào)整的界面。vba不但繼承了vb的開發(fā)機制,而且vba還具有與vb相似的語言結(jié)構(gòu),它們的集成開發(fā)環(huán)境ide(intergrated development environment)也幾乎相同。但是,經(jīng)過優(yōu)化,vba專門用于office的各應(yīng)用程序。vb可運行直接來自windows 95或nt桌面上的應(yīng)用程序,而vba的項目(project)僅由使用vba的excel、word、 powerpoin
13、t等稱為宿主(host)的office應(yīng)用程序(application)來調(diào)用。目前,隨著測繪技術(shù)的不斷發(fā)展,在一些小地區(qū)的大比例尺測圖中,做控制應(yīng)用較多的依然是導(dǎo)線測量的方法。在導(dǎo)線測量中,野外數(shù)據(jù)的采集用全站儀可以說方便快捷,但是其內(nèi)業(yè)的計算用手工卻比較麻煩,而且費時費力。而計算機的應(yīng)用解決了這一問題,本文就以vba語言來介紹附合導(dǎo)線的內(nèi)業(yè)計算。3.2設(shè)計附合導(dǎo)線的excel表格由于采用了excel的開發(fā)程序,所以采用的窗體是excel自身的經(jīng)典窗體,無需再去改動,這樣也更加方便用戶,只需在excel窗體上添加所需的空間就可以了。 圖 (3-1)excel導(dǎo)線計算的窗體3.3計算已知方位角
14、(1)已知控制點的填入 如圖(3-2)圖3-2附合導(dǎo)線方位角計算表注:紅色字體為輸入部分。(2)坐標(biāo)方位角弧度按公式(2-2)進行計算編寫程序 “=if(c4-c3)0,if(b4-b3)0,atan(c4-c3)/(b4-b3),atan(c4-c3)/(b4-b3)+2*3.1415926535),atan(c4-c3)/(b4-b3)+3.1415926535)”填入。如圖1-3圖3-3計算方位角公式的填入(3)將弧度轉(zhuǎn)換為度按公式(度=弧度*180/)分別在度、分、秒里填入公式度轉(zhuǎn)換:=int(g4/3.1415926*180),如圖3-4圖3-4度轉(zhuǎn)換公式填入分轉(zhuǎn)換:=int(g4/
15、3.1415926*180-d4)*60),如圖3-5圖3-5分轉(zhuǎn)換公式填入秒轉(zhuǎn)換:=int(g4/3.1415926*180-d4)*60-e4)*60),如圖3-6圖3-6秒轉(zhuǎn)換公式填入得到方位角計算結(jié)果如圖3-7圖3-7已知點方位角計算結(jié)果3.4角度計算代碼編寫代碼的編寫是在visual basic for application的代碼編輯器里編寫的,打開excel后按alt+f11便可以打開代碼編輯器。如圖3-8圖3-8 vba代碼編輯界面(1)首先在通用聲明部分定義兩個變量,n和i,n代表加密點的個數(shù),i是變量代表每一個加密點的點號,代碼如下:一個動態(tài)dim i as integer
16、將動態(tài)變量i定義為integer。(整型數(shù))dim n as long將變量n定義為long。(長整型)(2)編寫輸入加密點個數(shù)的代碼,按下此按鈕的的時候要求輸入加密點個數(shù),以便程序自動生成一個相應(yīng)的表格,為此按鈕編寫代碼如下:private sub commandbutton1_click()當(dāng)按鈕被按下的時候執(zhí)行sub過程。 n = inputbox(“請輸入個數(shù)”, “請輸入”)把用戶輸入inputbox的加密點的總個數(shù)賦值個變量n。sheet1.cells(7, 1) = “a”sheet1.cells(8, 1) = “b”sheet1.cells(7, 19) = “a”sheet
17、1.cells(8, 19) = “b”當(dāng)按鈕被按下的時候把“a、b”填入到指定的單元格里,sheet1.cells(7,8)代表該單元格的位置是第一個工作薄的第七列的第八行。for i = 0 to (n + 2)sheet1.cells(i + 9, 1) = i + 1sheet1.cells(i + 9, 19) = i + 1sheet1.cells(i + 6, 1).interior.colorindex = 4sheet1.cells(i + 6, 19).interior.colorindex = 4sheet1.cells(i + 8, 2).borders.linesty
18、le = 3sheet1.cells(i + 8, 3).borders.linestyle = 3sheet1.cells(i + 8, 4).borders.linestyle = 3sheet1.cells(i + 8, 12).borders.linestyle = 3next i通過fornext循環(huán)來創(chuàng)建我們需要的表格表格的大小取決于加密點的個數(shù)。sheet1.cells(n + 9, 1) = “c”sheet1.cells(n + 10, 1) = “d”sheet1.cells(n + 9, 1).interior.colorindex = 4sheet1.cells(n +
19、 10, 1).interior.colorindex = 4sheet1.cells(n + 9, 19) = “c”sheet1.cells(n + 10, 19) = “d”sheet1.cells(n + 9, 19).interior.colorindex = 4sheet1.cells(n + 10, 19).interior.colorindex = 4將“c、d”填入指定的單元格,并且指定該單元格的格式。sheet1.cells(n + 11, 1) = “總和”sheet1.cells(n + 11, 1).interior.colorindex = 0sheet1.cell
20、s(n + 11, 2).interior.colorindex = 0sheet1.cells(n + 11, 3).interior.colorindex = 0sheet1.cells(n + 11, 4).interior.colorindex = 0sheet1.cells(n + 11, 12).interior.colorindex = 0end sub通過以上代碼,就完成了對數(shù)據(jù)輸入的操作,只需要按下輸入按鈕,填入加密點個數(shù),就會生成相應(yīng)的附合導(dǎo)線計算表格如圖3-9圖3-9生成的附合導(dǎo)線計算表格(3)清除內(nèi)容,當(dāng)我們在做完一套計算的時候另存了數(shù)據(jù)以后,excel內(nèi)原先的數(shù)據(jù)并不
21、會自動消失,這就需要我們通過代碼來實現(xiàn),實現(xiàn)清除功能的代碼如下:private sub commandbutton2_click() 當(dāng)清除按鈕被按下的時候執(zhí)行以下代碼 range(“a7:s100”) = “”在單元格a7到s100范圍內(nèi)單元格內(nèi)值為空,也就是數(shù)清空單元格理得內(nèi)容。range(“a7:s100”).interior.colorindex = 0range(“a7:s100”).borders.linestyle = 0設(shè)置單元格的底色和邊框樣式。end sub(4)設(shè)計計算代碼。計算代碼的設(shè)計是根據(jù)倒顯得計算公式來的,下面就代碼和公式進行一步一步餓解析。導(dǎo)線的技術(shù)是由許多的計
22、算來完成的,為了便于程序的簡化,我把所有的計算代碼統(tǒng)統(tǒng)放到了一個“計算”按鈕下。private sub commandbutton3_click() 當(dāng)commandbutton3按鈕被按下時執(zhí)行以下的計算代碼。首先是定義參數(shù),由于外業(yè)觀測的角度值是度、分、秒格式的所以首先要對度分秒格式的數(shù)據(jù)進行處理。對度、分、秒的處理需要處理兩種格式一種是度的小數(shù)點形式,一種是弧度形式。度的小數(shù)點形式就是將分、秒換算成度。度的弧度形式就是將度分秒換算成弧度。具體步驟將在以下代碼中詳細講解。dim zhm as double: dim zhma as doubledim zhma1 as double: di
23、m zhf as doubledim zhfa as double: dim zhfa1 as doubledim zhd as double: dim zhda as doubledim zhda1 as double dim jlh as double dim jlh1 as doubledim zlx() as double: dim czly() as double dim zly() as double: dim czlx() as doubledim zlxh, zlyh, zlxh1, zlyh1, zlxh2, zlyh2, gxh, gyh as doubledim gzlx
24、() as double: dim gzly() as doubledim zbzx() as double: dim zbzy() as doubledim fbhc, czlxh, czlyh as doubledim jl() as double: dim m() as doubledim f() as double: dim d() as doubledim hudu() as double: dim fwj() as doubledim fr as doubledim fr1 as doubledim aab, acd, fpc as doubledim freenumb, bth,
25、 mini as double以上全部是定義的計算中會用到的參數(shù)具體含義為:zhm代表輸入的秒的總合,zhf代表輸入的分的總和,zhd代表輸入的度的總和,zhma1代表將秒換算為度的小數(shù)點形式的總和,zhfa1代表將分換算為度的小數(shù)形式的總和。jlh代表輸入的距離的總和。d()、f()、m()分別代表輸入的每一個度、分、秒,將其放入數(shù)組中,jl()代表輸入的距離將每一個距離放入到此數(shù)組中。if n = 0 thenmsgbox “請輸入加密點的個數(shù)”end ifif語句判斷輸入的加密點個數(shù)n是否為0,如果加密點個數(shù)為0執(zhí)行以上語句,彈出對話框,對話框現(xiàn)實內(nèi)容為“請輸入加密點的個數(shù)”。如果n不是
26、0那么執(zhí)行以下的if語句。if n 0 thenfreenumb = 99999freenumb是定義的一個極限數(shù)值,用來和輸入的距離進行比較最終找出輸入距離的最小值。redim fwj(i) as doubleredim m(i) as doubleredim f(i) as doubleredim d(i) as doubleredim jl(i) as doubleredim hudu(i) as double對定義的空數(shù)組進行重新定義。for i = 1 to (n + 2)m(i) = val(sheet1.cells(i + 7, 4) 將輸入的秒值給數(shù)組f(i) = val(sh
27、eet1.cells(i + 7, 3) 將輸入的分值給數(shù)組d(i) = val(sheet1.cells(i + 7, 2) 將輸入的度值給數(shù)組jl(i) = val(sheet1.cells(i + 8, 12) 將輸入的距賦值給數(shù)組if jl(i) 0 thenif jl(i) freenumb thenfreenumb = jl(i)mini = i + 8 判斷輸入的距離中的最小值end ifend ifzhm = zhm + m(i) 計算和zhf = zhf + f(i)zhd = zhd + d(i)jlh = jlh + jl(i)next i以上代碼是利用一個fornext
28、循環(huán)語句將輸入的距離和角度值賦值個我們定義的參數(shù)以便下一步利用參數(shù)來計算,其中嵌套的if語句是用來判斷輸入的距離最小值并且找到該最小值所在單元格的行數(shù)值賦值給mini。if jl(i) freenumb then當(dāng)?shù)趇個距離值小于極限數(shù)的時候freenumb = jl(i)將距離值賦值給freenumb,也就是說freenumb就有了新值,進入下一個循環(huán)后再進行比較,最終得到最小的值。zhm = zhm + m(i) zhf = zhf + f(i)zhd = zhd + d(i)jlh = jlh + jl(i)將單元格內(nèi)的度、分、秒和距離值累加起來賦值給一個參數(shù)以便下面的計算使用。zhma
29、1 = (zhma / 60 - int(zhma / 60) * 60zhfa1 = (zhfa + int(zhma / 60) / 60 - int(zhfa + int(zhma / 60) / 60) * 60zhda1 = zhda + int(zhfa + int(zhma / 60) / 60) 進行度分秒的換算sheet1.cells(n + 11, 4) = zhma1sheet1.cells(n + 11, 3) = zhfa1sheet1.cells(n + 11, 2) = zhda1sheet1.cells(n + 11, 12) = jlh1以上代碼是將累加起來的
30、度、分、秒對分、秒進行逢六十進一處理后在總和的那一行分別顯示出來。在excel中,默認(rèn)的是逢十進一,所以逢六十進一要通過我們編輯的邏輯計算來完成。具體是這樣的,參數(shù)除以六十得到的是一個證書部分和一個小數(shù)部分,取出整數(shù)部分加給上一級(如取出分的整數(shù)部分加給度)小數(shù)部分乘以六十留在本級(如分的小數(shù)部分乘以六十作為分)。由此就完成了度、分、秒的加減計算。(如圖3-10)圖3-10計算度、分、秒所得總和計算觀測角的閉合差。根據(jù)附合導(dǎo)線的閉合差公式(公式2-4)計算出觀測角的閉合差。aab = val(range(“i8”) + val(range(“j8”) / 60 + val(range(“k8”
31、) / 3600 計算閉合差acd = val(sheet1.cells(n + 10, 9) + val(sheet1.cells(n + 10, 10) / 60 + val(sheet1.cells(n + 10, 11) / 3600觀測的角度推算出的cd的方位角減去實際cd的方位角得到閉合差:fr = aab + (zhda1 + zhfa1 / 60 + zhma1 / 3600) - acd - 180 * (n + 2)參數(shù)fr就是計算得到的角度閉合差,理論上應(yīng)該是靈但是由于在測量中存在著誤差fr不為零。所以要將角度的閉合差分配到每個觀測角中。將計算的閉合差結(jié)果顯示出來如下代碼
32、在指定的單元格內(nèi)顯示出來sheet1.cells(n + 12, 1) = “附合差為:”sheet1.cells(n + 12, 2) = round(fr * 3600) & “”sheet1.cells(n + 13, 1) = “容許差為:”sheet1.cells(n + 13, 2) = “” & format(fr1, “0.00”) & “”if abs(fr) sheet1.cells(n + 9, 12) thenfreenumb = val(sheet1.cells(n + 9, 12)mini = n + 9end if 判斷觀測距離的最小值并且得到該值所在的行值。fp
33、c = fix(round(fr * 3600) / (n + 2) 平均分配差。for i = 1 to (n + 2)sheet1.cells(i + 7, 5) = 0 - fpcnext i將各角度的改正值顯示在指定單元格內(nèi)。根據(jù)以上的計算此時的參數(shù)mini已經(jīng)是最小的距離值所在的那個單元格的行數(shù),所以在此行角度的改正值要加上除去后的余數(shù)代碼如下:sheet1.cells(mini, 5) = (0 - fpc) - (round(fr * 3600) mod (n + 2)1. 推算各個方位角代碼的編寫:根據(jù)公式(2-3)來計算,由于我們采用的是左右所以就采用公式來計算。for i
34、= 1 to (n + 2)hudu(i) = (d(i) + f(i) / 60 + m(i) / 3600) + (val(sheet1.cells(i + 7, 5) / 3600)sheet1.cells(i + 7, 6) = int(hudu(i)sheet1.cells(i + 7, 7) = int(hudu(i) - int(hudu(i) * 60)sheet1.cells(i + 7, 8) = (hudu(i) - int(hudu(i) * 60 - int(hudu(i) - int(hudu(i) * 60) * 60next ifor i = 1 to (n +
35、 2)bth = bth + hudu(i)fwj(i) = aab - i * 180 + bthsheet1.cells(i + 8, 9) = int(fwj(i)sheet1.cells(i + 8, 10) = int(fwj(i) - int(fwj(i) * 60)sheet1.cells(i + 8, 11) = (fwj(i) - int(fwj(i) * 60 - int(fwj(i) - int(fwj(i) * 60) * 60next i通過以上代碼推算出了方位角fwj()并把他們顯示在指定的單元格內(nèi)。3.5坐標(biāo)計算代碼編寫計算坐標(biāo)增量根據(jù)公式(2-7)進行計算,在進
36、行此計算的時候要將方位角的換算成弧度值由于在上面的代碼中方位角已經(jīng)被處理成了度分秒的小數(shù)的形式所以在這里轉(zhuǎn)換為弧度只需要按公式(角度*/180)就可以了 。redim zlx(i) as doubleredim zly(i) as doublefor i = 1 to (n + 1)zlx(i) = format(jl(i) * cos(fwj(i) * (3.1415926 / 180), “0.000”)zly(i) = format(jl(i) * sin(fwj(i) * (3.1415926 / 180), “0.000”)zlxh = zlxh + zlx(i)zlyh = zly
37、h + zly(i)next i以上代碼就完成了對坐標(biāo)增量的計算,并且計算出了所有x、y增量的和。2. 坐標(biāo)增量的改正理論上通過推算得到的c點的坐標(biāo)應(yīng)該和已知的數(shù)據(jù)相同,但是由于測量誤差的存在得到的結(jié)果實際不同這就需要我們來對坐標(biāo)增量來進行調(diào)整。根據(jù)公式(2-8)對坐標(biāo)增量的改正計算按公式計算通過代碼來實現(xiàn)就是如下代碼:val(sheet1.cells(8, 17) / jlh) * jl(i)val(sheet1.cells(8, 18) / jlh) * jl(i)然后再把計算得到的改正值分配給坐標(biāo)增量由如下代碼來完成。redim gzlx(i) as doubleredim gzly(i
38、) as doubleredim zbzx(i) as doubleredim zbzy(i) as doubleredim czlx(i) as doubleredim czly(i) as doublefor i = 1 to (n + 1)czlx(i) = format(0 - (zlxh - (val(sheet1.cells(n + 9, 17) - val(sheet1.cells(8, 17) / jlh) * jl(i), “0.000”)czly(i) = format(0 - (zlyh - (val(sheet1.cells(n + 9, 18) - val(sheet
39、1.cells(8, 18) / jlh) * jl(i), “0.000”)gzlx(i) = zlx(i) + czlx(i)gzly(i) = zly(i) + czly(i)zlxh2 = zlxh2 + gzlx(i)zlyh2 = zlyh2 + gzly(i)gxh = gxh + gzlx(i)gyh = gyh + gzly(i)czlxh = czlxh + czlx(i)czlyh = czlyh + czly(i)3.6坐標(biāo)結(jié)果的計算與輸出通過以上代碼得到了改正后的坐標(biāo)值,得到改正后的坐標(biāo)值按公式(2-9)進行計算zbzx(i) = val(sheet1.cells(8
40、, 17) + zlxh2zbzy(i) = val(sheet1.cells(8, 18) + zlyh2sheet1.cells(i + 8, 13) = czlx(i) & vbcrlf & zlx(i)sheet1.cells(i + 8, 14) = czly(i) & vbcrlf & zly(i)sheet1.cells(i + 8, 15) = gzlx(i)sheet1.cells(i + 8, 16) = gzly(i)sheet1.cells(i + 8, 17) = zbzx(i)sheet1.cells(i + 8, 18) = zbzy(i)next ifbhc =
41、 (czlxh 2 + czlyh 2) 0.5sheet1.cells(n + 17, 1) = “閉合差為:”sheet1.cells(n + 17, 2) = format(fbhc, “0.00”)sheet1.cells(n + 18, 1) = “k=”sheet1.cells(n + 18, 2) = fbhc / jlhsheet1.cells(n + 11, 13) = zlxhsheet1.cells(n + 11, 14) = zlyhsheet1.cells(n + 11, 15) = gxhsheet1.cells(n + 11, 16) = gyhend ifend
42、 sub通過以上代碼完成了對坐標(biāo)的最終計算進過調(diào)試后程序運行正常。第4章 程序的應(yīng)用4.1附合導(dǎo)線計算程序的使用 4.1.1程序使用說明(1)計算已知點的坐標(biāo)方位角打開工作薄3如圖4-1圖4-1已知點方位角計算表在附合導(dǎo)線方位角計算表中輸入已知點的坐標(biāo)(黃色色區(qū)域)。(2)輸入加密點個數(shù)在附合導(dǎo)線的中,首先要輸入未知點的個數(shù)。打開excel計算程序,在數(shù)據(jù)輸入中輸入未知點的個數(shù)(如 圖4-2)圖4-3加密點個數(shù)輸入按鈕單擊“請輸入加密點個數(shù)”按鈕,彈出以下對話框(如圖4-4)圖4-4加密點個數(shù)輸入對話框輸入未知點的個數(shù)以后,程序會自動生成一個相應(yīng)的excel計算表格(如圖4-5)圖4-5自動生成的excel計算表格(3)輸入觀測角將觀測的角度值以度、分、秒的格式輸入到(如圖4-5)的“觀測角”所在列的虛線部分。(4)輸入導(dǎo)線長度將觀測得到的導(dǎo)線的長度輸入(如圖4-5)“距離/m”所在列的虛線部分。(5)輸入導(dǎo)線ab和導(dǎo)線cd的方位
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 中國人保商業(yè)險合同樣本
- 上海校服采購合同樣本
- 人才培訓(xùn)機構(gòu)合同樣本
- 倉儲合同標(biāo)準(zhǔn)文本 文庫
- pe膜采購合同樣本
- 三人合伙開店合同樣本
- enaa 合同標(biāo)準(zhǔn)文本
- 2024年CPBA考試常識回顧試題及答案
- 普惠保險面試題及答案
- 漢語言文學(xué)自考識記與理解練習(xí)試題及答案
- 班組工程量結(jié)算書
- 生產(chǎn)件批準(zhǔn)申請書
- 環(huán)境監(jiān)測考試知識點總結(jié)
- 爵士音樂 完整版課件
- 嘉興華雯化工 - 201604
- 冀教版七年級下冊數(shù)學(xué)課件 第8章 8.2.1 冪的乘方
- XX公司“十四五”戰(zhàn)略發(fā)展規(guī)劃及年度評價報告(模板)
- 計算機輔助設(shè)計(Protel平臺)繪圖員級試卷1
- 除法口訣表(完整高清打印版)
- 河北省城市建設(shè)用地性質(zhì)和容積率調(diào)整管理規(guī)定---精品資料
- 講課實錄-洛書時間數(shù)字分析法
評論
0/150
提交評論