1、 测绘程序设计课程实习报告测绘程序设计课程实习报告20132013 姓名:姓名: 组号:组号: 成绩:成绩: 1 / 44 测绘程序设计课程实习报告测绘程序设计课程实习报告 一、实习目的 巩固之前所学的 c+类定义、文件操作等各方面知识,掌握矩阵计算的基本 算法,熟悉并熟练运用平差模型,掌握测量平差的基本原理和公式,并处理测量 观测数据。 二、实习内容 该课程的实习主要为 c 语言及 c+编程基础,矩阵操作算法,条件平差,间 接平差,以及在水准网平差中的应用。 三、实习过程 (一)实习 1(文件的基本操作以及角度、弧度的转化) 1. 准备 C+文件操作函数包含于头文件,一般情 况下使用即可。在
2、计算过程中需要文件输出格式控制,函数包含于 。c+的流操作函数包含于,相应的流函数在命名空间 “std”。 角度转弧度的过程中,首先判断正负,对符号进行不同情况的处理。将度 数的分,秒位分别除以 60、3600,然后把得到的结果与度位绝对值相加,判断 符号。 弧度转角度的过程中,同样判断正负,取小数位乘以 60 取整数得到相应角 度的分,再取剩余的小数乘以 60 即得到相应角度的秒。 2 / 44 2. 代码 #include #include #include #include usingusing namespacenamespace std; ; const double pi = =
3、3.14159; ; int main()() fstream file( (“a.txt“);); /定义文件操作对象 string aa; ; fileaa; ; couta1; ; couta2; ; couta3; ; cout= 0) ) /判断输入度数的正负 deg = = a1 + + a2/ /60 + + a3/ /3600; ; elseelse 3 / 44 deg = = a1 - - a2/ /60 - - a3/ /3600; ; double radian; ; radian = = deg/ /180* *pi; ; coutradian; ; bool tm
4、= = 0; ; deg = = radian* *180/ /pi; ; ifif( (deg=j)?)? i*(*(i+ +1)/)/2+ +j : : j*(*(j+ +1)/)/2+ +i; ; ; 文件 mat.cpp: #include “mat.h“ void mat:add( (int row, ,int col, ,double m,double n,double result) forfor( (int i= =0; ; imat i; void mat:fileOut( (ofstream out, , int row, , int col, , double * *ma
5、t) ) forfor( (int i= =0; ; imat i* *col+ +j; 测试文件 main.cpp: #include “mat.h“ mat g_mat; ; void main()() double * *mat1; ; double * *mat2; ; double * *mat3; ; double * *mat4; ; double * *mat_result; ; 12 / 44 mat1 = = newnew double 2* *3; mat2 = = newnew double 2* *3; mat3 = = newnew double 3* *1; ma
6、t4 = = newnew double 2* *2; coutn; filet; coutnpNump_km; ; t = = pNum- -p_k; ; startP = = newnew int n;/起点号 35 / 44 endP = = newnew int n;/终点号 L = = newnew double n;/观测值 H = = newnew double pNum;/高程值 S = = newnew double n;/距离长度 P = = newnew double n* *n;/权 B = = newnew double t* *n; h = = newnew double n; Pname = = newnew string p