《面向?qū)ο驝++》實(shí)驗(yàn)指導(dǎo)書(0708)_第1頁
《面向?qū)ο驝++》實(shí)驗(yàn)指導(dǎo)書(0708)_第2頁
《面向?qū)ο驝++》實(shí)驗(yàn)指導(dǎo)書(0708)_第3頁
《面向?qū)ο驝++》實(shí)驗(yàn)指導(dǎo)書(0708)_第4頁
《面向?qū)ο驝++》實(shí)驗(yàn)指導(dǎo)書(0708)_第5頁
已閱讀5頁,還剩20頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

1、面向?qū)ο骳+編撰閩江學(xué)院計(jì)算機(jī)實(shí)驗(yàn)教學(xué)中心印制ii目 錄實(shí)驗(yàn)一 c+簡單程序設(shè)計(jì)3一、實(shí)驗(yàn)?zāi)康模?二、實(shí)驗(yàn)設(shè)備:3三、實(shí)驗(yàn)內(nèi)容:3實(shí)驗(yàn)二 函數(shù)7一、實(shí)驗(yàn)?zāi)康模?二、實(shí)驗(yàn)設(shè)備:7三、實(shí)驗(yàn)內(nèi)容:7實(shí)驗(yàn)三 類和對象10一、實(shí)驗(yàn)?zāi)康模?0二、實(shí)驗(yàn)設(shè)備:10三、實(shí)驗(yàn)內(nèi)容:10實(shí)驗(yàn)四 c+程序的結(jié)構(gòu)13一、實(shí)驗(yàn)?zāi)康模?3二、實(shí)驗(yàn)設(shè)備:13三、實(shí)驗(yàn)內(nèi)容:13實(shí)驗(yàn)五 數(shù)組,指針與字符串16一、實(shí)驗(yàn)?zāi)康模?6二、實(shí)驗(yàn)設(shè)備:16三、實(shí)驗(yàn)內(nèi)容:16實(shí)驗(yàn)六 繼承與派生19一、實(shí)驗(yàn)?zāi)康模?9二、實(shí)驗(yàn)設(shè)備:19三、實(shí)驗(yàn)內(nèi)容:19實(shí)驗(yàn)七 多態(tài)性22一、實(shí)驗(yàn)?zāi)康模?2二、實(shí)驗(yàn)設(shè)備:22三、實(shí)驗(yàn)內(nèi)容:22 實(shí)驗(yàn)一 c+簡單程序

2、設(shè)計(jì)一、實(shí)驗(yàn)?zāi)康模海?)掌握基本數(shù)據(jù)類型和表達(dá)式;(2)學(xué)會(huì)數(shù)據(jù)的輸入與輸出,循環(huán)控制條件的判斷與選擇和字定義數(shù)據(jù)類型;(3)熟悉c+簡單程序設(shè)計(jì);二、實(shí)驗(yàn)設(shè)備:一臺(tái)pc機(jī),microsoft visual studio 2005運(yùn)行軟件三、實(shí)驗(yàn)內(nèi)容:1.用循環(huán)結(jié)構(gòu)編寫程序求自然數(shù)1到10的和; (1) 源程序代碼如下:#includeusing namespace std;void main() int i(1), sum(0); do sum+=i; i+;while(i=10); coutsum=sumendl;(2)對程序進(jìn)行調(diào)試,結(jié)果如下: (3) 運(yùn)行結(jié)果如下圖所示:2. 編程實(shí)現(xiàn)

3、:輸入一個(gè)圖形的長和寬,輸出其面積。 (1) 源程序如下:#include using namespace std;const float pi = 3.1416;void main()int itype;float radius, a, b, area;cout itype;switch(itype)case 1:cout radius;area = pi * radius * radius;cout面積為:areaendl;break;case 2:cout a;cout b;area = a * b; cout面積為:areaendl;break;case 3:cout a;area =

4、 a * a; cout面積為:areaendl;break;default:cout 不是合法的輸入值!endl; (2)對程序進(jìn)行調(diào)試,結(jié)果如下: (3) 運(yùn)行結(jié)果如下圖所示:3.輸出年份,日期和具體時(shí)間(1)源程序如下:#include #include using namespace std;struct mytimeshort year;short month;short day;short hour;short minute;short second;void main()mytime time1;cout time1.year;cout time1.month;cout time

