《面向?qū)ο蟪绦虻脑O(shè)計》答案_第1頁
《面向?qū)ο蟪绦虻脑O(shè)計》答案_第2頁
《面向?qū)ο蟪绦虻脑O(shè)計》答案_第3頁
《面向?qū)ο蟪绦虻脑O(shè)計》答案_第4頁
《面向?qū)ο蟪绦虻脑O(shè)計》答案_第5頁
已閱讀5頁,還剩32頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、實驗一熟悉VC+IDE開發(fā)環(huán)境一、實驗?zāi)康?、熟悉vC+6.0集成開發(fā)環(huán)境,熟練掌握VC-6.0項目工作區(qū)、各種編輯器、菜單欄和工具欄的使用。2、掌握如何編輯、編譯、連接和運行一個C+程序。3、通過運行簡單的C+程序,初步了解C+源程序的結(jié)構(gòu)和特點。二、實驗要求1 分析下列程序運行的結(jié)果。程序一:# includeintadd(intxrinty二8);voidmain()intx=4;couKadd(x),;coutCadd(x,add(add(x,add(x)endI;)intadd(y)returnx+y;/12.28程序二# includevoidmain()int*p

2、,i;P二&i;i=*p+10;couti=iendI;)/i=15程序三:# includevoidmain(void)inti=10;int&r=i;cout-i二ir/rn;i=88;cout-i二,,ir=”rn,;i=88,r=88程序四:#includeintf(inti)staticintk二1;for(;i0;i-)k+=i;returnk;)voidmain()inti;for(i二0;iC5;i+)couUf(i)/1251121程序五:#includevoidfunc0;intn=1;voidmain()staticinta;intb=-9;coutab:bb十二4;fu

3、nc();couta:ab:bn+=10;func0;n.)nendI;voidfunc0staticinta二2;intb二5;a+=2;n+=12;b十二5;coutabfb)/a:0b:-9n:1a:4b:10n:13a:0b:-5n:13a:6b:10n:35實驗二實驗?zāi)康腃+對c的擴充1、了解在面向?qū)ο蟪绦蛟O(shè)計過程中C+對C功能的擴充與增強,并善于在編寫程序的過程中應(yīng)用這些新功能。2、進一步熟悉編輯、編譯、連接和運行C+程序的方法。3、進一步熟悉C+程序的結(jié)構(gòu)和編程方法。二、實驗要求1分析下列程序運行的結(jié)果。ncludeintamount=123;voidmain()intamoun

4、t二456;cou::amount*fcou(amoun;/123,456t789,4562、編寫一個程序,用來求2個或3個正整數(shù)中的最大數(shù)。酥策磁畚數(shù)的函數(shù)實現(xiàn)。usingnamespacestd;intmax(b,intc)if(ba)a=i|f;(ca)a二c;returna;int max (int a, int b) if (ab)r覦磬urnlb;int main()i nt a 二 7, b 二-4, c 二 9;coumax (a, b, c)end I ;cout ( max (a, b)end I ; return 0;Q耳紳幅者,中大#include 里u

5、sing namespace std; 譏八I nt ma i n 0b max(int a, int b, int甘R i nt a, b, c;i nabc;婁coutmax (a, b, c)=max (a, b, c)end IcoutCmax (a, b)=max (a, b)end I ;”中的最大者return 0;占中者他瞬出兩個整數(shù)中的最大者/intmax(intarintb,intc)if(ba)a=b;if(ca)a二c;returna;)3有5個字符串,要求對它們按由小到大順序排歹U用string方法。# include# include(stringusingname

6、spacestd;intmain()inti;stringstr5二BASIC,5“FORTRAN,C+”,PASCAL”;voidsort(string口);sort(str);couKz,thesortedstrings:“endI;for(i=0;i5;i+)couKstricoutendI;return0;)voidsort(strings口)inti,j;stringt;for(j二0;jsi+U)(t=si;si=si+1;si+1=t;4、定義一個求兩個數(shù)中較小值的函數(shù)模板min(),要求在main()函數(shù)中進行調(diào)用求兩個浮點型數(shù)據(jù)和兩個整型數(shù)據(jù)中較小的數(shù)。# includeHi

7、ostream”# includestring”usingnamespacestd;tempiate(typenameTTmindafTb)returnab?a:b;intmain()inta=1,b=9;floatc=1.23471,d=32.431564;couK,zTheminofaand”bismin(a,b)endlTheminof”canddismin(c,d)endl;return0;)實驗三類和對象(一)一、實驗?zāi)康?、掌握聲明類的方法,類和類的成員的概念以及定義對象的方法。2、掌握類的構(gòu)造函數(shù)與析構(gòu)函數(shù)的概念和使用方法。3、初步掌握用類和對象編制基于對象的程序。二、實驗要求1

8、 分析下面的程序,寫出其運行時的輸出結(jié)果。#includeusingnamespacestd;cIassDatepublie:Date(int,int,int);Date(int,int);Date(int);DateO;voiddisplay();private:intmonth;intday;intyear;);Date:Date(intm,intd,inty):month(m),day(d),year(y)Date:Date(intm,intd):month(m),day(d)year=2005;)Date:Date(intm):month(m)day=1;year=2005;)Date

9、:Date()month=1;day=1;year=2005;)voidDate:display0coutmonth,r/day/yearendI;intmain()Dated1(10,13,2005);Dated2(12,30);Dated3(10);Dated4;d1.display();d2.dispIay0;d3.dispIay0;d4.dispIay0;return0;)/10/13/200512/30/200510/1/20051/1/20052、建立一個名為Student的類,該類有以下幾個私有成員變量:學(xué)生、學(xué)號、性別、年齡。還有以下兩個成員變量:一個用于初始化學(xué)生、學(xué)號、性別

