2023年面向?qū)ο蟪绦蛟O(shè)計(jì)及c++實(shí)驗(yàn)報(bào)告_第1頁(yè)
2023年面向?qū)ο蟪绦蛟O(shè)計(jì)及c++實(shí)驗(yàn)報(bào)告_第2頁(yè)
2023年面向?qū)ο蟪绦蛟O(shè)計(jì)及c++實(shí)驗(yàn)報(bào)告_第3頁(yè)
2023年面向?qū)ο蟪绦蛟O(shè)計(jì)及c++實(shí)驗(yàn)報(bào)告_第4頁(yè)
2023年面向?qū)ο蟪绦蛟O(shè)計(jì)及c++實(shí)驗(yàn)報(bào)告_第5頁(yè)
已閱讀5頁(yè),還剩10頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

課程名稱實(shí)驗(yàn)名稱實(shí)驗(yàn)時(shí)間指導(dǎo)單位指導(dǎo)教師課程名稱實(shí)驗(yàn)名稱實(shí)驗(yàn)時(shí)間指導(dǎo)單位指導(dǎo)教師實(shí)驗(yàn)報(bào)告(學(xué)年第二學(xué)期)面向?qū)ο蟪绦蛟O(shè)計(jì)及C++實(shí)驗(yàn)一:類和對(duì)象的定義及使用年3月壟日物聯(lián)網(wǎng)學(xué)院Boy::?Boy()).voidBoy::print()(cout?/zBoy:H?name,z<<age<<end1;).Girl::Girl(charN[],intA)(strcpy(name,N);age=A;}Girl::?Girl。).voidGir1::print(){.cout<V"Gir1:"<Vname<<""<<age?endl;).voidGirl::VisitBoy(Boy&boy)(cosname:“<<?end1;cout?/zBoy,sage:"<Xboy.age<〈end1;)intmain(){.Boya("xpx”,19);Girlb("laia”,19);b.VisitBoy(a);print()print();return0;).實(shí)驗(yàn)報(bào)告程序的運(yùn)營(yíng)結(jié)果是:Boy'snamexpxBoy'sage:19Boy:xpx19Girl:1ala19PressanykeytocontinueL.T\人人人人UBoy'sname:xpxBoy'sage:19Boy:xpx19Girl:lala19Pressanykeytocontinue②將Girl類作為Boy類的友元類,寫出Girl類的成員函數(shù)VisitBoy(Boy&)的實(shí)現(xiàn)代碼。voidGirl::VisitBoy(Boy&boy)(cout<<nBoy'sname:"<<?endl;cout<<nBoy,sage:n<<boy.age?endl;)實(shí)驗(yàn)報(bào)告③在Boy類的某成員函數(shù)VisitGirl(Girl&)中試圖訪問Girl類的私有成員,記錄編譯器給出的錯(cuò)誤信息,與②對(duì)比,你能得出友元的什么特性?友元關(guān)系是單向的,不具有互換性④在上面代碼的基礎(chǔ)上,在Girl類的定義中,增長(zhǎng)一行代碼:friendBoy;在主函數(shù)中通過Boy類對(duì)象.VisitGir1(Gir1類對(duì)象)的形式輸出Girl類對(duì)象的信息。編譯的結(jié)果是?寫出這一步你的主函數(shù)代碼,規(guī)定分別用友元函數(shù)Gir1類對(duì)象.VisitBoy(Boy類對(duì)象);和Boy類對(duì)象.VisitGir1(Gir1類對(duì)象);和輸出兩個(gè)類對(duì)象的信息。D:\MicrosoftVisua1Studio\MyProjects\實(shí)驗(yàn)二\exp3_Lcpp|14|error:no"voidGir1::VisitBoy(Boy&)'memberfunctiondeciaredinclass'GiiT|Gl.VisitBoy(B2);B2.VisitGir1(G1);輸出:GirlconstructingBoyconstruetingBoy,sname:JackBoy'sage:22Girl'sname:MaryGirrsage:20實(shí)驗(yàn)報(bào)告⑤定義一個(gè)頂層函數(shù)voidVisitBoyGirl(Boy&,Girl&),作為以上兩個(gè)類的友元函數(shù),主函數(shù)中通過調(diào)用該函數(shù)輸出男孩和女孩的信息。寫出該友元函數(shù)的完整代碼,以及主函數(shù)的代碼。voidVisitBoyGirl(Boy&boy,Gir1&girl)(cout?/zGirrsname:^?<<endl;cout?/zGirl,sage:^<<girl.age?endl;cout?/zBoyzsname:"?boy?name?endl;cout<<"Boy'sage:"〈〈boy.ageVVendl;).VisitBoyGirl(B2,Gl);實(shí)驗(yàn)報(bào)告四、實(shí)驗(yàn)小結(jié)(涉及問題和解決方法、心得體會(huì)、意見與建議等)L在題目(1)中②不改變main。函數(shù)中的對(duì)象的定義方式,若取消構(gòu)造函數(shù)中參數(shù)的默認(rèn)值,編譯程序錯(cuò)誤提醒信息及犯錯(cuò)因素是:D:\MicrosoftVisua1Studio\MyProjects、實(shí)驗(yàn)一\Time.cpp|7|error:nomatchingfunctionforca11to'Time::TimeO,|D:\MicrosoftVisua1Studio'MyProjects\實(shí)驗(yàn)一\Time.cpp181error:nomatchingfunctionforcalltoTime::Time(int)fD:\MicrosoftVisualStudio\MyProjects\實(shí)驗(yàn)一\Time.cpp|9|error:nomatchingfunotionforcal1to'Time::Time(int,int)'I函數(shù)二義性.在題目(1)中③假如刪除類中自定義的構(gòu)造函數(shù),僅使用系統(tǒng)默認(rèn)構(gòu)造函數(shù),再編譯,程序錯(cuò)誤提醒信息及犯錯(cuò)因素是:D:\MicrosoftVisua1Studio\MyProjects\實(shí)驗(yàn)一\Time,cpp171error:nomatchingfunctionforcalltoTime::Time()7|D:\MicrosoftVisualStudio\MyProjects\實(shí)驗(yàn)一'Time,cpp⑻error:nomatehingfunctionforcalltoTime::Time(int)'ID:\MicrosoftVisualStudio\MyProjects、實(shí)驗(yàn)一'Tiine.cpp|9|error:nomatchingfunctionforcallto'Time::Time(int,int),ID:\MicrosoftVisua1Studio\MyProjects\實(shí)驗(yàn)一\Time.cpp|10|error:nomatchingfunctionforca11toTime::Time(int,int,int|構(gòu)造函數(shù)實(shí)參不對(duì)的.在題目(1)中④恢復(fù)成①的對(duì)的狀態(tài),假如將main()函數(shù)中的輸出語句改為:cou〈對(duì)象名.Hour<<":〃<〈對(duì)象名.Minute<<〃:”<<對(duì)象名.Second<<end1;重新編譯,會(huì)出現(xiàn)什么錯(cuò)誤提醒?在這種情況下,假如將成員變量的訪問屬性修改為Pub1ic再編譯,結(jié)果如何?D:\MicrosoftVisua1Studio\MyProjects\實(shí)驗(yàn)一\Time.hI17|error:'intTime::Hour'isprivate|D:\MicrosoftVisua1Studio\MyProjects'實(shí)驗(yàn)一\Time.cppI17Ierror:withinthiscontextID:\MicrosoftVisualStudio\MyProjects\實(shí)驗(yàn)一\Time.cpp117Ierror:'t4.Time::Hour,cannotbeusedasafunction|D:\MierosoftVisua1Studio\MyProjects\實(shí)驗(yàn)一\Time.h|17|error:'intTime::Minute'isprivate|.D:\MicrosoftVisua1Studio\MyProjects\實(shí)驗(yàn)一\Time.cppI171error:withinthiscontext|.D:\MicrosoftVisualStudio\MyProjects\實(shí)驗(yàn)一\Time,cppI171error:'t4.Time::Minute,cannotbeusedasafunction|D:\MicrosoftVisualStudio\MyProjects、實(shí)驗(yàn)一\Time.h|171error:、intTime::Second'isprivate|D:\MicrosoftVisualStudio\MyProjects\實(shí)驗(yàn)一k\Time.cpp|171error:withinthiscontext|D:\MicrosoftVisualStudio\MyProjects\實(shí)驗(yàn)一\Time.cppI17|error:,t4?Time::Second'cannotbeusedasafunction|5.心得體會(huì):1,注意向前引用。,2,要注意構(gòu)造函數(shù)的用法。3,友元可以提高效率,方便編程。但會(huì)破壞類的整體操作性和封裝性。五、指導(dǎo)教師評(píng)語成績(jī)批閱人

實(shí)驗(yàn)報(bào)告實(shí)驗(yàn)名稱類和對(duì)象的定義及使用指導(dǎo)教師肖學(xué)中實(shí)驗(yàn)類型驗(yàn)證實(shí)驗(yàn)學(xué)時(shí)2實(shí)驗(yàn)時(shí)間3月20日一、實(shí)驗(yàn)?zāi)康暮鸵?guī)定(1)掌握類與對(duì)象的定義與使用方法,理解面向?qū)ο蠓椒ㄖ型ㄟ^對(duì)象間傳遞消息的工作機(jī)制。(2)對(duì)的掌握類的不同屬性成員的使用方法。(3)掌握構(gòu)造函數(shù)與析構(gòu)函數(shù)的概念,理解構(gòu)造函數(shù)與析構(gòu)函數(shù)的執(zhí)行過程。(4)掌握友元函數(shù)和友元類的定義和使用。(5)基本掌握指針和引用作為函數(shù)參數(shù)的應(yīng)用。二、實(shí)驗(yàn)環(huán)境(實(shí)驗(yàn)設(shè)備)硬件:微型計(jì)算機(jī)軟件:MicrosoftVisua1C++6.0三、實(shí)驗(yàn)原理及內(nèi)容實(shí)驗(yàn)題目(1)定義一個(gè)時(shí)間類Time,有三個(gè)私有成員變量Hour、Minute、Second,定義構(gòu)造函數(shù)、析構(gòu)函數(shù)以及用于改變、獲取、輸出時(shí)間信息的公有函數(shù),主函數(shù)中定義時(shí)間對(duì)象,并通過調(diào)用各種成員函數(shù)完畢時(shí)間的設(shè)定、改變、獲取、輸出等功能。①按規(guī)定完畢類的定義與實(shí)現(xiàn)。修改數(shù)據(jù)成員的訪問方式,觀測(cè)編譯結(jié)果。在Time類中定義一個(gè)成員函數(shù),用于實(shí)現(xiàn)時(shí)間增長(zhǎng)一秒的功能,主函數(shù)中通過對(duì)象調(diào)用該函數(shù),并輸出增長(zhǎng)一秒后的時(shí)間信息。④定義一個(gè)普通函數(shù)。voidf(Timet)(t.PrintTime();}在Time類中增長(zhǎng)拷貝構(gòu)造函數(shù)的定義,主函數(shù)中調(diào)用該函數(shù),運(yùn)用調(diào)試工具跟蹤,分析整個(gè)程序調(diào)用構(gòu)造函數(shù)(涉及拷貝構(gòu)造函數(shù))和析構(gòu)函數(shù)的次數(shù);再將f函數(shù)的形式參數(shù)分別修改為引用參數(shù)和指針參數(shù)(此時(shí)函數(shù)代碼修改為{t->PrintTime();},主函數(shù)中調(diào)用,再分析此時(shí)調(diào)用構(gòu)造函數(shù)和析構(gòu)函數(shù)的次數(shù)。實(shí)驗(yàn)報(bào)告參考實(shí)驗(yàn)教材中相應(yīng)的實(shí)驗(yàn)提醒部分按規(guī)定完畢程序,并回答相關(guān)問題。規(guī)定①完畢后的源程序代碼如下:Winclude<iostream>usingnamespacestd;c1assTime(private:.intHour,Minute,Second;pub1ic:^Time(inth=0,intm=0,ints=0);,Time(constTime&ob);吁Time();ovoidChangeTime(inth,intm,ints);ointGetHour();'intGetMinute();nntGetSecond();ovoidPrintTime();ovoidIncrease0neSecond(););Time::Time(inth,intm,ints)(Hour=hMinute=m;Second=s;)Time::Time(constTime&ob)(Hour=ob.Hour;Minute=ob.Minute;Second=ob.Second;)Time::?Time()()voidTime::ChangeTime(inth,intm,ints)(Hour=h;Minute=m;Second=s;).intTime::GetHour()(returnHour;)intTime::GetMinute()(returnMinute;)intTime::GetSecond()(returnSecond;)voidTime::PrintTime()(cout?Hour<<":"<<Minute〈V":"<<Second<<endl;)voidTime::IncreaseOneSecond()(Second++;)AvoidTime::f(Timet)(t.PrintTimeO;cout?ncallf\n〃;}*/intmain()(Timea;.Timeb(13);Timec(13,15);Timed(13,15,45);.a.PrintTime();b.PrintTime();c?PrintTime();d.PrintTime();ChangeTime(12,15,45);ChangeTime(12,15,45);ChangeTime(12,15,45);,d.ChangeTime(12,15,45);coutVVa.GetHour()<<":"<<a?GetMinute()〈V":"V<a.GetSecond()?endl;cout?b.GetHour()<<^:z/?b.GetMinute()<<zz:/z<<b.GetSecond()<<endl;cout<<c.GetHour()<<":"<<c.GetMinute()<<":"<<c.GetSecond()<<end1;cout?d.GetHour()<<z,:/z?d.GetMinute()?n:d.GetSecond()<<end1;return0;).程序的運(yùn)營(yíng)結(jié)果是:0:0:013:0:013:15:013:15:4512:15:4512:15:4515:4512:15:45Pressanykeytocontinue?E:\C++6.0\B14070519\Debug\^g—exe"l口IU_里一1構(gòu)造函數(shù)與析構(gòu)函數(shù)的調(diào)用方式及執(zhí)行順序是:先是構(gòu)造函數(shù)然后是析構(gòu)函數(shù)。調(diào)用方式是自動(dòng)調(diào)用,執(zhí)行順序是先執(zhí)行構(gòu)造函數(shù),待程序結(jié)束時(shí)再執(zhí)行析構(gòu)函數(shù)。實(shí)驗(yàn)報(bào)告③取消類中成員函數(shù)IncreaceOneSecond()的注釋標(biāo)志為該函數(shù)補(bǔ)充完整,注意時(shí)間在增長(zhǎng)一秒情況下的進(jìn)位關(guān)系。該函數(shù)的代碼如下:voidTime::IncreaseOneSecond()(if(Second<59)Second++;e1seif(Second==59&&Minute==59&&Hour==23)(Hour=0;Minute=0;Second=0;}elseif(Second==59&&Minute==59&&Hour<23)(Minute=0;Second=0;Hour++;}elseif(Second==59&&Minute<59&&Hour<23)(Minute++;Second=0;

Hour++;)cout<<Hour<<:/z<<Minute<<ZZ:,Z?Second<<endl;).④主函數(shù)中定義一個(gè)Time類對(duì)象并調(diào)用一次f函數(shù),觀測(cè)結(jié)果填寫下表:f函數(shù)的原型主函數(shù)中調(diào)用f的語句構(gòu)造函數(shù)調(diào)用次數(shù)拷貝構(gòu)造函數(shù)調(diào)用次數(shù)析構(gòu)函數(shù)調(diào)用次數(shù)voidf(Timet);F(tO)112voidf(Time&t);F(tO)101voidf(Time*t);F(p)101通過以上結(jié)果,關(guān)于對(duì)象作形式參數(shù)、對(duì)象引用作形式參數(shù)、對(duì)象指針作形式參數(shù)時(shí)構(gòu)造函數(shù)、析構(gòu)函數(shù)的調(diào)用次數(shù)及順序,你得到什么結(jié)論?.實(shí)驗(yàn)報(bào)告實(shí)驗(yàn)題目(2)定義一個(gè)Gir1類和一個(gè)Boy類,這兩個(gè)類中都有表達(dá)姓名、年齡的私有成

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝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ù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 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ì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論