5、1.day;cout time1.hour;cout time1.minute;cout time1.second;cout 現(xiàn)在是 time1.year 年 time1.month 月 time1.day 日 time1.hour 點(diǎn) time1.minute 分 time1.second 秒 endl;(2)對程序進(jìn)行調(diào)試,結(jié)果如下:(3) 運(yùn)行結(jié)果如下圖所示:四實(shí)驗(yàn)總結(jié): 通過這次實(shí)驗(yàn),。實(shí)驗(yàn)二 函數(shù)一、實(shí)驗(yàn)?zāi)康模海?)掌握函數(shù)的定義和調(diào)用;(2)了解函數(shù)調(diào)用的執(zhí)行過程,遞歸調(diào)用以及函數(shù)的參數(shù)傳遞;二、實(shí)驗(yàn)設(shè)備:一臺(tái)pc機(jī),microsoft visual studio 2005運(yùn)行軟件

6、三、實(shí)驗(yàn)內(nèi)容:1.編寫一個(gè)求x的n次方的函數(shù); (1) 源程序代碼如下:#include using namespace std;double power (double x, int n);void main(void)cout 5 to the power 2 is power(5,2) endl; /函數(shù)調(diào)用作為一個(gè)表達(dá)式出現(xiàn)在輸出語句中。double power (double x, int n)double val = 1.0;while (n-)val *= x;return(val); (2)對程序進(jìn)行調(diào)試,結(jié)果如下: (3) 運(yùn)行結(jié)果如下圖所示:2. 從鍵盤中輸入兩個(gè)整數(shù),交換

7、次序后輸出。 (1) 源程序如下:#includeusing namespace std;void swap(int& a, int& b);void main()int x(5), y(10);coutx=x y=yendl;swap(x,y);coutx=x y=yendl;void swap(int& a, int& b)int t;t=a;a=b;b=t; (2)對程序進(jìn)行調(diào)試,結(jié)果如下: (3) 運(yùn)行結(jié)果如下圖所示:四實(shí)驗(yàn)總結(jié): 通過這次實(shí)驗(yàn)。實(shí)驗(yàn)三 類和對象一、實(shí)驗(yàn)?zāi)康模海?)了解面向?qū)ο蟮乃枷耄莆疹惡蛯ο蟮母拍睿?)理解構(gòu)造函數(shù),析構(gòu)函數(shù)和拷貝構(gòu)造函數(shù)的應(yīng)用;二、實(shí)驗(yàn)設(shè)備:一臺(tái)

8、pc機(jī),microsoft visual studio 2005運(yùn)行軟件三、實(shí)驗(yàn)內(nèi)容:1.時(shí)鐘類;(1) 源程序代碼如下:#includeusing namespace std;class clock/時(shí)鐘類的聲明public:/外部接口,公有成員函數(shù)void settime(int newh=0, int newm=0, int news=0);void showtime();private:/私有數(shù)據(jù)成員int hour,minute,second;/時(shí)鐘類成員函數(shù)的具體實(shí)現(xiàn)void clock:settime(int newh, int newm, int news)hour=newh;

9、minute=newm;second=news;inline void clock:showtime()couthour:minute:secondendl;void main()/主函數(shù) clock myclock;/定義對象myclockcoutfirst time set and output:endl;myclock.settime();/設(shè)置時(shí)間為默認(rèn)值myclock.showtime();/顯示時(shí)間coutsecond time set and output:endl;myclock.settime(8,30,30);/設(shè)置時(shí)間為:myclock.showtime();/顯示時(shí)間

10、(2)對程序進(jìn)行調(diào)試,結(jié)果如下: (3) 運(yùn)行結(jié)果如下圖所示:2.point類(1) 源程序代碼如下:#include using namespace std;class point/point 類的聲明public:/外部接口point(int xx=0, int yy=0) x=xx;y=yy;/構(gòu)造函數(shù)point(point &p);/拷貝構(gòu)造函數(shù)int getx() return x;int gety() return y;private:/私有數(shù)據(jù)int x,y;/成員函數(shù)的實(shí)現(xiàn)point:point(point &p)x=p.x;y=p.y;cout拷貝構(gòu)造函數(shù)被調(diào)用endl;/形

11、參為point類對象的函數(shù)void fun1(point p)coutp.getx()endl;/返回值為point類對象的函數(shù)point fun2()point a(1,2);return a;/主程序void main()point a(4,5);/第一個(gè)對象apoint b(a); /情況一,用a初始化b。第一次調(diào)用拷貝構(gòu)造函數(shù)coutb.getx()endl;fun1(b); /情況二,對象b作為fun1的實(shí)參。第二次調(diào)用拷貝構(gòu)造函數(shù)b=fun2(); /情況三,函數(shù)的返回值是類對象,函數(shù)返回時(shí),調(diào)用拷貝構(gòu)造函數(shù)coutb.getx()endl;(2)對程序進(jìn)行調(diào)試,結(jié)果如下:(3)

