試驗(yàn)二-類(lèi)與對(duì)象_第1頁(yè)
試驗(yàn)二-類(lèi)與對(duì)象_第2頁(yè)
試驗(yàn)二-類(lèi)與對(duì)象_第3頁(yè)
試驗(yàn)二-類(lèi)與對(duì)象_第4頁(yè)
試驗(yàn)二-類(lèi)與對(duì)象_第5頁(yè)
已閱讀5頁(yè),還剩20頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

1、實(shí)驗(yàn)二-類(lèi)與對(duì)象實(shí)驗(yàn)二 類(lèi)與對(duì)象一、實(shí)驗(yàn)?zāi)康?、學(xué)習(xí)類(lèi)與對(duì)象的定義,掌握類(lèi)與對(duì)象的使用方法。2、學(xué)習(xí)數(shù)據(jù)成員與成員函數(shù)的訪問(wèn)方式,理解構(gòu)造函數(shù)和析構(gòu)函數(shù)的定義 與執(zhí)行過(guò)程,學(xué)會(huì)構(gòu)造函數(shù)的重載方法。3、掌握數(shù)組與指針的定義與使用方法, 理解數(shù)組與指針的存儲(chǔ)分配與表示4、掌握用指針和引用向函數(shù)傳遞參數(shù)。5、掌握靜態(tài)數(shù)據(jù)成員和靜態(tài)成員函數(shù)的使用。6、理解友元與友元函數(shù)的作用與使用方法。二、實(shí)驗(yàn)內(nèi)容1、下面是一個(gè)計(jì)算器類(lèi)的定義,請(qǐng)完成該類(lèi)成員函數(shù)的實(shí)現(xiàn)。class Counterpublic:Counter(int number);void increment();/給原值加 1void decrem

2、ent(); / 給原值減 1int getValue();/ 取得計(jì)數(shù)器值int print();/顯示計(jì)數(shù)private:int value;#includeclass countpublic:counter(int number); void increment();void decrement();int getvalue(int);int print();private:int value;void count:increment()int a=value+1;void count:decrement()int b=value-1;int count:getvalue(int s)v

3、alue=s;return 0;int count:print() coutvalue+1=value+1endl; coutvalue-1=value-1endl; return 0;void main()count s;s.getvalue(5);s.print();/2、根據(jù)注釋語(yǔ)句的提示,實(shí)現(xiàn)類(lèi) Date 的成員函數(shù)。 #includeclass Datepub-pvoid prinfDaCDow S void sefDay(inf d) 0wttB 妄血void sefMonfh(inf mJ-wtt出 妄血 void sefYeagnf y)w 萍*妄血 privafeinf da

