實(shí)驗(yàn)三 類和對象[實(shí)驗(yàn)相關(guān)]_第1頁
實(shí)驗(yàn)三 類和對象[實(shí)驗(yàn)相關(guān)]_第2頁
免費(fèi)預(yù)覽已結(jié)束,剩余11頁可下載查看

下載本文檔

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

文檔簡介

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

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

4、n_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: st

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

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

7、l; stu.ou_nm(); stu.ou_id(); stu.ou_clsid(); stu.ou_sc(); coutendl; teacher tch; cout開始輸入教師信息: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)建一個類用于計(jì)算數(shù)據(jù)的統(tǒng)計(jì)信息,類名Cstatistics,類中包括,成

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

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

10、ance();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;dou

11、ble variance;double max;double min;Cstatistics:Cstatistics()Cstatistics:Cstatistics(void)void Cstatistics:input()coutN;if(N 0)data = new doubleN;cout請輸入N個數(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 C

12、statistics: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;fo

13、r(int i = 1; i N; i+)if(datai min)min = datai;void Cstatistics:print()coutN個數(shù)據(jù)為:endl;for(int i = 0; i N; i+)coutdatai ;coutendl;cout均值為:meanendl;cout方差為:varianceendl;cout最大值為:maxendl;cout最小值為:minendl;int main()cout這是一個統(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編寫一個程序計(jì)算出球、圓柱和圓錐的表面積和體積。要求:(1)定義一個基類圓,至少含有一個數(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; protecte

15、d: 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 circlepubli

16、c: 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; ocol.in_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)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論