




已阅读5页,还剩12页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
测绘程序设计(VC.net)上机实验报告(Visual C+.Net)班 级: 学 号: 姓 名: 序 号: 二零一三年三月目 录实验1 Visual Basic环境和程序设计初步1总 结5实验2、控制结构程序设计(方位角计算、坐标转换、后方交会)6总 结16实验1 Visual C+.Net环境和程序设计初步一、实验内容1. 启动与退出VC+.net,熟悉VC+.net的开发环境,通过向导生成基于对话框的应用程序。使用MSDN查看命令按钮、标签和文本框的主要属性和方法。2. 打开Microsoft visual studio 2008 文档,浏览“Visual studio 文档”目录下的内容,并从“Visual studio 文档-Visual C+-示例”目录下下载一个程序,编译并运行之。3. 设计一个已知三边边长计算三角形面积的程序。计算模型如下:海伦公式:,其中二、设计思路1、首先,设计一个窗体,上面有三个静态框和三个文本框用于提示和输入三边a,b,c,还要有一个静态框加一个文本框用于输出面积,还要加三个命令按钮,用于计算,清除和退出;2、然后要对输入的三边进行判断是否合法(即是否可以组成三角形),用if语句实现,不合法则清零;3、最后将海伦公式写成代码的形式即可。三、界面设计如下:四、主要代码如下:#include void CMy006Dlg:OnBnClickedButton1()/ TODO: 在此添加控件通知处理程序代码/判断输入是否有误并计算UpdateData(TRUE);if(a+bc&a+cb&b+ca)double t;t=(a+b+c)/2;s=sqrt(t*(t-a)*(t-b)*(t-c);else CMy006Dlg:OnBnClickedButton2();/输入的三边不能构成三角形时则清零UpdateData(FALSE);void CMy006Dlg:OnBnClickedButton2()/ TODO: 在此添加控件通知处理程序代码/清除功能a=0;b=0;c=0;s=0;UpdateData(FALSE);void CMy006Dlg:OnBnClickedButton3()exit(0);/退出功能/ TODO: 在此添加控件通知处理程序代码五、运行结果如下:六、实验总结本次实验比较简单,主要是熟悉一下Virsual Studio 2008的MFC编程环境,了解编译MFC项目的整个流程。总的来说问题不大,只是有时候因为搞错顺序而导致程序无法运行,如先添加了代码才发现没有绑定变量尔后才绑定,或者变量属性搞错等等,都会是程序运行出错,还好有老师指点迷津。另外一点就是,在实现了上述内容以后,如何去优化、美化界面的问题,还有程序的完美性问题也是值得考虑的。因为是面向对象的程序,所以程序运行中可能会出现的问题都要考虑周全了,如题中,如果输入的三边不能构成一个三角形要如何等等。总的来说实验比较成功,收获很大。实验二 控制结构程序设计(方位角计算、坐标转换、后方交会)一、 实验内容1、 编写一个方位角计算程序;2、 设计同一参考椭球下的三维地心坐标(笛卡尔坐标系)与大地坐标系转换的程序;式中,B,L,H为椭球面上的大地维度,大地经度,大地高;X、Y、Z为空间直角坐标;N为卯酉圈曲率半径,e为椭球的偏心率,a为椭球的长半径,b为椭球的短半径。(WGS84椭球参数:长半径a-6378137m,扁率=1、298.257223563)3、 编写一个后方交会计算程序:基本原理及计算公式:若将Pa,Pb,Pc看成权,则P点的坐标即为三个已知点的加权平均值二、 设计思路1、 方位角计算:A、 窗体上应有四个静态框加文本框用于输入已知点的坐标,还要一个静态框加文本框用于输出方位角,还要三个命令按钮用于计算、清除和退出;B、 已知两点坐标,求所在线段的方位角,可以用正弦、余弦和正切公式,在这里我选择用正切公式;C、 求出dx和dy之后,求可以求出角度,但是在不同的象限里的方位角有可能得到相同的正切值,所以要加以判断,用if 语句,然后就可以求出确切的方位角了。2、 坐标转换:A、 窗体上要有六个静态框加文本框用于输入或输出大地坐标或者空间坐标,还有三个命令按钮用于计算、清除和退出,可以加两个静态提示框;B、 笛卡尔坐标转换成大地坐标,用到的是一个迭代公式,当精度达到要求时跳出循环,所以用do while循环,将H的初始值设为0;大地坐标转化笛卡尔坐标比较简单,将公式写成代码就可以了;两个转换须注意度分秒和弧度的转换;3、 后方交会:A、 窗体上应有六个静态框加文本框用以输入已知点坐标,三个静态框加文本框用以输入测得的角度,两个静态框加文本框用以输出待定点坐标,三个按钮用于计算、清除和退出;B、 已知三点坐标求待定点坐标,根据赫尔默特公式,要知道三角形三个内角,内角可以根据方位角来求,方位角可用正切公式求得。故分为三步,第一先求各边方位角,第二步根据方位角和内角的关系求三个内角,第三步根据内角和测量得到的,求权,接下来就可以根据公式求出待定点坐标了;要注意三个已知点是否位于危险圆上;须注意度分秒和弧度的转换;C、 在文本框中绑定相应的变量,在按钮中输入相应的代码,调试并运行。三、 界面设计如下:方位角计算界面:坐标转换界面:后方交会界面:四、 主要代码如下:1、方位角计算:#include #define PI 3.14159265358979323846void CMy007Dlg:OnBnClickedButton2()/ TODO: 在此添加控件通知处理程序代码UpdateData(TRUE);double dx,dy,A;dx=x2-x1;dy=y2-y1;A=atan(dy/dx);if(dx0)if(dy0)fang=A;else if(dy0)fang=2*PI+A;elsefang=0;else if(dx0)fang=PI-A;else if(dy0)fang=PI/2;elsefang=PI*3/2;fang=fang*180/PI;UpdateData(FALSE);void CMy007Dlg:OnBnClickedButton1()/ TODO: 在此添加控件通知处理程序代码x1=0;y1=0;x2=0;y2=0;fang=0;UpdateData(false);void CMy007Dlg:OnBnClickedButton3()/ TODO: 在此添加控件通知处理程序代码exit(0); 2、 坐标转换:void CMy007Dlg:OnBnClickedButton3()/ TODO: 在此添加控件通知处理程序代码exit(0);#include #define PI 3.14159265358979323846const double f=1/298.257223563;double N,e=sqrt(2*f-f*f); /扁率f,第一偏心率e,卯酉圈半径Ndouble a=6378137;void CMy007Dlg:OnBnClickedButton1()/ TODO: 在此添加控件通知处理程序代码UpdateData(TRUE); /笛卡尔坐标转换为大地坐标double dH,H0;double B2,L2,S,S1;int D,M,D1,M1;if(fabs(x)=1e-5)L=atan(y/x)*180/PI;else L=0;if(x0) L=L;else if(x0) /计算经度 L=L+180;else L=L-180;if(fabs(x)=(1e-5)|(fabs(y)=(1e-5)B=atan(z/sqrt(x*x+y*y);H=0;doN=a/sqrt(1-e*e*sin(B)*sin(B);H0=sqrt(x*x+y*y)/cos(B)-N;B=atan(z/(sqrt(x*x+y*y)*(1-e*e*N/(N+H); /迭代运算得到H,BdH=H0-H;H=H0;while(fabs(dH)=(1e-5); /当H的精度达到.00001时跳出循环elseB=0;N=a/sqrt(1-e*e*sin(B)*sin(B);H=sqrt(x*x+y*y)/cos(B)-N;B=B*180/PI;B=B+(1e-10);L=L+(1e-10); D=int(B);D1=int(L);B2=(B-D)*60; /弧度转换成度分秒格式L2=(L-D1)*60;M=int(B2);M1=int(L2);S=(B2-M)*60;S1=(L2-M1)*60;B=D+M/100+S/(1e4);L=D1+M1/100+S1/(1e4);UpdateData(FALSE);void CMy007Dlg:OnBnClickedButton2()/ TODO: 在此添加控件通知处理程序代码UpdateData(TRUE);double b,l,b1,l1;int D,M,D1,M1;double S,S1;D= int(B);D1 = int(L);M = int(B - D) * 100);M1= int(L - D1) * 100);S = (B-D) * 100 - M) * 100;S1 = (L-D1) * 100 - M1) * 100;b1= D+ M / 60 + S / 3600; /度分秒转化为弧度l1= D1 + M/ 60 + S1 / 3600; b=(b1/180)*PI; l=(l1/180)*PI; N=a/sqrt(1-e*e*sin(b)*sin(b); x=(N+H)*cos(b)*cos(l); /大地测量坐标转化为笛卡尔坐标 y=(N+H)*cos(b)*sin(l); z=(N*(1-e*e)+H)*sin(b); UpdateData(FALSE);void CMy007Dlg:OnBnClickedButton4()/ TODO: 在此添加控件通知处理程序代码UpdateData(TRUE);x=0;y=0;z=0;L=0;B=0;H=0;UpdateData(FALSE);后方交会:void CMy23Dlg:OnBnClickedButton2()/ TODO: 在此添加控件通知处理程序代码UpdateData(TRUE);XA=0;YA=0;XB=0;YB=0;XC=0;YC=0;a=0;be=0;ga=0;XP=0;YP=0;UpdateData(FALSE);void CMy23Dlg:OnBnClickedButton3()/ TODO: 在此添加控件通知处理程序代码exit(0);#include #define PI 3.14159265358979323846void CMy23Dlg:OnBnClickedButton1()/ TODO: 在此添加控件通知处理程序代码UpdateData(TRUE); /后方交会int D, M;double dS;double a1,be1,ga1;double a2,be2,ga2;double aAB,aAC,aBC,aBA,aCA,aCB,A,B,C,PA,PB,PC;D = int(a); M = int(a-D)*100); dS = (a-D)*100-M)*100;a1 = D+M/60+dS/3600; a2=a1*PI/180;D = int(be); M= int(be - D)*100); dS = (be- D) * 100 -M) * 100;be1= D+M/ 60 + dS / 3600; be2=be1*PI/180;D = int(ga); M= int(ga - D) * 100); dS= (ga- D) * 100 - M) * 100;ga1=D+ M/ 60 + dS/ 3600; ga2=ga*PI/180;aAB=atan(YB-YA)/(XB-XA); aAC=atan(YC-YA)/(XC-XA); /计算各边方位角aBC=atan(YC-YB)/(XC-XB);aBA=(aAB180?aAB-180:aAB+180);aCA=(aAC180?aAC-180:aAC+180);aCB=(aBC180?aBC-180:aBC+180);A=aAB-aAC;B=aBC-aBA; /计算各内角C=aCA-aCB; if(a+be+C)190) /判断是否危险园,否则进行计算PA=(tan(a2)*tan(A)/(tan(a2)-tan(A);PB=(tan(be2)*tan(B)/(tan(be2)-tan(B);PC=(tan(ga2)*tan(C)/(tan(ga2)-tan(C);XP=(PA*XA+PB*XB+PC*XC)/(PA+PB+PC);YP=(PA*YA+PB*YB+PC*YC)/(PA+PB+PC);else MessageBox(_T(该点位于危险圆上);UpdateData(FALSE);五、 运行结果1、 方位角计算:2、 坐标转换:3、后方交会:六、 实验总结本次实验有三个小实验,现在做完了,也不觉得是很难的事。有了上一次实
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 江苏省江阴市2025-2026学年八年级上学期开学考试数学试题答案
- 河南省驻马店市汝南县2024-2025学年四年级下学期期末英语试题
- 2024-2025学年山东省淄博市周村区七年级(下)期末数学试卷(五四学制)(含答案)
- 地摊仓库出租合同范本
- 运动教练聘用合同范本
- 供暖施工付款合同范本
- 湖南建工工程合同范本
- 银行校园招聘合同范本
- 开发小产权合同范本
- 居家客服劳务合同范本
- 宠物旅游创业计划书
- 图表作文写作技巧与范文解析
- 中西翻译简史-研究的考试课题
- 静脉导管的维护
- 设备监理表格使用说明
- 文化创意公司章程范本
- 代谢性脑病的护理诊断与措施
- 五年级阅读理解(通用15篇)
- 2023-2024学年部编版七年级上册生物第三单元教案生物圈中的绿色植物生物学与文学 寄予植物的情怀
- 院内感染预防控制
- Unit 11 Lesson 1 课件-2023-2024学年高中英语北师大版(2019)选择性必修第四册
评论
0/150
提交评论