解析交會及附合導線C 程式設計實習報告

2022-01-02 16:18:51 字數 4300 閱讀 3731

目錄一、 實習目的3

二、 實習任務3

三、 實習時間、地點、指導老師3

四、 實習過程3

五、 實習中主要技術問題及處理方法 ………………… 6

六、 實習收穫及感想9

七、 意見及建議9

一、 實習目的

在實踐中綜合應用第一學年中課堂所學的計算機知識,以期能夠熟練掌握基本程式設計語法、程式設計思想,為後續課程打下基礎。

1.深入理解物件導向程式設計思想,理解物件的封裝、繼承及多型的含義;

2.掌握一門高階程式語言(可選vc++,borland c++builder,visual basic或delphi)和程式除錯一般方法和技巧,熟練運用整合程式設計環境的基本功能,了解程式設計幫助系統;

3.掌握基本的類模組設計與實現、資料結構、資料檔案讀寫、人機介面設計等;

4.綜合運用所學數學和專業相關知識,設計並實現若干個類;

5.養成良好的程式設計風格。

二、 實習任務

1. 根據物件導向思想完成角度處理類模組

2. 根據物件導向思想完成解析交會點位座標計算類模組

3. 根據物件導向思想完成附合導線近似座標計算類模組

4. 測量程式設計

三、 實習時間、地點、指導老師

時間:2023年7月6日~7月15日

地點:犀浦校區x4245機房

指導老師:

黃澤純四、 實習過程

7月6日~7日

1. 了解物件導向程式設計思想

1) 類的基本概念;

2) 類的成員函式新增、定義方法;

3) 訪問物件成員方法。

2. 編寫角度處理類函式**

1) 建立角度處理類命名 degswitch;

2) 角度值轉換成度分秒函式命名 deg_dms;

3) 度分秒轉換成角度值函式命名 dms_deg;

4) 角度值轉換成弧度值函式命名 deg_rad;

5) 弧度值轉換成角度值函式命名 rad_deg;

6) 弧度值轉換成度分秒函式命名 rad_dms;

7) 度分秒轉換成弧度值函式命名 dms_rad;

8) 座標方位角反算函式命名 c_a。

3. 角度處理類函式呼叫、演算法檢查及修改

1) 函式呼叫方法:指標;

2) 主函式中選擇呼叫函式關鍵語句:switch語句。

4. 除錯技巧應用

7月8日

1. 編寫解析交會點位座標類函式**

1) 建立解析交會點位座標類命名 coordinate;

2) 函式中涉及三角函式計算,應用預處理命令裝入cmath標頭檔案,並注意三角函式計算中所用角度值為弧度制下數值;

3) 座標正算函式命名 c1sa_c2;

4) 座標反算函式命名 c1c2_sa

計算座標方位角可呼叫角度處理類中座標方位角反算函式;

5) 前方交會函式命名 c1c2a1a2_p;

6) 後方交會函式命名 c1c2c3_p。

2. 解析交會點位座標類函式呼叫、演算法檢查及修改

1) 函式呼叫方法:指標;

2) 主函式中選擇呼叫函式關鍵語句:switch語句;

3) 輸入角度為度分秒格式,需呼叫角度處理類中函式將其轉換為弧度值後再進行計算。

3. 學習了解c語言中讀寫檔案方式、語法格式

7月9日~10日

1. 附合導線近似座標計算問題分析、演算法設計

2. 編寫附合導線近似座標計算類函式**

1) 建立附合導線近似座標計算類命名 linecalculation;

2) 角度轉換、總邊長、原始座標增量計算函式命名start

對輸入的度分秒制的角度值可呼叫角度處理類中函式進行轉換,計算得到總邊長和原始座標增量將在隨後的座標增量及改正後座標增量計算函式中使用;

3) 角度閉合差計算函式命名 angle_m;

4) 角度閉合差調整函式命名 angle_a;

5) 座標方位角計算函式命名 c_angle;

6) 座標增量計算函式命名 coordinate_m

座標增量計算過程中需用到三角函式,應用預處理命令裝入cmath標頭檔案,並注意三角函式計算中所用角度值為弧度制下數值;

7) 改正後座標增量計算函式命名 coordinate_a;

8) 各點座標計算函式命名 coordinate;

3. 附合導線近似座標計算類函式呼叫、演算法檢查及修改

1) 讀原始資料檔案

需要判斷觀測角是左角還是右角,以在隨後採取正確的角度閉合差分配方式;

2) 函式呼叫方法:指標;

3) 計算後得到調整後角度、座標方位角等需呼叫角度處理類中函式將其轉換為度分秒制,便於檢查;

4) 寫結果檔案。

7月11日

1. 學習windows窗體程式(clr)的建立及設計

1) mfc與clr的區別;

2) 建立windows窗體程式(clr);

3) 新增選單、控制項,對選單、控制項的編輯及使用