4、y-monfmyeacvoid Da(D:pinfDa(D()couAAyeaAA-AAmonfhw 耳AAdayAdvoid Da(D:sefDay(inf d)dayHd八void Da(D:sefMonfh(inf m)monfhHm 八void Da(D:sefYea(inf y)yearly 八inf main。Dafe fesfDay八testDay.setDay(5);testDay.setMonth(10);testDay.setYear(2014);testDay.printDate();return 0;3、建立類(lèi) cylinder ,cylinder 的構(gòu)造函數(shù)被傳遞了兩

5、個(gè) double 值,分別表 示圓柱體的半徑和高度。 用類(lèi) cylinder 計(jì)算圓柱體的體積, 并存儲(chǔ)在一個(gè) double 變量中。在類(lèi) cylinder 中包含一個(gè)成員函數(shù) vol() ,用來(lái)顯示每個(gè) cylinder 對(duì)象 的體積。#include class cylinder private:double r;double h;double v;public:cylinder();double vol(); cylinder(double,double);cylinder:cylinder(double m,double n):r(m),h(n)cylinder:cylinder()c

6、outConstructor calledendl;double cylinder:vol()double v;v=3.14*r*r*h;return v;double main()cylinder a(1.1,2.2);cout 體積 =a.vol()endl;return 0;4、構(gòu)建一個(gè)類(lèi) book,其中含有兩個(gè)私有數(shù)據(jù)成員 qu 和 price ,建立一個(gè)有5 個(gè)元素的數(shù)組對(duì)象, 將 qu 初始化為 15,將 price 初始化為 qu 的 10 倍。顯示 每個(gè)對(duì)象的 qu*price 值。#include class book private:int qu;int price;int

7、 s; public:book(int p,int q):qu(p),price(q)void print()coutqu*priceendl;int main()book a(1,10);a. print();book b(2,20);b. print();book c(3,30);c. print();book d(4,40);d. print();book e(5,50);e. print();return 0;5、修改上題,通過(guò)對(duì)象指針訪問(wèn)對(duì)象數(shù)組,使程序以相反的順序顯示對(duì)象 數(shù)組的 qu*price 值。#includeclass bookprivate:int qu;int pri

8、ce;int s;public:book(int p)qu=p;price=qu*10;int print()return(qu*price);int main()book a5=1,2,3,4,5;book *p;p=&a4;for(int i=4;i=0;i-)coutprint()endl; p-;return 0;6、構(gòu)建一個(gè)類(lèi) Stock,含字符數(shù)組 stockcode 及整型數(shù)據(jù)成員 quan 、雙精 度型數(shù)據(jù)成員 price。構(gòu)造函數(shù)含 3 個(gè)參數(shù):字符數(shù)組 na 及 q、p。當(dāng)定義 Stock 的類(lèi)對(duì)象時(shí),將對(duì)象的第一個(gè)字符串參數(shù)賦給數(shù)據(jù)成員stockcode,第 2 個(gè)和第

9、3 個(gè)參數(shù)分別賦給 quan 和 price 。未設(shè)置第 2 個(gè)和第 3 個(gè)參數(shù)時(shí), quan 的值為 1000,price 的值為 8.98。成員函數(shù) print() 使用 this 指針,顯示對(duì)象內(nèi)容。#include#includeclass Stockchar stockcode10;int quan;double price;public:Stock(char na10,int q=1000,double p=8.98);void print();Stock:Stock(char na10,int q,double p)strcpy(stockcode,na);quan=q;pric

10、e=p;void Stock:print() coutstockcode,quan,priceendl;void main()Stock m(sdgjgj,798,9.89);m.print();Stock n(sljf);cout 默認(rèn): ;n.print();7、參考課本例子,建立一個(gè)源程序文件,在此文件中建立一個(gè)新的類(lèi),將新建的類(lèi)命名為 Rect。class Rectpublic:int Area_int();double Area_double(); Rect(double length ,double width); Rect(int length , int width); vir

11、tual Rect();private :int nLength;int nWidth;double dLength;double dWidth;;【要求】(1) 向 Rect 類(lèi)中添加數(shù)據(jù)成員及成員函數(shù),并完善成員函數(shù)的功能。如設(shè)計(jì) 一個(gè) Area_int() 函數(shù),計(jì)算邊長(zhǎng)為整型的長(zhǎng)方形的面積; 設(shè)計(jì)一個(gè) Area_double() 函數(shù),計(jì)算邊長(zhǎng)為 double 型的長(zhǎng)方形的面積。(2) 重載構(gòu)造函數(shù)。一種構(gòu)造函數(shù)用整型變量記錄長(zhǎng)方形的長(zhǎng)和寬,另一種 構(gòu)造函數(shù)用 double 型記錄。(3) 體現(xiàn)對(duì)象的構(gòu)造和析構(gòu)過(guò)程。例如,在構(gòu)造函數(shù)中用cout ” Ia m theconstructo

12、r! ”endl ;在析構(gòu)函數(shù)中輸出 cout ” I am the destructo r ”endl 。(4) 在 main() 函數(shù)中定義兩個(gè) Rect 類(lèi)的對(duì)象,一個(gè)對(duì)象用實(shí)例實(shí)現(xiàn) (就像定 義普通的變量一樣 ),另一個(gè)對(duì)象用指針實(shí)現(xiàn) (利用關(guān)鍵字 new,給指針?lè)峙鋬?nèi)存 空間)。并用不同的參數(shù),以調(diào)用不同的構(gòu)造函數(shù)體現(xiàn)構(gòu)造函數(shù)的重載。#includeclass Rectpublic:int Area_int();double Area_double();Rect(double length,double width);Rect(int length,int width);virtua

13、l Rect();private:int nLength;int nWidth;double dLength;double dWidth;int Rect:Area_int()int s;s=nLength*nWidth;coutint 的長(zhǎng)方形的面積 :sendl;return 0;double Rect:Area_double()double k;k=dLength*dWidth;coutdouble 型的長(zhǎng)方形的面積 : kendl; return 0;Rect:Rect(int length,int width)nLength=length;nWidth=width;coutI am

14、the constructor!endl;Rect:Rect()coutI am the destructorendl;Rect:Rect(double length,double width) dLength=length;dWidth=width;coutI am the constructor!Area_int();delete p;Rect *q=new Rect(3.2,3.4);q-Area_double();delete q;8、聲明一個(gè) Student,在該類(lèi)中包括一個(gè)數(shù)據(jù)成員 score(分?jǐn)?shù))、兩個(gè)靜態(tài) 數(shù)據(jù)成員 total_score(總分)和 count(學(xué)生人數(shù) );

15、還包括一個(gè)成員函數(shù) account() 用于設(shè)置分?jǐn)?shù)、累計(jì)學(xué)生的成績(jī)之和、累計(jì)學(xué)生人數(shù),一個(gè)靜態(tài)成員函數(shù) sum() 用于返回學(xué)生的成績(jī)之和,另一個(gè)靜態(tài)成員函數(shù)average()用于求全班成績(jī)的平均值。在 main() 函數(shù)中,輸入某班學(xué)生的成績(jī),并調(diào)用上述函數(shù)求出全班學(xué)生 的成績(jī)之和和平均分。#includeclass studentdouble score;static double tatal_score;static int count;static double ave; public:void account(double);static double sum();static d

