測(cè)量程序設(shè)計(jì)報(bào)告_第1頁(yè)
測(cè)量程序設(shè)計(jì)報(bào)告_第2頁(yè)
測(cè)量程序設(shè)計(jì)報(bào)告_第3頁(yè)
測(cè)量程序設(shè)計(jì)報(bào)告_第4頁(yè)
測(cè)量程序設(shè)計(jì)報(bào)告_第5頁(yè)
已閱讀5頁(yè),還剩14頁(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、成績(jī) 環(huán)境與測(cè)繪工程學(xué)院課程論文學(xué)年學(xué)期: 2016-2017(一) 課程名稱: 測(cè)量程序設(shè)計(jì) 論文題目: 附合導(dǎo)線平差求解 姓 名: 胡慧茹 學(xué) 號(hào): 任課教師: 白洪偉 目錄一 實(shí)訓(xùn)目的.3二 實(shí)訓(xùn)任務(wù).3三 實(shí)訓(xùn)環(huán)境.43.1 硬件環(huán)境.43.2軟件環(huán)境.4四 項(xiàng)目設(shè)計(jì)與分析.54.1軟件基本界面.64.2 附合導(dǎo)線平差求解.74.3 高差求解.114.4 計(jì)算方位角.124.4.1 實(shí)訓(xùn)內(nèi)容.124.4.2 實(shí)現(xiàn)步驟設(shè)計(jì) .124.5 角度轉(zhuǎn)換.134.5.1 實(shí)訓(xùn)內(nèi)容.134.5.2 實(shí)現(xiàn)步驟設(shè)計(jì).134.6 計(jì)算坐標(biāo).14五 調(diào)用程序.15 1.導(dǎo)線.15 2.將度分秒轉(zhuǎn)換為度.1

2、6 3.將度分秒轉(zhuǎn)換為秒數(shù).17 4.將弧度轉(zhuǎn)化為度分秒.17 5.將角度轉(zhuǎn)換為弧度 .17 6.給定倆坐標(biāo),坐標(biāo)正y算方位角,返回的是以弧度為單位的角度.18六 實(shí)驗(yàn)心得.18一 實(shí)訓(xùn)目的(1)掌握C#窗體創(chuàng)建及其常用控件的選用和編程。進(jìn)一步提高編程能力,掌握對(duì)C#方法的調(diào)用,同時(shí)學(xué)會(huì)并運(yùn)用Microsoft Visual Studio2010軟件編輯C#語(yǔ)言程序。 (2)實(shí)訓(xùn)室由學(xué)校組織,利用課堂有限的時(shí)間掌握專業(yè)知識(shí)與運(yùn)用,結(jié)合課下空閑時(shí)間鞏固加強(qiáng)。學(xué)生在實(shí)訓(xùn)期間,以個(gè)人為單位完成項(xiàng)目,通過(guò)自己的不斷摸索,實(shí)訓(xùn)可以學(xué)到課堂上學(xué)不到的知識(shí),可以將學(xué)到的知識(shí)靈活運(yùn)用起來(lái)。 (3)在實(shí)訓(xùn)的過(guò)程

3、中,可以讓學(xué)生樹(shù)立明確的學(xué)習(xí)態(tài)度,擁有良好的職業(yè)素養(yǎng),鍛煉扎實(shí)的職業(yè)技能,塑造堅(jiān)定的職業(yè)人生,也為選擇考研深造的同學(xué)提供鍛煉的機(jī)會(huì)。 (4)C#是當(dāng)今社會(huì)中發(fā)展速度迅猛的一種語(yǔ)言,所以企業(yè)公司對(duì)于人員的要求也不斷提高,與測(cè)繪相關(guān)的職業(yè)也需要具備編程知識(shí)的人員,通過(guò)實(shí)訓(xùn)激發(fā)自身潛力,提高自身修養(yǎng),掌握編程語(yǔ)言,養(yǎng)成良好的編程習(xí)慣,為以后的求職生涯添上一塊“敲門(mén)磚”。 (5)利用Microsoft Visual Studio2010軟件設(shè)計(jì)窗體應(yīng)用程序并完成“附合導(dǎo)線平差”程序設(shè)計(jì),其中包括登錄界面、主界面、角弧轉(zhuǎn)換界面和距離及方位角計(jì)算等界面。 二 實(shí)訓(xùn)任務(wù) (1)軟件基本界面軟件的基本界面包登

4、錄界面和主界面,主界面里面為附合導(dǎo)線平差求解,在菜單欄的小工具中包高差求解、角度轉(zhuǎn)換和坐標(biāo)求解。(2)附合導(dǎo)線平差求解在一條雙定向附合導(dǎo)線中,已知端點(diǎn)四點(diǎn)坐標(biāo),若干左角和邊長(zhǎng),求其中各點(diǎn)坐標(biāo)。(3)高差求解用全站儀在一點(diǎn)觀測(cè)了另一點(diǎn)斜邊和垂直角,求兩點(diǎn)的高差。(4)計(jì)算方位角方位角的取值為0-360度。(5)角度轉(zhuǎn)換將輸入的角度轉(zhuǎn)換為弧度或弧度轉(zhuǎn)換為角度。(6)計(jì)算坐標(biāo)已知兩點(diǎn)中一點(diǎn)的坐標(biāo)、距離及方位角,求另一點(diǎn)的坐標(biāo)。三 實(shí)訓(xùn)環(huán)境3.1 硬件環(huán)境硬件環(huán)境是計(jì)算機(jī)及其外圍設(shè)備組成的計(jì)算機(jī)物理系統(tǒng),即硬件設(shè)施,是指由傳播活動(dòng)所需要的那些物質(zhì)條件、有形條件之和構(gòu)筑而成的環(huán)境。硬件環(huán)境主要是由計(jì)算機(jī)

5、的硬件組成的,而計(jì)算機(jī)硬件是指計(jì)算機(jī)系統(tǒng)中由電子、機(jī)械和光電元件等組成的各種物理裝置的總稱。這些物理裝置系統(tǒng)按系統(tǒng)結(jié)構(gòu)的要求構(gòu)成一個(gè)有機(jī)整體為計(jì)算機(jī)軟件運(yùn)行提供物質(zhì)基礎(chǔ)。簡(jiǎn)而言之,計(jì)算機(jī)硬件的功能是輸入并存儲(chǔ)程序和數(shù)據(jù),以及執(zhí)行程序把數(shù)據(jù)加工成可以利用的形式。從外觀上來(lái)看,微機(jī)由主機(jī)箱和外部設(shè)備組成。主機(jī)箱內(nèi)主要包CPU、內(nèi)存、主板、硬盤(pán)驅(qū)動(dòng)器、光盤(pán)驅(qū)動(dòng)器、各種擴(kuò)展卡、連接線、電源;外部設(shè)備包鼠標(biāo)、鍵盤(pán)、顯示器、音箱等,這些設(shè)備通過(guò)接口和連接線與主機(jī)相連。這些都是構(gòu)成硬件的主要部分。對(duì)于C#面向?qū)ο蟮能浖?lái)說(shuō),所需的硬件環(huán)境,要求其實(shí)不是很高,安裝Visual Studio 2010時(shí)的所需的

6、必備條件如表1:表1 安裝Visual Studio 2010所需的必備條件硬件描述處理器600MHz處理器,建議使用1GHz處理器RM192MB,建議使用256MB內(nèi)存可用硬盤(pán)空間如果不安裝MSDH,系統(tǒng)驅(qū)動(dòng)器上需要1GB的可用空間,安裝驅(qū)動(dòng)起上需要2GB的可用空間;如果安裝MSDHL,則系統(tǒng)驅(qū)動(dòng)上需要1GB的可用空間,安裝完整MSDH的安裝驅(qū)動(dòng)器上需要3.8GB的可用空間,默認(rèn)安裝MSDH的安裝驅(qū)動(dòng)器上需要2.8GB的可用空間。CD-ROM或DVD-ROM驅(qū)動(dòng)器必須使用顯示器800600,256色,建議使用1024768,增強(qiáng)色16位鼠標(biāo)微軟鼠標(biāo)或兼容的指針設(shè)備操作系統(tǒng)及所需補(bǔ)丁Windo

7、ws 2000 Service Pack 4、Windows XP Service Pack 2、Windows Server 2003、Service Pack 1或更高版本 3.2軟件環(huán)境 軟件環(huán)境是指由傳播活動(dòng)所需要的那些非物質(zhì)條件、無(wú)形條件之和構(gòu)筑而成的環(huán)境。只要指軟件的運(yùn)行環(huán)境以軟件運(yùn)行所需要的周邊軟件等等,除此之外,還包括目的軟件之外的應(yīng)用層軟件,在涉及軟件交互的時(shí)候,這些應(yīng)用軟件往往影響很大。實(shí)訓(xùn)中,我們使用VS集成環(huán)境來(lái)實(shí)現(xiàn)對(duì)于C#程序的運(yùn)行。Visual Studio是微軟公司推出的開(kāi)發(fā)環(huán)境,是目前最流行的Windows平臺(tái)應(yīng)用程序開(kāi)發(fā)環(huán)境。Visual Studio 201

8、0版本于2010年4月12日上市,其集成開(kāi)發(fā)環(huán)境(IDE)的界面被重新設(shè)計(jì)和組織,變得更加簡(jiǎn)單和明了。Visual Studio 2010同時(shí)帶來(lái)了NET Framework 4.0、Microsoft Visual Studio 2010 CTP,并且支持開(kāi)發(fā)面向windows7的應(yīng)用程序。Visual Studio是開(kāi)發(fā).NET應(yīng)用程序的一套完整的開(kāi)發(fā)工具集,集設(shè)計(jì)、編輯、運(yùn)行和調(diào)試等多種功能于一體的集成開(kāi)發(fā)環(huán)境(IDE)。Visual Studio支持四種內(nèi)置的開(kāi)發(fā)語(yǔ)言:Visual Basic、Visual C+、Visual C#和Visual J#,他們使用相同的集成開(kāi)發(fā)環(huán)境,因而

9、有助于創(chuàng)建混合語(yǔ)言解決方案。使用Visual Studio可以高效的生成各種ASP.NET web應(yīng)用程序、XML Web Services,桌面應(yīng)用程序和移動(dòng)應(yīng)用程序。使用Visual Studio集成開(kāi)發(fā)環(huán)境可以快捷高效的開(kāi)發(fā)Windows窗體應(yīng)用程序。Visual Studio是我們學(xué)習(xí)C#必不可少的應(yīng)用環(huán)境,實(shí)訓(xùn)時(shí),我們對(duì)于Visual Studio的應(yīng)用更加熟練了,也對(duì)Visual Studio有了各方面的了解。四 項(xiàng)目設(shè)計(jì)與分析4.1軟件基本界面 圖1 程序設(shè)計(jì)本程序名為“程序設(shè)計(jì)”,登錄界面如圖1,用戶名為“”,密碼為“胡慧茹”。雙擊“確定”,為了實(shí)現(xiàn)賬戶名密碼登錄輸入一下程序:

10、 private void button1_Click(object sender, Eventrgs e) string = textBox1.Text; string b = textBox2.Text; if ( = & b = 胡慧茹) this.Hide(); 附合導(dǎo)線平差求解frm2 = new 附合導(dǎo)線平差求解(); frm2.Show(); 具體步驟: 文件,新建項(xiàng)目,windows應(yīng)用窗體程序,添加兩個(gè)label控件,兩個(gè)textbox控件,兩個(gè)button,右鍵屬性修改控件的name和text的名稱。 主界面如圖2,主界面是附合導(dǎo)線平差求解,菜單欄中包“文件(打開(kāi)、另存為)

11、”、“小工具(角度轉(zhuǎn)換、高差求解、計(jì)算坐標(biāo)和計(jì)算方位角)”和“幫助(示意圖)”。 圖2 主界面示意圖4.2 附合導(dǎo)線平差求解 新建windows窗體命名為附和導(dǎo)線平差,添加五個(gè)label控件,十一個(gè)textbox控件,三個(gè)button控件,一個(gè)pictureBox控件,一個(gè)openFileDialog,一個(gè) saveFileDialog右鍵屬性修改控件的name和text的名稱。 圖3 附合導(dǎo)線示意圖 圖4 附合導(dǎo)線平差求解在菜單欄中選擇“文件”“打開(kāi)”,導(dǎo)入文件夾中“附合導(dǎo)線實(shí)例數(shù)據(jù)”,點(diǎn)擊“平差.txt”,就得出如圖4的結(jié)果,點(diǎn)擊“另存為”,可以將結(jié)果以“.txt”格式保存,命名為“附合導(dǎo)

12、線輸出數(shù)據(jù)實(shí)例”。 新建一個(gè)Windows應(yīng)用程序命名為“附合導(dǎo)線平差求解”,并設(shè)計(jì)窗口,雙擊“平差”,編寫(xiě)如下代碼:private void button1_Click(object sender, EventArgs e) double Mx = Convert.ToDouble(textBox1.Text); double My = Convert.ToDouble(textBox2.Text); double Ax = Convert.ToDouble(textBox3.Text); double Ay = Convert.ToDouble(textBox4.Text); double

13、 Nx = Convert.ToDouble(textBox5.Text); double Ny = Convert.ToDouble(textBox6.Text); double Bx = Convert.ToDouble(textBox7.Text); double By = Convert.ToDouble(textBox8.Text); /計(jì)算M到A的方位角 double 0 = 導(dǎo)線.方位角(Mx, My, Ax, Ay); /計(jì)算B到N的方位角 double 1 = 導(dǎo)線.方位角(Bx, By, Nx, Ny); List 坐標(biāo)增量X集合 = new List(); List 坐標(biāo)

14、增量Y集合 = new List(); List 水平距離平方集合 = new List(); List 方位角集合 = new List(); double 坐標(biāo)增量X和 = 0; double 坐標(biāo)增量Y和 = 0; double 坐標(biāo)增量X絕對(duì)值和 = 0; double 坐標(biāo)增量Y絕對(duì)值和 = 0; double 水平距離和 = 0; double 水平距離平方和 = 0; double = 0; /ArrayList pj_spj = new ArrayList(256); string st = textBox9.Text; string array = st.Split(n);

15、int pj; int spj; /int n; /for (n = 0; n 10000; ) / / if (aArrayn != ) / / n+; / / else break; / for (pj = 0, spj =1; spj 6; ) string str = arraypj; double S = double.Parse(str); string sd = arrayspj; double sd1 = double.Parse(sd); double = 導(dǎo)線.DEG(sd1); 水平距離平方集合.Add(S * S); 水平距離平方和 += S * S; double d

16、x, dy; = 導(dǎo)線.坐標(biāo)(0, 0, , S, , out dx, out dy); 方位角集合.Add(); 坐標(biāo)增量X集合.Add(dx); 坐標(biāo)增量Y集合.Add(dy); 坐標(biāo)增量X和 += dx; 坐標(biāo)增量Y和 += dy; 坐標(biāo)增量X絕對(duì)值和 += Math.Abs(dx); 坐標(biāo)增量Y絕對(duì)值和 += Math.Abs(dy); pj += 2; spj += 2; /int number = pj.Capacity; /pj.TrimtoSize(); double LJ = Convert.ToDouble(textBox13.Text); double n = 導(dǎo)線.DE

17、G(LJ); /推算B到N的方位角 double BN = 導(dǎo)線.方位角(方位角集合方位角集合.Count - 1, n); /計(jì)算方位角閉合差 double 方位角閉合差 = BN - 1; textBox10.Text = Convert.ToString(方位角閉合差); double 方位角改正數(shù) = -方位角閉合差 / (方位角集合.Count + 1); /先對(duì)角度進(jìn)行平差計(jì)算,并重新計(jì)算坐標(biāo)增量 坐標(biāo)增量X集合.Clear(); 坐標(biāo)增量Y集合.Clear(); 坐標(biāo)增量X和 = 0; 坐標(biāo)增量Y和 = 0; 坐標(biāo)增量X絕對(duì)值和 = 0; 坐標(biāo)增量Y絕對(duì)值和 = 0; for (

18、int j = 0; j 方位角集合.Count; j+) 方位角集合j += 方位角改正數(shù) * (j + 1); /計(jì)算坐標(biāo)增量 double 平距 = Math.Sqrt(水平距離平方集合j); double dx = 平距 * Math.Cos(方位角集合j); double dy = 平距 * Math.Sin(方位角集合j); 坐標(biāo)增量X集合.Add(dx); 坐標(biāo)增量Y集合.Add(dy); 坐標(biāo)增量X和 += dx; 坐標(biāo)增量Y和 += dy; 坐標(biāo)增量X絕對(duì)值和 += Math.Abs(dx); 坐標(biāo)增量Y絕對(duì)值和 += Math.Abs(dy); /計(jì)算閉合差 double

19、閉合差X = Ax + 坐標(biāo)增量X和 - Bx; textBox11.Text = Convert.ToString(閉合差X); double 閉合差Y = Ax + 坐標(biāo)增量Y和 - By; textBox12.Text = Convert.ToString(閉合差Y); /計(jì)算單位長(zhǎng)度改正數(shù) double X坐標(biāo)單位長(zhǎng)度改正數(shù) = -閉合差X / 坐標(biāo)增量X絕對(duì)值和; double Y坐標(biāo)單位長(zhǎng)度改正數(shù) = -閉合差Y / 坐標(biāo)增量Y絕對(duì)值和; /計(jì)算導(dǎo)線相對(duì)精度 int f = (int)(水平距離和 / Math.Sqrt(閉合差X * 閉合差X + 閉合差Y * 閉合差Y); Co

20、nsole.WriteLine(導(dǎo)線的相對(duì)精度為1/0, f); /計(jì)算每點(diǎn)坐標(biāo) double X = Ax; double Y = Ay; List 坐標(biāo)x = new List(); List 坐標(biāo)y = new List(); for (int j = 0; j = 360.0) 方位角 -= 360.0; if (方位角 = Math.PI * 2) 方位角 -= Math.PI; if (方位角 0.) angle = Math.tn2(deltY, deltX); if (angle 0) angle += Math.PI; if (deltY = Math.PI * 2) 方位角

21、 -= Math.PI * 2; if (方位角 = Math.PI * 2) 方位角 -= Math.PI * 2; if (方位角 60) a = 0; f = f + 1; if (f = 60) f = 0; d = d + 1; a = d + f / 100.0 + a / 10000.0; return a; 5.將角度轉(zhuǎn)換為弧度 public class j_h public double JIAO_HUDU(double jiao) int d = (int)(Math.Floor(jiao); jiao = jiao - d; int f = (int)(Math.Floor(jiao * 100.0); jiao = jiao * 100 - f; double m = jiao * 100.0; jiao = d * 3600.0 + f * 60.0 + m; double hudu = jiao / .3; return hudu; 6.給定倆坐標(biāo),坐標(biāo)正y算方位角,返回的是以弧度為單位的角度 public class fwj publ

溫馨提示

  • 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)論