测绘程序设计实验报告一二测绘程序设计实验报告一二
《测绘程序设计(VC.net)》
上机实验报告
(Visual C++.Net)
班 级:
学 号:
姓 名:
序 号:
二零一三年三月
目 录
实验1 Visual Basic环境和程序设计初步1
总 结5
实验2、控制结构程序设计(方位角计算、坐标转换、后方交会)6
总 结……………………………………………………………………………………………………16
实验
一、实验内容
启动与退出VC++.net,熟悉VC++.net的开发环境,通过向导生成基于对话框的应用程序。使用MSDN查看命令按钮、标签和文本框的主要属性和方法。
打开Microsoft visual studio 2008 文档,浏览“Visual studio 文档”目录下的内容,并从“Visual studio 文档->Visual C++->示例”目录下下载一个程序,编译并运行之。
设计一个已知三边边长计算三角形面积的程序。计算模型如下:
海伦公式:,其中
二、设计思路
1、首先,设计一个窗体,上面有三个静态框和三个文本框用于提示和输入三边a,b,c,还要有一个静态框加一个文本框用于输出面积,还要加三个命令按钮,用于计算,清除和退出;
2、然后要对输入的三边进行判断是否合法(即是否可以组成三角形),用if语句实现,不合法则清零;
3、最后将海伦公式写成代码的形式即可。
三、界面设计如下:
四、主要代码如下:
#include
void CMy006Dlg::OnBnClickedButton1()
{
// TODO: 在此添加控件通知处理程序代码
//判断输入是否有误并计算
UpdateData(TRUE);
if(a+b>c&&a+c>b&&b+c>a)
{
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项目的整个流程。总的来说问题不大,只是有时候因为搞错顺序而导致程序无法运行,,如先添加了代码才发现没有绑定变量尔后才绑定,或者变量属性搞错等等,都会是程序运行出错,还好有老师指点迷津。另外一点就是,在实现了上述内容以后,如何去优化、美化界面的问题,还有程序的完美性问题也是值得考虑的。因为是面向对象的程序,所以程序运行中可能会出现的问题都要考虑周全了,如题中,如果输入的三边不能构成一个三角形要如何等等。总的来说实验比较成功,收获很大。
实验二 控制结构程序设计(方位角计算、坐标转换、后方交会)
实验内容
编写一个方位角计算程序;
设计同一参考椭球下的三维地心坐标(笛卡尔坐标系)与大地坐标系转换的程序;
式中,B,L,H为椭球面上的大地维度,大地经度,大地高;X、Y、Z为空间直角坐标;N为卯酉圈曲率半径,e为椭球的偏心率,a为椭球的长半径,b为椭球的短半径。(WGS84椭球参数:长半径a-6378137m,扁率α=1、298.257223563)
编写一个后方交会计算程序:
基本原理及计算公式:
若将Pa,Pb,Pc看成权,则P点的坐标即为三个已知点的加权平均值
设计思路
方位角计算:
窗体上应有四个静态框加文本框用于输入已知点的坐标,还要一个静态框加文本框用于输出方位角,还要三个命令按钮用于计算、清除和退出;
已知两点坐标,求所在线段的方位角,可以用正弦、余弦和正切公式,在这里我选择用正切公式;
求出dx和dy之后,求可以求出角度,但是在不同的象限里的方位角有可能得到相同的正切值,所以要加以判断,用if 语句,然后就可以求出确切的方位角了。
坐标转换:
窗体上要有六个静态框加文本框用于输入或输出大地坐标或者空间坐标,还有三个命令按钮用于计算、清除和退出,可以加两个静态提示框;