测绘程序实验报告.doc_第1页
测绘程序实验报告.doc_第2页
测绘程序实验报告.doc_第3页
测绘程序实验报告.doc_第4页
测绘程序实验报告.doc_第5页
已阅读5页,还剩48页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

实验1 Visual C+.Net环境和程序设计初步1.掌握 VC+.net 语言的基本语法;2.理解顺序结构、选择结构和循环结构程序设计的特点及应用;3.掌握对基于对话框的 MFC 应用程序设计方法;4.掌握一些简单算法。5.编写一个方位角计算程序。提示:先使用反正切函数计算,然后利用坐标增量的符号来判断所在的象限。设计思路:在按钮下面添加程序。X Y同时大于0在第一象限,方位角等于arctan(y/x);X0,Y0在第二象限,方位角等于arctan(y/x)+90;X0,Y0在第三象限,方位角等于arctan(y/x)+180;X0在第四象限,方位角等于arctan(y/x)+270;界面设计:主要代码:/ 0145110615 ymh 2.1Dlg.h : 头文件protected:HICON m_hIcon; / 生成的消息映射函数virtual BOOL OnInitDialog();afx_msg void OnSysCommand(UINT nID, LPARAM lParam);afx_msg void OnPaint();afx_msg HCURSOR OnQueryDragIcon();DECLARE_MESSAGE_MAP()public:double x;double y;double Q;afx_msg void OnBnClickedOk();afx_msg void OnBnClickedCancel();afx_msg void OnBnClickedButton1();double A;/ 0145110615 ymh 2.1Dlg.cpp : 实现文件#include stdafx.h#include 0145110615 ymh 2.1.h#include 0145110615 ymh 2.1Dlg.h#include #ifdef _DEBUG#define new DEBUG_NEW#endifvoid CMy0145110615ymh21Dlg:OnBnClickedOk()/计算/ TODO: 在此添加控件通知处理程序代码 UpdateData(TRUE);if(x0)if(y0)Q=1;A=atan(y/x);/x大于y大于在第一象限elseQ=4;A=atan(y/x)+270;/x大于y小于在第四象限else if(y0)Q=2;A=atan(y/x)+90;/x大于y小于在第二象限elseQ=3;A=atan(y/x)+180;/x小于y小于在第三象限UpdateData(FALSE);/OnOK();void CMy0145110615ymh21Dlg:OnBnClickedCancel()/清除/ TODO: 在此添加控件通知处理程序代码UpdateData(true);x=0;y=0;Q=0;A=0;UpdateData(false);void CMy0145110615ymh21Dlg:OnBnClickedButton1()/退出 / TODO: 在此添加控件通知处理程序代码 OnCancel();运行结果:总 结 第一次做这个实验的时候真的觉得挺难得可是当我经过更难的实验的洗礼之后在返回来看它真是顿时亲切了许多,其实当时是对这个软件不了解简单的东西把它想得很复杂绕来绕去都不知道该怎么实现一些很简单的东西了。实验2.2 .设计同一参考椭球下的三维地心坐标(笛卡儿坐标系)与大地坐标系转换的程序。(提示:用 dowhile 迭代,B、H 初始为 0 进行迭代,直到 H 的精度达到 0.00001米)注意:东经 0180(Y0),西经:0-180(Y0)式中,B、L、H 为椭球面上的大地纬度、大地经度、大地高;X、Y、Z 为空间直角坐标;N 为卯酉圈曲率半径,e 为椭球的偏心率,a 为椭球的长半径,b 为椭球的短半径。 (WGS84 椭球参数:长半径 a=6378137m,扁率=1/298.257223563)设计思路:在按钮下面设置主程序,按照指导书给的思路编辑公式界面设计:主要代码: / 0145110615 ymh 2.2Dlg.h : 头文件protected:HICON m_hIcon; / 生成的消息映射函数virtual BOOL OnInitDialog();afx_msg void OnSysCommand(UINT nID, LPARAM lParam);afx_msg void OnPaint();afx_msg HCURSOR OnQueryDragIcon();DECLARE_MESSAGE_MAP()public:double B;double L;double H;double X;double Y;double Z;afx_msg void OnBnClickedOk();/ 0145110615 ymh 2.2Dlg.cpp : 实现文件#include stdafx.h#include 0145110615 ymh 2.2.h#include 0145110615 ymh 2.2Dlg.h#include #ifdef _DEBUG#define new DEBUG_NEW#endifvoid CMy0145110615ymh22Dlg:OnBnClickedOk()/大地坐标转换为空间直角坐标/ TODO: 在此添加控件通知处理程序代码 UpdateData(true);double r=1/298.257223563;double e=sqrt(2*r)-(r*r);int a=6378137;double W=sqrt(1-e*e*sin(B)*sin(B);double N=a/W;X=(N+H)*cos(B)*cos(L);Y=(N+H)*cos(B)*cos(L);Z=(N*(1-e*e)+H)*sin(B);UpdateData(false);/OnOK();运行结果:。实验2.3 .编写一个后方交会计算程序。3.1 基本原理及计算公式若将 Pa、Pb、Pc 看成权,则 P 点的坐标即为三个已知点的加权平均值3.2 计算程序设计步骤(1)设计界面,用于输入 3 个已知点的坐标和三个观测角a、b和g,以及用于输出待定点坐标的文本框(12 个)、静态标签框和 Button 按钮;(2)定义文本框控件变量(Value);(3)根据已知点计算三个内角 A、B、C;(4)计算 Tan(a)、Tan()、Tan()、Tan(A)、Tan(B)、Tan(C);(5)计算 Pa、Pb、Pc;(6)计算待定点坐标 Xp、Yp。界面要求:三个坐标输入框,两个角度输入框一个坐标结果输出框一个计算按钮,一个清除按钮,一个退出按钮。2.由三角形三个边长求内角函数计算公式:-+设计思路:通过示例编辑框添加变量,在按钮下面添加程序。先将、的度分秒之转换成度利用三角形内角和等于180算出并将转换成弧度。接着计算三角形的内角,判断P点是否在危险圆上若不在则计算P点坐标若在则弹出“该点在危险圆上”。界面设计:主要代码:protected:HICON m_hIcon; / 生成的消息映射函数virtual BOOL OnInitDialog();afx_msg void OnSysCommand(UINT nID, LPARAM lParam);afx_msg void OnPaint();afx_msg HCURSOR OnQueryDragIcon();DECLARE_MESSAGE_MAP()public: afx_msg void OnEnChangeEdit5();double XA;double YA;double XB;double YB;double XC;double YC;double alfa;double bet;double Xp;double Yp;afx_msg void OnBnClickedButton1();afx_msg void OnBnClickedOk();#include stdafx.h#include dss2-3.h#include dss2-3Dlg.h#include const double PI=3.1415926535897932;#ifdef _DEBUG#define new DEBUG_NEW#endifvoid Cdss23Dlg:OnBnClickedButton1()/ TODO: 在此添加控件通知处理程序代码UpdateData(TRUE);double afAB,afAC,afBC,afBA,afCA,afCB,A,B,C,Pa,Pb,Pc;int D1,M1,D2,M2;double S1,S2,alfa1,bet1,gama1,alfa2,bet2,gama2;/将alfa转换成度D1=int(alfa);M1=int(alfa-D1)*100);S1=(alfa-D1)*100-M1)*100;alfa1=D1+M1/60+S1/3600;alfa2=alfa1*PI/180;/将bet转换成度D2=int(bet);M2=int(bet-D2)*100);S2=(bet-D2)*100-M2)*100;bet1=D2+M2/60+S2/3600; bet2=bet*PI/180;/计算gama1的值gama1=180-bet1-alfa1;gama2=gama1*PI/180;/将gama1的值转换成弧度/计算已知点的三个内角afAB=atan(YB-YA)/(XB-XA);afAC=atan(YC-YA)/(XC-XA);afBA=atan(YA-YB)/(XA-XB);afBC=atan(YC-YB)/(XC-XB);afCA=atan(YA-YC)/(XA-XC);afCB=atan(YB-YC)/(XB-XC);A=afAB-afAC;B=afBC-afBA;C=afCA-afCB;/判断点是否在危险圆上若不在则计算P点坐标if(alfa+bet+C190)Pa=(tan(alfa2)*tan(A)/(tan(alfa2)-tan(A);Pb=(tan(bet2)*tan(B)/(tan(bet2)-tan(B);Pc=(tan(gama2)*tan(C)/(tan(gama2)-tan(C);Xp=(XA*Pa+XB*Pb+XC*Pc)/(Pa+Pb+Pc);Yp=(YA*Pa+YB*Pb+YC*Pc)/(Pa+Pb+Pc);else/若在则弹出“该点位于危险圆上”MessageBox(_T(该点位于危险圆上);UpdateData(FALSE);/OnCancel();void Cdss23Dlg:OnBnClickedOk()/ TODO: 在此添加控件通知处理程序代码UpdateData(TRUE);XA=0;YA=0;XB=0;YB=0;XC=0;YC=0;alfa=0;bet=0;Xp=0;Yp=0;UpdateData(FALSE);/OnOK();;运行结果:总 结 本次实验刚开始还是遇到了很多问题的比如说根本不就不知道该如何用程序来实现后方交会这个过程,后来经过问同学、上网查资料等大概弄懂了实现步骤可是写完程序后我发现他根本计算不了点计算按按钮一点反应都没有。又开始找问题才发现是UpdateData(FALSE)和UpdateData(TRUE)忘写了,还发现程序中没有进行度分秒到度的转换,就顺便把这个实现也加进去了。这个程序也就算完成了。 实验 三 数组、指针与函数一、实验目的 掌握数组的定义、引用及应用方法。 掌握指针与动态数组。 掌握函数的定义、引用及应用方法。二、实验内容1.编写一个求任意多边形面积的程序。提示:通过界面输入数据,并把数据保存在一个二维数组或一个一维的自定义结构体类型的数组中,然后再进行计算。要求计算部分写成函数的形式,使计算程序与界面无关。动态数组创建动态数组l 结构体的定义多边形面积计算原理及算法计算原理:=面积计算的算法:L提示:显示框用 Cedit 控件变量对每个输入的坐标 用 CString str 临时变量 格式化,然后用 CEdit 的控件变量插入设计思路:将实现写在按钮在下面。添加顶点下面实现创建动态数组,确认按钮实现返回数组大小值并将添加的数据显示到显示框中去,通过计算按钮实现多边形面积的计算,清除按钮实现清除输入的数据,退出按钮退出程序。界面设计:主要代码:/ 实现protected:HICON m_hIcon; / 生成的消息映射函数virtual BOOL OnInitDialog();afx_msg void OnSysCommand(UINT nID, LPARAM lParam);afx_msg void OnPaint();afx_msg HCURSOR OnQueryDragIcon();DECLARE_MESSAGE_MAP()public:double x;double y;double result;CEdit edit;afx_msg void OnBnClickedButton4();afx_msg void OnBnClickedButton3();afx_msg void OnBnClickedButton2();afx_msg void OnBnClickedButton1();afx_msg void OnBnClickedButton5();int n;double *px;double *py;CEdit m_strdis;#include stdafx.h#include 0145110615(3).h#include 0145110615(3)Dlg.h#ifdef _DEBUG#define new DEBUG_NEW#endif/ 用于应用程序“关于”菜单项的CAboutDlg 对话框double calarea(double x,double y,int n)double s=0;int i;for(i=0;in)MessageBox(_T(Warning!);str.Format(_T(No.%d % lf %lf rn),t,x,y);m_strdis.ReplaceSel(str);pxt-1=x;pyt-1=y;UpdateData(FALSE);void CMy01451105173Dlg:OnBnClickedButton5()/ TODO: 在此添加控件通知处理程序代码exit(0);运行结果:总 结:这个实验相比前面几个实验感觉难了好多。首先是不知道怎么实现动态数组也不知道怎样将输入的内容显示到示例编辑框里。总之在眼前的都是一堆问题,但面临的问题总得解决所以就只能看书、上网查资料、问同学等各种方法来解决问题,最终把问题解决。 实验 四 类的创建一、实验目的1. 掌握面向对象编程基本思想2. 掌握 VC+.net 中创建类3. 掌握建立和使用对象4. 掌握运算符号重载5. 理解类的继承和多态性二、实验内容1.设计一个角度类。要求该类具有度分秒至度的换算、度至度分秒的换算、度与弧度的换算等功能。提示:设置一个角度大小属性,并设定该属性为缺省属性;另设一个状态属性,表示当前设置的角度大小的形式;度分秒、度、弧度间的相互转换的方法;定义运算符号(加、减)方法,使得角度类能够像一种普通的数据类型样的方便使用。设计思路:设计一个角度类在类的头文件里申明度到度分秒的转换、度分秒到度的转换、度到弧度的转换、运算符的重载,在类的.cpp文件中写出具体的函数实现,在按钮下面调用类的各个函数来实现角度的转换。界面设计:主要代码:DECLARE_MESSAGE_MAP()public:double dmstodgree(double dmg);/声明度分秒到度的转换函数double dgreetodms(double drgree);/声明度到度分秒的转换函数double dgreetohd(double dgree);/声明度到弧度的转换函数;DECLARE_MESSAGE_MAP()public:afx_msg void OnBnClickedCancel();double dgree;double dms;double hd;afx_msg void OnBnClickedButton1();afx_msg void OnBnClickedButton2();afx_msg void OnBnClickedButton3();afx_msg void OnBnClickedOk(); void Cymh4Dlg:OnBnClickedCancel()/ TODO: 在此添加控件通知处理程序代码OnCancel();void Cymh4Dlg:OnBnClickedButton1()/ TODO: 在此添加控件通知处理程序代码UpdateData(true);Angle sf;sf.dgreetodms(dgree);UpdateData(false);void Cymh4Dlg:OnBnClickedButton2()/ TODO: 在此添加控件通知处理程序代码UpdateData(true);Angle sf;sf.dmstodgree(dms);UpdateData(false);void Cymh4Dlg:OnBnClickedButton3()/ TODO: 在此添加控件通知处理程序代码UpdateData(true);Angle sf;sf.dgreetohd(dgree);UpdateData(false);void Cymh4Dlg:OnBnClickedOk()/ TODO: 在此添加控件通知处理程序代码/OnOK();UpdateData(true);dgree=0;dms=0;hd=0;UpdateData(false); 运行结果:这个实验调试最终没有通过所以没有结果总 结 这个实验给我的最大的感受是细节决定成败,实践总会比想象的困难,虽然我非常清除实验原理可是但我按照我的思路去写的时候各种调试改还是有错,我不清楚为什么Angle sf; sf.dgreetodms(dgree);这样的语句在程序七中调试能通过而这个程序中却死活不行。实验 五文 件一、实验目的 掌握文件对话框的使用方法。 掌握 C+文件操作的一般步骤及实现方法。 了解 MFC 文件操作的特点及使用方法。二、实验内容1. 编制简单的 Cass 数据文件进行数据整理的程序。整理后的数据文件中要求无重复点数据,且数据按点号大小的升序进行排序。要求整理后的数据按与原始数据文件同样的格式保存为另外一个文件示例数据“民用园燃气.dat”文件数据格式:总点数点号,编码,X,Y,H例如:要求:a.用SaveFileDialog和OpenFileDialog控件获取文件打开或保存的文件名。b.自定义一个测量点数据结构体,其元素包括:点号,编码,X,Y,Hc.用文本框显示原始数据和整理后的数据d.按编程规范进行编码a. 读数据、保存数据、判断一个点数据是否已经存在、排序、在文本框中显示文件内容等可以分别定义成一个子过程或函数。c.编程技巧打开文件获得总点数根据点数调整数组的大逐行读取数据,判断该点是否已经存在数组中,若不存在,则把该数据存放在数组中根据删除重复点后的总点数,重新调整数组大小按点号大小的升序排序按原数据格式输出到另外一个文件设计思路:在按钮下面设置主程序。通过打开文件按钮将原文件打开并显示到示例编辑框内,通过保存文件按钮实现对文件分行、删除重复点、排序、保存更改后的文件并把它显示到示例编辑框中等操作。界面设计:主要代码:/ 实现protected:HICON m_hIcon; / 生成的消息映射函数virtual BOOL OnInitDialog();afx_msg void OnSysCommand(UINT nID, LPARAM lParam);afx_msg void OnPaint();afx_msg HCURSOR OnQueryDragIcon();DECLARE_MESSAGE_MAP()public: afx_msg void OnBnClickedOk();afx_msg void OnBnClickedCancel();CString yuanshi;CString xiugai; CString *CMy0145110615ymh5Dlg:Splitstring(CString str,char split,int &isubstr);/ 0145110615 ymh 5Dlg.cpp : 实现文件#include stdafx.h#include 0145110615 ymh 5.h#include 0145110615 ymh 5Dlg.h#include #include #ifdef _DEBUG#define new DEBUG_NEW#endif/定义结构体里面的数据类型包括点号、编码、X、Y、Hstruct Pointint number;CString coder;double X;double Y;double H;CString *CMy0145110615ymh5Dlg:Splitstring(CString str,char split,int &isubstr)/分割函数int M=0;/分割位置int N=0;/分割符的总数CString strLeft=str;CString strRight;/定义两个字符串变量/计算字符串的总数while(M!=-1)M=strLeft.Find(split);/查找分割位置并赋给MstrRight=strLeft.Mid(M+1,str.GetLength();/把字符串位置和长度信息赋给strRight字符串strLeft=strRight;N+;/字符串总数加一if(N=0)/如果分割符的总数为字符串数就是字符串本身isubstr=1;return NULL;isubstr=N+1;/字符串数等于分割符数加CString* pStrSlipt;/创建字符串指针pStrSlipt=new CStringisubstr;/创建字符串数组strLeft=str;CString strLeftss;for(int i=0;iN;i+)M=strLeft.Find(split);strLeftss=strLeft.Left(M);strRight=strLeft.Mid(M+1,strLeft.GetLength();/把字符串位置和长度信息赋给strRight字符串strLeft=strRight;pStrSlipti=strLeftss;pStrSliptN=strLeft;return pStrSlipt;void CMy0145110615ymh5Dlg:OnBnClickedOk()/ TODO: 在此添加控件通知处理程序代码/OnOK();UpdateData(true);CFileDialog dlgFile(TRUE,_T(txt),NULL,OFN_ALLOWMULTISELECT|OFN_EXPLORER,_T(文本文件)|*.txt);/创建打开文件的对话框if(dlgFile.DoModal()=IDCANCEL)return;/如果选择取消按钮则返回CString strFileName=dlgFile.GetPathName();/获取打开文件文件全名(含全路径)setlocale(LC_ALL,);/设置语言环境CStdioFile sf;/设置文件对象if(!sf.Open(strFileName,CFile:modeRead)return;/如果没有打开文件则返回CString strLine;/定义CString变量yuanshi.Empty();/文件和显示框建立联系BOOL bEOF=sf.ReadString(strLine);/把文件中读取的行之赋给变量bEOFwhile(bEOF)yuanshi+=strLine;bEOF=sf.ReadString(strLine);if(bEOF)yuanshi+=_T(n);/判断文件是否结束sf.Close();/关闭文件UpdateData(false);void CMy0145110615ymh5Dlg:OnBnClickedCancel()/ TODO: 在此添加控件通知处理程序代码UpdateData(true);CFileDialog dlgFile(FALSE,_T(dat),NULL,OFN_ALLOWMULTISELECT|OFN_EXPLORER,_T(文本文件)|*.dat);/创建保存文件的对话框if(dlgFile.DoModal()=IDCANCEL)return;/如果选择取消按钮则返回CString strFileName=dlgFile.GetPathName();/获取保存文件的文件全名(含路径)setlocale(LC_ALL,);/设置语言环境CStdioFile sf;/设置文件对象if(!sf.Open(strFileName,CFile:modeRead)return;/如果没有保存文件则返回sf.WriteString(yuanshi);/调用文件的写函数sf.Close();int aLine;/定义行变量CString *pstrLine=Splitstring(yuanshi,n,aLine);/将文件进行分行并以此存入字符串数组中int TotalPoint;/总点数CString *strTmp=NULL;/定义字符串数组并初始化 TotalPoint=_ttoi(pstrLine0);/第一行为总点数if(TotalPoint!=aLine-1)MessageBox(_T(数据有误); Point *pPoint=new PointTotalPoint;/创建大小为总点数的结构体数组int n;/用Split函数将文件逐行分离,给点结构体赋值for(int i=0;iTotalPoint;i+)strTmp=Splitstring(pstrLinei+1,n);/分离的行逐行存入字符串数组中pPointi.number=_ttoi(strTmp0);/依次给结构体里的元素赋值 pPointi.coder=strTmp1;pPointi.X=_tstof(strTmp2); pPointi.Y=_tstof(strTmp3); pPointi.H=_tstof(strTmp4); if(strTmp!=NULL)/赋值完毕时释放字符串数组的空间 delete strTmp; strTmp=NULL; /判断是否有相同的点号若有则删除点号相同的点for(int i=0;iTotalPoint;i+)for(int j=i+1;jTotalPoint;j+)if(pPointi.number=pPointj.number)delete pPoint;/删除了点后改变结构体数组的大小并重新对其赋值for(int m=j;mTotalPoint-1;m+)pPointm=pPointm+1;TotalPoint-;/按点号的生序排列for(int i=0;iTotalPoint;i+)for(int j=i+1;jpPointj.number)t=pPointi.number;pPointj.number=t;pPointi.number=pPointj.number;/输出调整后的文件xiugai.Format(_T(%drn),TotalPoint);/第一行输出点的总数CString strOutPut;/定义字符串变量for(int i=0;iTotalPoint;i+)strOutPut.Format(_T(%d,%s,%lf,%lf,%lf),pPointi.number,pPointi.coder,pPointi.X,pPointi.Y,pPointi.H);xiugai=xiugai+strOutPut;/将第一行和其他所有行合并CString strLine;/定义CString变量xiugai.Empty();/文件和显示框建立联系BOOL bEOF=sf.ReadString(strLine);/把文件中读取的行之赋给变量bEOFwhile(bEOF) xiugai+=strLine;bEOF=sf.ReadString(strLine);if(bEOF)yuanshi+=_T(n);/判断文件是否结束sf.Close();/关闭文件 UpdateData(false);/OnCancel();运行结果:总 结: 这次实验的主要问题是遇到主要问题是程序调试花了很多事间。因为要完完整整的自己写出一个程序对我来说还是有难度的,所以我不得不照着书上和网上的一些写法来写的所以有一些语句不是特别清楚,所以调试的时候很多错误都觉得很奇怪。尽管如此还是花了很多时间先把程序的构架和一些语句弄懂了最终才把问题解决 实验 六 图形程序设计一、实验目的 掌握 VC+.net 坐标系和各项设置方法。 掌握 GDI 绘图方法。 理解交互式图形程序设计二、实验内容1.下列数据为一变形监测点的 24 期位移监测结果(分别为 X,Y,H),编制程序绘制出该点的变形曲线图,每个方向一个位移序列图。设计思路:用类DeformationCurve实现原始文件的读入、文件的拆分、画图等功能,调用类的相关函数来实现相应的功能。界面设计:因为是基于当文本的所以没有界面主要代码:class DeformationCurve : public CWndDECLARE_DYNAMIC(DeformationCurve)public:DeformationCurve();virtual DeformationCurve();protected:DECLARE_MESSAGE_MAP()public:CString *DeformationCurve:Splitstring(CString str,char split,int &isubstr);void DeformationCurve:ReadData(double *&X,double *&Y,double *&H);void DeformationCurve:Draw(CDC* pDC,CRect& rect);/ DeformationCurve.cpp : 实现文件#include stdafx.h#include 0145110615 ymh 6.h#include DeformationCurve.h#include CString *DeformationCurve:Splitstring(CString str,char split,int &isubstr)/分割函数int M=0;/分割位置int N=0;/分割符的总数CString strLeft=str;CString strRight;/定义两个字符串变量/计算字符串的总数while(M!=-1)M=strLeft.Find(split);/查找分割位置并赋给MstrRight=strLeft.Mid(M+1,str.GetLength();/把字符串位置和长度信息赋给strRight字符串strLeft=strRight;N+;/字符串总数加一if(N=0)/如果分割符的总数为字符串数就是字符串本身isubstr=1;return NULL;isubstr=N+1;/字符串数等于分割符数加CString* pStrSlipt;/创建字符串指针pStrSlipt=new CStringisubstr;/创建字符串数组strLeft=str;CString strLeftss;for(int i=0;iN;i+)M=strLeft.Find(split);strLeftss=strLeft.Left(M);strRight=strLeft.Mid(M+1,strLeft.GetLength();/把字符串位置和长度信息赋给strRight字符串strLeft=strRight;pStrSlipti=strLeftss;pStrSliptN=strLeft;return pStrSlipt;void DeformationCurve:ReadData(double *&X,double *&Y,double *&H)/读取原始文件中的数据 CFileDialog dlgFile(TRUE,_T(txt),NULL,OFN_ALLOWMULTISELECT|OFN_EXPLORER,_T(文本文件)|*.txt);/创建打开文件的对话框if(dlgFile.DoModal()=IDCANCEL)return;/如果选择取消按钮则返回CString strFileName=dlgFile.GetPathName();/获取打开文件文件全名(含全路径)setlocale(LC_ALL,);/设置语言环境CStdioFile sf;/设置文件对象if(!sf.Open(strFileName,CFile:modeRead)return;/如果没有打开文件则返回CString str;CString strLine;str.Empty();/文件和显示框建立联系BOOL bEOF=sf.ReadString(strLine);/把文件中读取的行之赋给变量bEOFwhile(bEOF)str+=strLine;bEOF=sf.ReadString(strLine);if(bEOF)str+=_T(n);/判断文件是否结束sf.

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论