12、運(yùn)行結(jié)果如下圖所示:四實(shí)驗(yàn)總結(jié): 通過這次實(shí)驗(yàn)。實(shí)驗(yàn)四 c+程序的結(jié)構(gòu)一、實(shí)驗(yàn)?zāi)康模海?)掌握類的靜態(tài)函數(shù)成員的定義及使用;(2)掌握共享數(shù)組的保護(hù)以及常數(shù)據(jù)成員的運(yùn)用二、實(shí)驗(yàn)設(shè)備:一臺(tái)pc機(jī),microsoft visual studio 2005運(yùn)行軟件三、實(shí)驗(yàn)內(nèi)容:1. 編程實(shí)現(xiàn):利用靜態(tài)的私有數(shù)據(jù)成員countp對point類的對象個(gè)數(shù)進(jìn)行統(tǒng)計(jì) (1) 源程序代碼如下:#include using namespace std;class point/point類定義public:/外部接口point(int xx=0, int yy=0) x=xx;y=yy;countp+;/構(gòu)造函數(shù)

13、point(point &p);/拷貝構(gòu)造函數(shù)point() countp-; int getx() return x;int gety() return y;static void getc() cout object id=countpendl;/靜態(tài)函數(shù)成員private:/私有數(shù)據(jù)成員int x,y;static int countp;/靜態(tài)數(shù)據(jù)成員引用性說明;point:point(point &p)x=p.x;y=p.y;countp+;int point:countp=0;/靜態(tài)數(shù)據(jù)成員定義性說明/初始化,使用類名限定void main()/主函數(shù)實(shí)現(xiàn)point a(4,5);/

14、定義對象acoutpoint a,a.getx(),a.gety();a.getc();/輸出對象號(hào),對象名引用point b(a);/定義對象bcoutpoint b,b.getx(),b.gety();point:getc();/輸出對象號(hào),類名引用 (2)對程序進(jìn)行調(diào)試,結(jié)果如下: (3) 運(yùn)行結(jié)果如下圖所示:2. 編程實(shí)現(xiàn):運(yùn)用靜態(tài)數(shù)據(jù)成員作為類的成員數(shù)據(jù) (1) 源程序如下:#includeusing namespace std;class apublic:a(int i);void print();const int& r;private:const int a;static co

15、nst int b; /靜態(tài)常數(shù)據(jù)成員;const int a:b=10; /靜態(tài)常數(shù)據(jù)成員在類外說明和初始化a:a(int i):a(i),r(a) /常數(shù)據(jù)成員只能通過初始化列表來獲得初值void a:print() couta:b:rendl;void main()/*建立對象a和b,并以100和0作為初值,分別調(diào)用構(gòu)造函數(shù),通過構(gòu)造函數(shù)的初始化列表給對象的常數(shù)據(jù)成員賦初值*/ a a1(100),a2(0); a1.print(); a2.print(); (2)對程序進(jìn)行調(diào)試,結(jié)果如下:(3) 運(yùn)行結(jié)果如下圖所示:四實(shí)驗(yàn)總結(jié): 通過這次實(shí)驗(yàn)。實(shí)驗(yàn)五 數(shù)組,指針與字符串一、實(shí)驗(yàn)?zāi)康模海?/p>

16、1)掌握使用數(shù)組名作為函數(shù)參數(shù)的運(yùn)用;(2)掌握如何用指針作為函數(shù)參數(shù)二、實(shí)驗(yàn)設(shè)備:一臺(tái)pc機(jī),microsoft visual studio 2005運(yùn)行軟件三、實(shí)驗(yàn)內(nèi)容:1. 編程實(shí)現(xiàn):計(jì)算一個(gè)矩陣每一行元素的和,并將和直接存放在每行的第一個(gè)元素中 (1) 源程序代碼如下:#include using namespace std;void rowsum(int a4, int nrow) /計(jì)算二維數(shù)組a每行元素的值的和,nrow是行數(shù)for (int i = 0; i nrow; i+)for(int j = 1; j 4; j+) ai0 += aij; void main(void)

