资源描述
《测绘遥感程序设计》
实验指引书
(Visual C++.net)
(供测绘工程专业用)
(修订)
戴吾蛟 编
二零一五年三月
中南大学测绘与遥感科学系
前言
测绘遥感程序设计上机实验是学习本门课程重要环节之一,实验设立是为了配合课堂教学,使学生纯熟掌握和进一步理解课堂教学内容,进一步强化测绘程序设计、测量学及测量平差原理理解,掌握运用Visual C++.net进行惯用测量程序以及控制网间接平差程序设计。
实验内容
本门课程必做实验有(在Visual C++.net 环境下):
1. Visual C++.net环境、基本控件及简朴程序设计(三角形面积计算)
2. 控制构造程序设计(方位角计算、地心坐标至大地坐标转换)
3. 数组、指针(多边形面积计算)
4. 函数(交会定点函数设计、高斯投影正反算程序设计)
5. 类创立(大地四边形类设计、角度类设计)
6. 文献(Cass测量数据整顿)
7. 图形程序设计(位移序列曲线图形程序设计)
8. 惯用测量计算(无定向导线简易计算程序设计)
9. 平差程序设计(水准网间接平差程序设计)
修订阐明:由于培养方案增长了8学时,实验学时也相应增长了4学时。为此,本实验指引书将高斯投影正反算提前,并规定以函数形式编写。增长了大地四边形类设计以及无定向导线简易计算程序设计。
实验1 Visual C++.net环境和简朴程序设计
一、实验目
· 掌握Visual S安装和启动。
· 理解VC++ 菜单系统、工具栏和各种基本窗体。
· 理解VC++.net开发应用程序环节。
· 掌握基于对话框程序设计。
· 掌握按钮、文本框和标签框基本用法
· 掌握使用MSDN协助文档
二、实验内容
1. 启动与退出VC++.net,熟悉VC++.net开发环境,通过向导生成基于对话框应用程序。使用MSDN查看命令按钮、标签和文本框重要属性和办法。
2. 打开Microsoft visual studio 文档,浏览“Visual studio 文档”目录下内容,并从“Visual studio 文档->Visual C++->示例”目录下下载一种程序,编译并运营之。
3. 设计一种已知三边边长计算三角形面积程序。计算模型如下:
海伦公式:,其中
提示:
(1)在【文献】菜单上执行【新建】,然后选取“项目” 。
(2)在【项目类型】窗格中,选取【Visual C++】下“MFC”项。在【模板】窗格中,选取“MFC 应用程序”模板,输入应用程序名称“××××”。按向导创立名为“×××××” MFC应用程序。
(3)在窗体上放置4个文本框、4个静态框、3个命令按钮(其中两个缺省);
(4)设立控件属性,如Static1Caption属性设立成“a=”,用于提示Edit框输入边长a;
(5)把“取消”按钮Caption属性改为“退出”;双击前两个按钮,生成Click消息函数,注释掉重载函数“OnOK()”。
(6)为4个Edit控件添加绑定变量。
(7)在相应函数中添加代码;
(8)运营和调试程序;
(9)保存应用程序。
实验2 控制构造程序设计
一、实验目
· 掌握VC++.net语言基本语法;
· 理解顺序构造、选取构造和循环构造程序设计特点及应用;
· 掌握对基于对话框MFC应用程序设计办法;
· 掌握某些简朴算法。
二、实验内容
1.编写一种方位角计算程序。提示:先使用反正切函数计算,然后运用坐标增量符号来判断所在象限。
2.设计同一参照椭球下三维地心坐标(笛卡儿坐标系)与大地坐标系转换程序。(提示:用do…while迭代,B、H初始为0进行迭代,直到H精度达到0.00001米)
注意:东经0~180(Y>0),西经:0~-180(Y<0)
式中,B、L、H为椭球面上大地纬度、大地经度、大地高;X、Y、Z为空间直角坐标;N为卯酉圈曲率半径,e为椭球偏心率,a为椭球长半径,b为椭球短半径。 (WGS84椭球参数:长半径a=6378137m,扁率α=1/298.)
实验3 数组与指针
一、实验目
· 掌握函数定义、引用及应用办法。
二、实验内容
1.编写一种求任意多边形面积程序。提示:通过界面输入数据,并把数据保存在一种二维数组或一种一维自定义构造体类型数组中,然后再进行计算。规定计算某些写成函数形式,使计算程序与界面无关。
动态数组
创立动态数组
l 构造体定义
多边形面积计算原理及算法
计算原理:
例如上图:
面积计算算法:
经整顿后得:
实验4 函数
一、实验目
· 掌握函数定义、引用及应用办法。
二、实验内容
1.交会定点计算函数设计
把前方交会、测边交会、后方交会程序写成函数形式,然后再通过主程序调用。
提示:后方交会计算函数设计思路
(1)基本原理及计算公式
若将Pa、Pb、Pc当作权,则P点坐标即为三个已知点加权平均值
(2)计算程序设计环节
①设计界面,用于输入3个已知点坐标和三个观测角a、b和g,以及用于输出待定点坐标文本框(12个)、静态标签框和Button按钮;
②定义文本框控件变量(Value);
③创立后方交会定点计算函数,函数输入为三个观测角和三个已知点坐标,输出为待定点坐标,输出可以用引用参数方式输出,详细计算环节;
a.依照已知点计算三个内角A、B、C;
b.计算Tan(a)、Tan(b)、Tan(g)、Tan(A)、Tan(B)、Tan(C);
c.计算Pa、Pb、Pc;
d.计算待定点坐标Xp、Yp。
④创立“计算”Button按钮Click事件函数,在该事件函数中调用后方交会计算函数,并在相应文本框中显示计算成果。
2.高斯投影正反算计算函数设计
编写高斯投影正算与反算两个函数,并设计简朴界面对函数计算对的性进行测试。
正算公式:
是弧度转换为秒转换单位,
是经度L同当前带中央子午线差值,单位为秒。
X 为当前点到赤道子午线长度。
长半轴
第一偏心率
反算公式:
是规定点到中央子午线经度差,
为底点纬度
下标“f”表达与
关于量
即,y=0时 x 所相应道子午弧长
注意:高斯投影正反算公式比较复杂,编写程序时变量定义一定要十分清晰
实验5 类创立
一、实验目
1. 掌握面向对象编程基本思想
2. 掌握VC++.net中创立类
3. 掌握建立和使用对象
4. 掌握运算符号重载
5. 理解类继承和多态性
二、 实验内容
1.大地四边形类设计
规定:设计一种大地四边形类,注意大地四边形基本属性,功能上只规定可以设立和返回已知点坐标、8个观测角度、待定点近似坐标计算以及闭合差计算。
提示:大地四边形(如图所示)以AB为基线,具备对角线四边形,它是建立桥梁控制网惯用形式,普通采用条件平差进行计算,本实验中仅规定采用前方交会办法计算C和D点近似坐标。
大地四边形
三角形闭合差
极条件闭合差
2.角度类设计
规定该类具备度分秒至度换算、度至度分秒换算、度与弧度换算等功能。提示:设立一种角度大小属性,并设定该属性为缺省属性;另设一种状态属性,表达当前设立角度大小形式;度分秒、度、弧度间互相转换办法;定义运算符号(加、减)办法,使得角度类可以像一种普通数据类型样以便使用;用设计好角度类重新编写后方交会定点程序。
实验6 文 件
一、实验目
· 掌握文献对话框用法。
· 掌握C++文献操作普通环节及实现办法。
· 理解MFC文献操作特点及用法。
二、实验内容
1. 编制简朴Cass数据文献进行数据整顿程序。整顿后数据文献中规定无重复点数据,且数据按点号大小升序进行排序。规定整顿后数据按与原始数据文献同样格式保存为此外一种文献
示例数据“民用园燃气.dat”文献数据格式:
总点数
点号,编码,X,Y,H
…
例如:
规定:
a.用SaveFileDialog和OpenFileDialog控件获取文献打开或保存文献名。
b.自定义一种测量点数据构造体,其元素涉及:点号,编码,X,Y,H
c.用文本框显示原始数据和整顿后数据
d..按编程规范进行编码
提示:
a. 读数据、保存数据、判断一种点数据与否已经存在、排序、在文本框中显示文献内容等可以分别定义成一种子过程或函数。
b.基本流程:
打开文献
获得总点数
依照点数调节数组大小
逐行读取数据,判断该点与否已经存在数组中,若不存在,则把该数据存储在数组中
依照删除重复点后总点数,重新调节数组大小
按点号大小升序排序
按原数据格式输出到此外一种文献
c.编程技巧
实验7 图形程序设计
一、实验目
· 掌握VC++.net 坐标系和各项设立办法。
· 掌握GDI绘图办法。
· 理解交互式图形程序设计
二、实验内容
1.下列数据为一变形监测点24期位移监测成果(分别为X,Y,H),编制程序绘制出该点变形曲线图,每个方向一种位移序列图。
变形曲线示意图
24
32.5801 -52.7876 0.1369
32.5786 -52.7892 0.1380
32.5784 -52.7845 0.1411
32.5812 -52.7852 0.1393
32.5782 -52.7863 0.1394
32.5791 -52.7852 0.1354
32.5788 -52.7841 0.1414
32.5788 -52.7817 0.1375
32.5745 -52.7833 0.1359
32.5815 -52.7854 0.1327
32.5822 -52.7841 0.1358
32.5839 -52.7826 0.1361
32.5820 -52.7852 0.1339
32.5800 -52.7863 0.1325
32.5792 -52.7845 0.1416
32.5807 -52.7834 0.1395
32.5778 -52.7846 0.1412
32.5792 -52.7843 0.1371
32.5794 -52.7833 0.1406
32.5806 -52.7841 0.1411
32.5800 -52.7863 0.1380
32.5785 -52.7840 0.1368
32.5811 -52.7848 0.1412
32.5828 -52.7863 0.1356
实验8 惯用测量程序设计
一、实验目
· 巩固类创立与使用
· 掌握数组参数传递
· 掌握惯用测绘程序设计技巧
二、实验内容
1.设计一种无定向导线简易计算程序。
规定自己定义文献格式,把下图中数据编写至文献中,然后通过读取文献形式获取所有数据,计算成果也写入成果文献中。
无定向导线计算基本环节:
实验9 平差程序设计基本
一、实验目
· 巩固过程定义与调用
· 巩固类创立与使用
· 巩固间接平差模型及平差计算
· 掌握平差程序设计基本技巧与环节
二、实验内容
水准网平差程序设计。设计一种水准网平差程序,规定数据从文献中读取,计算某些与界面无关。
1.水准网间接平差模型:
2.计算示例:
3.水准网平差计算普通环节
(1)读取观测数据和已知数据;
(2)计算未知点高程近似值;
(3)列高差观测值误差方程;
(4)依照水准路线长度计算高差观测值权;
(5)构成法方程;
(6)解法方程,求得未知点高程改正数及平差后高程值;
(7)求高差观测值残差及平差后高差观测值;
(8)精度评估;
(9)输出平差成果。
4.水准网高程近似值计算算法
5.输入数据格式示例
展开阅读全文