類的設(shè)計(jì)和實(shí)現(xiàn)_第1頁(yè)
類的設(shè)計(jì)和實(shí)現(xiàn)_第2頁(yè)
類的設(shè)計(jì)和實(shí)現(xiàn)_第3頁(yè)
類的設(shè)計(jì)和實(shí)現(xiàn)_第4頁(yè)
類的設(shè)計(jì)和實(shí)現(xiàn)_第5頁(yè)
已閱讀5頁(yè),還剩12頁(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、類的設(shè)計(jì)和實(shí)現(xiàn) 專業(yè):xxxxxxx 姓名:xxxxxx 學(xué)號(hào):xxxxxxxx計(jì)算機(jī)與信息技術(shù)學(xué)院綜合性、設(shè)計(jì)性實(shí)驗(yàn)報(bào)告專業(yè):計(jì)算機(jī)科學(xué)與技術(shù) 年級(jí)/班級(jí):2010級(jí) 20102011學(xué)年第二學(xué)期課程名稱.NET程序設(shè)計(jì)指導(dǎo)教師xxxxx本組成員學(xué)號(hào)姓名xxxxxxxxxxxxxxx實(shí)驗(yàn)地點(diǎn)xxxxxxxxx實(shí)驗(yàn)時(shí)間xxxxxxxxxx。項(xiàng)目名稱類實(shí)驗(yàn)類型綜合性實(shí)驗(yàn)?zāi)康模赫莆疹惖穆暶骱蛯?duì)象的創(chuàng)建掌握對(duì)象的封裝性掌握類的訪問(wèn)修飾符掌握類的繼承的實(shí)現(xiàn)掌握派生類、抽象類、抽象方法的使用掌握類的多態(tài)性掌握運(yùn)算符的重載了解接口的實(shí)現(xiàn)了解事件的實(shí)現(xiàn)實(shí)驗(yàn)儀器或設(shè)備:安裝有visual Studio2008

2、的計(jì)算機(jī)總體設(shè)計(jì)(設(shè)計(jì)原理、設(shè)計(jì)方案及流程等)(1) 通過(guò)實(shí)驗(yàn)表明類的概念,類的對(duì)象,類的成員;(2) 分別例舉不同對(duì)象的類;實(shí)驗(yàn)步驟(包括主要步驟、代碼分析等)實(shí)驗(yàn)5-1 創(chuàng)建類MyMath,計(jì)算周長(zhǎng)、面積和球的體積。實(shí)驗(yàn)要求:創(chuàng)建類MyMath,包含常量;PI;靜態(tài)方法:Perimeter(周長(zhǎng))、Area(面積)、Volumne(體積)。運(yùn)行結(jié)果如圖5-1所示。操作提示:程序代碼如下。按F5鍵運(yùn)行:實(shí)驗(yàn)5-1的程序運(yùn)用c+語(yǔ)言編寫,其代碼如下#include #include const double PI= 3.1415926;class MyMathpublic : MyMath(i

3、nt R)r=R;static double Perimeter(double r)double p=2*PI*r;return p;static double Area(double r)double a=PI*r*r;return a;static double Volume(double r)double v=4*PI*r*r*r/3;return v;void output()cout圓的周長(zhǎng)=Perimeter(r)nendl;cout圓的面積=Area(r)nendl;cout圓的體積=Volume(r)nendl;private:double p;double a;double

4、v;double r;void main()double r;coutr;MyMath math(r);math.output ();運(yùn)行結(jié)果是: 實(shí)驗(yàn)5-2 創(chuàng)建表示攝氏溫度的類TemperatureCelsius實(shí)驗(yàn)要求:創(chuàng)建類TemperatureCelsius,包含實(shí)例字段degree(表示攝氏溫度)和實(shí)例方法ToFahreheirt(將攝氏溫度轉(zhuǎn)換為華氏溫度)。運(yùn)行結(jié)果如圖5-2所示操作提示:程序代碼如下按F5鍵運(yùn)行:實(shí)驗(yàn)5-2運(yùn)用c+語(yǔ)言的代碼如下:#includeclass TemperatureCelsiuspublic:TemperatureCelsius(double d)