17、/主函數(shù)int table34 = 1,2,3,4,2,3,4,5,3,4,5,6;/聲明并初始化數(shù)組for (int i = 0; i 3; i+)/輸出數(shù)組元素for (int j = 0; j 4; j+) cout tableij ;cout endl;rowsum(table,3);/調(diào)用子函數(shù),計(jì)算各行和for (int i = 0; i 3; i+)/輸出計(jì)算結(jié)果 cout sum of row i is tablei0 endl;(2)對程序進(jìn)行調(diào)試,結(jié)果如下:(3) 運(yùn)行結(jié)果如下圖所示:2. 編程實(shí)現(xiàn):讀入三個(gè)浮點(diǎn)數(shù),將整數(shù)部分和消暑部分分別輸出 (1) 源程序如下:#inc

18、lude using namespace std;void splitfloat(float x, int *intpart, float *fracpart) /形參intpart,fracpart是指針*intpart=int(x);/取x的整數(shù)部分*fracpart=x-*intpart;/取x的小數(shù)部分void main()int i,n;float x,f;coutenter 3 float point numbers:endl;for(i=0;ix; splitfloat(x,&n,&f);/變量地址作為實(shí)參 coutinteger part=n fraction part=fen

19、dl; (2)對程序進(jìn)行調(diào)試,結(jié)果如下: (3) 運(yùn)行結(jié)果如下圖所示:四實(shí)驗(yàn)總結(jié): 通過這次實(shí)驗(yàn),實(shí)驗(yàn)六 繼承與派生一、實(shí)驗(yàn)?zāi)康模海?)理解繼承和派生;(2)掌握類型兼容規(guī)則,派生類的構(gòu)造和析構(gòu)函數(shù);二、實(shí)驗(yàn)設(shè)備:一臺(tái)pc機(jī),microsoft visual studio 2005運(yùn)行軟件三、實(shí)驗(yàn)內(nèi)容:1.基類bo以公有方式派生b1類,b1類再作為基類以公有方式派生出d1,基類b0中定義了 成員函數(shù)display(),在派生類中對這個(gè)成員函數(shù)進(jìn)行隱藏。(1) 源程序代碼如下:#include using namespace std;class b0/基類b0聲明public:void disp

20、lay()coutb0:display()endl;/公有成員函數(shù);class b1: public b0/公有派生類b1聲明public:void display()coutb1:display()endl;/公有成員函數(shù);class d1: public b1/公有派生類d1聲明public:void display()coutd1:display()display();/對象指針-成員名void main()/主函數(shù)b0 b0;/聲明b0類對象b1 b1;/聲明b1類對象d1 d1;/聲明d1類對象b0 *p;/聲明b0類指針p=&b0;/b0類指針指向b0類對象fun(p);p=&b1

21、;/b0類指針指向b1類對象fun(p);p=&d1;/b0類指針指向d1類對象fun(p); (2)對程序進(jìn)行調(diào)試,結(jié)果如下: (3) 運(yùn)行結(jié)果如下圖所示:2.在三個(gè)b1,b2和b3其中只有一個(gè)默認(rèn)的構(gòu)造函數(shù),其余兩個(gè)基類的成員只是一個(gè)帶有參數(shù)的構(gòu)造函數(shù),派生出類c,在類c中增三個(gè)私有對象成員,并在所以基類中加入析構(gòu)函數(shù)。(1) 源程序代碼如下:#include using namespace std;class b1/基類b1聲明public:b1(int i) coutconstructing b1 iendl;/b1的構(gòu)造函數(shù)b1() coutdestructing b1 endl;/

22、b1的析構(gòu)函數(shù);class b2/基類b2聲明public:b2(int j) coutconstructing b2 jendl;/b2的構(gòu)造函數(shù)b2() coutdestructing b2 endl;/b2的析構(gòu)函數(shù);class b3/基類b3聲明public:b3()coutconstructing b3 *endl;/b3的構(gòu)造函數(shù)b3() coutdestructing b3 endl;/b3的析構(gòu)函數(shù);class c: public b2, public b1, public b3/派生類c聲明public:c(int a, int b, int c, int d):b1(a),

23、memberb2(d),memberb1(c),b2(b)/派生類構(gòu)造函數(shù)定義private:b1 memberb1;b2 memberb2;b3 memberb3;void main()c obj(1,2,3,4); (2)對程序進(jìn)行調(diào)試,結(jié)果如下:(3) 運(yùn)行結(jié)果如下圖所示:四實(shí)驗(yàn)總結(jié):通過本次實(shí)驗(yàn),實(shí)驗(yàn)七 多態(tài)性一、實(shí)驗(yàn)?zāi)康模海?)掌握面向?qū)ο蟮亩鄳B(tài)性,虛函數(shù)成員,析構(gòu)虛函數(shù)以及抽象類;(2)學(xué)會(huì)使用虛析構(gòu)函數(shù),實(shí)現(xiàn)多態(tài)。二、實(shí)驗(yàn)設(shè)備:一臺(tái)pc機(jī),microsoft visual studio 2005運(yùn)行軟件三、實(shí)驗(yàn)內(nèi)容:1. 編程實(shí)現(xiàn):虛函數(shù)成員,這個(gè)是由7-4“類型兼容性規(guī)則舉例”

