计算机测绘程序设计实验报告,测绘程序设计(VS2008)实验报告--文件操作.docx
測繪程序設計(VS2008)實驗報告--文件操作.docx
上傳人:B****s
文檔編號:18365883
上傳時間:2019-04-28
格式:DOCX
頁數:9
大小:102.93KB
下載提示(請認真閱讀)1.請仔細閱讀文檔,確保文檔完整性,對于不預覽、不比對內容而直接下載帶來的問題本站不予受理。
2.下載的文檔,不會出現我們的網址水印。
3、該文檔所得收入(下載+內容+預覽)歸上傳者、原創作者;如果您是本文檔原作者,請點此認領!既往收益都歸您。
文檔包含非法信息?點此舉報后獲取現金獎勵!
下載文檔到電腦,查找使用更方便
12.9
積分
還剩頁未讀,繼續閱讀
關?鍵?詞:測繪程序設計VS2008實驗報告
測繪程序設計
VS2008
程序設計實驗
程序設計實驗報告
資源描述:
《測繪程序設計(VC.net)》
上機實驗報告
(Visual C++.Net)
實驗5 文 件
班 級:
學 號:
姓 名:
序 號:
二零一零年四月
實驗5 文 件
一、實驗目的
· 掌握文件對話框的使用方法。
· 掌握C++文件操作的一般步驟及實現方法。
· 了解MFC文件操作的特點及使用方法。
二、實驗內容
1. 編制簡單的Cass數據文件進行數據整理的程序。整理后的數據文件中要求無重復點數據,且數據按點號大小的升序進行排序。要求整理后的數據按與原始數據文件同樣的格式保存為另外一個文件
要求:
a.用SaveFileDialog和OpenFileDialog控件獲取文件打開或保存的文件名。
b.自定義一個測量點數據結構體,其元素包括:點號,編碼,X,Y,H
c.用文本框顯示原始數據和整理后的數據
d..按編程規范進行編碼
設計思路:
1) 自定義一個測量點數據結構體,其元素包括:點號,編碼,X,Y,H
2) 定義一個分割函數用來分割數據
3) 打開文件,將測量點的數據值賦給點的結構體數組
4) 通過比較結構體元素的異同刪除重復點,獲得新的總點數
5) 按點號大小的升序排列
6) 將新排好的數據輸出到另一個文本框中,并保存于文件中。
界面設計:
共2個文本框、2個Group Box控件、2個命令按鈕。
ID
Multiline
Want Return
添加變量名
IDC_EDITPriData
True
True
strPriData
IDC_EDITTidyData
True
True
strTidyData
具體見運行程序。
主要代碼:
FileDlg.cpp
//定義點的結構體
#define POINT struct point
POINT
{
int iDotmark;
CString strCode;
double X;
double Y;
double Z;
};
void CFileDlg::OnBnClickedOpenfile()
{
// TODO: 在此添加控件通知處理程序代碼
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;
strPriData.Empty();
BOOL bEOF=sf.ReadString(strLine);
while(bEOF)
{
strPriData+=strLine;
bEOF=sf.ReadString(strLine);
if(bEOF) strPriData+=_T("\r\n");
}
sf.Close();
//整理原始數據并在右邊編輯框中輸出
//UpdateData(TRUE);
int iLine;
//分行并存入字符串數組
CString *pstrLine=SplitString(strPriData,'\n',iLine);
int iTotalPoint; //總點數
CString *strTmp=NULL;
int n;
iTotalPoint = _ttoi(pstrLine[0]); //第一行為總點數
if(iTotalPoint!=iLine-1)
MessageBox(_T("數據格式有誤"));
POINT *pPoint=new POINT[iTotalPoint]; //結構體指針,指向點結構體
//逐行用Split函數分離,給點結構體賦值
for(int i=0;ipPoint[j].iDotmark)
{POINT t=pPoint[i];pPoint[i]=pPoint[j];pPoint[j]=t;}
}
}
//輸出調整后的數據
strTidyData.Format(_T("%d\r\n"),iTotalPoint);
CString strOutput;
for(int i=0;ipPoint[j].iDotmark)
{POINT t=min;min=pPoint[j];pPoint[j]=t;}
}
}
剛開始我檢查了好久已知都覺得挺對的,經同學提點一下,我才發現原來自己每次將較小的元素都與min變量交換了,但min并不是數組中的元素,所以達不到排序目的。應去掉min,改成:if(pPoint[i].iDotmark>pPoint[j].iDotmark)
{POINT t=pPoint[i];pPoint[i]=pPoint[j];pPoint[j]=t;}。
展開閱讀全文
溫馨提示:
1: 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
2: 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
3.本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
?
人人文庫網所有資源均是用戶自行上傳分享,僅供網友學習交流,未經上傳用戶書面授權,請勿作他用。
關于本文
本文標題:測繪程序設計(VS2008)實驗報告--文件操作.docx
鏈接地址:https://www.renrendoc.com/p-18365883.html
總結
以上是生活随笔為你收集整理的计算机测绘程序设计实验报告,测绘程序设计(VS2008)实验报告--文件操作.docx的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 前端图片压缩上传(压缩篇)
- 下一篇: 利用.NET做“电子书阅读器”原来这么简