10、和年齡的構(gòu)造函數(shù),一個用于輸出學(xué)生信息的函數(shù)。編寫一個主函數(shù),聲明一個學(xué)生對象,然后調(diào)用成員函數(shù)在屏幕輸出學(xué)生信息。#incIudeHiostream,1#includestring”usingnamespacestd;classstudent(publie:student();voiddisplay();private:stringsName,sNum;charchSex;intiAge;);student:student(stringna,stringnumtchars,inta):sName(na)fsNum(num),chSex(s)fiAge(a)0voidstudent:dispI

11、ay()cout11THE INFORMATI ON OF STUDENTn;cout name:hsName end I Unumber”sNumend Ii Age end I“sex:chSexendIage:intmain()students(HWangFang,zfz,081104526311,w1,20);s.display();return0;3、類Person的定義如下,請實現(xiàn)該類,并在主函數(shù)中創(chuàng)建對象。bj,然后使用構(gòu)造函數(shù)為M賦予初始值(容自定)。cIassPersonprivate:charname10;intage;intsalary;chartel8;publie:P

12、erson(char*xname,intxage,intxsalary,char*xtel);voiddispO;);解:# include# includePerson:person(char*XnameFintXage,intXsalary,char*XteI)strepy(nameFxname);age二xage;salary二xsalary;strepy(terxtel);)voidPerson:disp()couUucou:nameendI;cou年齒令:ageendI;cou工資”:saIaryendI:teIendI;)voidmain0Personobj(n25,850,“45

13、678912);obj.disp()實驗四類和對象(二)、實驗?zāi)康?、進一步加深對類和對象的理解。2、掌握對類的對象數(shù)組、對象的指針及其使用方法。3、掌握友元的概念和使用。4、了解類模板的使用方法。二、實驗要求1、分析并比較下列程序運行的結(jié)果。程序一:# include# includeclasssmallone(publie:smalIone(intsma)couKsmconstr:sma”rT;;voidfn(intn)smalIonesm(n);cout(ninfunctionfnwithn=MnendI;)intmain()fn(10);fn(20);return0;)/smconst

14、r:10infunctionfnwithn=10smconstr:20infunctionfnwithn=20程序二:# include# incudeclasssmalIonepublie:smalIone(intsma)couz,smconstr:;);voidfn(intn)staticsmalIonesm(n);cout(ninfunctionfnwithn二”nendl;1intmain()fn(10);fn(20);return0;/smconstr:10infunctionfnwithn二10infunctionfnwithn二202、建立一個對象數(shù)組,放5個學(xué)生的數(shù)據(jù)(學(xué)號、成

