




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領
文檔簡介
1、精選優(yōu)質(zhì)文檔-傾情為你奉上常用測量程序設計(1)用全站儀在A點觀測了B點斜邊和垂直角,求A到B的高差。(提示:,D-斜邊,-垂直角,-儀器高,-反光鏡高,-大氣折光系數(shù))using System;using System.Collections.Generic;using System.Text;namespace ConsoleApplication1 class Application static void Main(string args) Console.Write("請輸入斜邊="); double D = double.Parse(Console.ReadLi
2、ne(); Console.Write("請輸入垂直角ddd.mmss="); double a = DEG(double.Parse(Console.ReadLine(); Console.Write("請輸入儀器高="); double i = double.Parse(Console.ReadLine(); Console.Write("請輸入反光鏡高="); double v = double.Parse(Console.ReadLine(); double h = D * Math.Sin(a) + (1 - 0.13) *
3、 D / .0 * D / .0 * Math.Cos(a) * Math.Cos(a) / 2.0 + i - v; Console.WriteLine("高差為0",h); /將ddd.mmss轉(zhuǎn)為弧度 static public double DEG(double ang) int fuhao = (int)(ang / Math.Abs(ang); ang = Math.Abs(ang); int d = (int)ang; int m = (int)(ang * 100) - d * 100; double s = ang * 10000 - m * 100 -
4、d * 10000; return (d + m / 60.0 + s / 3600.0) * fuhao) / 180.0 * Math.PI; (2)如圖所示,已知A點的坐標及A點到B點的邊長及方位角,計算B點的坐標。using System;using System.Collections.Generic;using System.Text;namespace ConsoleApplication1 class Application static void Main(string args) Console.Write("請輸入A點的X坐標="); double X
5、A = double.Parse(Console.ReadLine(); Console.Write("請輸入A點的Y坐標="); double YA = double.Parse(Console.ReadLine(); Console.Write("請輸入A到B的方位角ddd.mmss="); double a = DEG(double.Parse(Console.ReadLine(); Console.Write("請輸入A到B的水平距離="); double S = double.Parse(Console.ReadLine()
6、; double XB = XA + S*Math.Cos(a); double YB = YA + S*Math.Sin(a); Console.WriteLine("B點的坐標(0,1)",XB,YB); /將ddd.mmss轉(zhuǎn)為弧度 static public double DEG(double ang) int fuhao = (int)(ang / Math.Abs(ang); ang = Math.Abs(ang); int d = (int)ang; int m = (int)(ang * 100) - d * 100; double s = ang * 10
7、000 - m * 100 - d * 10000; return (d + m / 60.0 + s / 3600.0) * fuhao) / 180.0 * Math.PI; (3)如圖所示,已知A點和B點的坐標,計算A點到的邊長及方位角。using System;using System.Collections.Generic;using System.Text;namespace ConsoleApplication1 class Application static void Main(string args) Console.Write("請輸入A點的X坐標="
8、); double XA = double.Parse(Console.ReadLine(); Console.Write("請輸入A點的Y坐標="); double YA = double.Parse(Console.ReadLine(); Console.Write("請輸入B點的X坐標="); double XB = double.Parse(Console.ReadLine(); Console.Write("請輸入B點的Y坐標="); double YB = double.Parse(Console.ReadLine();
9、double S = 距離(XA, YA, XB, YB); double a = 方位角(XA, YA, XB, YB); Console.WriteLine("AB間的距離=0,從A到B的方位角=1",S,DMS(a); /將弧度轉(zhuǎn)為ddd.mmss static public double DMS(double ang) ang += 1.0E-15;/加上一個小量,以保證進位 int fuhao = (int)(ang / Math.Abs(ang); ang = Math.Abs(ang) * 180.0 / Math.PI; int d = (int)ang;
10、ang = (ang - d) * 60.0; int m = (int)ang; double s = (ang - m) * 60.0; return (d + m / 100.0 + s / 10000.0) * fuhao; /計算方位角,返回弧度值 public static double 方位角(double x1, double y1, double x2, double y2) double deltaX = x2 - x1; double deltaY = y2 - y1; double angle = Math.PI * 0.5; if (Math.Abs(deltaX)
11、> 0.) angle = Math.Atan2(deltaY, deltaX); if (angle < 0) angle += Math.PI; if (deltaY < 0.0) angle += Math.PI; return angle; /計算距離 public static double 距離(double x1, double y1, double x2, double y2) return Math.Sqrt(x2 - x1) * (x2 - x1) + (y2 - y1) * (y2 - y1); (4)在如圖所示的支中導線,已知A點到M點的坐標方位角及每
12、個左角,求每條邊的坐標方位角。using System;using System.Collections.Generic;using System.Text;namespace ConsoleApplication1 class Application static void Main(string args) Console.Write("請輸入A點到M點的坐標方位角="); /將A點到M點的坐標方位角換算為M點到A點的坐標方位角,以便利用公式 double a0 = DEG(double.Parse(Console.ReadLine() +180.0); if (a0
13、> 2 * Math.PI) a0 -= 2 * Math.PI; List<double> 導線轉(zhuǎn)角集合 = new List<double>(); int i = 1; do Console.Write("請輸入第0個轉(zhuǎn)角的水平角左角為正,右角為負 <直接回車結(jié)束輸入>=",i+); string str = Console.ReadLine(); if (str != "") 導線轉(zhuǎn)角集合.Add(DEG(double.Parse(str); else break; while (true); i = 1;
14、 foreach (double a in 導線轉(zhuǎn)角集合) a0 += a + Math.PI; if (a0 > 2 * Math.PI) a0 -= 2 * Math.PI; else if (a0 < 0.0) a0 += 2 * Math.PI; Console.WriteLine("第0條邊的方位角為1",i+,DMS(a0); /將弧度轉(zhuǎn)為ddd.mmss static public double DMS(double ang) ang += 1.0E-15;/加上一個小量,以保證進位 int fuhao = (int)(ang / Math.Abs
15、(ang); ang = Math.Abs(ang) * 180.0 / Math.PI; int d = (int)ang; ang = (ang - d) * 60.0; int m = (int)ang; double s = (ang - m) * 60.0; return (d + m / 100.0 + s / 10000.0) * fuhao; /將ddd.mmss轉(zhuǎn)為弧度 static public double DEG(double ang) int fuhao = (int)(ang / Math.Abs(ang); ang = Math.Abs(ang); int d =
16、 (int)ang; int m = (int)(ang * 100) - d * 100; double s = ang * 10000 - m * 100 - d * 10000; return (d + m / 60.0 + s / 3600.0) * fuhao) / 180.0 * Math.PI; (5)在如圖所示的支中導線,已知A點和M點的坐標及每個左角和每條邊長,求每個點的坐標。using System;using System.Collections.Generic;using System.Text;namespace ConsoleApplication1 class A
17、pplication static void Main(string args) Console.Write("請輸入M點的x坐標="); double Mx = double.Parse(Console.ReadLine(); Console.Write("請輸入M點的y坐標="); double My = double.Parse(Console.ReadLine(); Console.Write("請輸入A點的x坐標="); double Ax = double.Parse(Console.ReadLine(); Console
18、.Write("請輸入A點的y坐標="); double Ay = double.Parse(Console.ReadLine(); List<double> 導線轉(zhuǎn)角集合 = new List<double>(); List<double> 導線邊長集合 = new List<double>(); int i = 1; do Console.Write("請輸入第0個轉(zhuǎn)角的水平角左角為正,右角為負<直接回車結(jié)束輸入>=",i); string str = Console.ReadLine();
19、 if (str != "") 導線轉(zhuǎn)角集合.Add(DEG(double.Parse(str); else break; Console.Write("請輸入第0條邊長值=", i+); 導線邊長集合.Add( double.Parse(Console.ReadLine(); while (true); /計算M到A的坐標方位角 double a0 = 方位角(Mx, My, Ax, Ay); /計算每個點的坐標 double x0 = Ax; double y0 = Ay; for (int j = 0; j < 導線轉(zhuǎn)角集合.Count; j
20、+) a0 += 導線轉(zhuǎn)角集合j + Math.PI; if (a0 > 2 * Math.PI) a0 -= 2 * Math.PI; x0 = x0 + 導線邊長集合j * Math.Cos(a0); y0 = y0 + 導線邊長集合j * Math.Sin(a0); Console.WriteLine("P0點的坐標是:1,2",j+2,x0,y0); /將ddd.mmss轉(zhuǎn)為弧度 static public double DEG(double ang) int fuhao = (int)(ang / Math.Abs(ang); ang = Math.Abs(
21、ang); int d = (int)ang; int m = (int)(ang * 100) - d * 100; double s = ang * 10000 - m * 100 - d * 10000; return (d + m / 60.0 + s / 3600.0) * fuhao) / 180.0 * Math.PI; /計算方位角,返回弧度值 public static double 方位角(double x1, double y1, double x2, double y2) double deltaX = x2 - x1; double deltaY = y2 - y1;
22、 double angle = Math.PI * 0.5; if (Math.Abs(deltaX) > 0.) angle = Math.Atan2(deltaY, deltaX); if (angle < 0) angle += Math.PI; if (deltaY < 0.0) angle += Math.PI; return angle; (6)在如圖所示的單一附合水準路線中,已知A點和B點的高程及每段的長度和高差,求每個點的高程。using System;using System.Collections.Generic;using System.Text;nam
23、espace ConsoleApplication1 class Application static void Main(string args) Console.Write("請輸入A點的高程="); double Ha = double.Parse(Console.ReadLine(); Console.Write("請輸入B點的高程="); double Hb = double.Parse(Console.ReadLine(); List<double> 路線段長度集合 = new List<double>(); List
24、<double> 路線段高差集合 = new List<double>(); int i = 1; do Console.Write("請輸入第0段長度公里為單位<直接回車結(jié)束輸入>=",i); string str = Console.ReadLine(); if (str != "") 路線段長度集合.Add(double.Parse(str); else break; Console.Write("請輸入第0段高差=", i+); 路線段高差集合.Add(double.Parse(Consol
25、e.ReadLine(); while (true); /計算水準路線閉合差 double w = 0; double 總長度 = 0; for (int j = 0; j < 路線段長度集合.Count; j+) w += 路線段高差集合j; 總長度 += 路線段長度集合j; w = w - (Hb - Ha); /閉合差 double v = -w / 總長度; /每公里改正數(shù) /計算每個點的高程 double H = Ha; for (int j = 0; j < 路線段長度集合.Count; j+) H += 路線段高差集合j + v * 路線段長度集合j; Console
26、.WriteLine("P0點的高程是:1",j+1,H); Console.WriteLine("最后一點就是B點!"); (7)在如圖所示的前方交會中,ABJ三點按逆時針方向排列,已知AB兩點的坐標和兩個交會角度,求J點的坐標。using System;using System.Collections.Generic;using System.Text;namespace ConsoleApplication1 class Application static void Main(string args) Console.Write("請輸
27、入A點的x坐標="); double Ax = double.Parse(Console.ReadLine(); Console.Write("請輸入A點的y坐標="); double Ay = double.Parse(Console.ReadLine(); Console.Write("請輸入B點的x坐標="); double Bx = double.Parse(Console.ReadLine(); Console.Write("請輸入B點的y坐標="); double By = double.Parse(Consol
28、e.ReadLine(); Console.Write("請輸入的角度值="); double = DEG(double.Parse(Console.ReadLine(); Console.Write("請輸入的角度值="); double = DEG(double.Parse(Console.ReadLine(); /計算A到B的坐標方位角 double a0 = 方位角(Ax, Ay, Bx, By); /計算A到J的坐標方位角 a0 -= ; /計算A到B的邊長 double s = 距離(Ax, Ay, Bx, By); /計算A到J的邊長 s
29、= s / Math.Sin(Math.PI - - ) * Math.Sin(); /計算J的坐標 double Jx = Ax + s * Math.Cos(a0); double Jy = Ay + s * Math.Sin(a0); Console.WriteLine("J點的坐標=0,1",Jx,Jy); /將ddd.mmss轉(zhuǎn)為弧度 static public double DEG(double ang) int fuhao = (int)(ang / Math.Abs(ang); ang = Math.Abs(ang); int d = (int)ang; i
30、nt m = (int)(ang * 100) - d * 100; double s = ang * 10000 - m * 100 - d * 10000; return (d + m / 60.0 + s / 3600.0) * fuhao) / 180.0 * Math.PI; /計算方位角,返回弧度值 public static double 方位角(double x1, double y1, double x2, double y2) double deltaX = x2 - x1; double deltaY = y2 - y1; double angle = Math.PI *
31、 0.5; if (Math.Abs(deltaX) > 0.) angle = Math.Atan2(deltaY, deltaX); if (angle < 0) angle += Math.PI; if (deltaY < 0.0) angle += Math.PI; return angle; /計算距離 public static double 距離(double x1, double y1, double x2, double y2) return Math.Sqrt(x2 - x1) * (x2 - x1) + (y2 - y1) * (y2 - y1); (8
32、)在如圖所示的單個多邊形中,已知每個點的坐標,求多邊形的面積。提示面積的計算公式為:using System;using System.Collections.Generic;using System.Text;namespace ConsoleApplication1 class Application static void Main(string args) List<double> 多邊形X坐標集 = new List<double>(); List<double> 多邊形Y坐標集 = new List<double>(); int i
33、= 1; do Console.Write("請輸入第0點的x坐標<直接回車就結(jié)束輸入>=",i); string str = Console.ReadLine(); if (str != "") 多邊形X坐標集.Add(double.Parse(str); else break; Console.Write("請輸入第0點的y坐標=",i+); 多邊形Y坐標集.Add( double.Parse(Console.ReadLine(); while (true); /計算面積 double area = 0; /點的個數(shù)
34、int Count = 多邊形X坐標集.Count; for (int j = 0; j < Count-1; j+) area += 多邊形X坐標集j * 多邊形Y坐標集j + 1 - 多邊形X坐標集j + 1 * 多邊形Y坐標集j; /計算最后一點到起點的項 area += 多邊形X坐標集Count - 1 * 多邊形Y坐標集0 - 多邊形X坐標集0 * 多邊形Y坐標集Count - 1; Console.WriteLine("多邊形的面積=0",Math.Abs(area * 0.5); (9)在如圖所示的僅有一個連接角的附合導線中,已知A點和B點的高程及每條邊
35、的斜邊、垂直角、儀器高和反光鏡高,求每個點的高程。(提示:,D-斜邊,-垂直角,-儀器高,-反光鏡高,-大氣折光系數(shù))using System;using System.Collections.Generic;using System.Linq;using System.Text;namespace 導線 class Program static void Main(string args) Console.Write("請輸入A點的高程="); double HA = double.Parse(Console.ReadLine(); Console.Write("
36、;請輸入B點的高程="); double HB = double.Parse(Console.ReadLine(); List<double> 高差集合 = new List<double>(); List<double> 水平距離平方集合 = new List<double>(); int i = 1; double 高差和 = 0; double 水平距離平方和 = 0; do Console.Write("請輸入0點到1點的斜距D<直接回車結(jié)束輸入>=",i,i+1); string str = C
37、onsole.ReadLine(); if (str = "") break; double D = double.Parse(str); Console.Write("請輸入0點到1點的垂直角=", i, i + 1); double = 導線.DEG(double.Parse(Console.ReadLine();/并化為弧度 Console.Write("請輸入0的儀器高=", i); double 儀器高 = double.Parse(Console.ReadLine(); Console.Write("請輸入0的反
38、光鏡高=", i+1); double 反光鏡高 = double.Parse(Console.ReadLine(); i+; double 水平距離; double h = 導線.高差(D, , 儀器高, 反光鏡高, out 水平距離); 水平距離平方集合.Add(水平距離 * 水平距離); 高差集合.Add(h); 水平距離平方和 += 水平距離 * 水平距離; 高差和 += h; while (true); /計算高差閉合差 double 高差閉合差 = HA + 高差和 - HB; /計算單位長度改正數(shù),三角高程的權(quán)與距離的平方成反比 double 單位長度改正數(shù) = -高差
39、閉合差 / 水平距離平方和; /計算每點高程 double H = HA; for (int j = 0; j < 高差集合.Count; j+) H += 高差集合j + 單位長度改正數(shù) * 水平距離平方集合j; Console.WriteLine("第0點的高程H=1",j+2,H); Console.WriteLine("最后一個點的高程應該與B點的高程相同!"); class 導線 /將ddd.mmss轉(zhuǎn)為弧度 static public double DEG(double ang) int fuhao = (int)(ang / Math
40、.Abs(ang); ang = Math.Abs(ang); int d = (int)ang; int m = (int)(ang * 100) - d * 100; double s = ang * 10000 - m * 100 - d * 10000; return (d + m / 60.0 + s / 3600.0) * fuhao) / 180.0 * Math.PI; /高差計算,返回高差 public static double 高差(double 斜距,double 垂直角,double 儀器高,double 反光鏡高,out double 水平距離) double h = 斜距 * Math.Sin(垂直角) + 斜距 * Math.Cos(垂直角) / .0 * 斜距 * Math.Cos(垂直角) * (1 - 0.13) + 儀器高 - 反光鏡高; 水平距離 = 斜距*Math.Cos(垂直角); return h; (10)在如圖所示的僅有一個連接角的附合導線中,已知M點、A點和B點的坐標,每個點的左角及每條邊的水平距離,求每個點的坐標。using System;using System.C
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 創(chuàng)新素養(yǎng)視角下高中數(shù)學高效課堂的構(gòu)建
- 中學教育基礎知到課后答案智慧樹章節(jié)測試答案2025年春白城師范學院
- 三級人力資源管理師-《企業(yè)人力資源管理師(理論知識)》考前強化模擬卷1
- 高考物理課標版一輪復習考點規(guī)范練19動量動量定理動量守恒定律的理解
- 重慶市復旦中學2024-2025學年高一下學期開學考試生物試題(原卷版)
- 揭陽中式花園施工方案
- 湖南省衡陽縣三中2017-2018學年高二上學期期中考試歷史試卷
- 廣東省惠州市惠東中學2017-2018學年高三5月熱身綜合練習生物(二)答案
- 浙江省寧波市2024-2025學年高三上學期期末模擬檢測語文試題(原卷版+解析版)
- 河南省南陽市鎮(zhèn)平縣2024-2025學年七年級上學期期末語文試題(原卷版+解析版)
- 冷庫使用安全知識培訓
- 2023信息系統(tǒng)密碼應用高風險判定指引
- 2023年12月全國大學外語等級考試考務工作手冊
- 第三單元《 There is a cake on the table 》大單元教案 四年級英語下冊(重大版)
- 普通高中語文課程標準課件
- 你是獨一無二的自己主題班會課件
- 交通運輸行業(yè)駕駛員違規(guī)處理規(guī)范培訓
- 智聯(lián)招聘測評的題庫
- 華為企業(yè)數(shù)據(jù)架構(gòu)、應用架構(gòu)及技術架構(gòu)設計方法
- 《空調(diào)工作原理》課件
- 地質(zhì)學基礎-讀圖題
評論
0/150
提交評論