<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>
  • 歡迎來(lái)到裝配圖網(wǎng)! | 幫助中心 裝配圖網(wǎng)zhuangpeitu.com!
    裝配圖網(wǎng)
    ImageVerifierCode 換一換
    首頁(yè) 裝配圖網(wǎng) > 資源分類 > DOC文檔下載  

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

    • 資源ID:31630618       資源大小:538.50KB        全文頁(yè)數(shù):55頁(yè)
    • 資源格式: DOC        下載積分:15積分
    快捷下載 游客一鍵下載
    會(huì)員登錄下載
    微信登錄下載
    三方登錄下載: 微信開放平臺(tái)登錄 支付寶登錄   QQ登錄   微博登錄  
    二維碼
    微信掃一掃登錄
    下載資源需要15積分
    郵箱/手機(jī):
    溫馨提示:
    用戶名和密碼都是您填寫的郵箱或者手機(jī)號(hào),方便查詢和重復(fù)下載(系統(tǒng)自動(dòng)生成)
    支付方式: 支付寶    微信支付   
    驗(yàn)證碼:   換一換

     
    賬號(hào):
    密碼:
    驗(yàn)證碼:   換一換
      忘記密碼?
        
    友情提示
    2、PDF文件下載后,可能會(huì)被瀏覽器默認(rèn)打開,此種情況可以點(diǎn)擊瀏覽器菜單,保存網(wǎng)頁(yè)到桌面,就可以正常下載了。
    3、本站不支持迅雷下載,請(qǐng)使用電腦自帶的IE瀏覽器,或者360瀏覽器、谷歌瀏覽器下載即可。
    4、本站資源下載后的文檔和圖紙-無(wú)水印,預(yù)覽文檔經(jīng)過(guò)壓縮,下載后原文更清晰。
    5、試題試卷類文檔,如果標(biāo)題沒(méi)有明確說(shuō)明有答案則都視為沒(méi)有答案,請(qǐng)知曉。

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

    面向?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ì)編寫簡(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)試如下的代碼并回答問(wèn)題。#include <iostream.h>void main()/First c+ programchar name10;cout<<"please input your name:"cin>>name;cout<<"welcome "<<name<<endl; (1)C+的注釋和C有何不同? 答:C語(yǔ)言的注釋有一種,用/*.*/作為注釋分界符號(hào) C+除保留了這種注釋方式之外,還提供了一種更有效的注釋方式,該注釋以“/”開始,到行尾結(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)行輸入和輸出。Iostream是C+系統(tǒng)定義的一個(gè)頭文件,在這個(gè)文件中聲明了程序所需要的輸入和輸出操作的有關(guān)信息。在C語(yǔ)言中頭文件中用“.h”作為后綴,如stdio.h、math.h等。2. 單步調(diào)試如下的代碼并回答問(wèn)題。#include <iostream.h>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; cout<<f(x)<<endl; cout<<f(y)<<endl;(1)inline的含義和作用是什么?答:含義:在函數(shù)說(shuō)明前冠以關(guān)鍵字“inline”,該函數(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)開銷,以提高運(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)因?yàn)殡m然兩個(gè)函數(shù)名是一樣的,形參類型和返回值類型不同,根據(jù)所給的實(shí)參類型如int型就調(diào)用int f(int 5)。3. 單步調(diào)試如下程序并回答問(wèn)題。#include <iostream.h>int a=1,2,3,4,5,6,7,8,9,10;int sum;void main() int i; int sum=0;for(i=0;i<10;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ù)外定義的變量,可以為本源文件的其他函數(shù)所公用,有效范圍為從定義變量的位置開始到本源文件結(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 <iostream.h>void main() double *r; r = new double; cin>>*r; cout<<"Area 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ì)教師簽名:班級(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)系見下表。分別使用if分支結(jié)構(gòu)和switch結(jié)構(gòu)編寫程序。百分制五分制9010058089470793606920591#include <iostream.h>int main () int a;cout<<"從鍵盤輸入百分制:"<<endl; /輸入一個(gè)百分制的數(shù)cin>>a;if(a>0&&a<60) cout<<"五分制為:1"<<endl; /如果0<a<60,輸出是五分制為:1elseif(a<70) cout<<"五分制為:2"<<endl; /同上以此類推2elseif(a<80) cout<<"五分制為:3"<<endl; /3elseif(a<90) cout<<"五分制為:4"<<endl; /4elseif(a<=100) cout<<"五分制為:5"<<endl; /5使用if嵌套語(yǔ)句實(shí)現(xiàn)某一范圍內(nèi)的輸出具體看注釋#include <iostream.h>void main() int a,b;cout<<"從鍵盤輸入百分制:"<<endl; /輸入一個(gè)百分制的數(shù)cin>>a;b=a/10; /對(duì)a求商并賦值給bswitch(b) /確定b的值為什么值 case 10 : case 9: cout<<"五分制為:5"<<endl;break; /為10或9執(zhí)行此語(yǔ)句輸出是五分制為:5 case 8: cout<<"五分制為:4"<<endl;break; /同上 case 7: cout<<"五分制為:3"<<endl;break; case 6: cout<<"五分制為:2"<<endl;break; default : cout<<"五分制為:1"<<endl;break; /不為以上的值就執(zhí)行此語(yǔ)句用switch語(yǔ)句實(shí)現(xiàn)分析如上的注釋2. 編程求3100之間的所有素?cái)?shù),要求編寫一個(gè)素?cái)?shù)判斷的函數(shù),然后在主程序中調(diào)用。#include<iostream.h>#include<math.h>int main() int i; /定義變量i int fun(int); /函數(shù)的聲明 for(i=3;i<=100;i+) if(fun(i) cout<<i<<endl; /根據(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. 編寫程序列出斐波那契(Fibonacci)數(shù)列的前20項(xiàng)。(Fibonacci數(shù)列是指前兩項(xiàng)為1,后面的每一項(xiàng)都為前兩項(xiàng)之和。要求用數(shù)組存儲(chǔ)數(shù)列)。#include <iostream.h>void main()int a20=1,1; /初始化數(shù)組a,a0=a1=1int i; for(i=2;i<20;i+) ai=ai-1+ai-2; /后面每一項(xiàng)都為前兩項(xiàng)之和 for(i=0;i<20;i+) /輸出前20個(gè)斐波那契數(shù)列 cout<<ai<<endl; 4. 編程實(shí)現(xiàn)輸入10個(gè)整數(shù),從小到大排列輸出。#include <iostream.h>int main()int a10; /定義一個(gè)整型數(shù)組int i,j,t; /定義三個(gè)整型變量i,j,tcout<<"從鍵盤輸入十個(gè)整數(shù):"<<endl; /提示性語(yǔ)句從鍵盤輸入十個(gè)整數(shù)for(i=0;i<10;i+)cin>>ai; /輸入數(shù)據(jù) for(i=0;i<10;i+) /采用冒泡排序法 外部循環(huán) for(j=0;j<10;j+) /內(nèi)部循環(huán) if(aj>aj+1) /如果不是從小到大排列則交換位置關(guān)系 t=aj; aj=aj+1; aj+1=t; for(i=0;i<10;i+) /輸出整理好后的數(shù)組 cout<<ai<<endl; 實(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)。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 <iostream.h>class time /聲明的一個(gè)時(shí)間類timepublic: /公共函數(shù)成員void SetTime(int i,int j,int k)Hour=i;Minute=j;Second=k;void PrintTime()cout<<Hour<<"點(diǎn)"cout<<Minute<<"分"cout<<Second<<"秒"<<endl;private: /三個(gè)私有成員int Hour;int Minute;int Second;int main()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 <iostream.h>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()cout<<Hour<<"點(diǎn)"cout<<Minute<<"分"cout<<Second<<"秒"<<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 <iostream.h>class timepublic:time();void PrintTime();private:int Hour;int Minute;int Second;time:time()Hour=0;Minute=0;Second=0;inline void time:PrintTime()cout<<Hour<<"點(diǎn)"cout<<Minute<<"分"cout<<Second<<"秒"<<endl;int main()time s1;cout<<"s1 output:"<<endl;s1.PrintTime();4.在時(shí)間類的析構(gòu)函數(shù)中輸出“Good bye!”。說(shuō)明析構(gòu)函數(shù)的特點(diǎn)和調(diào)用時(shí)機(jī)。#include <iostream.h>class timepublic:time(int i,int j,int k); /構(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ù) cout<<"goodbye"<<endl;void time:PrintTime()cout<<Hour<<"點(diǎn)"cout<<Minute<<"分"cout<<Second<<"秒"<<endl;int main()time s(10,40,50);s.PrintTime();析構(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 <iostream.h>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;Minute=p.Minute-20;Second=p.Second-40;void PrintTime()cout<<Hour<<"點(diǎn)"cout<<Minute<<"分"cout<<Second<<"秒"<<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)四 類與對(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é)生信息的輸入和顯示。#include<iostream>using namespace std;class MyArraypublic: MyArray(int leng) length=leng; alist=new intlength; MyArray() delete alist; void input() int i; for(i=0;i<length;i+) cin>>alisti; void display()int j;for(j=0;j<length;j+)cout<<alistj<<endl;protected:int *alist;int length;int main()int leng;cin>>leng;MyArray A(leng);A.input();A.display();return(0);2.修改上一個(gè)程序中的main函數(shù):定義一個(gè)student類的指針p,使其指向上述數(shù)組的第0個(gè)元素,并通過(guò)該指針實(shí)現(xiàn)對(duì)10個(gè)學(xué)生信息的輸入和顯示。最后簡(jiǎn)要說(shuō)明對(duì)象數(shù)組、對(duì)象指針和普通數(shù)組和指針有何區(qū)別和聯(lián)系。#include <iostream>#include <string>using namespace std;class studentprivate:int sno;string name;int age;int score;public:void input()cin>>sno>>name>>age>>score;void print()cout<<"學(xué)號(hào)"<<sno<<endl;cout<<"姓名"<<name<<endl;cout<<"年齡"<<age<<endl;cout<<"分?jǐn)?shù)"<<score<<endl;int main()student k10;student *p;int i;for(i=0;i<=9;i+)p=&ki;p->input();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 <iostream>#include <string>using namespace std;class studentprivate:int sno;string name;int age;int score;public:void input()cin>>sno>>name>>age>>score;void print()cout<<"this="<<this<<"學(xué)號(hào)"<<sno<<endl;cout<<"姓名"<<name<<endl;cout<<"年齡"<<age<<endl;cout<<"分?jǐn)?shù)"<<score<<endl;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)造函數(shù)、析構(gòu)函數(shù)的編寫以及靜態(tài)成員的初始化,并說(shuō)明這兩個(gè)成員設(shè)置為靜態(tài)成員的原因。#include <iostream>#include <string>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()cin>>sno>>name>>age>>score;void print()cout<<"學(xué)號(hào)"<<sno<<endl;cout<<"姓名"<<name<<endl;cout<<"年齡"<<age<<endl;cout<<"分?jǐn)?shù)"<<score<<endl;void show()cout<<"學(xué)生人數(shù):"<<count;cout<<"平均成績(jī):"<<average<<endl;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;float 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ù)print相同的功能。說(shuō)明友元函數(shù)作用以及和成員函數(shù)的區(qū)別。#include <iostream>#include <string>using namespace std;class studentprivate:int sno;string name;int age;int score;public:void input()cin>>sno>>name>>age>>score;friend void output(student &);void print()cout<<"學(xué)號(hào)"<<sno<<endl;cout<<"姓名"<<name<<endl;cout<<"年齡"<<age<<endl;cout<<"分?jǐn)?shù)"<<score<<endl;void output(student &p)cout<<"學(xué)號(hào)"<<p.sno<<"姓名"<<p.name<<endl;cout<<"年齡"<<p.age<<"分?jǐn)?shù)"<<p.score<<endl;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)很大的開銷,降低程序運(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)康暮鸵?理解類的繼承的概念,能夠定義和使用類的繼承關(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 <iostream.h>class MyArraypublic: MyArray(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;i<length;i+)cin>>alisti;void MyArray:Display()int j;cout<<"輸出的數(shù)組元素為:"<<endl;for(j=0;j<length;j+)cout<<alistj<<endl;int main() MyArray s(4); s.Input(); s.Display();2 定義一個(gè)類SortArray繼承自MyArray,在該類中定義函數(shù)實(shí)現(xiàn)排序功能。#include<iostream>using namespace std;class MyArraypublic: MyArray(int leng) length=leng; alist=new intlength; MyArray() delete alist; void input() int i; for(i=0;i<length;i+) cin>>alisti; void display()int j;for(j=0;j<length;j+)cout<<alistj<<endl;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;i<length;i+)for(j=i+1;j<length;j+)if(alisti>alistj) t=alisti; alisti=alistj; alistj=t;for(i=0;i<length;i+)cout<<alisti; ;int main()int leng;cin>>leng;SortArray A(leng);A.input();A.display();A.pai();return(0);3 定義一個(gè)類ReArray繼承自MyArray,在該類中定義函數(shù)實(shí)現(xiàn)逆轉(zhuǎn)功能。#include<iostream>using namespace std;class MyArraypublic: MyArray(int leng) length=leng; alist=new intlength; MyArray() delete alist; void input() int i; for(i=0;i<length;i+) cin>>alisti; void display()int j;for(j=0;j<length;j+)cout<<alistj<<endl;protected:int *alist;int length;class ReArray:public MyArraypublic:ReArray(int leng):MyArray(leng)void nizhuan()int j;int t;for(j=0;j<length/2;j+)t=alistj;alistj=alistlength-1-j;alistlength-j-1=t;for(j=0;j<length;j+)cout<<alistj<<" " ;int main()int leng;cin>>leng;ReArray A(leng);A.input();A.display();A.nizhuan();return(0);4 定義一個(gè)類AverArray繼承自MyArray,在該類中定義函數(shù)Aver求解整數(shù)的平均值。#include<iostream>using namespace std;class MyArraypublic: MyArray(int leng) length=leng; alist=new intlength; MyArray() delete alist; void input() int i; for(i=0;i<length;i+) cin>>alisti; void display()int j;for(j=0;j<length;j+)cout<<alistj<<endl;protected:int *alist;int length;class AverArray:public MyArraypublic:AverArray(int leng):MyArray(leng)void pingjun()int j;float sum;float ave;sum=0.0;for(j=0;j<length;j+)sum+=alistj;ave=sum/length;cout<<ave<<endl; ;int main()int leng;cin>>leng;AverArray A(leng);A.input();A.display();A.pingjun();return(0);5 定義NewArray類,同時(shí)繼承了SortArray、ReArray和AverArray,使得NewArray類的對(duì)象同時(shí)具有排序、逆轉(zhuǎn)和求平均值的功能。在繼承的過(guò)程中聲明為虛基類,體會(huì)虛基類在解決二義性問(wèn)題中的作用。 #include<iostream>using namespace std;class MyArray public: MyArray(int leng) length=leng; alist=new intlength; MyArray() delete alist; void input() int i; for(i=0;i<length;i+) cin>>alisti; void display()int j;for(j=0;j<length;j+)cout<<alistj<<endl;protected:int *alist;int length;class SortArray:virtual public MyArraypublic:SortArray(int leng):MyArray(leng)void pai()int i;int j;int t;for(i=0;i<length;i+)for(j=i+1;j<length;j+)if(alisti>alistj) t=alisti; alisti=alistj; alistj=t;for(i=0;i<length;i+)cout<<alisti; ;class ReArray:virtual public MyArraypublic:ReArray(int leng):MyArray(leng)void nizhuan()int j;int t;for(j=0;j<length/2;j+)t=alistj;alistj=alistlength-1-j;alistlength-j-1=t;for(j=0;j<length;j+)cout<<alistj<<" " ;class AverArray:virtual public MyArraypublic:AverArray(int leng):MyArray(leng)void pingjun() int j; float sum; float ave; sum=0.0;for(j=0;j<length;j+)sum+=alistj;ave=sum/length;cout<<ave<<endl; ;class NewArray:public SortArray,public ReArray,public AverArraypublic: NewArray(int leng):MyArray(leng),SortArray(leng),ReArray(leng),AverArray(leng);int main()int leng;cin>>leng;NewArray 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 operator<(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<iostream.h>#include<stdlib.h>class 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

    注意事項(xiàng)

    本文(《面向?qū)ο蟪绦蛟O(shè)計(jì)》C++實(shí)驗(yàn)報(bào)告)為本站會(huì)員(仙***)主動(dòng)上傳,裝配圖網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)上載內(nèi)容本身不做任何修改或編輯。 若此文所含內(nèi)容侵犯了您的版權(quán)或隱私,請(qǐng)立即通知裝配圖網(wǎng)(點(diǎn)擊聯(lián)系客服),我們立即給予刪除!

    溫馨提示:如果因?yàn)榫W(wǎng)速或其他原因下載失敗請(qǐng)重新下載,重復(fù)下載不扣分。




    關(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>