c++程序的設(shè)計(jì)實(shí)驗(yàn)報(bào)告_第1頁
c++程序的設(shè)計(jì)實(shí)驗(yàn)報(bào)告_第2頁
c++程序的設(shè)計(jì)實(shí)驗(yàn)報(bào)告_第3頁
c++程序的設(shè)計(jì)實(shí)驗(yàn)報(bào)告_第4頁
c++程序的設(shè)計(jì)實(shí)驗(yàn)報(bào)告_第5頁
已閱讀5頁,還剩16頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

./C++程序設(shè)計(jì)實(shí)驗(yàn)報(bào)告:班級:學(xué)號:指導(dǎo)教師:實(shí)驗(yàn)一VC6.0環(huán)境入門與簡單程序設(shè)計(jì)一、實(shí)驗(yàn)?zāi)康模?、熟悉VC++6.0開了環(huán)境并編寫簡單的C++程序。3、使用C++語言編寫簡單的輸入輸出程序。4、使用VC++6.0的DEBUG調(diào)試功能:單步執(zhí)行、設(shè)置斷點(diǎn)、觀察變量值。二、實(shí)驗(yàn)容: 1、使用VC++建立一個(gè)標(biāo)準(zhǔn)C++程序,編譯、運(yùn)行如下程序:#include<iostream>Intmain<>{ Cout<<"HelloWorld!\n"; Cout<<"WelcometoC++!\n";} 2、編程計(jì)算圖形的面積。程序可計(jì)算圓形、長方形、正方形等的面積,運(yùn)行時(shí)首先提示用戶選擇圖形類型,然后根據(jù)不同圖形類型,輸入相關(guān)參數(shù)計(jì)算其面積,并將其顯示出來。#include<iostream>usingnamespacestd;voidcircle_area<>;voidrectangle_area<>;voidsquare_area<>;intmain<>{ inti; while<1> { cout<<"請輸入圖形類型〔1:圓形;2:長方形;3:正方形;4:退出。:"; cin>>i; switch<i> { case1:circle_area<>;break; case2:rectangle_area<>;break; case3:square_area<>;break; case4:return0; default:cout<<"輸入錯(cuò)誤!\n"; } }}voidcircle_area<>{floatr,s;cout<<"輸入圓的半徑:"; cin>>r;s=3.14*r*r;cout<<"該圓的面積是:"<<s<<endl; }voidrectangle_area<>{floata,b,s;cout<<"輸入長方形的長和寬:"; cin>>a>>b;s=a*b;cout<<"該長方形的面積是:"<<s<<endl;}voidsquare_area<>{floata,s;cout<<"輸入正方形的邊長:"; cin>>a;s=a*a;cout<<"該正方形的面積是:"<<s<<endl;}實(shí)驗(yàn)二函數(shù)的應(yīng)用一、實(shí)驗(yàn)?zāi)康模?、掌握函數(shù)的定義和調(diào)用方法。2、練習(xí)重載函數(shù)的使用。3、練習(xí)使用系統(tǒng)函數(shù)。4、學(xué)習(xí)使用VC++的DEBUG調(diào)試功能,使用STEPINTO追蹤到函數(shù)的部。二、實(shí)驗(yàn)容:1、編寫一個(gè)函數(shù)把華氏溫度轉(zhuǎn)換為攝氏溫度,轉(zhuǎn)換公式:C=<F-32>*5/9。#include<iostream>usingnamespacestd;voidWenDu<>;intmain<>{ WenDu<>; return0;}voidWenDu<>{doubles;doublef;cout<<"請輸入華氏溫度:";cin>>f;s=<<f-39>*5/9.0>;cout<<"攝氏溫度為"<<s<<"度"<<endl;}2、編寫重載函數(shù)Max1可分別求取兩個(gè)整數(shù),三個(gè)整數(shù),兩個(gè)雙精度數(shù),三個(gè)雙精度數(shù)的最大值。#include<iostream>usingnamespacestd;intMax1<inta,intb>;intMax1<inta,intb,intc>;doubleMax1<doublea,doubleb>;doubleMax1<doublea,doubleb,doublec>;intmain<>{ inta,b,c; doublex,y,z; cout<<"請輸入兩個(gè)整數(shù):"; cin>>a>>b; cout<<"最大值是:"<<Max1<a,b><<endl; cout<<"請輸入三個(gè)整數(shù):"; cin>>a>>b>>c; cout<<"最大值是:"<<Max1<a,b,c><<endl; cout<<"請輸入兩個(gè)浮點(diǎn)數(shù):"; cin>>x>>y; cout<<"最大值是:"<<Max1<x,y><<endl; cout<<"請輸入三個(gè)浮點(diǎn)數(shù):"; cin>>x>>y>>z; cout<<"最大值是:"<<Max1<x,y,z><<endl; return0;}intMax1<inta,intb>{ intt; if<a>b> t=a; elseif<b>a> t=b; returnt;}intMax1<inta,intb,intc>{ intt; if<a>b&&a>c> t=a; elseif<b>a&&b>c> t=b; elseif<c>a&&c>b> t=c; returnt;}doubleMax1<doublea,doubleb>{ doublet; if<a>b> t=a; elseif<b>a> t=b; returnt;}doubleMax1<doublea,doubleb,doublec>{ doublet; if<a>b&&a>c> t=a; elseif<b>a&&b>c> t=b; elseif<c>a&&c>b> t=c; returnt;}3、使用系統(tǒng)函數(shù)pow<x,y>計(jì)算XY的值,注意包含頭文件math.h。#include<iostream>#include<math.h>usingnamespacestd;intmain<>{ intx,y; cout<<"輸入x,y:"; cin>>x>>y; cout<<"x^y="<<pow<x,y><<endl;return0;}4、使用遞歸的方法編寫函數(shù)求Fibonacci級數(shù),觀察遞歸調(diào)用的過程。#include<iostream>usingnamespacestd;voidFibonacci<>;intmain<>{Fibonacci<>;return0;}voidFibonacci<>{inta,b,n,i,t;cout<<"請輸入前兩項(xiàng):";cin>>a>>b;cout<<"請輸入顯示個(gè)數(shù):";cin>>n;cout<<a<<" "<<b<<" ";for<i=2;i<n;i++>{t=a+b;cout<<t<<" ";a=b;b=t;if<<i+1>%5==0>cout<<endl;}cout<<endl;}實(shí)驗(yàn)三類與對象一、實(shí)驗(yàn)?zāi)康模?、掌握類與對象的聲明和使用。2、觀察構(gòu)造函數(shù)與析構(gòu)函數(shù)的執(zhí)行過程。3、掌握具有不同訪問屬性的成員的訪問方式。4、使用DEBUG調(diào)試功能觀察程序流程,跟蹤觀察類的構(gòu)造函數(shù)、析構(gòu)函數(shù)、成員函數(shù)的執(zhí)行順序。二、實(shí)驗(yàn)容:1、聲明一個(gè)CPU類,包含等級<rank>、頻率<frequency>、電壓<voltage>等屬性,有兩個(gè)公有成員函數(shù)run、stop。其中,rank為枚舉類型CPU_Rank,聲明為enumCPU_Rank{P1=1,P2,P3,P4,P5,P6,P7},frequency為單位是MHz的整型數(shù),voltage為浮點(diǎn)型的電壓值,觀察構(gòu)造函數(shù)和析構(gòu)函數(shù)的調(diào)用順序。2、聲明一個(gè)簡單的computer類,有數(shù)據(jù)成員芯片<cpu>、存<ram>、光驅(qū)<cdrom>等等,有兩個(gè)公有成員函數(shù)run、stop。cpu為CPU類的一個(gè)對象,ram為RAM類的一個(gè)對象,cdrom為CDROM類的一個(gè)對象,聲明并實(shí)現(xiàn)這個(gè)類。#include<iostream>usingnamespacestd;classCPU{public: voidrun_cpu<>; voidstop_cpu<>; CPU<intfre,doublevol>; CPU<>; ~CPU<>; CPU<CPU&p>;private: intfre_cpu; doublevol_cpu; };classRAM{public: voidrun_ram<>; voidstop_ram<>; RAM<intfre,doublevol>; RAM<>; ~RAM<>; RAM<RAM&p>;private: intfre_ram; doublevol_ram;};classCUMPUTER{ friendclassCPU; friendclassRAM;public: voidrun_cum<>; voidstop_cum<>; CUMPUTER<>; CUMPUTER<CPUc,RAMr>; CUMPUTER<CUMPUTER&c>; ~CUMPUTER<>; private: CPUcpu; RAMram;};voidCPU::run_cpu<>{ cout<<"CPU運(yùn)行"<<endl; cout<<fre_cpu<<","<<vol_cpu<<endl;}voidCPU::stop_cpu<>{ cout<<"CPU停止"<<endl;}CPU::CPU<>{ fre_cpu=0; vol_cpu=0; cout<<"CPU缺省樣式構(gòu)造函數(shù)調(diào)用完成"<<endl;}CPU::CPU<intfre,doublevol>{ fre_cpu=fre;vol_cpu=vol; cout<<"CPU構(gòu)造函數(shù)調(diào)用完成"<<endl;}CPU::~CPU<>{ cout<<"CPU析構(gòu)函數(shù)調(diào)用完成"<<endl;}CPU::CPU<CPU&p>{ fre_cpu=p.fre_cpu; vol_cpu=p.vol_cpu; cout<<"CPU拷貝構(gòu)造函數(shù)調(diào)用完成"<<endl;}voidRAM::run_ram<>{ cout<<"RAM運(yùn)行"<<endl; cout<<fre_ram<<","<<vol_ram<<endl;}voidRAM::stop_ram<>{ cout<<"RAM停止"<<endl;}RAM::RAM<>{ fre_ram=0; vol_ram=0; cout<<"RAM缺省樣式構(gòu)造函數(shù)調(diào)用完成"<<endl;}RAM::RAM<intfre,doublevol>{ fre_ram=fre; vol_ram=vol; cout<<"RAM構(gòu)造函數(shù)調(diào)用完成"<<endl;}RAM::~RAM<>{ cout<<"RAM析構(gòu)函數(shù)調(diào)用完成"<<endl;}RAM::RAM<RAM&p>{ fre_ram=p.fre_ram; vol_ram=p.vol_ram; cout<<"RAM拷貝構(gòu)造函數(shù)調(diào)用完成"<<endl;}voidCUMPUTER::run_cum<>{ cout<<"cumputer運(yùn)行"<<endl; cpu.run_cpu<>;ram.run_ram<>;}voidCUMPUTER::stop_cum<>{ cout<<"cumputer停止"<<endl; cpu.stop_cpu<>;ram.stop_ram<>;}CUMPUTER::CUMPUTER<CPUc,RAMr>:cpu<c>,ram<r>{ cout<<"CUMPUTER構(gòu)造函數(shù)調(diào)用完成"<<endl;}CUMPUTER::CUMPUTER<CUMPUTER&c>{ cpu=c.cpu;ram=c.ram; cout<<"CUMPUTER拷貝構(gòu)造函數(shù)調(diào)用完成"<<endl;}CUMPUTER::~CUMPUTER<>{ cout<<"CUMPUTER析構(gòu)函數(shù)調(diào)用完成"<<endl;}intmain<>{ CPUc1<1,5.5>; CPUc2=c1; RAMr1<3,8.8>; RAMr2=r1; CUMPUTERcum1<c1,r1>; CUMPUTERcum2=cum1; c2.run_cpu<>; r2.run_ram<>; cum1.run_cum<>; cum1.stop_cum<>; cum2.run_cum<>; cum2.stop_cum<>; system<"pause">;}實(shí)驗(yàn)四C++程序結(jié)構(gòu)一、實(shí)驗(yàn)?zāi)康模?、觀察程序運(yùn)行時(shí)變量的作用域、生存期和可見性。2、掌握類的靜態(tài)成員的使用。3、學(xué)習(xí)多文件結(jié)構(gòu)在C++程序中的使用。二、實(shí)驗(yàn)容:1、運(yùn)行下面的程序,觀察變量x、y的值。#include<iostream>usingnamespacestd;voidfn1<>;intx=1,y=2;intmain<>{ cout<<"Begin..."<<endl;cout<<"x="<<x<<endl;cout<<"y="<<y<<endl; cout<<"Evaluatexandyinmain<>..."<<endl; intx=10,y=20;cout<<"x="<<x<<endl;cout<<"y="<<y<<endl; cout<<"Stepintofn1<>..."<<endl;fn1<>;cout<<"Backinmain"<<endl;cout<<"x="<<x<<endl;cout<<"y="<<y<<endl;return0;}voidfn1<>{inty=200;cout<<"x="<<x<<endl;cout<<"y="<<y<<endl;}2、實(shí)現(xiàn)客戶機(jī)<CLIENT>類。聲明字符型靜態(tài)數(shù)據(jù)成員ServerName,保存其服務(wù)器名稱;整型靜態(tài)數(shù)據(jù)成員ClientNum,記錄已定義的客戶數(shù)量;定義靜態(tài)函數(shù)ChangeServerName<>改變服務(wù)器名稱。在頭文件client.h中聲明類,在文件client.cpp中實(shí)現(xiàn),在文件test.cpp中測試這個(gè)類,觀察相應(yīng)的成員變量取值的變化情況。#include<iostream>usingnamespacestd;classClient{private: staticcharServerName[10]; staticintClientNum;public: Client<>; ~Client<>; static voidChangeServerName<>; voidshow<>;};intClient::ClientNum=0;charClient::ServerName[10]="abcd";voidClient::show<>{ cout<<"服務(wù)器名稱是:"; cout<<ServerName<<endl; cout<<"客戶數(shù)量是:"; cout<<ClientNum<<endl; cout<<endl;}voidClient::ChangeServerName<>{ cout<<"請輸入服務(wù)器名稱:"; cin>>ServerName;}Client::Client<>{ cout<<"客戶已記錄"<<endl; ClientNum++; }Client::~Client<>{ cout<<""<<endl; ClientNum--;}intmain<>{ Client::ChangeServerName<>; Clienta; a.show<>; Client::ChangeServerName<>; Clientb; b.show<>; Client::ChangeServerName<>; Clientc; c.show<>; system<"pause">;}實(shí)驗(yàn)五數(shù)組、指針與字符串一、實(shí)驗(yàn)?zāi)康模?、學(xué)習(xí)使用數(shù)組數(shù)據(jù)對象及字符串的組織與處理。2、學(xué)習(xí)使用標(biāo)準(zhǔn)C++庫。3、掌握指針的使用方法,并通過DEBUG觀察指針容及其所指的對象的容。4、練習(xí)通過動態(tài)存分配實(shí)現(xiàn)動態(tài)數(shù)組,并體會指針在其中的作用。二、實(shí)驗(yàn)容:1、編寫并測試3×3矩陣轉(zhuǎn)置函數(shù),使用數(shù)組保存3×3矩陣。#include<iostream>usingnamespacestd;voidmain<>{ intJuZheng[3][3]={11,44,98,36,45,82,48,91,64}; inti,j; intNew[3][3]; for<i=0;i<3;i++> for<j=0;j<3;j++> { New[j][i]=JuZheng[i][j]; } cout<<"原矩陣是:"<<endl; for<i=0;i<3;i++> { for<j=0;j<3;j++> cout<<JuZheng[i][j]<<" "; cout<<endl; } cout<<"轉(zhuǎn)置后矩陣是:"<<endl; for<i=0;i<3;i++> { for<j=0;j<3;j++> cout<<New[i][j]<<" "; cout<<endl; }}2、使用動態(tài)存分配生成動態(tài)數(shù)組來重新完成上題。#include<iostream>usingnamespacestd;intmain<>{ inttemp; int**a; a=newint*[3]; cout<<"輸入數(shù)組元素:"<<endl; for<inti=0;i<3;i++> if<<a[i]=newint[3]>==NULL> exit<0>; for<i=0;i<3;i++> { for<intj=0;j<3;j++> cin>>a[i][j]; } //輸出原數(shù)組 cout<<"原數(shù)組:"<<endl; for<i=0;i<3;i++> { for<intj=0;j<3;j++> cout<<""<<a[i][j]; cout<<endl; } for<i=0;i<3;i++> { for<intj=i;j<3;j++> { temp=a[j][i]; a[j][i]=a[i][j]; a[i][j]=temp; } } cout<<"轉(zhuǎn)置后數(shù)組:"<<endl; for<i=0;i<3;i++> { for<intj=0;j<3;j++> cout<<""<<a[i][j]; cout<<endl; }}3、編程實(shí)現(xiàn)兩字符串的連接。要求使用字符數(shù)組保存字符串,不允許使用系統(tǒng)函數(shù)。#include<iostream>usingnamespacestd;intmain<>{charstr1[40];charstr2[20];inti=0,j=0;cout<<"請輸入第一個(gè)字符串:";cin>>str1;cout<<"請輸入第二個(gè)字符串:";cin>>str2;while<str1[i]!='\0'>i++;while<str2[j]!='\0'>{str1[i]=str2[j];i++;j++;}str1[i]='\0';cout<<"連接后的字符串:"<<str1<<endl;}4、使用string類聲明字符串對象,重新實(shí)現(xiàn)上一小題。#include<iostream>#include<string>usingnamespacestd;intmain<>{strings1;strings2;cout<<"請輸入第一個(gè)字符串:";cin>>s1;cout<<"請輸入第二個(gè)字符串:";cin>>s2;s1+=s2;cout<<"連接后的字符串為:"<<s1<<endl;return0;}實(shí)驗(yàn)六繼承與派生一、實(shí)驗(yàn)?zāi)康模?、學(xué)習(xí)聲明和使用類的繼承關(guān)系,聲明派生類。2、熟悉不同繼承方式下對基類成員的訪問控制。3、學(xué)習(xí)利用虛基類解決二義性問題。二、實(shí)驗(yàn)容:1、定義一個(gè)基類Animal,有私有數(shù)據(jù)成員變量age,構(gòu)造其派生類dog,在其成員函數(shù)setAge<intn>中直接給Age賦值,看看會有什么問題,把a(bǔ)ge改為公有成員變量,還會有問題嗎?編程測試一下。#include<iostream>usingnamespacestd;classAnimal{public: intage;};classDog:publicAnimal{public:SetAge<intn>{ age=n;cout<<"年紀(jì)是:"<<age<<endl;}};voidmain<>{ Dogdog; dog.SetAge<5>;}2、定義一個(gè)基類BaseClass,有整型成員變量Number,構(gòu)造其派生類DerivedClass,觀察構(gòu)造函數(shù)的析構(gòu)函數(shù)的執(zhí)行情況。#include<iostream>usingnamespacestd;classBassClass{private: intNumber;public: BassClass<>; BassClass<intnum>;~BassClass<>; voidGetNum<> { cout<<"Thenumberis"<<Number<<endl; }};classDerivedClass:publicBassClass{public: DerivedClass<>:BassClass<> { cout<<"缺省樣式構(gòu)造函數(shù)調(diào)用完成"<<endl; } DerivedClass<intnum>:BassClass<num> {cout<<"帶參數(shù)構(gòu)造函數(shù)調(diào)用完成"<<endl; }; ~DerivedClass<> { cout<<"析構(gòu)函數(shù)調(diào)用完成"<<endl; } voidGetNumner<> { GetNum<>; }};BassClass::BassClass<>{ Number=1;cout<<"缺省樣式構(gòu)造函數(shù)調(diào)用完成"<<endl;}BassClass::BassClass<intnum>{ Number=num; cout<<"帶參數(shù)構(gòu)造函數(shù)調(diào)用完成"<<endl;}BassClass::~BassClass<>{ cout<<"析構(gòu)函數(shù)調(diào)用完成"<<endl;}voidmain<>{ BassClassb1; BassClassb2<3>; DerivedClassd1; DerivedClassd2<2>; b1.GetNum<>; b2.GetNum<>; d1.GetNumner<>; d2.GetNumner<>;}3、定義一個(gè)車<Vehicle>基類,具有MaxSpeed,Weight等成員變量,Run,Stop等成員函數(shù),由此派生出自行車<bicycle>類、汽車<motorcar>類。自行車類有高度<height>等屬性,汽車類有座位數(shù)<SeatNum>等屬性。從bicycle和moorcar派生出摩托車<motorcycle>類,在繼承過程中注意把vehicle設(shè)置為虛基類。如果不設(shè)為虛基類,會出現(xiàn)什么問題?編程測試一下。實(shí)驗(yàn)七多態(tài)性一、實(shí)驗(yàn)?zāi)康模?、掌握運(yùn)算符重載的方法。2、掌握使用虛函數(shù)實(shí)現(xiàn)動態(tài)多態(tài)性。二、實(shí)驗(yàn)容:1、定義Point類,有坐標(biāo)x,y兩個(gè)成員變量;對Point類重載++、――運(yùn)算符,實(shí)現(xiàn)對坐標(biāo)值的改變。#include<iostream>usingnamespacestd;classPoint{public:Point<>{}Point<floata,floatb>{ x=a; y=b;}Pointoperator++<>{ x++; y++; returnPoint<x,y>;}Pointoperator--<>{ x--; y--; returnPoint<x,y>;}voiddisplay<>{ cout<<"<"<<x<<","<<y<<">"<<endl;}private: floatx; floaty;};voidmain<>{ Pointp<6,9>; cout<<"原來點(diǎn)的坐標(biāo):"; p.display<>; p++; cout<<"自加后點(diǎn)的坐標(biāo):"; p.display<>; p--; cout<<"再自減后點(diǎn)的坐標(biāo):"; p.display<>;}2、定義一個(gè)車<vehicle>基類,有Run、Stop等成員函數(shù),由此派生出自行車類<biclcle>、汽車類<motorcar>,從bicycle和motorcar派生出摩托車類<motorcycle>,它們都有Run、Stop等成員函數(shù)。觀察虛函數(shù)的作用。#include<iostream>usingnamespacestd;classVehicle{public: voidRun<> { cout<<"車啟動了"<<endl; } voidStop<> { cout<<"車停止了"<<endl; }};classbicycle:publicVehicle{public: voidRun<> { cout<<"自行車啟

溫馨提示

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

提交評論