大地测量学基础编程作业

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

《大地测量学基础》编程作业报告

姓名:周于涛学号:2014301610157

一、作业内容

1.大地主题解算(正反算)

2.高斯投影计算(正反算)

二、作业要求

1.大地主题解算

(1)完成大地主题解算正反算;

(2)采用克拉索夫斯基椭球参数;

(3)高斯平均引数(或白塞尔)方法解算;

(4)最好有程序框图,界面和表格输出结果;

2.高斯投影计算

(1)完成高斯投影正反算;

(2)采用克拉索夫斯基椭球参数;

(3)按3°带和6°带投影;

三、编程思路

1.由于最后的结果要求有界面,我选择了C#语言完成本次编程作业;

2.我将这两个作业写在同一个工程文件中,使用同一个界面展现;

3.程序主要由3个部分组成,分别是:控件设计文件(Form1.Designer.cs)、控件响应文件(Form1.cs)、完成计算过程的类文件(Calcu.cs);

4.基本思路为:从控件中获取预定格式的已知值,根据计算类型创建相应的类,传入初始值,使用类中的方法进行计算,最后返回计算结果,再根据结果类型以给定的格式输出显示。

5.计算使用的类:考虑到四种计算中都会涉及到:度分秒格式与十进制浮点格式角度值互相转换、弧度制与角度制相互转换、使用常数ρ’’、克拉索夫斯基椭球基本参数等操作,我先定义了Calcu这个基类,添加以上功能和常数,以便其他子类使用。

6.对于大地主题正反算,我分别定义两个类A_Calcu、B_Calcu,继承基类Calcu。我采用白塞尔法进行大地主题正反算,参考教材上的计算步骤和计算公式。

7.对于高斯投影正反算,我再次分别定义两个类GA_Calcu、GB_Calcu,,继承基类Calcu。采用教材上适用于电算的高斯投影计算步骤和公式。考虑到程序的完善性,在确定中央子午线经度的时候,我采用了自动识别和手动添加两种方式,这样不仅可以完成按3°带和6°带投影,还可以实现按任意带投影,只需手动输入投影中央子午线经度即可。

四、程序框图

图1 大地主题正算(左)、反算(右)程序框图

图2 高斯投影正算(左)、反算(右)程序框图

六、程序运行结果

1.大地主题正反算

运行结果:

图3 大地主题正算结果

图4 大地主题反算结果

2.高斯投影正反算

起算数据:

B = 51°38' 43.9023'' L=111°2' 13.1360''

运行结果:

图5 高斯投影正算结果(6°带)

图6 高斯投影正算结果(3°带)

图7 高斯投影反算结果(6°带)

图8 高斯投影反算结果(3°带)

经检查,所有结果均满足限差要求。

2016年5月28日

相关文档
最新文档