解析交会及附合导线C++程序设计实习报告

上传人:油条 文档编号:117164930 上传时间:2019-11-18 格式:DOC 页数:10 大小:88KB
返回 下载 相关 举报
解析交会及附合导线C++程序设计实习报告_第1页
第1页 / 共10页
解析交会及附合导线C++程序设计实习报告_第2页
第2页 / 共10页
解析交会及附合导线C++程序设计实习报告_第3页
第3页 / 共10页
解析交会及附合导线C++程序设计实习报告_第4页
第4页 / 共10页
解析交会及附合导线C++程序设计实习报告_第5页
第5页 / 共10页
点击查看更多>>
资源描述

《解析交会及附合导线C++程序设计实习报告》由会员分享,可在线阅读,更多相关《解析交会及附合导线C++程序设计实习报告(10页珍藏版)》请在金锄头文库上搜索。

1、<p>&lt;p&gt;&amp;lt;p&amp;gt;测量程序设计实习报告目 录一、 实习目的 3二、 实习任务 3三、 实习时间、地点、指导老师 3四、 实习过程 3五、 实习中主要技术问题及处理方法 6六、 实习收获及感想 9七、 意见及建议 9一、 实习目的在实践中综合应用第一学年中课堂所学的计算机知识,以期能够熟练掌握基本编程语法、程序设计思想,为后续课程打下基础。1深入理解面向对象编程思想,理解对象的封装、继承及多态的含义;2掌握一门高级编程语言(可选VC+,Borland C+Builder,Visual Basic或Delphi)和

2、程序调试一般方法和技巧,熟练运用集成编程环境的基本功能,了解编程帮助系统;3掌握基本的类模块设计与实现、数据结构、数据文件读写、人机界面设计等;4综合运用所学数学和专业相关知识,设计并实现若干个类;5养成良好的编程风格。二、 实习任务1 根据面向对象思想完成角度处理类模块2 根据面向对象思想完成解析交会点位坐标计算类模块3 根据面向对象思想完成附合导线近似坐标计算类模块4 测量程序设计三、 实习时间、地点、指导老师时间:2013年7月6日7月15日地点:犀浦校区X4245机房指导老师:黄泽纯四、 实习过程7月6日7日1 了解面向对象程序设计思想1) 类的基本概念;2) 类的成员函数添加、定义方

3、法;3) 访问对象成员方法。2 编写角度处理类函数代码1) 建立角度处理类 命名 DegSwitch;2) 角度值转换成度分秒函数 命名 Deg_DMS;3) 度分秒转换成角度值函数 命名 DMS_Deg;4) 角度值转换成弧度值函数 命名 Deg_Rad;5) 弧度值转换成角度值函数 命名 Rad_Deg;6) 弧度值转换成度分秒函数 命名 Rad_DMS;7) 度分秒转换成弧度值函数 命名 DMS_Rad;8) 坐标方位角反算函数 命名 C_A。3 角度处理类函数调用、算法检查及修改1) 函数调用方法:指针;2) 主函数中选择调用函数关键语句:switch语句。4 调试技巧应用7月8日1.

4、 编写解析交会点位坐标类函数代码1) 建立解析交会点位坐标类 命名 Coordinate;2) 函数中涉及三角函数计算,应用预处理命令装入cmath头文件,并注意三角函数计算中所用角度值为弧度制下数值;3) 坐标正算函数 命名 C1SA_C2;4) 坐标反算函数 命名 C1C2_SA计算坐标方位角可调用角度处理类中坐标方位角反算函数;5) 前方交会函数 命名 C1C2A1A2_P;6) 后方交会函数 命名 C1C2C3_P。2. 解析交会点位坐标类函数调用、算法检查及修改1) 函数调用方法:指针;2) 主函数中选择调用函数关键语句:switch语句;3) 输入角度为度分秒格式,需调用角度处理类

5、中函数将其转换为弧度值后再进行计算。3. 学习了解C语言中读写文件方式、语法格式7月9日10日1. 附合导线近似坐标计算问题分析、算法设计2. 编写附合导线近似坐标计算类函数代码1) 建立附合导线近似坐标计算类 命名 LineCalculation;2) 角度转换、总边长、原始坐标增量计算函数 命名Start对输入的度分秒制的角度值可调用角度处理类中函数进行转换,计算得到总边长和原始坐标增量将在随后的坐标增量及改正后坐标增量计算函数中使用;3) 角度闭合差计算函数 命名 Angle_M;4) 角度闭合差调整函数 命名 Angle_A;5) 坐标方位角计算函数 命名 C_Angle;6) 坐标增

6、量计算函数 命名 Coordinate_M坐标增量计算过程中需用到三角函数,应用预处理命令装入cmath头文件,并注意三角函数计算中所用角度值为弧度制下数值;7) 改正后坐标增量计算函数 命名 Coordinate_A;8) 各点坐标计算函数 命名 Coordinate;3. 附合导线近似坐标计算类函数调用、算法检查及修改1) 读原始数据文件需要判断观测角是左角还是右角,以在随后采取正确的角度闭合差分配方式;2) 函数调用方法:指针;3) 计算后得到调整后角度、坐标方位角等需调用角度处理类中函数将其转换为度分秒制,便于检查;4) 写结果文件。7月11日1. 学习Windows窗体程序(CLR)

