您好,欢迎访问三七文档
当前位置:首页 > 财经/贸易 > 资产评估/会计 > 大地测量学基础编程作业
《大地测量学基础》编程作业报告姓名:周于涛学号: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高斯投影正算(左)、反算(右)程序框图读入起算数据开始将角度数据转化为十进制采用白塞尔法进行大地主题正算将结果转化成度分秒格式输出结果结束是读入起算数据开始将角度数据转化为十进制采用白塞尔法进行大地主题反算将结果转化成度分秒格式输出结果结束△δ是否小于限否读入起算数据开始根据所选投影方式确定中央子午线经度,计算经差l采用适合电算的高斯投影正算公式计算将坐标化为国家统一坐标输出结果结束读入起算数据开始从y坐标得到投影带号,并将y坐标转换成高斯平面坐标采用适合电算的高斯投影反算公式计算将求得的经差加上L0输出结果结束确定中央子午线经度L0六、程序运行结果1.大地主题正反算起算数据:序号B1(DD.MMSSSS)L1(DD.MMSSSS)A12(DD.MMSSSS)S12(m)141.01356874130.101226761.494380000运行结果:图3大地主题正算结果图4大地主题反算结果2.高斯投影正反算起算数据:B=51°38'43.9023''L=111°2'13.1360''运行结果:图5高斯投影正算结果(6°带)图6高斯投影正算结果(3°带)图7高斯投影反算结果(6°带)图8高斯投影反算结果(3°带)经检查,所有结果均满足限差要求。2016年5月28日
本文标题:大地测量学基础编程作业
链接地址:https://www.777doc.com/doc-2506751 .html