實(shí)驗(yàn)三 類和對(duì)象_第1頁(yè)
實(shí)驗(yàn)三 類和對(duì)象_第2頁(yè)
實(shí)驗(yàn)三 類和對(duì)象_第3頁(yè)
實(shí)驗(yàn)三 類和對(duì)象_第4頁(yè)
實(shí)驗(yàn)三 類和對(duì)象_第5頁(yè)
已閱讀5頁(yè),還剩7頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

1、;#includeusing namespace std;class Txpublic:Tx(int i,int j);Tx();void display();private:int num1,num2;Tx:Tx(int i,int j=10)num1=i;num2=j;coutConstructingnum1num2endl;void Tx:display()coutdisplaynum1num2endl;Tx:Tx()coutDestructingnum1num2endl;void main()Tx t1(22,11);Tx t2(20);t1.display();t2.display(

2、);system(pause);答:1.當(dāng)建立一個(gè)對(duì)象時(shí),對(duì)象的狀態(tài)(數(shù)據(jù)成員的取值)是不確定的。但對(duì)象表達(dá)了現(xiàn)實(shí)世界的實(shí)體,因此,一旦建立對(duì)象,必須有一個(gè)有意義的初始值。構(gòu)造函數(shù)用來(lái)自動(dòng)進(jìn)行對(duì)象的初始化;析構(gòu)函數(shù)在對(duì)象撤銷時(shí)執(zhí)行清理任務(wù),進(jìn)行善后處理。2. 私有成員是在類中被隱藏的部分,它往往是用來(lái)描述該類對(duì)象屬性的一些數(shù)據(jù)成員,私有成員只能由本類的成員函數(shù)或某些特殊說(shuō)明的函數(shù)(如友元函數(shù))訪問(wèn),而類的外部函數(shù)無(wú)法訪問(wèn)私有成員;共有成員對(duì)外是完全開(kāi)放的;受保護(hù)成員只能由該類的成員函數(shù)、友元、共有派生成員函數(shù)訪問(wèn)。3. 拷貝構(gòu)造函數(shù)是用一個(gè)已有的對(duì)象來(lái)初始化一個(gè)被創(chuàng)建的同類對(duì)象的特殊的構(gòu)造函數(shù)

3、,具有一般構(gòu)造函數(shù)的所有特性。但創(chuàng)建一個(gè)新對(duì)象時(shí)系統(tǒng)會(huì)自動(dòng)調(diào)用它。4. 兩個(gè)成員函數(shù):設(shè)置計(jì)數(shù),獲取計(jì)數(shù);一個(gè)成員變量:保存計(jì)數(shù)。8. 運(yùn)行結(jié)果:Constructing2211Constructing2010Display2211Display20101. 設(shè)計(jì)一個(gè)大學(xué)的類系統(tǒng),學(xué)校中有學(xué)生、教師和職員,每種人員都有自己的特性,他們之間又有相同的地方。利用繼承機(jī)制定義這個(gè)系統(tǒng)中的各個(gè)類及類上必需的操作。答:經(jīng)調(diào)試后的代碼:#include #include #include using namespace std;class personpublic: void in_nm(); void

4、in_id(); void ou_nm(); void ou_id();private: string id; string name;class student:public personpublic: void in_clsid(); void in_sc(); void ou_clsid(); void ou_sc();private: string cls_id; float score;class teacher:public personpublic: void in_zc(); void in_dp(); void ou_zc(); void ou_dp();private: s

5、tring zc; string depart;void person:in_nm() cout請(qǐng)輸入姓名:name;void person:in_id() cout請(qǐng)輸入編括號(hào):id;void person:ou_nm() cout姓名為:nameendl;void person:ou_id() cout編號(hào)為:idendl;void student:in_clsid() cout請(qǐng)輸入學(xué)生班級(jí):cls_id;void student:in_sc() cout請(qǐng)輸入學(xué)生分?jǐn)?shù):score;void student:ou_clsid() cout學(xué)生班級(jí)為:cls_idendl;void stu

6、dent:ou_sc() cout學(xué)生分?jǐn)?shù)為:scoreendl;void teacher:in_zc() cout請(qǐng)輸入教師職稱:zc;void teacher:in_dp() cout請(qǐng)輸入教師部門:depart;void teacher:ou_zc() cout教師職稱為:zcendl;void teacher:ou_dp() cout教師部門為:departendl;int main() student stu; cout開(kāi)始輸入學(xué)生信息:endl; stu.in_nm(); stu.in_id(); stu.in_clsid(); stu.in_sc(); cout顯示學(xué)生信息:en

7、dl; stu.ou_nm(); stu.ou_id(); stu.ou_clsid(); stu.ou_sc(); coutendl; teacher tch; cout開(kāi)始輸入教師信息:endl; tch.in_nm(); tch.in_id(); tch.in_zc(); tch.in_dp(); cout顯示教師信息:endl; tch.ou_nm(); tch.ou_id(); tch.ou_zc(); tch.ou_dp(); coutendl; system(pause); return 0; 運(yùn)行結(jié)果為:2構(gòu)建一個(gè)類用于計(jì)算數(shù)據(jù)的統(tǒng)計(jì)信息,類名Cstatistics,類中包括,

