搜索
您的当前位置:首页正文

测绘程序设计实验三

来源:易榕旅网


《测绘程序设计(VC.net)》 上机实验报告

(Visual C++.Net)

班 级: 学 号: 姓 名:

序 号: 21

二零一二年三月十五日

实验3 数组、指针与函数

实验目的 掌握数组的定义、引用及应用方法

掌握指针和动态数组

掌握函数的定义、引用及应用方法。

实验内容 1、编写一个球任意多边形的面积的程序。提示:通

过界面输入数据,并把数据保存在一个二维数组或一个一维的自定义结构体类型的数组中,然后在进行计算。要求计算部分写成函数形式,式计算程序与界面无关。 例如:

P=1/2(x1+x2)(y2-y1)+1/2(x2+x3)(y3-y2)+1/2(x3+x4)(y4-y3)+1/2(x4+x1)(y1-y4)

2、由三角形三个边长求内角函数;

5、交会定点计算函数设计

把前面学过的前方交会、侧边交会、后方交会程序写成函数的形式,然后再通过主程序调用

实验步骤

实验3.1

如下图所示,新建一个基于对话框的MFC文件,并根据要求设置编辑框的属性,以满足实验的要求

根据要求添加相应的函数代码

void Cshiyan31Dlg::OnBnClickedButton1() {

// 计算控件程序代码 UpdateData(TRUE); int iLine; int iPtCount; CString *strTmp=NULL; int n;

CString *pstrLine=SplitString(strInput,13,iLine); if(iLine<4) // 多边形最少三个边,否则不能构成多边形 {

MessageBox(_T(\"数据缺省!\")); return; }

iPtCount=_ttoi(pstrLine[0]); // 第一行为多边形边数 struct Point // 建立储存点的结构体 {

double *dPx; double *dPy; }dPt;

dPt.dPx=new double[iPtCount]; dPt.dPy=new double[iPtCount];

if ((iLineMessageBox(_T(\"输入有误!\")); return; } else {

for (int i=0;istrTmp=SplitString(pstrLine[i+1],44,n);

dPt.dPx[i]=_tstof(strTmp[0]); dPt.dPy[i]=_tstof(strTmp[1]); if(strTmp!=NULL)// 释放内存 {

delete[] strTmp; strTmp=NULL; } }

if(strTmp!=NULL)// 释放内存 {

delete[] strTmp; strTmp=NULL; }

dArea=fabs(ComptArea(dPt.dPx,dPt.dPy,iPtCount)); }

if(pstrLine!=NULL)// 释放内存 {

delete[] pstrLine; pstrLine=NULL; }

UpdateData(FALSE); }

void Cshiyan31Dlg::OnBnClickedOk() {

// 初始化

strInput=\"输入坐标\"; dArea=0;

UpdateData(FALSE); }

下面是运行结果:

实验3.2

根据实验要求新建一个基于对话框的MFC文件,并根据要求添加相应需要的编辑框和静态框,已经命令按钮。并根据需要改变各个命令按钮的属性。

双击命令按钮进入函数编辑区 如下所示:

在函数编辑区添加相应的函数代码

void Cshiyan32Dlg::OnBnClickedButton1() {

// TODO: 在此添加控件通知处理程序代码

UpdateData(TRUE); double A,B,C,M,N,X; M=cos(A); N=cos(B); X=cos(C);

M=(b*b+c*c-a*a)/(2*b*c); N=(a*a+c*c-b*b)/(2*a*c); X=(a*a+b*b-c*c)/(2*a*b); UpdateData(FALSE); }

void Cshiyan32Dlg::OnBnClickedOk() {

// TODO: 在此添加控件通知处理程序代码 UpdateData(TRUE); a=b=c=0;//对变量初始化 UpdateData(FALSE); //OnOK(); }

void Cshiyan32Dlg::OnBnClickedCancel() {

// TODO: 在此添加控件通知处理程序代码 //OnCancel();

}

运行结果

实验3.3

根据需要新建一个基于对话框的MFC文件并添加所需要的静态框和编辑框以及命令按钮 如下所示:

双击命令按钮进入函数编辑区,在需要的位置添加相应的函数代码:

运行结果:

实验3.4

根据实验要求新建一个基于对话框的MFC文件,并添加相应的静态框和编辑框,按照需要改变各个编辑框的属性这些在之前的事眼中都已经用到,所以这里就不再一一解释:

按照需要添加相应的函数代码:

下面是运行结果

实验3.5

按照要求建立一个基于对话框的MFC文件

如下图添加三个button按钮 分别命名为“前方交会”“侧方交会”“后方交会”:并分别在源文件中添加三个DIG,分别命名为“qiangfangjiaohui”“cefangjiaohui”“houfangjiaohui”

在头文件中分别添加三个源文件 如图所示:

并在相应的button添加如下所示的代码:

运行结果如下:

表示调用关系已经建立成功

在前方交会对应的Dialog下的函数框中添加相应的静态框和编辑框以及命令按钮,并在函数中添加相应的函数代码,如下所示 前方交会的代码

前方交会运行结果

后方交会的代码

后方交会运行成果

侧方交会的代码

侧方交会运行成果

实验结果 本次试验比之前所做的实验的实验量都大好多,而且

难度也又增加,试验时间缩短了,但是这个更加考验我们的能力,虽然这个让我们在实验的过程中觉得非常的紧张,但是真的试验结束后还是觉得收获颇丰,在这次的实验中,中间三个实验都比较好做,而第一个实验因为要求计算部分写成函数形式式计算程序与界面无关。所以难度大大增加,而最后一个实验其实就是一个主干加上各个实验校分块你的分支,但是由于在运行检验过程中错误不显示。所以再找错的时候就增加了难度与工作量。但是幸好还是做完了,这其中有些是自己的独立完成的,还有的是通过同学的帮助,在实验过程还发现了一个很严重的问题,之前学过的测绘公式居然都忘记了,所以还要到书上面找,给我们敲响了警钟,以后一定要认真学习并谨记在心。

因篇幅问题不能全部显示,请点此查看更多更全内容

Top