5、degree=d;double ToFahrenheit(double degree)p=(degree*9/5)+32;return p;private:double degree;double p;void main()double d,cel;coutd;TemperatureCelsius tem(d); cout攝氏溫度=dendl;cout華氏溫度=tem.ToFahrenheit(d)endl;運(yùn)行結(jié)果是:實(shí)驗(yàn)5-3 類的繼承的實(shí)現(xiàn)實(shí)驗(yàn)要求:創(chuàng)建基類Person和派生類Teacher?;怭erson包含實(shí)例字段name和age;虛函數(shù)GetInfo()顯示個(gè)人信息。派生類Tea

6、cher除了包含基類的namw和age字段。還包含自己的TeacherID字段,并使用關(guān)鍵字override來(lái)重寫方法GetInfo()。運(yùn)行結(jié)果如圖5-3所示按F5鍵運(yùn)行:實(shí)驗(yàn)5-3運(yùn)用C+語(yǔ)言編寫的代碼是:#include#include#includeclass Personpublic:char * name;int age;Person(char * Name ,int Age)name=Name;age=Age;class Teacher:virtual public Personpublic:int id; Teacher(char * Name,int Age,int Id):

7、Person(Name,Age)id=Id;void output()cout姓名:namen年齡:agen編號(hào):idendl;void main() char name20;strcpy(name,Mr.Yu);Teacher t1(name,40,1990108001);t1.output();運(yùn)行結(jié)果是:實(shí)驗(yàn)5-4 抽象類、抽象方法、多態(tài)性的實(shí)現(xiàn)實(shí)驗(yàn)要求:創(chuàng)建抽象基類Shape和派生類Rectangle、Circle。利用多態(tài)性實(shí)現(xiàn)Area(計(jì)算面積)和Show(顯示圖形名稱和面積)抽象方法。按F5鍵運(yùn)行:實(shí)驗(yàn)5-4運(yùn)用C+語(yǔ)言編寫的代碼是:#includeclass Shapepubl

8、ic:virtual float area()=0;class Triangle:public Shapepublic:Triangle(float h,float w)H=h;W=w;float area()return (float)(H*W*0.5);private:float H,W;class Circle:public Shapepublic: Circle(float r) R=r; float area() return(float)(3.1415926*R*R); private:float R;void main()Shape *p;Triangle tri(1.0,2.0

9、);coutRectangle:小矩形,area:tri.area()endl;Circle cir(3.5);coutCircle:大圓,area:cir.area()endl;運(yùn)行結(jié)果是:實(shí)驗(yàn)5-5 運(yùn)算符重載 實(shí)驗(yàn)要求:使用符重載創(chuàng)建定義復(fù)數(shù)相加、相減和相乘的復(fù)數(shù)類Complex。運(yùn)行結(jié)果如圖5-5按F5鍵運(yùn)行:實(shí)驗(yàn)5-5運(yùn)用C+語(yǔ)言編寫的代碼如下:#includeclass Complexpublic:Complex(double r=0,double i=0)realPart=r;imagePart=i;void print()coutrealPart+imagePartiendl;

