C上機實驗報告(類和對象Ⅱ).docx_第1頁
C上機實驗報告(類和對象Ⅱ).docx_第2頁
C上機實驗報告(類和對象Ⅱ).docx_第3頁
C上機實驗報告(類和對象Ⅱ).docx_第4頁
C上機實驗報告(類和對象Ⅱ).docx_第5頁
已閱讀5頁,還剩13頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

C+上機實驗報告實驗名稱:類和對象專業(yè)班級:姓 名:學 號:實驗日期:目錄1. 實驗目的2. 實驗內(nèi)容3. 程序代碼4. 調(diào)試結(jié)果5. 實驗心得1. 實驗目的(1) 進一步加深對類和對象的理解;(2) 掌握類的構(gòu)造函數(shù)和析構(gòu)函數(shù)的概念和使用方法;(3) 掌握對象數(shù)組,對象的指針及其使用方法;(4) 掌握友元的概念和使用;(5) 了解類模板的使用方法。2. 實驗內(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í)行過程,然后上機運行,對比輸出結(jié)果;.修改上面的程序,增加一個fun函數(shù),改寫main函數(shù)。在main函數(shù)中調(diào)用fun函數(shù),在fun函數(shù)中調(diào)用change和display函數(shù)。在fun函數(shù)中使用對象的引用(Student&)作為形參。(2) 商店銷售某一商品,商店每天公布統(tǒng)一的折扣(discount)。同時允許銷售人員在銷售時靈活掌握售價(price),在此基礎(chǔ)上,對一次購10件以上者還可以享受9.8折優(yōu)惠。現(xiàn)已知當天3個銷貨員銷售情況為 銷貨員號(num) 銷貨件數(shù)(quantity) 銷貨單價(price) 101 5 23.5 102 12 24.56 103 100 21.5請編些程序,計算出當日此商品的總銷售款sum以及每件商品的平均售價。要求用靜態(tài)數(shù)據(jù)成員和靜態(tài)成員函數(shù)。(3)有以下程序:#includeusing namespace std;class Date; /對Date類的提前引用聲明class Time /定義Time類public:Time(int,int,int);void display(Date &); /display是成員函數(shù),形參是Date類對象的引用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的作用是輸出年,月,日和時,分,秒coutd.month/d.day/d.yearendl; /引用Date類對象中的私有數(shù)據(jù)couthour:minute:secendl; /引用本類對象中的私有數(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類對象t1Date d1(12,25,2004); /定義Date類對象d1t1.display(d1); /調(diào)用t1中的display函數(shù),實參是Date類對象d1return 0;將程序中的display函數(shù)不放在Time類中,而作為類外的普通函數(shù),然后分別在Time和Date類中將display聲明為友元函數(shù)。在主函數(shù)中調(diào)用display函數(shù),display函數(shù)分別引用Time和Date兩個類的對象的私有數(shù)據(jù)輸出 年,月,日和時,分,秒。修改后上機調(diào)試和運行。(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); /定義對象cmp1,用于兩個整數(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); /定義對象cmp2,用于兩個浮點數(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); /定義對象cmp3,用于兩個字符的比較coutcmp3.max() is the maximum of two characters. endl;coutcmp3.min() is the minimum of two characters. endl;return 0;.運行此程序;.將它改寫為在類模板外定義各成員函數(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. 實驗心得以前上機實驗的時候,對某一個程序進行調(diào)試,顯示出錯,那么我就僅只是單純將打出來的程序與課本上的源程序進行

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
  • 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論