16、ouble average();void print();void student:account(double m)score=m;tatal_score=tatal_score+m;+count;double student:sum()return(tatal_score);double student:average()ave=tatal_score/count;return ave;void student:print()cout 人數(shù)為: countendl;aveendl;cout 總成績(jī)?yōu)?: tatal_score 平均成績(jī)?yōu)椋篿nt student:count=0;doubl

17、e student:tatal_score=0.0;double student:ave=0.0;void main()student a;a.account(97);a.sum();a.average();student b;b.account(87);b.sum();b.average();b.print();9、設(shè)計(jì)一個(gè)用來(lái)表示直角坐標(biāo)系的 Location 類(lèi),在主程序中創(chuàng)建類(lèi) Location 的兩個(gè)對(duì)象 A 和 B ,要求 A 的坐標(biāo)點(diǎn)在第 3 象限, B 的坐標(biāo)點(diǎn)在第 2 象限,分 別采用成員函數(shù)和友元函數(shù)計(jì)算給定兩個(gè)坐標(biāo)點(diǎn)之間的距離,要求按如下格式 輸出結(jié)果:A(x1,y1)

18、,B(x2,y2)Distance=d其中: x1、 y1、x2、 y2 為指定的坐標(biāo)值, d 為兩個(gè)坐標(biāo)點(diǎn)之間的距離 #include#includeclass locationdouble x;double y;public:location(double,double);void print(location m);friend void print(location &,location &);location:location(double m,double n)x=m;y=n;void location:print(location m)double dx=x-m.x;double

19、 dy=y-m.y;double d=sqrt(dx*dx+dy*dy);coutAB 的 distance:dendl;void print(location &a,location &b)double dx=a.x-b.x;double dy=a.y-b.y;double d=sqrt(dx*dx+dy*dy);coutAB 的 distance:dendl;void main()location A(-3.0,-2.0);location B(-4.3,4.3);A.print(B);print(A,B);10、使用 C+的 string 類(lèi),將 5 個(gè)字符串按逆轉(zhuǎn)后的順序顯示出來(lái)。例如, 逆轉(zhuǎn)前的 5個(gè)字符串是: Germany 、Japan 、American 、British 、France 按逆轉(zhuǎn)后的順序輸出字符串為:France 、British 、American 、Japan 、Germany #include#includeusing namespace std; void main()string s5=Germany,Japan,American,British,France;for(int i=4;i=0;i-)coutsiendl;11

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶(hù)所有。
  • 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ì)用戶(hù)上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶(hù)上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶(hù)因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論