测绘程序设计基础实验报告
- 格式:docx
- 大小:764.10 KB
- 文档页数:78
《测绘程序设计()》
上机实验报告
(Visual C++.Net)
班级:测绘1101
学号: 0405100731
姓名:龚自飞
序号:
二零一四年六月
目录
实验1 Visual C++.Net环境和程序设计初步 (1)
实验内容: (1)
设计思路: (1)
界面设计: (1)
主要代码:列出程序的代码,按文件依次列出。注意代码的书写格式和注释 (2)
运行结果: (3)
总结 (5)
实验1 Visual C++.Net 环境和程序设计初步
实验内容:
1. 启动与退出VC++.net ,熟悉VC++.net 的开发环境,通过向导生成基于对话框的应
用程序。使用MSDN 查看命令按钮、标签和文本框的主要属性和方法。
2. 打开Microsoft visual studio 2008 文档,浏览“Visual studio 文档”目录下的内容,
并从“Visual studio 文档->Visual C++->示例”目录下下载一个程序,编译并运行之。
3. 设计一个已知三边边长计算三角形面积的程序。计算模型如下: 海伦公式:))()((c p b p a p p S ---=,其中2
c b a p ++= 设计思路:
(1)、创建名为“gzf1”的 MFC 应用程序;
(2)、在窗体上放置4 个文本框、4 个静态框、3 个命令按钮(其中两个缺省);
(3)、设置控件属性,如Static1 的Caption 属性设置成“a=”,用于提示Edit
框的输入边长a ;
(4)、把“取消”按钮的Caption 属性改为“退出”;双击前两个按钮,生成
Click 消息函数,注释掉重载函数“OnOK()”。
(5)、为4 个Edit 控件添加绑定变量。
(6)、在相应的函数中添加代码;
(7)、运行和调试程序;
(8)、保存应用程序。
界面设计:
主要代码:
gzf1
void Cproject01Dlg::OnBnClickedOk()
{
// TODO: 在此添加控件通知处理程序代码
UpdateData(TRUE);
double p;
p=(a+b+c)/2;
S=sqrt(p*(p-a)*(p-b)*(p-c));
UpdateData(FALSE);
//OnOK();
}
void Cproject01Dlg::OnBnClickedOk2()
{
// TODO: 在此添加控件通知处理程序代码
a=0;
b=0;
c=0;
S=0;
UpdateData(FALSE);
}
void Cproject01Dlg::OnBnClickedCancel() {
// TODO: 在此添加控件通知处理程序代码
OnCancel();
}
运行结果:
总结
总结的书写要求:
这是我这学期编写的第一个MFC程序,在这次课前,我们在大一课程设计的时候有接触到相关的MFC编程,不过时隔两年,也陌生了不少。以前编程的时候都不知道为什么每次都要写UpdateData(TRUE)、UpdateData(FALSE),通过这次编程知道了它的作用分别的把控件的值赋给变量、将变量的值赋给控件;同时这次编程让我找回来了编程的感觉,觉得其实自己也是很不错的。。
目录
实验2 控制结构程序设计 (1)
实验内容: (1)
设计思路: (1)
界面设计: (1)
主要代码:列出程序的代码,按文件依次列出。注意代码的书写格式和注释 (3)
运行结果: (10)
设计技巧: (12)
总结 (1)
实验2 控制结构程序设计
实验内容:
4.编写一个方位角计算程序。先使用反正切函数计算,然后利用坐标增量的符号来判
断所在的象限;
5.设计同一参考椭球下的三维地心坐标(笛卡尔坐标系)与大地坐标系转换的程序;
6.编写一个后方交会程序。
设计思路:
1.(1)、设计程序界面,并且给控件添加变量;
(2)、计算dx、dy;
(3)、编写程序;为相应的控件编写相应的程序,“计算”首先是方位角在坐标轴上的情况,其次就是不在坐标轴上的情况,然后再将输出的弧度转换为度分秒的形式;
(4)、调试运行程序。
2.(1)、设计程序界面,并且给控件添加变量;
(2)、先编写BLH转换到XYZ代码;
(3)、再编写XYZ转换到BLH代码(注意L在不同象限的计算公式不同,B、H在循环体内只要H满足条件B就一定满足);
(4)、调试运行程序;
3.(1)、设计程序界面;
(2)、判断危险圆的范围;
(3)、计算三边的边长,然后计算三角形的三个内角;
(4)、计算出三个观测角和三个内角的正切值,再将其带人公式计算相应的权,最后计算出观测点的坐标位置;
(5)、调试运行。
界面设计:
主要代码:
Project201
void Cproject201Dlg::OnBnClickedOk()
{
// TODO: 在此添加控件通知处理程序代码
UpdateData(TRUE);
const double PI=3.141592653;
double AB;
double dx,dy;
dx=Xb-Xa;
dy=Yb-Ya;
AB=0.0;
if (dx==0&&dy>0)
{
AB=PI/2;//在Y轴正半轴
MessageBox(_T("该方位角在Y轴正半轴"));
}
else if (dx==0&&dy<0)
{
AB=3*PI/2;//在Y轴负半轴
MessageBox(_T("该方位角在Y轴负半轴"));
}
else if (dx>0&&dy==0)
{
AB=0;//在X轴正半轴
MessageBox(_T("该方位角在X轴正半轴"));
}
else if (dx<0&&dy==0)
{
AB=PI;//在X轴负半轴
MessageBox(_T("该方位角在X轴负半轴"));
}
else if (dx>0&&dy>0)
{
AB=atan2(dy,dx);//第一象限
m=1;
}
else if (dx<0&&dy>0)
{
AB=atan2(dy,dx);//第二象限
AB=PI-AB;;
m=2;