解析交會及附合導線C程序設計實習報告_第1頁
解析交會及附合導線C程序設計實習報告_第2頁
解析交會及附合導線C程序設計實習報告_第3頁
解析交會及附合導線C程序設計實習報告_第4頁
解析交會及附合導線C程序設計實習報告_第5頁
已閱讀5頁,還剩5頁未讀 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

1、測量程序設計實習報告目 錄一、 實習目的 3二、 實習任務 3三、 實習時間、地點、指導老師 3四、 實習過程 3五、 實習中主要技術問題及處理方法 6六、 實習收獲及感想 9七、 意見及建議 9一、 實習目的在實踐中綜合應用第一學年中課堂所學的計算機知識,以期能夠熟練掌握基本編程語法、程序設計思想,為后續(xù)課程打下基礎。1深入理解面向對象編程思想,理解對象的封裝、繼承及多態(tài)的含義;2掌握一門高級編程語言(可選VC+,Borland C+Builder,Visual Basic或Delphi)和程序調試一般方法和技巧,熟練運用集成編程環(huán)境的基本功能,了解編程幫助系統(tǒng);3掌握基本的類模塊設計與實現(xiàn)

2、、數(shù)據(jù)結構、數(shù)據(jù)文件讀寫、人機界面設計等;4綜合運用所學數(shù)學和專業(yè)相關知識,設計并實現(xiàn)若干個類;5養(yǎng)成良好的編程風格。二、 實習任務1 根據(jù)面向對象思想完成角度處理類模塊2 根據(jù)面向對象思想完成解析交會點位坐標計算類模塊3 根據(jù)面向對象思想完成附合導線近似坐標計算類模塊4 測量程序設計三、 實習時間、地點、指導老師時間:2013年7月6日7月15日地點:犀浦校區(qū)X4245機房指導老師:黃澤純四、 實習過程7月6日7日1 了解面向對象程序設計思想1) 類的基本概念;2) 類的成員函數(shù)添加、定義方法;3) 訪問對象成員方法。2 編寫角度處理類函數(shù)代碼1) 建立角度處理類 命名 DegSwitch;

3、2) 角度值轉換成度分秒函數(shù) 命名 Deg_DMS;3) 度分秒轉換成角度值函數(shù) 命名 DMS_Deg;4) 角度值轉換成弧度值函數(shù) 命名 Deg_Rad;5) 弧度值轉換成角度值函數(shù) 命名 Rad_Deg;6) 弧度值轉換成度分秒函數(shù) 命名 Rad_DMS;7) 度分秒轉換成弧度值函數(shù) 命名 DMS_Rad;8) 坐標方位角反算函數(shù) 命名 C_A。3 角度處理類函數(shù)調用、算法檢查及修改1) 函數(shù)調用方法:指針;2) 主函數(shù)中選擇調用函數(shù)關鍵語句:switch語句。4 調試技巧應用7月8日1. 編寫解析交會點位坐標類函數(shù)代碼1) 建立解析交會點位坐標類 命名 Coordinate;2) 函數(shù)中

4、涉及三角函數(shù)計算,應用預處理命令裝入cmath頭文件,并注意三角函數(shù)計算中所用角度值為弧度制下數(shù)值;3) 坐標正算函數(shù) 命名 C1SA_C2;4) 坐標反算函數(shù) 命名 C1C2_SA計算坐標方位角可調用角度處理類中坐標方位角反算函數(shù);5) 前方交會函數(shù) 命名 C1C2A1A2_P;6) 后方交會函數(shù) 命名 C1C2C3_P。2. 解析交會點位坐標類函數(shù)調用、算法檢查及修改1) 函數(shù)調用方法:指針;2) 主函數(shù)中選擇調用函數(shù)關鍵語句:switch語句;3) 輸入角度為度分秒格式,需調用角度處理類中函數(shù)將其轉換為弧度值后再進行計算。3. 學習了解C語言中讀寫文件方式、語法格式7月9日10日1. 附

5、合導線近似坐標計算問題分析、算法設計2. 編寫附合導線近似坐標計算類函數(shù)代碼1) 建立附合導線近似坐標計算類 命名 LineCalculation;2) 角度轉換、總邊長、原始坐標增量計算函數(shù) 命名Start對輸入的度分秒制的角度值可調用角度處理類中函數(shù)進行轉換,計算得到總邊長和原始坐標增量將在隨后的坐標增量及改正后坐標增量計算函數(shù)中使用;3) 角度閉合差計算函數(shù) 命名 Angle_M;4) 角度閉合差調整函數(shù) 命名 Angle_A;5) 坐標方位角計算函數(shù) 命名 C_Angle;6) 坐標增量計算函數(shù) 命名 Coordinate_M坐標增量計算過程中需用到三角函數(shù),應用預處理命令裝入cmat

