測繪程序設(shè)計實驗4類的創(chuàng)建_第1頁
測繪程序設(shè)計實驗4類的創(chuàng)建_第2頁
測繪程序設(shè)計實驗4類的創(chuàng)建_第3頁
測繪程序設(shè)計實驗4類的創(chuàng)建_第4頁
測繪程序設(shè)計實驗4類的創(chuàng)建_第5頁
已閱讀5頁,還剩9頁未讀 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、測繪程序設(shè)計(VC.net)上機實驗報告(Visual C+.Net)班 級: 學(xué) 號: 姓 名: 序 號: 2012-3-271 / 14實驗4 類的創(chuàng)建一、實驗?zāi)康?. 掌握面向?qū)ο缶幊袒舅枷?. 掌握 VC+.net 中創(chuàng)建類3. 掌握建立和使用對象4. 掌握運算符號重載5. 理解類的繼承和多態(tài)性二、實驗內(nèi)容1.設(shè)計一個角度類。要求該類具有度分秒至度的換算、度至度分秒的換算、度與弧度的換算等功能。提示:設(shè)置一個角度大小屬性,并設(shè)定該屬性為缺省屬性;另設(shè)一個狀態(tài)屬性,表示當(dāng)前設(shè)置的角度大小的形式;度分秒、度、弧度間的相互轉(zhuǎn)換的方法;定義運算符號(加、減)方法,使得角度類能夠像一種普通的數(shù)

2、據(jù)類型樣的方便使用。2.用設(shè)計好的角度類重新編寫后方交會定點程序。實驗步驟 新建一個基于對話框的MFC文件,并在對話框中添加相應(yīng)需要的如下圖所示:分為四個分組編輯框,并且在角度類型中使用combox其中進行變量設(shè)置是其他的變量都是按照之前的設(shè)置為 value double型而對于comble 則設(shè)置為將添加一個DIALG類型 與角度計算建立調(diào)用關(guān)系并添加如下代碼添加C+類一個是進行角度轉(zhuǎn)換計算的Angle 另一個是進行空間后方交會的Resection對于Angle 須在頭文件中添加如下代碼對于Resection的頭文件中添加如下代碼實驗過程中一定要記得添加頭文件對于角度計算的函數(shù)并且添加相應(yīng)代

3、碼 如下所示void AngleCompute:OnBnClickedButton1()UpdateData(TRUE);if(State1=0|State2=0|State3=0) AfxMessageBox(_T(請選擇角度類型);elsedouble a1=a;double b1=b;double s1=s;Angle A;A.Angleconverttoarc(State1,a1);A.Angleconverttoarc(State2,b1);Angle ca(a1),cb(b1),cs(s);cs=ca+cb;s1=cs.getval();A.Angleconverttodegdms

4、(State3,s1); s=s1;UpdateData(FALSE);/ TODO: 在此添加控件通知處理程序代碼void AngleCompute:OnBnClickedButton2()UpdateData(TRUE);if(State1=0|State2=0|State3=0) AfxMessageBox(_T(請選擇角度類型);elsedouble a1=a;double b1=b;double s1=s;Angle A;A.Angleconverttoarc(State1,a1);A.Angleconverttoarc(State2,b1);Angle ca(a1),cb(b1),

5、cs(s1);cs=ca-cb;s1=cs.getval();A.Angleconverttodegdms(State3,s1);s=s1;UpdateData(FALSE);/ TODO: 在此添加控件通知處理程序代碼void AngleCompute:OnBnClickedOk()a=0;b=0;s=0;UpdateData(FALSE);double Angle:convertdegtodms(double dDeg)/度轉(zhuǎn)換成度分秒/用于存放度、分、秒三個值的變量int iDegree, iMin;double dSec,dDms;/dDeg; /十進制角度(度),控件變量/dDms;

6、/度分秒格式角度,控件變量double dTmp;/臨時變量iDegree = int(dDeg);/截取度dTmp = (dDeg - iDegree) * 60;/把度的小數(shù)部分轉(zhuǎn)換為分iMin = int(dTmp);/截取分dSec = (dTmp - iMin) * 60;/把分的小數(shù)部分轉(zhuǎn)換為秒dDms = iDegree + double(iMin) / 100 + dSec / 10000;/合并為度分秒形式 return dDms;double Angle:convertdmstodeg(double dDms)/度分秒轉(zhuǎn)換成度/用于存放度、分、秒三個值的變量int iDeg

7、ree, iMin;double dSec,dDeg;/dDeg; /十進制角度(度),控件變量/dDms;/度分秒格式角度,控件變量/注意ceil和floor兩個取整函數(shù)的使用iDegree = int(dDms); /截取整數(shù)部分,即度iMin = int(dDms - iDegree) * 100); /截取分dSec = (dDms - iDegree) * 100 - iMin) * 100;/獲得秒dDeg = iDegree + double(iMin) / 60 + dSec / 3600; /把分和秒轉(zhuǎn)換成度,再相加return dDeg;double Angle:conve

8、rtdegtoarc(double dDeg)/度轉(zhuǎn)換成弧度double dArc;dArc=dDeg*PI/180;return dArc;double Angle:convertarctodeg(double dArc)/弧度轉(zhuǎn)換成度double dDeg;dDeg=dArc*180/PI;return dDeg;Angle operator+(Angle &a,Angle &b)/友元函數(shù)加法重載Angle t;t.Val=a.Val+b.Val;return t;Angle operator-(Angle &a,Angle &b)/友元函數(shù)減法重載 Angle t; t.Val=a.V

9、al-b.Val;return t;double Angle:Angleconverttoarc(int State,double &angle)/度分秒和度轉(zhuǎn)換成弧度 Angle A; if(State=1) angle=A.convertdmstodeg(angle);/度分秒轉(zhuǎn)換成度angle=A.convertdegtoarc(angle);/度轉(zhuǎn)換成弧度else if(State=2)angle=A.convertdegtoarc(angle);/度轉(zhuǎn)換成弧度return 0;double Angle:Angleconverttodegdms(int State,double &an

10、gle)/弧度轉(zhuǎn)換成度或度分秒Angle A;if(State=1)angle=A.convertarctodeg(angle);angle=A.convertdegtodms(angle);else if(State=2)angle=A.convertarctodeg(angle);return 0;運行成果如下總體的運行結(jié)果是這樣的實驗結(jié)果 本次試驗比之前所做的實驗的實驗量都大好多,而且難度也又增加,試驗時間縮短了,但是這個更加考驗我們的能力,雖然這個讓我們在實驗的過程中覺得非常的緊張,但是真的試驗結(jié)束后還是覺得收獲頗豐,這個實驗中要添加很多頭文件很容易弄混,一點有一個錯誤就會很難修好,而且在實驗的時候要添加主函數(shù)和子函數(shù)的調(diào)用關(guān)系。所以難度大大增加。在本次試驗中出現(xiàn)了一個錯誤讓我一直都不知道怎么修改,所以再找錯的時候就增加了難度與工作量。我覺得在這個時候可以問問別人,我問了同學(xué),他一下就指出是這個函數(shù)相關(guān)的錯誤,我才發(fā)現(xiàn)是我在設(shè)置的時候設(shè)置錯了y2的錯誤,所

溫馨提示

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

評論

0/150

提交評論