a. 選單的建立、命名、分欄

b. 控制項button、label、textbox的新增、屬性設定及使用;

4) 新增、顯示新窗體

a. 新增新窗體

b. 設定在原窗體中進行一定操作後顯示新窗體。

2. 練習windows窗體程式建立及設計。

7月12日~13日

建立、設計windows窗體測量程式

1) 建立windows窗體測量程式;

2) 新增控制項;

3) 新增角度轉換窗體;

4) 新增解析交會窗體;

5) 編輯、設定測量程式窗體中控制項功能;

6) 在角度轉換窗體中新增控制項並設定其功能;

7) 新增角度處理類模組,實現處理角度轉換窗體中資料的功能,並將結果傳遞顯示在角度轉換窗體中;

8) 在解析交會窗體中新增控制項並設定其功能;

9) 新增解析交會點位座標類模組,實現處理解析交會窗體中資料的功能,並將結果傳遞顯示在解析交會窗體中;

10)執行檢測測量程式。

7月14日~15日

實習總結,撰寫實習報告。

五、 實習中主要技術問題及處理方法

1. 問題:函式如何返回多個數值

處理方法:1)指標傳遞

eg:角度轉換成度分秒函式將度分秒的值傳回主函式(3個返回值)

void degswitch::deg_dms(double deg,int*a,int*b,int*c)

2)呼叫陣列

eg:附合導線座標方位角計算函式將計算所得方位角值傳回主函式(多個返回值)

void linecalculation::c_angle(double ang,double cang,int n,int b,double sc_ang)

}2. 問題:如何訪問類的物件成員

處理方法:在預處理命令中裝入相應類的標頭檔案,再通過指標訪問物件成員

eg:檢查角度處理類演算法時,在主函式中呼叫類中函式

include""

degswitch *d1=new degswitch();

d1->deg_dms(deg,&(*a),&(*b),&*(c));

result=d1->deg_rad(deg);

3. 問題:不同的類之間可否相互呼叫成員函式

處理方法:可以;在預處理命令中裝入相應類的標頭檔案,再通過指標訪問物件成員

4. 問題:錄入的多個以度分秒表示的角度如何批量存放、處理

處理方法:放入二維陣列中儲存、處理

eg:在主函式中定義乙個陣列存放錄入的附合導線觀測角值

int a[n][3] ……

其中,a[i][0]、a[i][1]、a[i][2]中分別存放第i+1個觀測角的度、分、秒位上的數值

5. 問題:附合導線近似計算類中,最初錄入的度分秒形式的角度值無法直接進行運算,如何準確計算和分配角度閉合差、算出座標方位角,並根據座標方位角正確計算座標增量

處理方法:1)根據不同計算需求將角度轉換成以秒為單位或以弧度為單位資料

進行角度轉換

進行角度轉換進行角度轉換

2)對角度閉合差的分配:先將閉合差平均分配到每乙個觀測角中,若有餘數,再將餘數平均分配到最小邊對應點兩個觀測角中

實現以上處理的對應**:

……//度分秒形式角度值轉換成以秒為單位角度值

degswitch *m=new degswitch();

for(i=0;iang[i]=m->dms_s(a[i][0],a[i][1],a[i][2]);

……//對角度閉合差的分配

int ff=f_a/n*b;

for(int i=0;iang[i]=ang[i]+ff;

int m=0,f1=0,f2=0;

for(int j=1;jif(s[j]<=s[m])

四等水準及閉合導線測量《實習報告》

前言一 實習目的 1 練習水準儀的安置 整平 瞄準與讀數和怎樣測定地面兩點間的高程 2 掌握經緯儀對中,整平,瞄準與讀書等基本操作要領 3 掌握導線的內業計算 4 培養學生綜合應用測量理論知識分析解決測量作業一般問題的能力。二 任務 1 控制點高程測量 2 導線長度測量 3 水平角度測量 4 閉合導...

四等水準及閉合導線測量實習報告

實習報告 前言一 實習目的 1 練習水準儀的安置 整平 瞄準與讀數和怎樣測定地面兩點間的高程 2 掌握經緯儀對中,整平,瞄準與讀數等基本操作要領 3 掌握導線的內業計算 4 培養學生綜合應用測量理論知識分析解決測量作業一般問題的能力。二 任務 1 控制點高程測量 2 導線長度測量 3 水平角度測量 ...

關於臨時接待中心選址及春交會參展建議

一 關於臨時接待中心設定必要性分析 專案已經啟動,目前急需建設乙個平台來進行接待 蓄客 宣傳 展示。客戶會籌建 運營管理等方面的工作都需要以接待中心為依託來展開。從客戶接待情況來看,目前客戶溝通方式仍然以 溝通為主,不如面對面溝通詳實具體親切,這樣客戶對專案了解途徑有限,同時銷售方面亦難於對誠意客戶...