10、Complex operator +(Complex &c);Complex operator -(Complex &c);Complex operator *(Complex &c);private:double realPart;double imagePart;Complex Complex:operator+(Complex &c)Complex temp;temp.realPart=realPart+c.realPart;temp.imagePart=imagePart+c.imagePart;return temp;Complex Complex:operator - (Compl

11、ex &c)Complex temp;temp.realPart=realPart-c.realPart;temp.imagePart=imagePart-c.imagePart;return temp;Complex Complex:operator*(Complex &c)Complex temp;temp.realPart=realPart*c.realPart-imagePart*c.imagePart;temp.imagePart=realPart*c.imagePart+imagePart*c.realPart;return temp;void main()Complex c1(4

12、,5),c2(3,2),sum,sub,mul;sum=c1+c2;sub=c1-c2;mul=c1*c2;cout第一個(gè)復(fù)數(shù):;c1.print();cout第二個(gè)復(fù)數(shù):;c2.print();cout兩個(gè)復(fù)數(shù)之和:;sum.print ();cout兩個(gè)復(fù)數(shù)之差;sub.print ();cout兩個(gè)復(fù)數(shù)之積;mul.print ();其運(yùn)行結(jié)果如下:實(shí)驗(yàn)5-6 接口的實(shí)現(xiàn)實(shí)驗(yàn)要求:聲明一個(gè)接口ICDPlayer,包含4個(gè)接口方法:Play()、Stop()、NextTrack()和PreviousTrack(),以及一個(gè)只讀屬性CurrentTrank。創(chuàng)建類CDPlayer實(shí)現(xiàn)該接口,

13、模擬CD的播放、停止、下一音軌、上一音軌的操作。按F5鍵運(yùn)行:實(shí)驗(yàn)5-7 事件的實(shí)現(xiàn)實(shí)驗(yàn)要求:(1)聲明提供事件數(shù)據(jù)的類。(2)、聲明事件處理委托 。(3)、聲明引發(fā)事件的類(4)、在事件生產(chǎn)類中聲明事件。(5)在事件生產(chǎn)類中實(shí)現(xiàn)產(chǎn)生事件代碼。(6)聲明處理事件的類(事件消費(fèi)類)。(7)在事件消費(fèi)類中聲明事件處理方法。(8)在事件消費(fèi)類中訂閱或取消事件。按F5鍵運(yùn)行:(一)結(jié)果分析與總結(jié):(1)、一個(gè)常量可以依懶于同一程序內(nèi)的其他常量。只要關(guān)系不是循環(huán)的,編譯器會(huì)自動(dòng)滾屏的安排的順序來(lái)計(jì)算各個(gè)常量的聲明。常量名稱的第一個(gè)字母一般都是大寫,也可以全部都大寫。多個(gè)字符之間可用下劃線連接成為常量名(

14、2)、通過(guò)使用operator關(guān)鍵字定義靜態(tài)成員函數(shù)重載運(yùn)算符,c#中的有的可以重載,但是和()不能重載。但可以用索引來(lái)代替的重載,用戶定義的數(shù)據(jù)類型轉(zhuǎn)換代替()的重載。比較運(yùn)算符必須成對(duì)出現(xiàn)。(3)、抽象類使用關(guān)鍵字abstract添加到實(shí)例方法的返回結(jié)果。抽象類不能實(shí)例化對(duì)象,一般用于提供多個(gè)派生類的基類的公共定義。抽象類不能直接實(shí)例化,用new初始化對(duì)象會(huì)出現(xiàn)編譯錯(cuò)誤??梢远x抽象類型的變量,但是它必須是null,或是其派生類非抽象類的實(shí)例引用。當(dāng)從抽象類派生非抽象類時(shí),非抽象必須實(shí)現(xiàn)所繼承的所有抽象成員,故而重寫那些抽象成員(二)類在C#和C+中的區(qū)別與聯(lián)系(1)在C+中,繼承的分類有單繼承和多繼承,而且在繼承方式上分為公有繼承、私有繼承和保護(hù)繼承;而在C#中繼承只分為實(shí)現(xiàn)繼承和接口繼承。(2)在C+中抽象類是指至少包含一個(gè)純虛函數(shù)的特殊的類,它本身不能被實(shí)例化,必須通過(guò)繼承得到派生類后,在派生類中定義了純虛函數(shù)的具體的實(shí)現(xiàn)代碼,才能獲得一個(gè)派生類的對(duì)象;C#中將關(guān)鍵字abstract置于關(guān)鍵字cla

溫馨提示

  • 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)論