15、績),設(shè)立一個函數(shù)max,max函數(shù)用指向?qū)ο笾姓页?個學(xué)生中成績最高者,并輸出其學(xué)號。#includeusingnamespacestd;classStudent(publie:Student(intn.floats):num(n),scoreintnum;floatscore;);voidmain()Studentstud5=Student(101,78.5),Student(102,85.5),Student(103,98.5),Student(104,100.0),Student(105,95.5);voidmax(Student*);Student*p=&stud0;max(p);r

16、eyurn0;)voidmax(Student*arr)(fIoatmax_scorez:arr0score;intk=0;for(inti=1;imax_score)(max_scorezarriscore;k=i;cou(arrknumn/max_scoreendI;)3、聲明一個類模板,利用它分別實現(xiàn)兩個整數(shù)、浮點數(shù)和字符的比較,求出大數(shù)和小數(shù)。#includeusingnamespacestd;tempiatecIassCompare(publie:Compare(numtypea,numtypeb)x=a;y=b;numtypemax()return(xy)?x:y;)numtype

17、min()return(xcmp1(3,7);couKcmp!.max0istheMaximumoftwointedernumbers“(endI;coucmp1minOVVistheMinimumoftwointedernumbers”(end|(endComparecmp2(45.78,93.6);coutXcmp2. max ()“ i s the Max imum coucmp2 .min() i s the Mini mum Compare cmp3 (* a r 1 A*); coucmp3. max 0 i s the Max imum cou tXcmp3 .m in()i s

18、 the Mini mumof two f I oat numbers ”end I ;of two float numbers. end KXendl ;of two characters. n ( end I;of two characters n ( end I ; return 0;實驗五運算符重載一、實驗?zāi)康?、進一步了解運算符重載的概念和使用方法。2、掌握幾種常用的運算符重載的方法。二、實驗要求1、定義一個復(fù)數(shù)類CompIex,重載運算法“+”,使之能用于復(fù)數(shù)的加法運算。將運算符重載為普通函數(shù)(非成員、非友元)、成員函數(shù)、友元函數(shù)。根據(jù)要求修改通過函數(shù)來實現(xiàn)復(fù)數(shù)相加的示例,分別編寫

19、程序,求兩個復(fù)數(shù)之和。/ / 定義 Comp I ex 類構(gòu)造函數(shù)/實部/虛部#includeusingnamespacestd;classCompIexpublie:CompIex(floatx=0,floaty二0)real二x;imag二y;CompIexcompIex_add(CompIex&c2);voiddispIay()coutreaI+imagiendI;);private:fIoatreaI;floatimag;);CompIexCompIex:compIex_add(CompIex&c2)CompIexc;c.real二real+c2.real;c.imag二imag+c2

20、-imag;returnc;)intmain()/定義3個復(fù)數(shù)對CompIexcompIex1(3.34f,4.8f),compIex2(12.8f,5.2f);CompIexcompIex;/進彳丁兩個復(fù)數(shù)的加運算compIex二compIpIex_add(compIex2)compIex.display0;return0;/16.14+10i/普通函數(shù)(非成員、非友元)#includeusingnamespacestd;cIassCompIexpublie:CompIex0(real=0;imag=0;CompIex(doubler,doublei)real=r;imag=i;doubIe

21、get_reaI();doubleget_imagO;voiddispIay();private:doublereal;doubleimag;);doubleComplex:get_real()(returnreal;doubIeComplex::get_imag()(returnimag;voidCompIex:display()cout(reaI,i)”endI;CompIexoperator+(CompIex&,z.Complex&c2)(returnCompIex(d-get_real()+c2.get_real0tc1-get_imagO+c2.get_imag();)intmain

22、()(CompIexd(3,4),c2(5,-10),c3;c3=d+c2;coutc3二;c3.dispIay0;return0;/運算符重載為成員函數(shù)#includeusingnamespacestd;classCompIexpubIic:CompIex0real=0;imag=0;CompIex(doubler,doublei)real二r;imag二i;)CompIexoperator+(CompIex&c2);voiddispIay();private:doublereal;doubleimag;);CompIexCompIex:operator+(CompIex&c2)(CompI

23、exc;c.rea-eal+c2.real;c.imag二imag+c2.imag;returnc;)voidCompIex:dispIay()coutereaI,fHimagri)”endI;)intmain()CompIexd(3,4),c2(5,TO),c3;c3=c1+c2;couKc1=,z;d.dispIay();coutc2=;c2.dispIay();coutc1+c2=;c3.display();return0;/將運算符重載為友元函數(shù)#includeusingnamespacestd;cIassCompIex(publie:CompIex()rea1=0;imag-0;)C

24、ompIex(doubler)(real=r;imag_.0;CompIex(doubler,doublei)rea=r:imag=i;friendCompIexoperator+(CompIex&d,CompIex&c2);voiddispIay();private:doublereal;doubleimag;):CompIexoperator+(CompIex&d,Complex&c2)(returnCompIex(d-real+c2-real,dimag+c2.imag);voidComplex:display()cout(reaI,i)endI;intmain0CompIexd(3,4

25、),c2(5,TO),c3;c3=d+c2;coutc1二”;c1.dispIay();coutc2=:c2.dispIay();cout,d+c2=1;c3.dispIay();return0;實驗六繼承和派生一、實驗?zāi)康?、了解繼承在面向?qū)ο蟪绦蛟O(shè)計中的重要作用。2、進一步理解繼承與派生的概念。3、掌握通過繼承派生出一個新的類的方法。4了解虛基類的作用和用法。二、實驗要求1、運行程序,分析構(gòu)造函數(shù)與析構(gòu)函數(shù)的調(diào)用順序。程序一:#inoudecIassApubIic:A()coutA:Constructor”endI;AOcouKA:DestructorendI;cIassB:pubIicA

26、pubIic:B()couK,BConstructor,/endI;)()coutB:Destructor”endI;);voidmain()Bb;)/A:ConstruetorB:ConstructorB:DestruetorA:Destructor程序二:#includecIassA(inta;publie:aend IA(intaa二0)a=aa:A()coutCnDestructorA!cIassB:pubIicAintb; b 二 bb; pubIic:B(intaa=O,intbb=O):A(aa)B() coutDestructorB!voidmain()Bx(5),y(6,7)

27、;/DestructorB!7DestructorA!6DestructorBIODestructorA!5調(diào)用順序:構(gòu)造x. A a二5構(gòu)造x. B構(gòu)造y. A 不匹配,不調(diào)用A ()構(gòu)造 y. B a=6b=7 析構(gòu) y. B B!7析構(gòu)y. A A!62、分別聲明Teacher(教師)類和Cadre (干部)類,采用多重繼承方式由這兩個類派生出新類Teacher_Cader類要求:小天由人甘來工公、/卜注口H、-Wr+rL、在Teacher類中還包含數(shù)據(jù)成員title (職稱)等數(shù)據(jù)成員。,在Cader類中還包含數(shù)據(jù)成員post (職務(wù))。在Teacher_Cader類中還包含數(shù)據(jù)成員w

28、ages(工資)。年齡、性別、職稱、地址、cou t在對兩個基類中的、年齡、性別、地址、等數(shù)據(jù)成員用相同的名字,在引用這些數(shù)據(jù)成員時,指定作用域。在類體中聲明成員函數(shù),在類外定義數(shù)據(jù)成r=j貝中調(diào)用Teacher類中的display函數(shù),輸出、語句輸出職務(wù)和工資。在派生類TeachejCader的成員函數(shù)showTeacher#include#includeusingnamespacestd;classpublie:Teacher(stringnamfinta,chars,stringtit,stringad,stringt);voiddispIay();protected:stringnam

29、e;intage;charsex;stringtitle;stringaddr;stringTeacher:Teacher(stringnam,inta,chars,stringtit,stringad,stringt):name(nam),age(a),sex(s),ti11e(tit),addr(ad),teI(t)voidTeacher:dispIay()coutname:nameendI;cou,age,XageendI;cout“sex:”sexendI;coutCtitie:zXti11eendI;couaddress:addrendI;coutteI:teIendI;)cIass

30、Cadrepublie:Cadre(stringnam,intafcharSfstringp,stringad,stringt);voiddispIay0;protected:stringname;intage;charsex;stringpost;stringaddr;stringtel;);Cadre:Cadre(stringnam,inta,chars,stringp.stringadFstringt):name(nam),age(a),sex(s)Fpost(p),addr(ad),teI(t)voidCadre:display()couKHname:”nameendI;coutXag