6、h頭文件,并注意三角函數(shù)計算中所用角度值為弧度制下數(shù)值;7) 改正后坐標增量計算函數(shù) 命名 Coordinate_A;8) 各點坐標計算函數(shù) 命名 Coordinate;3. 附合導線近似坐標計算類函數(shù)調用、算法檢查及修改1) 讀原始數(shù)據(jù)文件需要判斷觀測角是左角還是右角,以在隨后采取正確的角度閉合差分配方式;2) 函數(shù)調用方法:指針;3) 計算后得到調整后角度、坐標方位角等需調用角度處理類中函數(shù)將其轉換為度分秒制,便于檢查;4) 寫結果文件。7月11日1. 學習Windows窗體程序(CLR)的創(chuàng)建及設計1) MFC與CLR的區(qū)別;2) 創(chuàng)建Windows窗體程序(CLR);3) 添加菜單、控

7、件,對菜單、控件的編輯及使用a. 菜單的創(chuàng)建、命名、分欄b. 控件Button、Label、TextBox的添加、屬性設置及使用;4) 添加、顯示新窗體a. 添加新窗體b. 設置在原窗體中進行一定操作后顯示新窗體。2. 練習Windows窗體程序創(chuàng)建及設計。7月12日13日創(chuàng)建、設計Windows窗體測量程序1) 創(chuàng)建Windows窗體測量程序;2) 添加控件;3) 添加角度轉換窗體;4) 添加解析交會窗體;5) 編輯、設置測量程序窗體中控件功能;6) 在角度轉換窗體中添加控件并設置其功能;7) 添加角度處理類模塊,實現(xiàn)處理角度轉換窗體中數(shù)據(jù)的功能,并將結果傳遞顯示在角度轉換窗體中;8) 在解

8、析交會窗體中添加控件并設置其功能;9) 添加解析交會點位坐標類模塊,實現(xiàn)處理解析交會窗體中數(shù)據(jù)的功能,并將結果傳遞顯示在解析交會窗體中;10)運行檢測測量程序。7月14日15日實習總結,撰寫實習報告。五、 實習中主要技術問題及處理方法1. 問題:函數(shù)如何返回多個數(shù)值處理方法:1)指針傳遞 Eg:角度轉換成度分秒函數(shù)將度分秒的值傳回主函數(shù)(3個返回值) void DegSwitch:Deg_DMS(double Deg,int*a,int*b,int*c)int DMS_D=(int)Deg; *a=DMS_D; double DMS_M1=(Deg-DMS_D)*60; int DMS_M=(

9、int)DMS_M1; *b=DMS_M; int DMS_S=int(DMS_M1-DMS_M)*60); *c=DMS_S;2)調用數(shù)組Eg:附合導線坐標方位角計算函數(shù)將計算所得方位角值傳回主函數(shù)(多個返回值)void LineCalculation:C_Angle(double ang,double cang,int n,int b,double sc_ang)cang0=sc_ang+b*(PI-ang0); if(cang0<0) cang0=cang0+2*PI; if(cang0>2*PI) cang0=cang0-2*PI; for(int i=1;i<n;i

10、+) cangi=cangi-1+b*(PI-angi); if(cangi<0) cangi=cangi+2*PI; if(cangi>2*PI) cangi=cangi-2*PI;2. 問題:如何訪問類的對象成員處理方法:在預處理命令中裝入相應類的頭文件,再通過指針訪問對象成員 Eg:檢查角度處理類算法時,在主函數(shù)中調用類中函數(shù) #include"DegSwitch.h" DegSwitch *D1=new DegSwitch(); D1->Deg_DMS(Deg,&(*a),&(*b),&*(c); result=D1->

11、;Deg_Rad(Deg); 3. 問題:不同的類之間可否相互調用成員函數(shù)處理方法:可以;在預處理命令中裝入相應類的頭文件,再通過指針訪問對象成員4. 問題:錄入的多個以度分秒表示的角度如何批量存放、處理處理方法:放入二維數(shù)組中儲存、處理 Eg:在主函數(shù)中定義一個數(shù)組存放錄入的附合導線觀測角值 int AN3 其中,Ai0、Ai1、Ai2中分別存放第i+1個觀測角的度、分、秒位上的數(shù)值5. 問題:附合導線近似計算類中,最初錄入的度分秒形式的角度值無法直接進行運算,如何準確計算和分配角度閉合差、算出坐標方位角,并根據(jù)坐標方位角正確計算坐標增量處理方法:1)根據(jù)不同計算需求將角度轉換成以秒為單位或

