<span id="plx27"><var id="plx27"></var></span>
<dfn id="plx27"><var id="plx27"></var></dfn>
  • <span id="plx27"><code id="plx27"><input id="plx27"></input></code></span>
    <menu id="plx27"></menu><menuitem id="plx27"><thead id="plx27"><input id="plx27"></input></thead></menuitem>
  • <label id="plx27"><code id="plx27"></code></label>
    <label id="plx27"><button id="plx27"></button></label>

    《面向?qū)ο蟪绦蛟O(shè)計(jì)》C++實(shí)驗(yàn)報(bào)告

    上傳人:仙*** 文檔編號(hào):31630618 上傳時(shí)間:2021-10-12 格式:DOC 頁(yè)數(shù):55 大?。?38.50KB
    收藏 版權(quán)申訴 舉報(bào) 下載
    《面向?qū)ο蟪绦蛟O(shè)計(jì)》C++實(shí)驗(yàn)報(bào)告_第1頁(yè)
    第1頁(yè) / 共55頁(yè)
    《面向?qū)ο蟪绦蛟O(shè)計(jì)》C++實(shí)驗(yàn)報(bào)告_第2頁(yè)
    第2頁(yè) / 共55頁(yè)
    《面向?qū)ο蟪绦蛟O(shè)計(jì)》C++實(shí)驗(yàn)報(bào)告_第3頁(yè)
    第3頁(yè) / 共55頁(yè)

    下載文檔到電腦,查找使用更方便

    15 積分

    下載資源

    還剩頁(yè)未讀,繼續(xù)閱讀

    資源描述:

    《《面向?qū)ο蟪绦蛟O(shè)計(jì)》C++實(shí)驗(yàn)報(bào)告》由會(huì)員分享,可在線閱讀,更多相關(guān)《《面向?qū)ο蟪绦蛟O(shè)計(jì)》C++實(shí)驗(yàn)報(bào)告(55頁(yè)珍藏版)》請(qǐng)?jiān)谘b配圖網(wǎng)上搜索。

    1、面向?qū)ο蟪绦蛟O(shè)計(jì)實(shí)驗(yàn)報(bào)告學(xué) 院: 專 業(yè): 班級(jí)學(xué)號(hào): 姓 名: 學(xué) 期: 教 師: 實(shí)驗(yàn)一 C+基礎(chǔ)練習(xí)院(系): 課程名稱:面向?qū)ο蟪绦蛟O(shè)計(jì)教師簽名:班級(jí) 學(xué)號(hào) 實(shí)驗(yàn)室姓名 實(shí)驗(yàn)成績(jī)所用軟件Word文檔、VC+軟件實(shí)驗(yàn)?zāi)康暮鸵?.掌握C+程序的基本格式與規(guī)范,學(xué)會(huì)編寫(xiě)簡(jiǎn)單的C+程序。2.理解C+程序結(jié)構(gòu)的特點(diǎn)。3.熟悉C+程序基本的輸入和輸出操作。4.掌握C+數(shù)據(jù)類型常量和變量以及修飾符的使用方法。5.掌握函數(shù)定義、函數(shù)調(diào)用和函數(shù)說(shuō)明的方法。6.熟悉作用域運(yùn)算符的功能和基本使用方法。7.掌握C+內(nèi)存的動(dòng)態(tài)分配與釋放方法。8.理解引用的概念,掌握引用的使用方法。實(shí)驗(yàn)內(nèi)容和步驟1. 調(diào)試如下

    2、的代碼并回答問(wèn)題。#include void main()/First c+ programchar name10;coutname;coutwelcome nameendl; (1)C+的注釋和C有何不同? 答:C語(yǔ)言的注釋有一種,用/*.*/作為注釋分界符號(hào) C+除保留了這種注釋方式之外,還提供了一種更有效的注釋方式,該注釋以“/”開(kāi)始,到行尾結(jié)束。(2)C+的輸入和輸出所使用的函數(shù)及其相應(yīng)頭文件與C有何不同?答:在C中進(jìn)行輸入輸出操作時(shí),常使用函數(shù)scanf和printf。C+除了可以照常使用這兩個(gè)函數(shù)進(jìn)行輸入輸出外,還增加了標(biāo)準(zhǔn)輸入流對(duì)象cin和標(biāo)準(zhǔn)輸出流對(duì)象cout來(lái)進(jìn)行輸入和輸出。

    3、Iostream是C+系統(tǒng)定義的一個(gè)頭文件,在這個(gè)文件中聲明了程序所需要的輸入和輸出操作的有關(guān)信息。在C語(yǔ)言中頭文件中用“.h”作為后綴,如stdio.h、math.h等。2. 單步調(diào)試如下的代碼并回答問(wèn)題。#include inline int f(int x) return 2*x*x+4*x+5; inline double f(double x) return 2*x*x+4*x+5; void main() int x=5; double y=5.2; coutf(x)endl; coutf(y)endl;(1)inline的含義和作用是什么?答:含義:在函數(shù)說(shuō)明前冠以關(guān)鍵字“inl

    4、ine”,該函數(shù)就被聲明為內(nèi)聯(lián)函數(shù),每當(dāng)程序中出現(xiàn)對(duì)該函數(shù)的調(diào)用時(shí)C+編譯器使用函數(shù)體中的代碼插入到調(diào)用該函數(shù)的語(yǔ)句處,同時(shí)用實(shí)參取代形參。作用:主要是為了消除函數(shù)調(diào)用時(shí)的系統(tǒng)開(kāi)銷,以提高運(yùn)行速度。(2)C允許兩個(gè)函數(shù)同名(函數(shù)重載)么,函數(shù)重載的作用是什么?答:不允許,作用:方便使用函數(shù),只要函數(shù)參數(shù)的類型不同,或者參數(shù)的個(gè)數(shù)不同,或者二者兼而有之,兩個(gè)或者兩個(gè)以上的函數(shù)可以使用相同的函數(shù)名。實(shí)現(xiàn)函數(shù)編譯的多態(tài)性。(3)單步調(diào)試(F10、F11),記錄f(x)和f(y)會(huì)分別調(diào)用哪段代碼,為什么?答:f(x)會(huì)調(diào)用int f(int 5) f(y)會(huì)調(diào)用double f(double 5.2

    5、)因?yàn)殡m然兩個(gè)函數(shù)名是一樣的,形參類型和返回值類型不同,根據(jù)所給的實(shí)參類型如int型就調(diào)用int f(int 5)。3. 單步調(diào)試如下程序并回答問(wèn)題。#include int a=1,2,3,4,5,6,7,8,9,10;int sum;void main() int i; int sum=0;for(i=0;i10;i+) if(ai%2!=0) sum=sum+ai; :sum=:sum+ai; cout sum of all is : :sum; cout sum of odd is: sum;(1)什么是局部變量和全局變量,其作用域如何界定?答:全局變量:在函數(shù)外定義的變量,可以為本源

    6、文件的其他函數(shù)所公用,有效范圍為從定義變量的位置開(kāi)始到本源文件結(jié)束。局部變量:在一個(gè)函數(shù)內(nèi)部定義的變量是內(nèi)部變量,它只在本函數(shù)范圍內(nèi)有效。(2)在局部變量和全局變量作用域重疊區(qū)域,默認(rèn)哪個(gè)變量起作用;如果一定要訪問(wèn)全局變量,怎么實(shí)現(xiàn)。答:默認(rèn)局部變量起作用。如果一定要訪問(wèn)全局變量,可以用:對(duì)所屏蔽的同名全局變量進(jìn)行訪問(wèn)。(3)單步調(diào)試,查看并記錄程序中循環(huán)體的兩條語(yǔ)句的sum的變化情況,并說(shuō)明它們是局部變量和全局變量。答:第一個(gè)sum為全局變量,第二個(gè):sum為局部變量。4.調(diào)試如下程序并回答問(wèn)題。#include void main() double *r; r = new double;

    7、cin*r; coutArea is:3.14*(*r)*(*r); delete r;(1)C語(yǔ)言的內(nèi)存申請(qǐng)和釋放使用哪個(gè)函數(shù)答:內(nèi)存申請(qǐng):malloc釋放:free(2)C+的內(nèi)存申請(qǐng)和釋放使用哪個(gè)函數(shù)?簡(jiǎn)單比較。答:內(nèi)存申請(qǐng):new 釋放:delete 使用malloc函數(shù)時(shí)必須使用sizeof函數(shù)來(lái)計(jì)算所需要的字節(jié)數(shù),而new可以根據(jù)數(shù)據(jù)類型自動(dòng)計(jì)算所要分配內(nèi)存的大小,這就減小了發(fā)生錯(cuò)誤的可能性。new能夠自動(dòng)返回正確的指針類型,而不必像malloc函數(shù)那樣,必須在程序中進(jìn)行強(qiáng)制類型轉(zhuǎn)換,才能使其返回正確的指針類型。實(shí)驗(yàn)二 C+簡(jiǎn)單程序設(shè)計(jì)練習(xí)院(系): 課程名稱:面向?qū)ο蟪绦蛟O(shè)計(jì)教師

    8、簽名:班級(jí) 學(xué)號(hào) 實(shí)驗(yàn)室姓名 實(shí)驗(yàn)成績(jī)所用軟件Word文檔、VC+軟件實(shí)驗(yàn)?zāi)康暮鸵?.掌握if語(yǔ)句的用法。2.掌握switch語(yǔ)句的用法。3.掌握循環(huán)和多重循環(huán)的用法。4.掌握函數(shù)的定義和調(diào)用。5.掌握數(shù)組的定義和基本操作。實(shí)驗(yàn)內(nèi)容和步驟1. 根據(jù)輸入的百分制按五分制的成績(jī)輸出,記錄和分析實(shí)驗(yàn)結(jié)果(后續(xù)每個(gè)實(shí)驗(yàn)都有此要求,不再一一注明)。百分制與五分制之間的關(guān)系見(jiàn)下表。分別使用if分支結(jié)構(gòu)和switch結(jié)構(gòu)編寫(xiě)程序。百分制五分制9010058089470793606920591#include int main () int a;cout從鍵盤(pán)輸入百分制:a;if(a0&a60) cout五

    9、分制為:1endl; /如果0a60,輸出是五分制為:1elseif(a70) cout五分制為:2endl; /同上以此類推2elseif(a80) cout五分制為:3endl; /3elseif(a90) cout五分制為:4endl; /4elseif(a=100) cout五分制為:5endl; /5使用if嵌套語(yǔ)句實(shí)現(xiàn)某一范圍內(nèi)的輸出具體看注釋#include void main() int a,b;cout從鍵盤(pán)輸入百分制:a;b=a/10; /對(duì)a求商并賦值給bswitch(b) /確定b的值為什么值 case 10 : case 9: cout五分制為:5endl;break

    10、; /為10或9執(zhí)行此語(yǔ)句輸出是五分制為:5 case 8: cout五分制為:4endl;break; /同上 case 7: cout五分制為:3endl;break; case 6: cout五分制為:2endl;break; default : cout五分制為:1endl;break; /不為以上的值就執(zhí)行此語(yǔ)句用switch語(yǔ)句實(shí)現(xiàn)分析如上的注釋2. 編程求3100之間的所有素?cái)?shù),要求編寫(xiě)一個(gè)素?cái)?shù)判斷的函數(shù),然后在主程序中調(diào)用。#include#includeint main() int i; /定義變量i int fun(int); /函數(shù)的聲明 for(i=3;i=100;i+

    11、) if(fun(i) coutiendl; /根據(jù)fun(i)的真值,為1時(shí)表示為素?cái)?shù)則輸出int fun(int n) /函數(shù)的定義int i,t; /定義兩個(gè)整型變量t=sqrt(n);for(i=2;i=t;i+) /當(dāng)有能被整除的數(shù)則返回0,后則返回1if(n%i=0)return 0; return 1;3. 編寫(xiě)程序列出斐波那契(Fibonacci)數(shù)列的前20項(xiàng)。(Fibonacci數(shù)列是指前兩項(xiàng)為1,后面的每一項(xiàng)都為前兩項(xiàng)之和。要求用數(shù)組存儲(chǔ)數(shù)列)。#include void main()int a20=1,1; /初始化數(shù)組a,a0=a1=1int i; for(i=2;i

    12、20;i+) ai=ai-1+ai-2; /后面每一項(xiàng)都為前兩項(xiàng)之和 for(i=0;i20;i+) /輸出前20個(gè)斐波那契數(shù)列 coutaiendl; 4. 編程實(shí)現(xiàn)輸入10個(gè)整數(shù),從小到大排列輸出。#include int main()int a10; /定義一個(gè)整型數(shù)組int i,j,t; /定義三個(gè)整型變量i,j,tcout從鍵盤(pán)輸入十個(gè)整數(shù):endl; /提示性語(yǔ)句從鍵盤(pán)輸入十個(gè)整數(shù)for(i=0;iai; /輸入數(shù)據(jù) for(i=0;i10;i+) /采用冒泡排序法 外部循環(huán) for(j=0;jaj+1) /如果不是從小到大排列則交換位置關(guān)系 t=aj; aj=aj+1; aj+1

    13、=t; for(i=0;i10;i+) /輸出整理好后的數(shù)組 coutaiendl; 實(shí)驗(yàn)三 類與對(duì)象(一)院(系): 課程名稱:面向?qū)ο蟪绦蛟O(shè)計(jì)教師簽名:班級(jí) 學(xué)號(hào) 實(shí)驗(yàn)室姓名 實(shí)驗(yàn)成績(jī)所用軟件Word文檔、VC+軟件實(shí)驗(yàn)?zāi)康暮鸵?.掌握類、類的數(shù)據(jù)成員、類的成員函數(shù)的定義方式。2.理解類成員的訪問(wèn)控制方式。3.掌握對(duì)象的定義和操作對(duì)象的方法。4.理解構(gòu)造函數(shù)和析構(gòu)函數(shù)的定義與執(zhí)行過(guò)程。5.掌握重載構(gòu)造函數(shù)的方式。6.了解拷貝構(gòu)造函數(shù)的方法。實(shí)驗(yàn)內(nèi)容1.聲明一個(gè)時(shí)間類,時(shí)間類中有3個(gè)私有數(shù)據(jù)成員(Hour,Minute,Second)和兩個(gè)公有成員函數(shù)(SetTime和PrintTime)

    14、。SetTime根據(jù)傳遞的3個(gè)參數(shù)為對(duì)象設(shè)置時(shí)間;PrintTime負(fù)責(zé)將對(duì)象表示的時(shí)間顯示輸出。在主函數(shù)中,建立一個(gè)時(shí)間類的對(duì)象,設(shè)置時(shí)間為9點(diǎn)20分30秒并顯示時(shí)間。#include class time /聲明的一個(gè)時(shí)間類timepublic: /公共函數(shù)成員void SetTime(int i,int j,int k)Hour=i;Minute=j;Second=k;void PrintTime()coutHour點(diǎn);coutMinute分;coutSecond秒endl;private: /三個(gè)私有成員int Hour;int Minute;int Second;int main()

    15、time s; /定義一個(gè)對(duì)象ss.SetTime(9,20,30); /調(diào)用對(duì)象s的成員函數(shù)SetTime,給s的數(shù)據(jù)成員賦值s.PrintTime(); /輸出顯示出來(lái) 2.使用構(gòu)造函數(shù)代替上面的SetTime成員函數(shù),并在主函數(shù)中使用構(gòu)造函數(shù)設(shè)置時(shí)間為10點(diǎn)40分50秒,并顯示該時(shí)間。說(shuō)明構(gòu)造函數(shù)和SetTime成員函數(shù)在使用時(shí)的區(qū)別。#include class timepublic:time(int i,int j,int k) /定義構(gòu)造函數(shù),其名與類名相同Hour=i; /在構(gòu)造函數(shù)中,對(duì)私有數(shù)據(jù)賦值Minute=j;Second=k;void PrintTime()coutHo

    16、ur點(diǎn);coutMinute分;coutSecond秒endl;private:int Hour;int Minute;int Second;int main()time s(10,40,50); /定義類的對(duì)象時(shí)調(diào)用構(gòu)造函數(shù)time /分別給數(shù)據(jù)成員Hour、Minute和Second賦初值10、40和50s.PrintTime(); 說(shuō)明:構(gòu)造函數(shù)的作用主要是用來(lái)對(duì)對(duì)象進(jìn)行初始化,定義對(duì)象時(shí)被系統(tǒng)自動(dòng)調(diào)用。而SetTime成員函數(shù)賦初值既不方便也容易忘記,甚至可能出錯(cuò)。3.重載時(shí)間類的構(gòu)造函數(shù)(不帶參數(shù))使小時(shí)、分、秒均為0。#include class timepublic:time()

    17、;void PrintTime();private:int Hour;int Minute;int Second;time:time()Hour=0;Minute=0;Second=0;inline void time:PrintTime()coutHour點(diǎn);coutMinute分;coutSecond秒endl;int main()time s1;couts1 output:endl;s1.PrintTime();4.在時(shí)間類的析構(gòu)函數(shù)中輸出“Good bye!”。說(shuō)明析構(gòu)函數(shù)的特點(diǎn)和調(diào)用時(shí)機(jī)。#include class timepublic:time(int i,int j,int k

    18、); /構(gòu)造函數(shù)的聲明time(); /析構(gòu)函數(shù)的聲明void PrintTime();private:int Hour;int Minute;int Second;time:time(int i,int j,int k) /構(gòu)造函數(shù)的定義Hour=i;Minute=j;Second=k;cout構(gòu)造函數(shù)被調(diào)用endl; /顯示構(gòu)造函數(shù)被調(diào)用的信息time:time() /定義析構(gòu)函數(shù) coutgoodbyeendl;void time:PrintTime()coutHour點(diǎn);coutMinute分;coutSecond秒endl;int main()time s(10,40,50);s.P

    19、rintTime();析構(gòu)函數(shù)的特點(diǎn):析構(gòu)函數(shù)名與類名相同,但它前面必須加一個(gè)波浪號(hào)(),不返回任何值是不能說(shuō)明它的類型的,析構(gòu)函數(shù)沒(méi)有參數(shù),撤銷對(duì)象時(shí),編譯系統(tǒng)會(huì)自動(dòng)地調(diào)用析構(gòu)函數(shù)。主函數(shù)中的語(yǔ)句執(zhí)行完后,對(duì)象的生命周期結(jié)束,在撤銷時(shí)就要調(diào)用析構(gòu)函數(shù),釋放分配給對(duì)象的存儲(chǔ)空間對(duì)顯示信息goodbye5.定義拷貝構(gòu)造函數(shù)并調(diào)用。說(shuō)明拷貝構(gòu)造函數(shù)的作用特點(diǎn)。#include class timepublic:time(int i,int j,int k)Hour=i;Minute=j;Second=k;time(const time &p) /拷貝構(gòu)造函數(shù) Hour=p.Hour+1;Minut

    20、e=p.Minute-20;Second=p.Second-40;void PrintTime()coutHour點(diǎn);coutMinute分;coutSecond秒endl;private:int Hour;int Minute;int Second;int main()time s1(10,40,50); /定義對(duì)象s1,調(diào)用了普通的構(gòu)造函數(shù)time s2(s1); /調(diào)用拷貝構(gòu)造函數(shù),用對(duì)象s1初始化對(duì)象s2s1.PrintTime();s2.PrintTime();拷貝構(gòu)造函數(shù)的作用特點(diǎn):用于按照需要初始化新對(duì)象。在建立一個(gè)新對(duì)象時(shí),使用一個(gè)已經(jīng)存在的對(duì)象去初始化這個(gè)新對(duì)象。實(shí)驗(yàn)四 類與

    21、對(duì)象(二)院(系): 課程名稱:面向?qū)ο蟪绦蛟O(shè)計(jì)教師簽名:班級(jí) 學(xué)號(hào) 實(shí)驗(yàn)室姓名 實(shí)驗(yàn)成績(jī)所用軟件Word文檔、VC+軟件實(shí)驗(yàn)?zāi)康暮鸵?.掌握對(duì)象數(shù)組的定義與使用方法。2.理解對(duì)象指針的概念,學(xué)會(huì)用指針引用對(duì)象。3.了解this指針的工作方式。4.掌握靜態(tài)數(shù)據(jù)成員和靜態(tài)成員函數(shù)的基本使用方法。5.理解友元與友元函數(shù)的作用,掌握其使用方法。實(shí)驗(yàn)內(nèi)容1定義一個(gè)學(xué)生(student)類,包含數(shù)據(jù)成員:學(xué)號(hào)(sno)、姓名(name)、年齡(age)、分?jǐn)?shù)(score),以及成員函數(shù):輸入(input)和顯示(print)。然后定義一個(gè)具有10個(gè)學(xué)生的數(shù)組,實(shí)現(xiàn)對(duì)這些學(xué)生信息的輸入和顯示。#incl

    22、udeusing namespace std;class MyArraypublic: MyArray(int leng) length=leng; alist=new intlength; MyArray() delete alist; void input() int i; for(i=0;ialisti; void display()int j;for(j=0;jlength;j+)coutalistjleng;MyArray A(leng);A.input();A.display();return(0);2.修改上一個(gè)程序中的main函數(shù):定義一個(gè)student類的指針p,使其指向上述

    23、數(shù)組的第0個(gè)元素,并通過(guò)該指針實(shí)現(xiàn)對(duì)10個(gè)學(xué)生信息的輸入和顯示。最后簡(jiǎn)要說(shuō)明對(duì)象數(shù)組、對(duì)象指針和普通數(shù)組和指針有何區(qū)別和聯(lián)系。#include #include using namespace std;class studentprivate:int sno;string name;int age;int score;public:void input()cinsnonameagescore;void print()cout學(xué)號(hào)snoendl;cout姓名nameendl;cout年齡ageendl;cout分?jǐn)?shù)scoreendl;int main()student k10;student *

    24、p;int i;for(i=0;iinput();p-print(); 對(duì)象數(shù)組的元素是對(duì)象,不僅具有數(shù)據(jù)成員,而且還有函數(shù)成員,對(duì)象指針就是用于存放對(duì)象地址的變量,對(duì)象指針不僅能引用單個(gè)對(duì)象,也能訪問(wèn)對(duì)象數(shù)組。普通數(shù)組是存放類型一樣的數(shù)據(jù),指針可以通過(guò)訪問(wèn)首地址一一訪問(wèn)存放的數(shù)值。3.通過(guò)單步調(diào)試第一個(gè)程序,查看并記錄每個(gè)元素的地址及其this指針的值,通過(guò)對(duì)比說(shuō)明this指針的作用。#include #include using namespace std;class studentprivate:int sno;string name;int age;int score;public:v

    25、oid input()cinsnonameagescore;void print()coutthis=this學(xué)號(hào)snoendl;cout姓名nameendl;cout年齡ageendl;cout分?jǐn)?shù)scoreendl;int main()student k10;int i;for(i=0;i=9;i+)ki.input();ki.print(); sno -858993460 age -858993460 name ox00000000score -858993460this指針指向的是對(duì)象的初始地址4.將student類增加兩個(gè)靜態(tài)成員,人數(shù)(count)和平均分(average)。注意構(gòu)

    26、造函數(shù)、析構(gòu)函數(shù)的編寫(xiě)以及靜態(tài)成員的初始化,并說(shuō)明這兩個(gè)成員設(shè)置為靜態(tài)成員的原因。#include #include using namespace std;class studentprivate:int sno;char *name;int age;int score;static int count;static float average;static float sum;public:void input()cinsnonameagescore;void print()cout學(xué)號(hào)snoendl;cout姓名nameendl;cout年齡ageendl;cout分?jǐn)?shù)scoreendl

    27、;void show()cout學(xué)生人數(shù):count;cout平均成績(jī):averageendl;student(int snol,char *namel,int agel,int scorel)sno=snol;name=new charstrlen(namel)+1;strcpy(name,namel);age=agel;score=scorel;+count;sum=sum+score;average=sum/count;student()delete name;-count;sum=sum-score;int student:count=0;float student:sum=0.0;f

    28、loat student:average=0.0;int main()student a1(1,小小,20,99);a1.print();a1.show();student a2(2,小江,12,100);a2.print();a2.show();student a3(3,肖肖,21,89);a2.print();a2.show();return 0;count隨著定義對(duì)象的增加而增加。每定義一個(gè)對(duì)象,count加1,累計(jì)學(xué)生人數(shù),average也應(yīng)該隨著定義對(duì)象的增加而改變著。因此它們被聲明為靜態(tài)數(shù)據(jù)成員,被studengt類的對(duì)象所共享。5.定義一個(gè)友元函數(shù)output,實(shí)現(xiàn)和成員函數(shù)pr

    29、int相同的功能。說(shuō)明友元函數(shù)作用以及和成員函數(shù)的區(qū)別。#include #include using namespace std;class studentprivate:int sno;string name;int age;int score;public:void input()cinsnonameagescore;friend void output(student &);void print()cout學(xué)號(hào)snoendl;cout姓名nameendl;cout年齡ageendl;cout分?jǐn)?shù)scoreendl;void output(student &p)cout學(xué)號(hào)p.sno姓名

    30、p.nameendl;cout年齡p.age分?jǐn)?shù)p.scoreendl;int main()student k10;int i;for(i=0;i=9;i+)ki.input();output(ki); 友員函數(shù)可以通過(guò)入口參數(shù)傳遞進(jìn)來(lái)的對(duì)象名(或?qū)ο笾羔槨?duì)象引用)來(lái)訪問(wèn)該對(duì)象所有的的數(shù)據(jù)成員,提高了程序運(yùn)行效率。沒(méi)有友員機(jī)制,外部函數(shù)訪問(wèn)類的私有數(shù)據(jù),必須調(diào)用公有成員函數(shù),在需要頻繁調(diào)用私有數(shù)據(jù)時(shí),會(huì)帶來(lái)很大的開(kāi)銷,降低程序運(yùn)行效率。實(shí)驗(yàn)五 派生類與繼承院(系): 課程名稱:面向?qū)ο蟪绦蛟O(shè)計(jì)教師簽名:班級(jí) 學(xué)號(hào) 實(shí)驗(yàn)室 姓名 實(shí)驗(yàn)成績(jī)所用軟件Word文檔、VC+軟件實(shí)驗(yàn)?zāi)康暮鸵?理解類的

    31、繼承的概念,能夠定義和使用類的繼承關(guān)系。2.掌握派生類的聲明和定義方法。3.熟悉公有派生和私有派生的訪問(wèn)特性。4.學(xué)習(xí)虛基類中解決二義性問(wèn)題中的作用。實(shí)驗(yàn)內(nèi)容1 定義一個(gè)基類MyArray,基類中可以存放一組整數(shù)。class MyArraypublic: MyArray(int leng); MyArray(); void Input(); void Display();protected: int *alist; /指向動(dòng)態(tài)申請(qǐng)的一組空間 int length; /整數(shù)的個(gè)數(shù);基類中有構(gòu)造函數(shù)、析構(gòu)函數(shù)、輸入數(shù)據(jù)和輸出數(shù)據(jù)的函數(shù)。#include class MyArraypublic: M

    32、yArray(int leng); MyArray(); void Input(); void Display();protected: int *alist; /指向動(dòng)態(tài)申請(qǐng)的一組空間 int length; /整數(shù)的個(gè)數(shù);MyArray:MyArray(int leng)alist=new intleng;length=leng;MyArray:MyArray()delete alist;cout顯示調(diào)用了析構(gòu)函數(shù)endl;void MyArray:Input()int i;cout請(qǐng)輸入數(shù)組元素:endl;for(i=0;ialisti;void MyArray:Display()int

    33、 j;cout輸出的數(shù)組元素為:endl;for(j=0;jlength;j+)coutalistjendl;int main() MyArray s(4); s.Input(); s.Display();2 定義一個(gè)類SortArray繼承自MyArray,在該類中定義函數(shù)實(shí)現(xiàn)排序功能。#includeusing namespace std;class MyArraypublic: MyArray(int leng) length=leng; alist=new intlength; MyArray() delete alist; void input() int i; for(i=0;ia

    34、listi; void display()int j;for(j=0;jlength;j+)coutalistjendl;protected:int *alist;int length;class SortArray:public MyArraypublic:SortArray(int leng):MyArray(leng)void pai()int i;int j;int t;for(i=0;ilength;i+)for(j=i+1;jalistj) t=alisti; alisti=alistj; alistj=t;for(i=0;ilength;i+)coutleng;SortArray

    35、 A(leng);A.input();A.display();A.pai();return(0);3 定義一個(gè)類ReArray繼承自MyArray,在該類中定義函數(shù)實(shí)現(xiàn)逆轉(zhuǎn)功能。#includeusing namespace std;class MyArraypublic: MyArray(int leng) length=leng; alist=new intlength; MyArray() delete alist; void input() int i; for(i=0;ialisti; void display()int j;for(j=0;jlength;j+)coutalistj

    36、endl;protected:int *alist;int length;class ReArray:public MyArraypublic:ReArray(int leng):MyArray(leng)void nizhuan()int j;int t;for(j=0;jlength/2;j+)t=alistj;alistj=alistlength-1-j;alistlength-j-1=t;for(j=0;jlength;j+)coutalistjleng;ReArray A(leng);A.input();A.display();A.nizhuan();return(0);4 定義一個(gè)

    37、類AverArray繼承自MyArray,在該類中定義函數(shù)Aver求解整數(shù)的平均值。#includeusing namespace std;class MyArraypublic: MyArray(int leng) length=leng; alist=new intlength; MyArray() delete alist; void input() int i; for(i=0;ialisti; void display()int j;for(j=0;jlength;j+)coutalistjendl;protected:int *alist;int length;class Aver

    38、Array:public MyArraypublic:AverArray(int leng):MyArray(leng)void pingjun()int j;float sum;float ave;sum=0.0;for(j=0;jlength;j+)sum+=alistj;ave=sum/length;coutaveleng;AverArray A(leng);A.input();A.display();A.pingjun();return(0);5 定義NewArray類,同時(shí)繼承了SortArray、ReArray和AverArray,使得NewArray類的對(duì)象同時(shí)具有排序、逆轉(zhuǎn)和求

    39、平均值的功能。在繼承的過(guò)程中聲明為虛基類,體會(huì)虛基類在解決二義性問(wèn)題中的作用。 #includeusing namespace std;class MyArray public: MyArray(int leng) length=leng; alist=new intlength; MyArray() delete alist; void input() int i; for(i=0;ialisti; void display()int j;for(j=0;jlength;j+)coutalistjendl;protected:int *alist;int length;class SortA

    40、rray:virtual public MyArraypublic:SortArray(int leng):MyArray(leng)void pai()int i;int j;int t;for(i=0;ilength;i+)for(j=i+1;jalistj) t=alisti; alisti=alistj; alistj=t;for(i=0;ilength;i+)coutalisti; ;class ReArray:virtual public MyArraypublic:ReArray(int leng):MyArray(leng)void nizhuan()int j;int t;f

    41、or(j=0;jlength/2;j+)t=alistj;alistj=alistlength-1-j;alistlength-j-1=t;for(j=0;jlength;j+)coutalistj ; ;class AverArray:virtual public MyArraypublic:AverArray(int leng):MyArray(leng)void pingjun() int j; float sum; float ave; sum=0.0;for(j=0;jlength;j+)sum+=alistj;ave=sum/length;coutaveleng;NewArray

    42、A(leng);A.input();A.display();A.pai();A.nizhuan();A.pingjun();return(0); 實(shí)驗(yàn)六 虛函數(shù)與多態(tài)性院(系): 課程名稱:面向?qū)ο蟪绦蛟O(shè)計(jì)教師簽名:班級(jí) 學(xué)號(hào) 實(shí)驗(yàn)室 姓名 實(shí)驗(yàn)成績(jī)所用軟件Word文檔、VC+軟件實(shí)驗(yàn)?zāi)康暮鸵?理解編譯時(shí)的多態(tài)性和運(yùn)行時(shí)的多態(tài)性。2.掌握運(yùn)算符重載的基本方法。3.掌握虛函數(shù)的定義與使用方法。實(shí)驗(yàn)內(nèi)容1定義一個(gè)有理數(shù),并重載比較運(yùn)算符 、=、 =、!=。class Rationalpublic: Rational(int num=0,int denom=1); /構(gòu)造函數(shù) int operat

    43、or(Rational r) const; int operator=(Rational r) const; int operator=(Rational r) const; int operator!=(Rational r) const;private: long num,den; /定義一個(gè)有理數(shù)num為分子,den為分母;#include#includeclass Rationalpublic: /構(gòu)造函數(shù) Rational(int num=0,int denom=1); /重載比較操作符 int operator(Rational r) const; int operator=(Rational r) const; int operator=(Rational r) const; int operator!=(Rational r) const;private: /定義一個(gè)有理數(shù)num為分母,den分子 long num,den;Ra

    展開(kāi)閱讀全文
    溫馨提示:
    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. 裝配圖網(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ì)自己和他人造成任何形式的傷害或損失。
    關(guān)于我們 - 網(wǎng)站聲明 - 網(wǎng)站地圖 - 資源地圖 - 友情鏈接 - 網(wǎng)站客服 - 聯(lián)系我們

    copyright@ 2023-2025  zhuangpeitu.com 裝配圖網(wǎng)版權(quán)所有   聯(lián)系電話:18123376007

    備案號(hào):ICP2024067431號(hào)-1 川公網(wǎng)安備51140202000466號(hào)


    本站為文檔C2C交易模式,即用戶上傳的文檔直接被用戶下載,本站只是中間服務(wù)平臺(tái),本站所有文檔下載所得的收益歸上傳人(含作者)所有。裝配圖網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)上載內(nèi)容本身不做任何修改或編輯。若文檔所含內(nèi)容侵犯了您的版權(quán)或隱私,請(qǐng)立即通知裝配圖網(wǎng),我們立即給予刪除!

    欧美久久久一区二区三区,国产精品亚洲一区二区无码,亚洲国产精品综合久久20声音,亚洲国产精品无码久久久蜜芽
    <span id="plx27"><var id="plx27"></var></span>
    <dfn id="plx27"><var id="plx27"></var></dfn>
  • <span id="plx27"><code id="plx27"><input id="plx27"></input></code></span>
    <menu id="plx27"></menu><menuitem id="plx27"><thead id="plx27"><input id="plx27"></input></thead></menuitem>
  • <label id="plx27"><code id="plx27"></code></label>
    <label id="plx27"><button id="plx27"></button></label>