版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、常用测量程序设计(1) 用全站仪在 A点观测了 B点斜边和垂直角,求 A到B的高差。(提示:hAB=Dsinagk)Ecos2av,D-斜边,a-垂直角,2R器高V-反光镜高,k -大气折光系数)using System;using System.Text;namespace ConsoleApplication1class Applicationstatic void Main( string args)Console .Write(请输入斜边=);double D = double .Parse( Console .ReadLine();Console .Write(请输入垂直角ddd.m
2、mss=);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) * D / 6371000.0* D / 6371000.0 * Math.Cos(a)* Math.Cos(a) / 2.0
3、 + i - v;Console .WriteLine(高差为0 ,h);/将ddd.mmss转为弧度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 - d * 10000;return (d + m / 60.0 + s / 3600.0) * fuhao) / 180.0 *
4、Math.PI;(2) 如图所示,已知 A点的坐标及A点到B点的边长及方位角,计算 B点的坐标。using System;using System.Text;namespace ConsoleApplicationlclass Applicationstatic void Main( string args)Console .Write(请输入 A点的 X坐标=);double XA = double .Parse( Console .ReadLine();Console .Write(请输入 A点的 丫坐标=);double YA = double .Parse( Console .Read
5、Line();Console .Write(请输入 A到 B的方位角ddd.mmss=); double a = DEG( double .Parse( Console .ReadLine();Console .Write(请输入A到B的水平距离=);double S = double .Parse( Console .ReadLine(); double XB = XA + S* Math.Cos(a);double YB = YA + S* Math.Sin(a);Console .WriteLine( B点的坐标(0,1) ,XB,YB);/将ddd.mmss转为弧度 static pu
6、blic 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 - d * 10000;Math.PI;return (d + m / 60.0 + s / 3600.0) * fuhao) / 180.0 *A点到的边长及方位角。(3) 如图所示,已知 A点和B点的坐标,计算using System;using
7、 System.Text;namespace ConsoleApplication1class Applicationstatic void Main( string args)Console .Write(请输入A点的X坐标=);double XA = double .Parse( Console .ReadLine();Console .Write(请输入A点的丫坐标=);double YA = double .Parse( Console .ReadLine();Console .Write(请输入B点的X坐标=);double XB = double .Parse( Console .
8、ReadLine();Console .Write(请输入B点的丫坐标=);double YB = double .Parse( Console .ReadLine();double S = 距离(XA, YA, XB, YB);double a = 方位角(XA, YA, XB, YB);Console .WriteLine( AB间的距离=0,从 A到 B的方位角=1 ,S,DMS(a);/将弧度转为ddd.mmssstatic public double DMS(double ang)ang += 1.0E-15;/加上一个小量,以保证进位int fuhao = ( int )(ang
9、/ Math.Abs(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;/计算方位角,返回弧度值public static double 方位角(double x1, double y1, double x2, double y2) double deltaX = x2 - x1;double d
10、eltaY = y2 - y1;double angle = Math.PI * 0.5;if ( Math.Abs(deltaX) 0.000000001)angle =Math.Atan2(deltaY, deltaX);if (angle 0)angle +=Math.PI;if (deltaY 2 *Math.PI)a0 -= 2 *Math.PI;List 导线转角集合=new List ();int i = 1;doConsole .Write(请输入第0个转角的水平角左角为正,右角为负 =,i+);string str = Console .ReadLine();if (str
11、!=)导线转角集合.Add(DEG(double .Parse(str);elsebreak;while ( true );i = 1;foreach ( double a in 导线转角集合 )aO += a +Math.PI;if (a0 2 * Math.PI)aO -= 2 *Math.PI;else if (aO 0.0)aO += 2 *Math.PI;Console .WriteLine(第0条边的方位角为1 ,i+,DMS(aO);/将弧度转为ddd.mmssstatic public double DMS(double ang)ang += 1.0E-15;/加上一个小量,以
12、保证进位int fuhao = ( int )(ang / Math.Abs(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转为弧度static public double DEG(double ang)int fuhao = ( int )(ang / Math.Abs(
13、ang);ang =Math.Abs(ang);int d = ( int )ang;int m = ( int )(ang * 100) - d * 100;double s = ang * 10000 - m * 100 - d * 10000;Math.PI;return (d + m / 60.0 + s / 3600.0) * fuhao) /180.0 *(5)在如图所示的支中导线, 已知A点和M点的坐标及每个左角和每条边长,求每个点的坐标。B. Ausing System;using System.Text;namespace ConsoleApplication1class A
14、pplicationstatic 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 .Write(请输入 A点的 y坐标=);double
15、Ay = double .Parse( Console .ReadLine();List 导线转角集合 =new List ();List 导线边长集合 =new List ();int i = 1;doConsole .Write(请输入第0个转角的水平角左角为正,右角为负=,i);string str = Console .ReadLine();if (str !=)导线转角集合.Add(DEG(double .Parse(str);elsebreak;Console .Write(请输入第0条边长值=,i+); 导线边长集合.Add( double .Parse( Console .Re
16、adLine();while ( true );/计算M到A的坐标方位角double a0 = 方位角(Mx, My, Ax, Ay);/计算每个点的坐标double x0 = Ax;double y0 = Ay;for ( int j = 0; j 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转为弧度static public double DEG
17、(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 - d * 10000;return (d + m / 60.0 + s / 3600.0) * fuhao) / 180.0 *Math.PI;/计算方位角,返回弧度值public static double 方位角(double x1, double y1, double x
18、2, double y2) double deltaX = x2 - x1;double deltaY = y2 - y1;double angle = Math.PI * 0.5;if ( Math.Abs(deltaX) 0.000000001)angle =Math.Atan2(deltaY, deltaX);if (angle 0)angle +=Math.PI;if (deltaY 0.0)angle +=Math.PI;return angle; using System;(6)在如图所示的单一附合水准路线中,已知 每个点的高程。A点和B点的高程及每段的长度和高差,求using S
19、ystem.Text;namespace ConsoleApplication1class Applicationstatic void Main( string args)Console .Write(请输入 A点的高程=);double Ha = double .Parse( Console .ReadLine();Console .Write(请输入B点的高程=);double Hb = double .Parse( Console .ReadLine();List 路线段长度集合 =new List ();List 路线段高差集合 =new List ();int i = 1;doCo
20、nsole .Write(请输入第0段长度公里为单位=,i); string str = Console .ReadLine();if (str !=)路线段长度集合.Add( double .Parse(str);elsebreak;Console .Write(请输入第0段高差=,i+);路线段高差集合.Add( double .Parse( Console .ReadLine();while ( true );/计算水准路线闭合差double w = 0;double总长度=0;for ( int j = 0; j 路线段长度集合.Count; j+)w +=路线段高差集合j;总长度+=
21、路线段长度集合j;w = w - (Hb - Ha);/ 闭合差double v = -w / 总长度;/每公里改正数/计算每个点的高程double H = Ha;for ( int j = 0; j 0.000000001)angle =Math.Atan2(deltaY, deltaX);if (angle 0)angle +=Math.PI;if (deltaY 多边形 X坐标集=new List vdouble ();List vdouble 多边形 Y坐标集=new List vdouble ();int i = 1;doConsole .Write(请输入第0点的x坐标 =,i);
22、string str = Console .ReadLine();if (str !=)多边形 X坐标集.Add( double .Parse(str);elsebreak;Console .Write(请输入第0点的 y坐标=,i+);多边形 Y坐标集.Add( double .Parse( Console .ReadLine();while ( true );/计算面积double area = 0;点的个数int Count = 多边形X坐标集.Count;for ( int j = 0; j Count-1; j+)area +=多边形X坐标集j *多边形丫坐标集j + 1-多边形X坐
23、标集j + 1 * 多边形丫坐标集j;/计算最后一点到起点的项area +=多边形X坐标集Count - 1 *多边形丫坐标集0-多边形X坐标集0 * 多边形Y坐标集Count - 1;Console .WriteLine(多边形的面积=0 , Math.Abs(area * 0.5);(9)在如图所示的仅有一个连接角的附合导线中,已知A点和B点的高程及每条边的斜边、垂直角、仪器高和反光镜高,求每个点的高程。(提示:hABDsina (1-k)Fcos2a i-v,D-斜边,a-垂直角,2R器冋V-反光镜高,k -大气折光系数)using System;using System.Linq;us
24、ing System.Text;namespace 导线class Programstatic void Main( string args)Console .Write(请输入A点的高程=);double HA = double .Parse( Console .ReadLine();Console .Write(请输入B点的高程=);double HB = double .Parse( Console .ReadLine();List 高差集合=new List ();List 水平距离平方集合 =new List ();int i = 1;double高差和=0;double水平距离平方
25、和 =0;doConsole .Write(请输入0点到1点的斜距D=,i,i+1);string str = Console .ReadLine();if (str = ) break ;double D = double .Parse(str);Console .Write(请输入0点到1点的垂直角=,i, i + 1);double a = 导线.DEG(double .Parse( Console .ReadLine(); / 并化为弧度Console .Write(请输入0的仪器高=,i);double 仪器高=double .Parse( Console .ReadLine();C
26、onsole .Write(请输入0的反光镜高=,i+1);double 反光镜高=double .Parse( Console .ReadLine();i+;double水平距离;double h =导线.高差(D, a ,仪器高,反光镜高,out水平距离);水平距离平方集合.Add(水平距离*水平距离);高差集合.Add(h);水平距离平方和 +=水平距离*水平距离;高差和+= h;while ( true );/计算高差闭合差 double 高差闭合差 =HA + 高差和-HB;/计算单位长度改正数,三角高程的权与距离的平方成反比double单位长度改正数=-高差闭合差/水平距离平方和;
27、/计算每点高程double H = HA;for ( int j = 0; j 高差集合.Count; j+)H +=高差集合j +单位长度改正数*水平距离平方集合j;Console .WriteLine(第0点的高程 H=1 ,j+2,H);Console .WriteLine(最后一个点的高程应该与B点的高程相同!);class 导线/将ddd.mmss转为弧度static public double DEG(double ang)int fuhao = ( int )(ang / Math.Abs(ang);ang =Math.Abs(ang);int d = ( int )ang;in
28、t 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(垂直角)/ 6371000.0 * 斜
29、距 * Math.Cos(垂直角)* (1 - 0.13) + 仪器高-反光镜高;水平距离=斜距*Math.Cos(垂直角);return h;M点、A点和B点的坐标,每个(10 )在如图所示的仅有一个连接角的附合导线中,已知 点的左角 及每条边的水平距离,求每个点的坐标。using System;using System.Text;namespace 导线class Programstatic void Main( string args)Console .Write(请输入M点的X坐标=);double MX = double .Parse( Console .ReadLine();Con
30、sole .Write(请输入M点的丫坐标=);double MY = double .Parse( Console .ReadLine();Console .Write(请输入A点的X坐标=);double AX = double .Parse( Console .ReadLine();Console .Write(请输入A点的丫坐标=);double AY = double .Parse( Console .ReadLine();Console .Write(请输入B点的X坐标=);double BX = double .Parse( Console .ReadLine();Console
31、 .Write(请输入B点的丫坐标=);double BY = double .Parse( Console .ReadLine();/计算M到A的方位角double a 0 = 导线.方位角(MX, MY, AX, AY);List 坐标增量 X集合=new List ();List 坐标增量 丫集合=new List ();int i = 1;double 坐标增量X和=0;double 坐标增量丫和=0;double坐标增量X绝对值和=0;double坐标增量丫绝对值和=0;double 水平距离和 =0;doConsole .Write(请输入0点到1点的水平距离S=,i,i+1);s
32、tring str = Console .ReadLine();if (str = ) break ;double S = double .Parse(str); Console .Write(请输入0点的水平角 左角为正,右角为负=,i); double B = 导线.DEG(double .Parse( Console .ReadLine();i+;/计算坐标增量double dx, dy;a 0 = 导线.坐标(0, 0, B , S, a 0, out dx, out dy);坐标增量X集合.Add(dx);坐标增量丫集合.Add(dy);坐标增量X和+= dx;坐标增量丫和+= dy
33、;坐标增量X绝对值和+= Math.Abs(dx);坐标增量丫绝对值和+= Math.Abs(dy);水平距离和+= S;while ( true );/计算闭合差double 闭合差X = AX + 坐标增量X和-BX;double 闭合差Y = AY + 坐标增量丫和-BY;/计算单位长度改正数double X坐标单位长度改正数=-闭合差X /坐标增量X绝对值和;double Y坐标单位长度改正数=-闭合差Y /坐标增量丫绝对值和;/计算导线相对精度int f = ( int )(水平距离和/ Math.Sqrt(闭合差X *闭合差X +闭合差Y *闭合差Y); Console .Writ
34、eLine(导线的相对精度为 1/0 ,f);/计算每点坐标double X = AX;double Y = AY;for ( int j = 0; j 坐标增量 X集合.Count; j+)X +=坐标增量X集合j + X坐标单位长度改正数*Math.Abs(坐标增量X集合j);Y +=坐标增量丫集合j + Y坐标单位长度改正数*Math.Abs(坐标增量丫集合j);Console .WriteLine(第0点的 X坐标=1,Y 坐标=2 ,j+2,X,Y);Console .WriteLine(最后一个点的坐标应该与 B点的坐标相同!);class 导线/将ddd.mmss转为弧度stat
35、ic 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 - d * 10000;return (d + m / 60.0 + s / 3600.0) * fuhao) / 180.0 *Math.PI;/计算方位角,返回弧度值public static double 方位角(double x1,
36、 double y1, double x2, double y2)double deltaX = x2 - x1;double deltaY = y2 - y1;double angle = Math.PI * 0.5;if ( Math.Abs(deltaX) 0.000000001)angle =Math.Atan2(deltaY, deltaX);if (angle 0)angle +=Math.PI;if (deltaY =Math.PI * 2) 方位角-= Math.PI * 2;if (方位角 0.0) 方位角 += Math.PI * 2;x = x0 +水平距离* Math.
37、Cos(方位角);y = y0 +水平距离* Math.Sin(方位角);return 方位角;(11 )在如图所示的仅有一个连接角的附合导线中,已知M点、A点和B点的坐标,A点和B点的高程,每个点的左角 及每条边的斜边、垂直角、仪器高和反光镜高,求每个点 的坐标和高程。一D22(提示:hAB=Dsina (1-k)cos a i-v,D-斜边,a-垂直角,i-仪器高,v-反R光镜高,k -大气折光系数)using System;using System.Text;namespace 导线class Programstatic void Main( string args)Console .W
38、rite(请输入M点的X坐标=);double MX = double .Parse( Console .ReadLine();Console .Write(请输入M点的丫坐标=);double MY = double .Parse( Console .ReadLine();Console .Write(请输入A点的X坐标=);double AX = double .Parse( Console .ReadLine(); Console .Write(请输入A点的丫坐标=);double AY = double .Parse( Console .ReadLine(); Console .Wri
39、te(请输入A点的高程=);double HA = double .Parse( Console .ReadLine();Console .Write(请输入B点的X坐标=);double BX = double .Parse( Console .ReadLine(); Console .Write(请输入B点的丫坐标=);double BY = double .Parse( Console .ReadLine(); Console .Write(请输入B点的高程=);double HB = double .Parse( Console .ReadLine();/计算M到A的方位角double
40、 a 0 = 导线.方位角(MX, MY, AX, AY);List 坐标增量 X集合=new List ();List 坐标增量 丫集合=new List ();List 高差集合=new List ();List 水平距离平方集合 =new List (); int i = 1;double 坐标增量X和=0;double坐标增量丫和=0;double坐标增量X绝对值和=0;double坐标增量丫绝对值和=0;double水平距离和=0;double高差和=0;double水平距离平方和=0;doConsole .Write(请输入0点到1点的斜距D直接回车结束输入 =,i, i + 1);st
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 国企招标采购制度
- 药企医疗采购管理制度
- 敬老院餐厅采购制度
- 危化品采购检查验收制度
- 事业采购单位验收制度
- 药物采购管控制度
- 招标采购防控追责制度
- 采购管理验收制度
- 采购部门6s管理制度
- 采购采购材料管理制度
- 《肾功能及尿液检查》课件
- 中国石油企业文化课件
- 电力工程建设资源投入计划
- 生物批签发管理办法
- 《酒店法律与法规实务》全套教学课件
- 高分子化学教材第七章逐步聚合反应
- 项目经理负责制与项目管理实施办法
- 2025年陕西省西安市碑林区西北工大附中中考数学三模试卷
- T-CASMES 428-2024 商业卫星太阳电池阵通.用规范
- 内蒙古机电职业技术学院单独招生(机电类)考试题(附答案)
- 应急疏散通道与标识设置
评论
0/150
提交评论