31、e:ageendI;coutsex:sexendI;coutpost:posendI;coutaddress:addrendI;coutteI:teIendI;)classTeacher_Cadre:pubIicTeacher,pubIicCadrepublic:Teacher_Cadre(stringnam,inta,chars,stringtit,stringptstringad,stringt,floatw);voidshow();private:floatwage;);Teacher_Cadre:Teacher_Cadre(stringnam,inta,charsfstringt.st

32、ringptstringad,stringtelffloatw):Teacher(nam,a,Sft,ad,tel),Cadre(nam,ats,p,adrteI),wage(w)voidTeacher_Cadre::show()(Teacher:display();cout“post:”Cadre::pos(endI;coutnwages:”wageendl;)intmain0Teacher_Cadrete_ca(,zWang-Ii,z,50,f,prof.,president”,z135BeijingRoad,Shanghai7;H(021)61234567)1534.5);te_cash

33、ow();return0;)實驗七多態(tài)性和虛函數(shù)一、實驗?zāi)康?、了解多態(tài)性的概念。2、了解虛函數(shù)的作用及其使用方法。3、了解靜態(tài)關(guān)聯(lián)和動態(tài)關(guān)聯(lián)的概念和用法。4了解純虛函數(shù)和抽象類的概念和用法。二、實驗要求1 分析程序運行結(jié)果,掌握虛函數(shù)的使用。程序一:#includecIassONEpublie:virtuaIvoidf()coutI”endI;);classTWO:publicONEpublie:TWOOcouUn2zXendl;;classTHREE:pubIicTWOpublie:virtualvoidf()TWO:f();couKn3H;);voidmain()ONEaa,*p;TWO

