第3章 编程实践题.doc

  1. 1、本文档共5页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第3章 编程实践题

编程实践题 一、程序功能 图根控制测量中的测角交会计算(涉及的计算公式可以参考《现代普通测量学》)。 二、程序要求 1. 程序能完成前方交会、测方交会未知点坐标计算,坐标计算使用的余切公式如下: 2. 侧方交会计算时,能够适应任意一个已知内角未设站测量水平角的情况; 3. 程序能够进行两种测角交会的检核计算, 前方交会采用两组三角形分别计算坐标,然后通过两组坐标计算横向位移(不得超过所测地形图图上0.2mm)进行检核; 侧方交会能过检核角的计算值值与观测值之差(不得超过40秒)进行检核。 三、编程思路 为实现程序功能,至少应编写以下类文件: 1. 定义控制点类,成员域包括x、y坐标,为了扩充程序功能,还考虑加入高程、等级属性; public class J_Controlpoint { public int x, y; public J_Controlpoint(int x_p,int y_p) {x=x_p; y=y_p; }} 2. 定义基本计算类,该类至少包括以下方法: 余切公式计算待定点坐标;{ x_p1=(x_a*Math.cot(b*Math.PI/180)+x_b*Math.cot(a*Math.PI/180)-y_a+y_b)/(Math.cot(a*Math.PI/180)+Math.cot(b*Math.PI/180)); y_p1=(y_a*Math.cot(b*Math.PI/180)+y_b*Math.cot(a*Math.PI/180)+x_a-x_b)/(Math.cot(a*Math.PI/180)+Math.cot(b*Math.PI/180));} public double J_Calculation {public static Point cosine (J_Controlpoint a, J_Controlpoint b,double α,double β) {double cotα=Math.cos(Math.toRadians(α))/Math.sin(Math.toRadians(α)); double cotβ=Math.cos(Math.toRadians(β))/Math.sin(Math.toRadians(β)); Point p=new Point(0,0); p.x=(_a.x*cotβ+_b.x*cotα-_a.y+_b.y)/(cotα+cotβ); p.y=(_a.y*cotβ+_b.y*cotα+_a.x-_b.x)/(cotα+cotβ); return p; } 根据两点坐标计算坐标方位角; public static double angle(Point a,Point b){ double tan_ab=(_b.y-_a.y)/(_b.x-_a.x); double angle_ab=Math.toDegrees(Math.atan(tan_ab)); if(angle_ab0){ angle_ab+=360; } return angle_ab; } 根据两点坐标计算两点之间的水平距离 public static double distance(Point a,Point b){ double i=Math.sqrt((b.x-a.x)*(b.x-a.x)+(b.y-a.y)*(b.y-a.y)); return i; } 3. 定义一个坐标检核接口,该接口包含一个根据两组坐标判断成果是否合格的方法。 public interface J_Point {if(i=0.02) System.out.printIn(“所计算结果符合要求!”); else System.out.printIn(“所计算结果不符合要求!”);} 4. 定义一个角度检核接口,刻接口包含一个根据检核角判断成果是否合格的方法。 public interface J_Angle { if(Math.sqrt((x_p1-x_p)* (x_p1-x_p)+ (y_p1-y_p)* (y_p1-y_p))=0.02) System.out.printIn(“所计算结果符合要求!”); else System.out.printIn(“所计算结果不符合要求!”); } 5. 定义前方交会类,完成前方交会坐标计算,实现坐标检核接口,完成检核计算。 class Qian { Point A;//已知点 Point B;//已知点 Point C;//已知点,仅用于检核 //Point p;//待定点 //Point p_1;//待定点,仅用于检核 double α;//已知角 double β;//已知角 do

文档评论(0)

qwd513620855 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档