测绘程序策画实验三.doc

  1. 1、本文档共18页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
《测绘程序设计(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(iLine4) // 多边形最少三个边,否则不能构成多边形 { 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 ((iLineiPtCount+1)||(iPtCount3)) //判断错误情况:数据与边数不符与不构成多边形 { MessageBox(_T(输入有误!)); return; } else { for (int i=0;iiPtCount;i++) { strTmp=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::OnBnC

文档评论(0)

xuefei111 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档