![C++實(shí)驗(yàn)報(bào)告格式_第1頁(yè)](http://file4.renrendoc.com/view/33ee63edc8485e56c882360f6c634778/33ee63edc8485e56c882360f6c6347781.gif)
![C++實(shí)驗(yàn)報(bào)告格式_第2頁(yè)](http://file4.renrendoc.com/view/33ee63edc8485e56c882360f6c634778/33ee63edc8485e56c882360f6c6347782.gif)
![C++實(shí)驗(yàn)報(bào)告格式_第3頁(yè)](http://file4.renrendoc.com/view/33ee63edc8485e56c882360f6c634778/33ee63edc8485e56c882360f6c6347783.gif)
![C++實(shí)驗(yàn)報(bào)告格式_第4頁(yè)](http://file4.renrendoc.com/view/33ee63edc8485e56c882360f6c634778/33ee63edc8485e56c882360f6c6347784.gif)
![C++實(shí)驗(yàn)報(bào)告格式_第5頁(yè)](http://file4.renrendoc.com/view/33ee63edc8485e56c882360f6c634778/33ee63edc8485e56c882360f6c6347785.gif)
版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
C++程序設(shè)計(jì)試驗(yàn)匯報(bào)課程名稱:C++程序設(shè)計(jì)姓名:王鑫試驗(yàn)名稱:C++面向?qū)ο蟪绦蛟O(shè)計(jì)學(xué)號(hào):3509任課教師:張明衛(wèi)專業(yè):軟件工程指導(dǎo)教師:張明衛(wèi)班級(jí):0908班試驗(yàn)成績(jī):批閱教師簽字:
一、試驗(yàn)?zāi)繕?biāo)此次試驗(yàn)所包括并要求掌握知識(shí)點(diǎn)。1) 學(xué)習(xí)類與對(duì)象定義、申明及使用方法。2) 學(xué)習(xí)具備不一樣屬性數(shù)據(jù)組員與組員函數(shù)訪問(wèn)方式。3) 了解結(jié)構(gòu)函數(shù)和析構(gòu)函數(shù)定義與執(zhí)行過(guò)程。4) 學(xué)習(xí)定義和使用類繼承關(guān)系,定義派生類。二、試驗(yàn)環(huán)境寫出程序編寫時(shí)所使用編譯器、操作系統(tǒng)等。編譯器:VisualC++6.0.操作系統(tǒng):WindowsXP.三、試驗(yàn)內(nèi)容與試驗(yàn)過(guò)程及分析列出試驗(yàn)需要做各個(gè)題目,并針對(duì)每個(gè)題目:寫出關(guān)鍵代碼(要求選出該題目最關(guān)鍵代碼并加注釋);描述調(diào)試過(guò)程、調(diào)試過(guò)程中所出現(xiàn)現(xiàn)象及處理方法,給出題目最終運(yùn)行結(jié)果;對(duì)該題目進(jìn)行簡(jiǎn)短總結(jié),寫出該題目所包括知識(shí)點(diǎn)。下面是“平面上點(diǎn)”類定義:classCPoint{private: intx,y; staticintnCount;//nCount用于保留點(diǎn)個(gè)數(shù)public: CPoint(intpx=0,intpy=0); CPoint(CPoint&); ~CPoint(); intGetX(); intGetY(); voidSetX(int); voidSetY(int); voidShowPoint();};請(qǐng)完成該類中各組員函數(shù)定義。該類是一個(gè)基本類。在編寫該類時(shí),要注意對(duì)靜態(tài)組員nCount操作,使其能夠正確表示程序中點(diǎn)個(gè)數(shù)。編完該類后,要在main()函數(shù)中進(jìn)行測(cè)試,分別定義CPoint類對(duì)象、指針、引用,對(duì)各組員函數(shù)進(jìn)行調(diào)用。分析對(duì)靜態(tài)組員調(diào)用和通常組員調(diào)用方式有什么不一樣。1,本題目標(biāo)關(guān)鍵代碼:intCPoint::nCount=0;//對(duì)nCount進(jìn)行初始化,靜態(tài)組員調(diào)用CPoint::CPoint(intpx,intpy)//結(jié)構(gòu)函數(shù){ x=px; y=py; nCount++;//點(diǎn)個(gè)數(shù)累加}CPoint::CPoint(CPoint&p)//對(duì)結(jié)構(gòu)函數(shù)進(jìn)行拷貝{ x=p.x; y=p.y; nCount++;//點(diǎn)個(gè)數(shù)繼續(xù)累加}CPoint::~CPoint()//析構(gòu)函數(shù){ nCount--;}intCPoint::GetX(){ returnx;}intCPoint::GetY(){ returny;}voidCPoint::SetX(intpx1)//設(shè)置點(diǎn)X坐標(biāo){ x=px1;}voidCPoint::SetY(intpy1)//設(shè)置點(diǎn)Y坐標(biāo){ y=py1;}voidCPoint::ShowPoint()//輸出點(diǎn)個(gè)數(shù)及點(diǎn)坐標(biāo)到屏幕{ cout<<"點(diǎn)個(gè)數(shù)為:"<<CPoint::nCount<<endl; cout<<"平面點(diǎn)坐標(biāo)為:("<<CPoint::GetX()<<","<<CPoint::GetY()<<")"<<endl;}2,調(diào)試過(guò)程中所出現(xiàn)現(xiàn)象及處理方法:在調(diào)試時(shí),程序不能運(yùn)行沒(méi)有運(yùn)行成功,經(jīng)過(guò)查閱資料后得知對(duì)靜態(tài)組員調(diào)用必須用類名加雙冒號(hào)進(jìn)行調(diào)用,把代碼改成CPoint::nCount后,程序成功運(yùn)行。在結(jié)構(gòu)函數(shù)申明和定義中,都進(jìn)行了變量賦值,結(jié)果造成編譯不經(jīng)過(guò),在去掉申明中賦值后,才編譯經(jīng)過(guò)。程序運(yùn)行結(jié)果:3,題目總結(jié)及題目所包括知識(shí)點(diǎn):經(jīng)過(guò)本題學(xué)到了靜態(tài)組員調(diào)用方法以及怎樣結(jié)構(gòu)、析構(gòu)函數(shù)。本題目主要包括知識(shí)點(diǎn)有:結(jié)構(gòu)函數(shù)、析構(gòu)函數(shù)和拷貝。靜態(tài)組員調(diào)用和類與對(duì)象定義、申明及使用方法??截惡瘮?shù)和結(jié)構(gòu)函數(shù)編寫。具備不一樣屬性數(shù)據(jù)組員與組員函數(shù)訪問(wèn)方式。結(jié)構(gòu)函數(shù)和析構(gòu)函數(shù)定義與執(zhí)行過(guò)程。2)下面是“平面上線段”類定義:classCLine{private: CPointpt1,pt2;//pt1和pt2分別代表該線段起點(diǎn)和終點(diǎn)public: CLine(); CLine(intx1,inty1,intx2,inty2); CLine(CPointp1,CPointp2); doubleDistance();//計(jì)算該線段長(zhǎng)度組員函數(shù) voidShowLine();};請(qǐng)完成該類中各組員函數(shù)定義。并利用VC調(diào)試工具觀察含有組合關(guān)系類結(jié)構(gòu)函數(shù)和析構(gòu)函數(shù)執(zhí)行情況。本題目標(biāo)關(guān)鍵代碼:public: CLine();//無(wú)參結(jié)構(gòu)函數(shù) CLine(intx1,inty1,intx2,inty2):pt1(x1,y1),pt2(x2,y2){}//結(jié)構(gòu)函數(shù)初始化列表 CLine(CPointp1,CPointp2):pt1(p1),pt2(p2){}//結(jié)構(gòu)函數(shù)初始化列表 doubleDistance();//計(jì)算該線段長(zhǎng)度組員函數(shù) voidShowLine();};doubleCLine::Distance()//計(jì)算線段長(zhǎng)度{ doublea,b; a=(pt2.GetX()-pt1.GetX())*(pt2.GetX()-pt1.GetX()); b=(pt2.GetY()-pt1.GetY())*(pt2.GetY()-pt1.GetY()); returnsqrt(a+b);}voidCLine::ShowLine()//在屏幕輸出線段長(zhǎng)度{ cout<<"線段長(zhǎng)度為:"<<CLine::Distance()<<endl;}2,調(diào)試過(guò)程中所出現(xiàn)現(xiàn)象及處理方法:在調(diào)試時(shí),程序先執(zhí)行nCount結(jié)構(gòu)函數(shù),然后執(zhí)行Cline結(jié)構(gòu)函數(shù)。在使用初始化參數(shù)列表時(shí),要依照結(jié)構(gòu)函數(shù)里參數(shù)變量名來(lái)編寫參數(shù)列表。程序運(yùn)行結(jié)果:3,題目總結(jié)及題目所包括知識(shí)點(diǎn):經(jīng)過(guò)這個(gè)試驗(yàn),了解到了怎樣利用初始化列表進(jìn)行結(jié)構(gòu)函數(shù),它能夠顯示調(diào)用基類組員,本題目包括到主要知識(shí)點(diǎn)是用初始化列表進(jìn)行結(jié)構(gòu)函數(shù),組合類申明和定義以及組合類結(jié)構(gòu)函數(shù)初始化過(guò)程。下面是“空間中點(diǎn)”類定義:classCThreePoint:publicCPoint{private: intz;public: CThreePoint(); CThreePoint(int,int,int); intGetZ(); voidSetZ(intpz); virtualvoidShowPoint();};請(qǐng)完成該類中各組員函數(shù)定義。并利用VC調(diào)試工具觀察含有繼承關(guān)系類結(jié)構(gòu)函數(shù)和析構(gòu)函數(shù)執(zhí)行情況。分析為何要把ShowPoint()函數(shù)設(shè)置為虛函數(shù)?有什么作用?請(qǐng)?jiān)趍ain()函數(shù)中做測(cè)試。1,本題目標(biāo)關(guān)鍵代碼:CThreePoint::CThreePoint(intpx2,intpy2,intpz2)//CThreePoint結(jié)構(gòu)函數(shù){ CPoint::SetX(px2); CPoint::SetY(py2); CThreePoint::SetZ(pz2);}CThreePoint::~CThreePoint(){}//CTrheePoint析構(gòu)函數(shù)intCThreePoint::GetZ()//獲取并返回Z坐標(biāo)值{ returnz;}voidCThreePoint::SetZ(intpz)//對(duì)Z坐標(biāo)值進(jìn)行設(shè)置{ z=pz;}voidCThreePoint::ShowPoint()//屏幕輸出點(diǎn)坐標(biāo){ cout<<"空間點(diǎn)坐標(biāo)為:("<<CPoint::GetX()<<","<<CPoint::GetY()<<","<<CThreePoint::GetZ()<<")"<<endl;}2,調(diào)試過(guò)程中所出現(xiàn)現(xiàn)象及處理方法:在調(diào)試過(guò)程中,程序首先執(zhí)行基類結(jié)構(gòu)函數(shù),然后在執(zhí)行自己結(jié)構(gòu)函數(shù)。程序運(yùn)行結(jié)果:3,題目總結(jié)及題目所包括知識(shí)點(diǎn):經(jīng)過(guò)這個(gè)試驗(yàn),了解到了:程序首先執(zhí)行基類結(jié)構(gòu)函數(shù),然后執(zhí)行自己結(jié)構(gòu)函數(shù),以及在繼承關(guān)系中怎樣編寫結(jié)構(gòu)函數(shù)。派生類對(duì)象不能直接訪問(wèn)基類繼承過(guò)來(lái)私有組員?;悓⒑瘮?shù)申明為虛函數(shù)即可,派生類和函數(shù)定義處能夠沒(méi)關(guān)于鍵字virtual.本題目包括知識(shí)點(diǎn)有:定義和使用類繼承關(guān)系,定義派生類、派生類中結(jié)構(gòu)函數(shù)編寫方法,和繼承關(guān)系中結(jié)構(gòu)函數(shù)執(zhí)行次序。4) 定義一個(gè)基類Animal,有私有整型組員變量age,結(jié)構(gòu)其派生類dog,在其組員函數(shù)SetAge(intn)中直接給age賦值,看看會(huì)有什么問(wèn)題,把a(bǔ)ge改為公有組員變量,還會(huì)有問(wèn)題嗎?把a(bǔ)ge改為保護(hù)組員變量呢?編程試試看。本題目標(biāo)關(guān)鍵代碼:classAnimal{public: intage;};classdog:publicAnimal{public: intSetAge(intn) { age=3; }};2,題目總結(jié)及題目所包括知識(shí)點(diǎn):編寫基類Animal時(shí),組員變量age定義為私有。結(jié)構(gòu)派生類dog,在其組員函數(shù)SetAge(intn)中直接對(duì)age賦值時(shí),會(huì)出現(xiàn)類似以下錯(cuò)誤提醒:errorC2248:‘a(chǎn)ge’:cannotaccessprivatememberdeclaredinclass‘Animal’把a(bǔ)ge改為公有組員變量后重新編譯就能夠了。再把a(bǔ)ge改為保護(hù)組員變量步驟相同。說(shuō)明了派生類不能調(diào)用基類私有組員變量變量,而能夠調(diào)用基類公有組員和保護(hù)組員。設(shè)計(jì)知識(shí)點(diǎn)有:派生類不能訪問(wèn)基類私有組員,能夠訪問(wèn)基類保護(hù)和公有組員。五、試驗(yàn)總結(jié)對(duì)自己試驗(yàn)自我剖析,總結(jié)試驗(yàn)心得體會(huì),并提出試驗(yàn)改進(jìn)意見等。在這次試驗(yàn)中,感覺(jué)自己程序最難編寫地方就是類結(jié)構(gòu)函數(shù),在經(jīng)過(guò)仔細(xì)查閱資料和問(wèn)詢同學(xué)后,終于熟練了結(jié)構(gòu)函數(shù)編寫,從這次試驗(yàn)中我學(xué)到了很多C++關(guān)鍵知識(shí),利如函數(shù)結(jié)構(gòu)和析構(gòu)函數(shù),結(jié)構(gòu)函數(shù)初始化列表,拷貝,派生類和基類結(jié)構(gòu)函數(shù)執(zhí)行先后次序等。使我們?cè)陟柟袒A(chǔ)前提下游更大提升。對(duì)于本試驗(yàn),即使試驗(yàn)內(nèi)容極少,但涵蓋知識(shí)點(diǎn)頗多,能讓同學(xué)輕松學(xué)到很多知識(shí),但我感覺(jué)在給程序多加一些功效和達(dá)成愈加好效果。能讓我們?cè)趯W(xué)到知識(shí)同時(shí),鍛煉編寫出眾代碼能力。六、思索題回答試驗(yàn)要求思索題,要將原題也寫出來(lái)。結(jié)構(gòu)函數(shù)和析構(gòu)函數(shù)作用是什么?答:結(jié)構(gòu)函數(shù)又分為實(shí)例結(jié)構(gòu)函數(shù):實(shí)例結(jié)構(gòu)函數(shù)用于創(chuàng)建和初始化實(shí)例。私有結(jié)構(gòu)函數(shù):私有結(jié)構(gòu)函數(shù)是一個(gè)特殊實(shí)例結(jié)構(gòu)函數(shù)。它通慣用在只包含靜態(tài)組員類中。假如類具備一個(gè)或多個(gè)私有結(jié)構(gòu)函數(shù)而沒(méi)有公共結(jié)構(gòu)函數(shù),則不允許其余類(除了嵌套類)創(chuàng)建該類實(shí)例。靜態(tài)結(jié)構(gòu)函數(shù):靜態(tài)結(jié)構(gòu)函數(shù)用于初始化類。在創(chuàng)建第一個(gè)實(shí)例或引用任何靜態(tài)組員之前,將自動(dòng)調(diào)用靜態(tài)結(jié)構(gòu)函數(shù)來(lái)初始化類。帶參數(shù)結(jié)構(gòu)函數(shù)作用是為了來(lái)初始化一些值而設(shè)。析構(gòu)函數(shù):析構(gòu)函數(shù)用于銷毀類實(shí)例。什么是封裝?類是怎樣進(jìn)行封裝?答:封裝就是將抽象得到數(shù)據(jù)和行為(或功效)相結(jié)合,形成一個(gè)有機(jī)整體,也就是將數(shù)據(jù)與操作數(shù)據(jù)源代碼進(jìn)行有機(jī)結(jié)合,形成“類”,其中數(shù)據(jù)和函數(shù)都是類組員。封裝目標(biāo)是增強(qiáng)安全性和簡(jiǎn)化編程,使用者無(wú)須了解詳細(xì)實(shí)現(xiàn)細(xì)節(jié),而只是要經(jīng)過(guò)外部接口,一特定訪問(wèn)權(quán)限來(lái)使用類組員。經(jīng)過(guò)封裝使一部分組員充當(dāng)類與外部接口,而將其余組員隱蔽起來(lái),這么就達(dá)成了對(duì)組員訪問(wèn)權(quán)限合理控制,使不一樣類之間相互影響降低到最低程度,進(jìn)而增強(qiáng)數(shù)據(jù)安全性和簡(jiǎn)化程序編寫工作。C++中有哪幾個(gè)派生方式?每種方式派生類對(duì)基類組員繼承和訪問(wèn)控制屬性是什么樣?答:C++中派生方式有public、private、protected?;?父類)得私有組員,派生類(子類)都不能訪問(wèn);基類得公有組員,派生類得繼承方式?jīng)Q定了其函數(shù)得形式;基類得保護(hù)組員在派生類得公有繼承中也是保護(hù)類型。派生類對(duì)象和基類對(duì)象是什么樣關(guān)系?派生類對(duì)象結(jié)構(gòu)函數(shù)和析構(gòu)函數(shù)執(zhí)行次序是怎樣?答:
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 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ì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 房地產(chǎn)銷售保密協(xié)議
- 機(jī)動(dòng)汽車抵押貸款合同
- 場(chǎng)調(diào)查服務(wù)合同
- 三農(nóng)技術(shù)培訓(xùn)資源庫(kù)
- 個(gè)人手車位買賣合同
- 三農(nóng)產(chǎn)品市場(chǎng)分析作業(yè)指導(dǎo)書
- 純水設(shè)備購(gòu)銷合同
- 混凝土商砼購(gòu)銷合同
- 游戲行業(yè)策劃人員工作手冊(cè)
- 小學(xué)班級(jí)文化建設(shè)實(shí)施方案
- 釘釘培訓(xùn)使用手冊(cè)培訓(xùn)課件
- 法語(yǔ)專四四級(jí)詞匯
- 動(dòng)物檢疫技術(shù)-動(dòng)物檢疫的對(duì)象(動(dòng)物防疫與檢疫技術(shù))
- 《字體設(shè)計(jì)》第四章 字體設(shè)計(jì)進(jìn)階訓(xùn)練
- 帶狀皰疹及帶狀皰疹后遺神經(jīng)痛
- 《計(jì)算機(jī)應(yīng)用基礎(chǔ)》-Excel-考試復(fù)習(xí)題庫(kù)(含答案)
- 《發(fā)展?jié)h語(yǔ)(第二版)中級(jí)綜合(Ⅰ)》第9課+課件
- GB/T 7462-1994表面活性劑發(fā)泡力的測(cè)定改進(jìn)Ross-Miles法
- GB/T 2934-2007聯(lián)運(yùn)通用平托盤主要尺寸及公差
- 急診科進(jìn)修匯報(bào)課件
- DL∕T 617-2019 氣體絕緣金屬封閉開關(guān)設(shè)備技術(shù)條件
評(píng)論
0/150
提交評(píng)論