8、成員變量:數(shù)據(jù)個(gè)數(shù)(int N),數(shù)據(jù)(double* data),均值(double mean),方差(double variance),最大值(double max),最小值(double min)。成員函數(shù):輸入函數(shù)(void input()):輸入數(shù)據(jù)個(gè)數(shù)N,給data變量申請(qǐng)N個(gè)空間,并輸入N個(gè)數(shù)值。計(jì)算均值(void getMean()):計(jì)算data變量中數(shù)據(jù)的均值,并賦值給mean變量。計(jì)算方差(void getVariance()):計(jì)算data變量中數(shù)據(jù)的方差,并賦值給variance變量。計(jì)算最大值(void getMax()):計(jì)算data變量中數(shù)據(jù)的最大值,并賦值給m

9、ax變量。計(jì)算最小值(void getMin()):計(jì)算data變量中數(shù)據(jù)的最小值,并賦值給min變量。輸出函數(shù)(void print()):輸出data變量中的數(shù)據(jù)及個(gè)數(shù),并輸出該數(shù)據(jù)的統(tǒng)計(jì)信息(均值(double mean),方差(double variance),最大值(double max),最小值(double min)。程序框架:#includeCstatistics.h#includeusing namespace std;int main()cout這是一個(gè)統(tǒng)計(jì)類!endl;Cstatistics sta;sta.input();sta.getMean();sta.getVar

10、iance();sta.getMax();sta.getMin();sta.print();system(pause);return 0;答:代碼如下:#pragma once#includeusing namespace std;class Cstatisticspublic:Cstatistics(void);Cstatistics(void);void input();void getMean();getVariance();void getMax();void getMin();void print();private:int N;double* data;double mean;do

11、uble variance;double max;double min;Cstatistics:Cstatistics()Cstatistics:Cstatistics(void)void Cstatistics:input()coutN;if(N 0)data = new doubleN;cout請(qǐng)輸入N個(gè)數(shù)據(jù):endl;for(int i = 0; i datai;void Cstatistics:getMean()if(data != NULL )double sum = 0;for(int i = 0; i N; i+)sum += datai;mean = sum / N;void

12、Cstatistics:getVariance()if(data != NULL )if(mean = 0)getMean();double sum = 0;for(int i = 0; i N; i+)sum += (datai - mean) * (datai - mean);variance = sum / N;void Cstatistics:getMax()if(data != NULL)max = data0;for(int i = 1; i max)max = datai;void Cstatistics:getMin()if(data != NULL)min = data0;f

13、or(int i = 1; i N; i+)if(datai min)min = datai;void Cstatistics:print()coutN個(gè)數(shù)據(jù)為:endl;for(int i = 0; i N; i+)coutdatai ;coutendl;cout均值為:meanendl;cout方差為:varianceendl;cout最大值為:maxendl;cout最小值為:minendl;int main()cout這是一個(gè)統(tǒng)計(jì)類!endl;Cstatistics sta;sta.input();sta.getMean();sta.getVariance();sta.getMax()

14、;sta.getMin();sta.print();system(pause);return 0;運(yùn)行結(jié)果:3編寫(xiě)一個(gè)程序計(jì)算出球、圓柱和圓錐的表面積和體積。要求:(1)定義一個(gè)基類圓,至少含有一個(gè)數(shù)據(jù)成員半徑;(2)定義基類的派生類球、圓柱、圓錐,都含有求表面積和體積的成員函數(shù)和輸出函數(shù)。(3)定義主函數(shù),求球、圓柱、圓錐的和體積。答:代碼如下#include #include #include using namespace std;const double PI=3.14159;class circlepublic: void in_rad() cout輸入半徑:rad; protect

15、ed: float rad; /半徑;class ball:public circlepublic: void in_rad() cout輸入球半徑:rad; void calc_sur() sur=4*PI*rad*rad; void calc_vol() vol=4/3.0*PI*rad*rad*rad; void out_sur() cout球的表面積為:surendl; void out_vol() cout球的體積為:volendl; private: double sur; /表面積 double vol; /體積;/圓柱class column:public circlepubl

16、ic: void in_rad() cout輸入圓柱半徑:rad; void in_height() cout輸入圓柱高:height; void calc_sur() sur=PI*rad*rad+2*PI*rad*height; void calc_vol() vol=PI*rad*rad*height; void out_sur() cout圓柱的表面積為:surendl; void out_vol() cout圓柱的體積為:volendl; private: double sur; /表面積 double vol; /體積 double height; /高;/圓錐class cone

17、:public circlepublic: void in_rad() cout輸入圓錐半徑:rad; void in_height() cout輸入圓錐高:height; void calc_sur() sur=0.5*PI*rad*rad*2*PI*rad*height; void calc_vol() vol=1/3.0*PI*rad*rad*height; void out_sur() cout圓錐的表面積為:surendl; void out_vol() cout圓錐的體積為:volendl; private: double sur; /表面積 double vol; /體積 double height;int main() cout球:endl; ball oball; oball.in_rad(); oball.calc_sur(); oball.calc_vol(); oball.out_sur(); oball.out_vol(); coutendl; cout圓柱:endl; column ocol; oc

溫馨提示

  • 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ì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論