解析交會(huì)及附合導(dǎo)線(xiàn)C程序設(shè)計(jì)實(shí)習(xí)報(bào)告_第1頁(yè)
解析交會(huì)及附合導(dǎo)線(xiàn)C程序設(shè)計(jì)實(shí)習(xí)報(bào)告_第2頁(yè)
解析交會(huì)及附合導(dǎo)線(xiàn)C程序設(shè)計(jì)實(shí)習(xí)報(bào)告_第3頁(yè)
解析交會(huì)及附合導(dǎo)線(xiàn)C程序設(shè)計(jì)實(shí)習(xí)報(bào)告_第4頁(yè)
解析交會(huì)及附合導(dǎo)線(xiàn)C程序設(shè)計(jì)實(shí)習(xí)報(bào)告_第5頁(yè)
已閱讀5頁(yè),還剩5頁(yè)未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶(hù)提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

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

2、、數(shù)據(jù)結(jié)構(gòu)、數(shù)據(jù)文件讀寫(xiě)、人機(jī)界面設(shè)計(jì)等;4綜合運(yùn)用所學(xué)數(shù)學(xué)和專(zhuān)業(yè)相關(guān)知識(shí),設(shè)計(jì)并實(shí)現(xiàn)若干個(gè)類(lèi);5養(yǎng)成良好的編程風(fēng)格。二、 實(shí)習(xí)任務(wù)1 根據(jù)面向?qū)ο笏枷胪瓿山嵌忍幚眍?lèi)模塊2 根據(jù)面向?qū)ο笏枷胪瓿山馕鼋粫?huì)點(diǎn)位坐標(biāo)計(jì)算類(lèi)模塊3 根據(jù)面向?qū)ο笏枷胪瓿筛胶蠈?dǎo)線(xiàn)近似坐標(biāo)計(jì)算類(lèi)模塊4 測(cè)量程序設(shè)計(jì)三、 實(shí)習(xí)時(shí)間、地點(diǎn)、指導(dǎo)老師時(shí)間:2013年7月6日7月15日地點(diǎn):犀浦校區(qū)X4245機(jī)房指導(dǎo)老師:黃澤純四、 實(shí)習(xí)過(guò)程7月6日7日1 了解面向?qū)ο蟪绦蛟O(shè)計(jì)思想1) 類(lèi)的基本概念;2) 類(lèi)的成員函數(shù)添加、定義方法;3) 訪(fǎng)問(wèn)對(duì)象成員方法。2 編寫(xiě)角度處理類(lèi)函數(shù)代碼1) 建立角度處理類(lèi) 命名 DegSwitch;

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

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

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

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

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

8、析交會(huì)窗體中添加控件并設(shè)置其功能;9) 添加解析交會(huì)點(diǎn)位坐標(biāo)類(lèi)模塊,實(shí)現(xiàn)處理解析交會(huì)窗體中數(shù)據(jù)的功能,并將結(jié)果傳遞顯示在解析交會(huì)窗體中;10)運(yùn)行檢測(cè)測(cè)量程序。7月14日15日實(shí)習(xí)總結(jié),撰寫(xiě)實(shí)習(xí)報(bào)告。五、 實(shí)習(xí)中主要技術(shù)問(wèn)題及處理方法1. 問(wèn)題:函數(shù)如何返回多個(gè)數(shù)值處理方法:1)指針傳遞 Eg:角度轉(zhuǎn)換成度分秒函數(shù)將度分秒的值傳回主函數(shù)(3個(gè)返回值) 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)調(diào)用數(shù)組Eg:附合導(dǎo)線(xiàn)坐標(biāo)方位角計(jì)算函數(shù)將計(jì)算所得方位角值傳回主函數(shù)(多個(gè)返回值)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. 問(wèn)題:如何訪(fǎng)問(wèn)類(lèi)的對(duì)象成員處理方法:在預(yù)處理命令中裝入相應(yīng)類(lèi)的頭文件,再通過(guò)指針訪(fǎng)問(wèn)對(duì)象成員 Eg:檢查角度處理類(lèi)算法時(shí),在主函數(shù)中調(diào)用類(lèi)中函數(shù) #include"DegSwitch.h" DegSwitch *D1=new DegSwitch(); D1->Deg_DMS(Deg,&(*a),&(*b),&*(c); result=D1->

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

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

13、0,Ai1,Ai2);/對(duì)角度閉合差的分配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; /以秒為單位角度值轉(zhuǎn)換成弧度值計(jì)算坐標(biāo)增量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; /得到并輸出度分秒形式的調(diào)整后觀(guān)測(cè)角值和坐標(biāo)方位角 cout<<endl<<"調(diào)整后角度值:"<<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<<"坐標(biāo)方位角:"<<endl; for(i=0;i<n-1;i+) u->s_DMS(cangi,&CAngi0,&CAngi1,&CAngi2); cout<<CA

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

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

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

溫馨提示

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

最新文檔

評(píng)論

0/150

提交評(píng)論