C上機(jī)實(shí)驗(yàn)報(bào)告(類和對(duì)象Ⅱ).docx_第1頁(yè)
C上機(jī)實(shí)驗(yàn)報(bào)告(類和對(duì)象Ⅱ).docx_第2頁(yè)
C上機(jī)實(shí)驗(yàn)報(bào)告(類和對(duì)象Ⅱ).docx_第3頁(yè)
C上機(jī)實(shí)驗(yàn)報(bào)告(類和對(duì)象Ⅱ).docx_第4頁(yè)
C上機(jī)實(shí)驗(yàn)報(bào)告(類和對(duì)象Ⅱ).docx_第5頁(yè)
已閱讀5頁(yè),還剩13頁(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)介

C+上機(jī)實(shí)驗(yàn)報(bào)告實(shí)驗(yàn)名稱:類和對(duì)象專業(yè)班級(jí):姓 名:學(xué) 號(hào):實(shí)驗(yàn)日期:目錄1. 實(shí)驗(yàn)?zāi)康?. 實(shí)驗(yàn)內(nèi)容3. 程序代碼4. 調(diào)試結(jié)果5. 實(shí)驗(yàn)心得1. 實(shí)驗(yàn)?zāi)康模?) 進(jìn)一步加深對(duì)類和對(duì)象的理解;(2) 掌握類的構(gòu)造函數(shù)和析構(gòu)函數(shù)的概念和使用方法;(3) 掌握對(duì)象數(shù)組,對(duì)象的指針及其使用方法;(4) 掌握友元的概念和使用;(5) 了解類模板的使用方法。2. 實(shí)驗(yàn)內(nèi)容(1) 有以下程序:#includeclass Studentpublic:Student(int n,float s):num(n),score(s)void change(int n,float s)num=n;score=s;void display()coutnum scoreendl;private: int num; float score;void main()Student stud(101, 78.5);stud.display();stud.change(101,80.5);stud.display();.閱讀此程序,分析其執(zhí)行過(guò)程,然后上機(jī)運(yùn)行,對(duì)比輸出結(jié)果;.修改上面的程序,增加一個(gè)fun函數(shù),改寫main函數(shù)。在main函數(shù)中調(diào)用fun函數(shù),在fun函數(shù)中調(diào)用change和display函數(shù)。在fun函數(shù)中使用對(duì)象的引用(Student&)作為形參。(2) 商店銷售某一商品,商店每天公布統(tǒng)一的折扣(discount)。同時(shí)允許銷售人員在銷售時(shí)靈活掌握售價(jià)(price),在此基礎(chǔ)上,對(duì)一次購(gòu)10件以上者還可以享受9.8折優(yōu)惠。現(xiàn)已知當(dāng)天3個(gè)銷貨員銷售情況為 銷貨員號(hào)(num) 銷貨件數(shù)(quantity) 銷貨單價(jià)(price) 101 5 23.5 102 12 24.56 103 100 21.5請(qǐng)編些程序,計(jì)算出當(dāng)日此商品的總銷售款sum以及每件商品的平均售價(jià)。要求用靜態(tài)數(shù)據(jù)成員和靜態(tài)成員函數(shù)。(3)有以下程序:#includeusing namespace std;class Date; /對(duì)Date類的提前引用聲明class Time /定義Time類public:Time(int,int,int);void display(Date &); /display是成員函數(shù),形參是Date類對(duì)象的引用private:int hour;int minute;int sec;class Date /聲明Date類public:Date(int,int,int);friend void Time:display(Date &); /聲明Time中的display函數(shù)為友元成員函數(shù)private:int month;int day;int year;Time:Time(int h,int m,int s) /類Time的構(gòu)造函數(shù)hour=h;minute=m;sec=s;void Time:display(Date &d) /display的作用是輸出年,月,日和時(shí),分,秒coutd.month/d.day/d.yearendl; /引用Date類對(duì)象中的私有數(shù)據(jù)couthour:minute:secendl; /引用本類對(duì)象中的私有數(shù)據(jù) Date:Date(int m,int d,int y) /類Date的構(gòu)造函數(shù)month=m;day=d;year=y;int main()Time t1(10,13,56); /定義Time類對(duì)象t1Date d1(12,25,2004); /定義Date類對(duì)象d1t1.display(d1); /調(diào)用t1中的display函數(shù),實(shí)參是Date類對(duì)象d1return 0;將程序中的display函數(shù)不放在Time類中,而作為類外的普通函數(shù),然后分別在Time和Date類中將display聲明為友元函數(shù)。在主函數(shù)中調(diào)用display函數(shù),display函數(shù)分別引用Time和Date兩個(gè)類的對(duì)象的私有數(shù)據(jù)輸出 年,月,日和時(shí),分,秒。修改后上機(jī)調(diào)試和運(yùn)行。(4)有以下使用類模板程序:#includeusing namespace std;template /聲明類模板,虛擬類型名為numtypeclass Compare /類模板名為Comparepublic:Compare(numtype a,numtype b) /定義構(gòu)造函數(shù)x=a;y=b;numtype max() /類型函數(shù)暫定為numtypereturn(xy)?x:y;numtype min()return(xy)?x:y;private:numtype x,y;int main()Compare cmp1(3,7); /定義對(duì)象cmp1,用于兩個(gè)整數(shù)比較coutcmp1.max() is the Maximum of two integer numbers. endl;coutcmp1.min() is the minimum of two integer numbers. endlendl;Compare cmp2(45.78,93.6); /定義對(duì)象cmp2,用于兩個(gè)浮點(diǎn)數(shù)的比較coutcmp2.max() is the Maximum of two float numbers. endl;coutcmp2.min() is the minimum of two float numbers. endlendl;Compare cmp3(a,A); /定義對(duì)象cmp3,用于兩個(gè)字符的比較coutcmp3.max() is the maximum of two characters. endl;coutcmp3.min() is the minimum of two characters. endl;return 0;.運(yùn)行此程序;.將它改寫為在類模板外定義各成員函數(shù)。3. 程序代碼(1) #includeusing namespace std;class Studentpublic:Student(int n,float s):num(n),score(s)void change(int n,float s)num=n;score=s;void display()coutnumscoreendl;private:int num;float score;int main()Student stud(101,78.5);void fun(Student &);fun(stud);return 0;void fun(Student &stu)stu.display();stu.change(101,80.5);stu.display(); (2) #includeusing namespace std;class Productpublic:Product(int m,int q,float p):num(m),quantity(q),price(p);void total();static float average();static void display();private: int num; int quantity; float price; static float discount; static float sum; static int n;void Product:total()float rate=1.0;if(quantity10)rate=0.98*rate;sum=sum+quantity*price*rate*(1-discount);n=n+quantity;void Product:display()coutsumendl;coutaverage()endl;float Product:average()return(sum/n);float Product:discount=0.05;float Product:sum=0;int Product:n=0;int main()Product Prod3=Product(101,5,23.5),Product(102,12,24.56),Product(103,100,21.5);for(int i=0;i3;i+) Prodi.total();Product:display();return 0;(3) #includeusing namespace std;class Date;class Timepublic:Time(int,int,int);friend void display(const Date &,const Time &);private: int hour; int minute; int sec;Time:Time(int h,int m,int s)hour=h;minute=m;sec=s;class Datepublic:Date(int,int,int);friend void display(const Date &,const Time &);private: int month; int day; int year;Date:Date(int m,int d,int y)month=m;day=d;year=y;void display(const Date &d,const Time &t)coutd.month/d.day/d.yearendl; coutt.hour:t.minute:t.secendl;int main() Time t1(10,13,56); Date d1(12,25,2004); display(d1,t1); return 0;(4) #includeusing namespace std;templsteclass Comparepublic: Compare(numtype a,numtype b); numtype max(); numtype min();private: numtype x,y;templateCompare:Compare(numtype a,numtype b)x=a;y=btemplatenumtype Compare:max()return(xy)?x:y;templatenumtype Compare:min()return (xy)?x:y;int main()Comparecmp1(3,7);coutcmp1.max()is the Maximum of two integer numbers.endl;coutcmp1.min()is the Minimum of two integer numbers.endlendl;Comparecmp2(45.78,93.6);coutcmp2.max()is the Maximum of two float numbers.endl;coutcmp2.min()is the Minimum of two float numbers.endlendl;Comparecmp3(a,A);coutcmp3.max()is the maximum of two characters.endl;coutcmp3.min()is the minimum of two characters.endl;return 0;4. 調(diào)試結(jié)果(1) (2) (3) (4) 5. 實(shí)驗(yàn)心得以前上機(jī)實(shí)驗(yàn)的時(shí)候,對(duì)某一個(gè)程序進(jìn)行調(diào)試,顯示出錯(cuò),那么我就僅只是單純將打出來(lái)的程序與課本上的源程序進(jìn)行

溫馨提示

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