7、的创建及设计1) MFC与CLR的区别;2) 创建Windows窗体程序(CLR);3) 添加菜单、控件,对菜单、控件的编辑及使用a. 菜单的创建、命名、分栏b. 控件Button、Label、TextBox的添加、属性设置及使用;4) 添加、显示新窗体a. 添加新窗体b. 设置在原窗体中进行一定操作后显示新窗体。2. 练习Windows窗体程序创建及设计。7月12日13日创建、设计Windows窗体测量程序1) 创建Windows窗体测量程序;2) 添加控件;3) 添加角度转换窗体;4) 添加解析交会窗体;5) 编辑、设置测量程序窗体中控件功能;6) 在角度转换窗体中添加控件并设置其功能;7

8、) 添加角度处理类模块,实现处理角度转换窗体中数据的功能,并将结果传递显示在角度转换窗体中;8) 在解析交会窗体中添加控件并设置其功能;9) 添加解析交会点位坐标类模块,实现处理解析交会窗体中数据的功能,并将结果传递显示在解析交会窗体中;10)运行检测测量程序。7月14日15日实习总结,撰写实习报告。五、 实习中主要技术问题及处理方法1. 问题:函数如何返回多个数值处理方法:1)指针传递 Eg:角度转换成度分秒函数将度分秒的值传回主函数(3个返回值) void DegSwitch:Deg_DMS(double Deg,int*a,int*b,int*c)int DMS_D=(int)Deg;

9、*a=DMS_D; double DMS_M1=(Deg-DMS_D)*60; int DMS_M=(int)DMS_M1; *b=DMS_M; int DMS_S=int(DMS_M1-DMS_M)*60); *c=DMS_S;2)调用数组Eg:附合导线坐标方位角计算函数将计算所得方位角值传回主函数(多个返回值)void LineCalculation:C_Angle(double ang,double cang,int n,int b,double sc_ang)cang0=sc_ang+b*(PI-ang0); if(cang0&amp;amp;lt;0) cang0=cang0

10、+2*PI; if(cang0&amp;amp;gt;2*PI) cang0=cang0-2*PI; for(int i=1;i&amp;amp;lt;n;i+) cangi=cangi-1+b*(PI-angi); if(cangi&amp;amp;lt;0) cangi=cangi+2*PI; if(cangi&amp;amp;gt;2*PI) cangi=cangi-2*PI;2. 问题:如何访问类的对象成员处理方法:在预处理命令中装入相应类的头文件,再通过指针访问对象成员 Eg:检查角度处理类算法时,在主函数中调用类中函数 #include&am

11、p;amp;quot;DegSwitch.h&amp;amp;quot; DegSwitch *D1=new DegSwitch(); D1-&amp;amp;gt;Deg_DMS(Deg,&amp;amp;amp;(*a),&amp;amp;amp;(*b),&amp;amp;amp;*(c); result=D1-&amp;amp;gt;Deg_Rad(Deg); 3. 问题:不同的类之间可否相互调用成员函数处理方法:可以;在预处理命令中装入相应类的头文件,再通过指针访问对象成员4. 问题:录入的多个以度分秒表示的角度如何批量存放、处理处理方

12、法:放入二维数组中储存、处理 Eg:在主函数中定义一个数组存放录入的附合导线观测角值 int AN3 其中,Ai0、Ai1、Ai2中分别存放第i+1个观测角的度、分、秒位上的数值5. 问题:附合导线近似计算类中,最初录入的度分秒形式的角度值无法直接进行运算,如何准确计算和分配角度闭合差、算出坐标方位角,并根据坐标方位角正确计算坐标增量处理方法:1)根据不同计算需求将角度转换成以秒为单位或以弧度为单位数据以秒为单位角度值度分秒形式的角度值 进行角度转换 进行角度闭合差的计算与分配,根据调整后的观测角值计算坐标方位角以弧度形式的坐标方位角值运用三角函数计算坐标增量得到并输出度分秒形式的调整后观测角

13、值和坐标方位角弧度形式的角度值度分秒形式的角度值 进行角度转换 进行角度转换 2)对角度闭合差的分配:先将闭合差平均分配到每一个观测角中,若有余数,再将余数平均分配到最小边对应点两个观测角中实现以上处理的对应代码:/度分秒形式角度值转换成以秒为单位角度值DegSwitch *m=new DegSwitch(); for(i=0;i&amp;amp;lt;N;i+) angi=m-&amp;amp;gt;DMS_s(Ai0,Ai1,Ai2);/对角度闭合差的分配int ff=f_a/n*b; for(int i=0;i&amp;amp;lt;n;i+) angi=angi+ff; int m=0,f1=0,f2=0; for(int j=1;j&amp;amp;lt;n-1;j+) if(Sj&amp;amp;lt;=Sm) m=j; if(f_a%n)!=0) if(f_a/n)%2!=0) f1=(f_a%n)/2; f2=f1+1; &amp;lt;/p&amp;gt;&lt;/p&gt;</p>

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 中学教育 > 其它中学文档

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号