34、bb;THREEcc;p=&cc;p-f0;)/2程序二:#includeclassBasepubIic:virtualvoidfn()coutInBaseClassd;);cIassSubCiass:pubIicBasepublie:virtualvoidfn()coutinSubClassn;);voidmainOBasebe.*p;SubClasssc;p二&bc;p-fn();p二≻p-fn();1/InBaseClassInSubClass2、實現(xiàn)一個類A,在A中有兩個私有的整型變量a和b,定義構(gòu)造函數(shù)對a和b進行初始化,并實現(xiàn)成員函數(shù)geta()取得a的值和getb()取b的

35、值。實現(xiàn)類B從A繼承,覆蓋geta0使其返回a的2倍。主函數(shù)中聲明類B對象,調(diào)用類B中的geta()并將結(jié)果輸出。#incIudeHiostream!1usingnamespacestd;classAprivate:inta;intb;publie:A(intm,intn)a二m;b二n;intgeta()returna;)intgetb()returnb;)I;cIassB:pubIicA(publie:B(int口intn):A(mrn)intgeta()returnA:geta0*2;);voidmain()Bb(2,2);coutb.geta0endI;return0;Shape,由它

36、派生出3個派生類:Cirle(圓形)、)3、聲明抽象基類RectangIe(矩形)、TriangleintArea分別輸出以上三者/定義虛函數(shù)/結(jié)/結(jié)/寬與圖/ /輸出S的面積int main()建立Circle類又寸象circle/輸出circle的面積/ /建立Rectangle類對象(三角形),用一個函數(shù)的面積,3個圖形的數(shù)據(jù)在定義對象是給定。#includeusingnamespacestd;/定義抽象基類ShapecIassShapepublie:virtuaIdoublearea()const=0;/純虛函數(shù));/定義Circle類cIassCircle:publicShapepublie:Circle(doubler):radius(r)/結(jié)構(gòu)函數(shù)virtuaIdoublearea()const(return3.14159*r

溫馨提示

  • 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

提交評論