- 69
- 0
- 约1.21万字
- 约 23页
- 2017-03-05 发布于重庆
- 举报
vs2008程序编写实验报告--数组指针与函数
《测绘程序设计(VC.net)》上机实验报告(Visual C++.Net)实验3 数组、指针与函数班 级: 学 号: 姓 名: 序 号: 二零一零年三月实验3 数组、指针与函数一、实验目的掌握数组的定义、引用及应用方法。掌握指针与动态数组。掌握函数的定义、引用及应用方法。二、实验内容1.求任意多边形面积多边形面积计算原理及算法 计算原理: 例如上图:面积计算的算法: 经整理后得:设计思路:因为计算多边形面积的数据随多边形顶点数的增加而增加,因此要编写一个分割字符串的函数,使输入的数据第一行表示多边形类型,接下来的每一行依次表示一个顶点的坐标,X与Y之间用逗号隔开。创建一个二维数组,行数即顶点个数,列数为2,用来保存各顶点的坐标。调用Split函数分离,获取各顶点坐标数据界面设计:由1个静态框、2个文本框和2个命令按钮组成。其中文本框的属性列表为:IDMultilineWant Return添加变量名IDC_EDIT1TrueTruestrCoordDataIDC_EDIT2TrueTruestrResult 具体见运行结果的输出界面主要代码: ComAreaDlg.cpp void CComAreaDlg::OnBnClickedCancel(){// TODO: 在此添加控件通知处理程序代码OnCancel();}CString * CComAreaDlg::SplitString(CString str, char split, int iSubStrs){ int iPos = 0; //分割符位置 int iNums = 0; //分割符的总数 CString strTemp = str; CString strRight; //先计算子字符串的数量 while (iPos != -1) { iPos = strTemp.Find(split); if (iPos == -1) { break; } strRight = strTemp.Mid(iPos + 1, str.GetLength()); strTemp = strRight; iNums++; } if (iNums == 0) //没有找到分割符 { //子字符串数就是字符串本身 iSubStrs = 1; return NULL; } //子字符串数组 iSubStrs = iNums + 1; //子串的数量= 分割符数量+ 1 CString* pStrSplit; pStrSplit = new CString[iSubStrs]; strTemp = str; CString strLeft; for (int i = 0; i iNums; i++) { iPos = strTemp.Find(split); //左子串 strLeft = strTemp.Left(iPos); //右子串 strRight = strTemp.Mid(iPos + 1, strTemp.GetLength()); strTemp = strRight; pStrSplit[i] = strLeft; } pStrSplit[iNums] = strTemp; return pStrSplit;}void CComAreaDlg::OnBnClickedButton1(){// TODO: 在此添加控件通知处理程序代码UpdateData(TRUE);int iLine;//分行并存入字符串数组CString *pstrLine=SplitString(strCoordData,13,iLine);if(iLine4){MessageBox(_T(输入的数据不完整!));return;}int iApexCount=iLine-1;//多边形顶点个数short npolygonType;//多边形类型,double (*cApex)[2]; cApex=new double[iApexCount][2];//顶点坐标值 CString *strTmp=NULL;int n;npolygonType = _ttoi(pstrLine[0]); //第一行为多边形类型//逐行用Split函数分离,获取各顶点坐标数据for(int i=0;iiApexCount;i++){strTmp = SplitString(pstrLine[i+1], ,,n);//分割第三行 cApex[i][0] = _tstof(strTmp[0]);cApex[i][1] = _tstof(strTmp[1]);if(strTmp!=NULL)//释放内存{delete[] strTmp;strTmp=NULL;}}if(strTmp!=NULL)/
原创力文档

文档评论(0)