24、改進(jìn)的,在基類bo中將原來成員display()申明為虛函數(shù),其他部分都沒有做任何修改。在使用基類類型的指針時(shí),它指向哪個(gè)派生類的對象,就可以通過它訪問那個(gè)對象的同名虛成員函數(shù)。 (1) 源程序代碼如下:#include using namespace std;class b0/基類b0聲明public:/外部接口virtual void display()coutb0:display()endl;/虛成員函數(shù);class b1: public b0/公有派生public:void display()coutb1:display()endl;/虛成員函數(shù);class d1: public b1

25、/公有派生public:void display()coutd1:display()display();void main()/主函數(shù)b0 b0,*p;/聲明基類對象和指針b1 b1;/聲明派生類對象d1 d1;/聲明派生類對象p=&b0;fun(p);/調(diào)用基類b0函數(shù)成員p=&b1;fun(p);/調(diào)用派生類b1函數(shù)成員p=&d1;fun(p);/調(diào)用派生類d1函數(shù)成員 (2)對程序進(jìn)行調(diào)試,結(jié)果如下: (3) 運(yùn)行結(jié)果如下圖所示:2. 編程實(shí)現(xiàn):虛析構(gòu)函數(shù)舉例,沒有使用虛析構(gòu)函數(shù)的程序: (1) 源程序如下:#include using namespace std;class basep

26、ublic:base() cout base destructorn;class derived: public basepublic:derived();derived();private:int *i_pointer;derived:derived()i_pointer=new int(0); derived:derived() cout derived destructorn;delete i_pointer;void fun(base* b) delete b; void main()base *b=new derived();fun(b); (2)對程序進(jìn)行調(diào)試,結(jié)果如下:(3) 運(yùn)

27、行結(jié)果如下圖所示:四實(shí)驗(yàn)總結(jié): 通過這次實(shí)驗(yàn),。ut2apodfxxc02gybkskcww97mrqqwhoj5tl15zt6jipyytycummtarp3v1n5luizi3xh3bhwyreko8d9g7nmzqowpjetldrw08gvs8dsdqqygc3ce7moo2tlf0jf1gk74iuxybmtivr97ckrfvqult5fn2t6mpjr6rbzvpsortzvij5nb5ndvvsr4iwr1twlfkglspzuhrjq3cmzu98euouijdlszqpmvrw9zkupxf8wfug9l2g9277g2rtipa1ypczeuqxpkbhtvdcooqoz

28、xuz3vjrzmocijym62zchmeootyes8ebmm932tbz2yo09rtszeys8zrd2yktj8l6jeazvajnfbtrylvsm6ofbftoxvrffn7owiygjlamkunxjybz5rrb7r4vsur9zpfzfmfsjhcfca37lnw2vvlrkn7r8psz1bn6oric5hu5z6hcxayqynpog8duybawqsl20csg06dh2sm8hltgpkicskrgopdpuhbj1lmpk7lydvc6nnmwl3fwhzftfvyaary7lhssxj10v3ph3y19bxyr77ib7cpzsu2tijqe3hkqkkau9

29、kskcphkxuikvvyjzpg2yijrkqfbggovyqkuxnwi9omnjtt6qilzxtyrf7d20fbmabcfiixrqkusvnxbppfuxyq1fjskfsubkgs2duvqc9sz4jkbgn4qqv66pyoarjurnfj3txyfclzieeptwfjthpheipdfnqnr2hjqkv2dzwtmpdjqkbcxmovdsjqctjagjmdlskpgad2s0h0vmzgaht36gyuez7umank1ndreubeqdgrx0venqgnsyib2ilq3siqrnl4m56t7z8y8da5k0kupn5nzg4jvjdtffhyt82aogqkxo4vblmleiy2p7hthbho07rcfttxodydppdtqso7wxd0j6fkklgm4wodzplhtrr2xgqn13hqy59zu1gegdyqnihntavsieuefqcyfucjwd3vk5i7ykmhundmiz ut2apodfxxc02gybkskc

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對用戶上傳內(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

提交評論