12、以弧度為單位數(shù)據(jù)以秒為單位角度值度分秒形式的角度值 進行角度轉換 進行角度閉合差的計算與分配,根據(jù)調整后的觀測角值計算坐標方位角以弧度形式的坐標方位角值運用三角函數(shù)計算坐標增量得到并輸出度分秒形式的調整后觀測角值和坐標方位角弧度形式的角度值度分秒形式的角度值 進行角度轉換 進行角度轉換 2)對角度閉合差的分配:先將閉合差平均分配到每一個觀測角中,若有余數(shù),再將余數(shù)平均分配到最小邊對應點兩個觀測角中實現(xiàn)以上處理的對應代碼:/度分秒形式角度值轉換成以秒為單位角度值DegSwitch *m=new DegSwitch(); for(i=0;i<N;i+) angi=m->DMS_s(Ai

13、0,Ai1,Ai2);/對角度閉合差的分配int ff=f_a/n*b; for(int i=0;i<n;i+) angi=angi+ff; int m=0,f1=0,f2=0; for(int j=1;j<n-1;j+) if(Sj<=Sm) m=j; if(f_a%n)!=0) if(f_a/n)%2!=0) f1=(f_a%n)/2; f2=f1+1; else f1=(f_a%n)/2; f2=f1; angm=angm+f1*b; angm+1=angm+1+f2*b; /以秒為單位角度值轉換成弧度值計算坐標增量DegSwitch *q=new DegSwitch;

14、 for(i=0;i<n;i+) cang2i=q->DMS_Rad(0,0,cangi); double xs=0,ys=0; for(i=0;i<n-1;i+) Ccooi0=Si*cos(cangi); Ccooi1=Si*sin(cangi); xs=xs+Ccooi0; ys=ys+Ccooi1; *dx=xs-x; *dy=ys-y; /得到并輸出度分秒形式的調整后觀測角值和坐標方位角 cout<<endl<<"調整后角度值:"<<endl; DegSwitch *u=new DegSwitch; for(i

15、=0;i<n;i+) u->s_DMS(angi,&Ai0,&Ai1,&Ai2); cout<<Ai0<<" "<<Ai1<<" "<<Ai2<<endl; cout<<endl<<"坐標方位角:"<<endl; for(i=0;i<n-1;i+) u->s_DMS(cangi,&CAngi0,&CAngi1,&CAngi2); cout<<CA

16、ngi0<<" "<<CAngi1<<" "<<CAngi2<<endl; 6. 問題:讀原始數(shù)據(jù)文件過程中,如何將多個數(shù)據(jù)一次存放在數(shù)組中處理方法:通過循環(huán)語句實現(xiàn)Eg:將原始數(shù)據(jù)文件中儲存的觀測角角度值(度分秒形式)存入一個二維數(shù)組中 for(i=0;i<N;i+) for(j=0;j<3;j+) fscanf(fp,"%d",&Aij);7. 問題:程序能夠生成、運行,但運行結果不正確處理方法:通過以下手段調試、檢查程序:1)斷點調試 2)逐語句執(zhí)行

17、程序 3)選取關鍵變量進行監(jiān)視經過逐步排除篩選找出源代碼的邏輯錯誤或算法錯誤,進行分析改正8. 問題:Windows窗體程序中如何通過對控件的操作打開一個新的窗體處理方法:在原窗體頭文件的預處理命令中裝入新窗體對應頭文件,在原窗體設計界面雙擊控件,進入頭文件,在光標停留處添加代碼 Eg:角度轉換 cfrm=gcnew 角度轉換(); cfrm->Show();9. 問題:如何在Windows窗體中提取、改變控件文本處理方法:提取控件文本:double d=Convert:ToDouble(t1->Text); 改變控件文本: t4->Text=Convert:ToString

18、(deg);10. 問題:如何在Windows窗體中調用類的成員函數(shù)處理方法:DegSwitch x=gcnew DegSwitch(); deg=x->DMS_Deg(d,m,s);六、 實習收獲及感想根據(jù)面向對象思想設計算法、編寫代碼使程序設計模塊化,各模塊有明確的功能,既便于對函數(shù)的調用,也有利于對程序算法的精簡、檢查?;诿嫦驅ο笏枷氲某绦蛟O計,首先要明確需要處理的對象(已知數(shù)據(jù))和最終要得到的對象(所求數(shù)據(jù)),然后分析二者之間的關系,深入理解問題,由此設計算法,再將分塊進行算法代碼編寫,最終編碼實現(xiàn)整個過程。編寫源代碼過程中要注意對數(shù)據(jù)的靈活處理和轉換,如度分秒形式的角度值可存放在二維數(shù)組中,使用三角函數(shù)是角度值應化為弧度值,通過指針或數(shù)組進行值的傳遞等。編碼完成生成程序后,要及時進行多次檢查,發(fā)現(xiàn)錯誤后采用適當?shù)姆椒ㄟM行調試、找出有問題的語句或算法進行修改,盡量提高算法的效率和準確度,使結果最精確。在Windows窗體程序設計過程中,每個控件都要有相應的功能或作用,為用戶提供獲取及輸入信息的途徑;同時,界面的設計要

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論