面向?qū)ο蟪绦蛟O(shè)計(jì)-C++試驗(yàn)報(bào)告_第1頁(yè)
面向?qū)ο蟪绦蛟O(shè)計(jì)-C++試驗(yàn)報(bào)告_第2頁(yè)
面向?qū)ο蟪绦蛟O(shè)計(jì)-C++試驗(yàn)報(bào)告_第3頁(yè)
面向?qū)ο蟪绦蛟O(shè)計(jì)-C++試驗(yàn)報(bào)告_第4頁(yè)
面向?qū)ο蟪绦蛟O(shè)計(jì)-C++試驗(yàn)報(bào)告_第5頁(yè)
已閱讀5頁(yè),還剩52頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

C++試驗(yàn)報(bào)告

試驗(yàn)一VisuaIC++6.0開(kāi)發(fā)環(huán)境應(yīng)用

入門

(驗(yàn)證性試驗(yàn)2學(xué)時(shí))

1.目的要求:

了解VisualC++6.0的特點(diǎn),熟識(shí)了解VisualC++6.0的

開(kāi)發(fā)環(huán)境,學(xué)習(xí)使用VisualC++6.0編寫標(biāo)準(zhǔn)的C++掌握臺(tái)應(yīng)

用程序。

2.試驗(yàn)內(nèi)容:

使用VisualC++來(lái)建立一個(gè)非圖形化的標(biāo)準(zhǔn)C++程序,

編譯、運(yùn)行教材中的例3-3,用公式法求解PI的數(shù)值,并嘗

試采用其他方法求解并獲得相同的結(jié)果。

Ji=16arctan(l/5)-4arctan(1/239)

arctan(x)=x-x3/3+X5/5-X7/7H?…求n=?

(1)源代碼和說(shuō)明:

#include<iostream>

usingnamespacestd;

doublearctan(doublex){

doublesqr=x*x;

doublee=x;

doubler=0;

inti;

while(e/i>le-15){

doublef=e/i;

r=(i%4==l)?r+f:r-f;

e=e*sqr;

i+=2;

returnr;

intmain()

(

doublea=16.0*arctan(1/5.0);

doubleb=4.0*arctan(1/239.0);

cout?nPI="?a-b?endl;

return0;

)

2)運(yùn)行結(jié)果:

1

試驗(yàn)二C++簡(jiǎn)潔程序設(shè)計(jì)試驗(yàn)

(驗(yàn)證性試驗(yàn)4學(xué)時(shí))

I.目的要求:

會(huì)編寫簡(jiǎn)潔的C++程序;復(fù)習(xí)基本數(shù)據(jù)類型變量和常量

的應(yīng)用;復(fù)習(xí)運(yùn)算符與表達(dá)式的應(yīng)用;復(fù)習(xí)結(jié)構(gòu)化程序設(shè)計(jì)

基本掌握結(jié)構(gòu)的應(yīng)用;復(fù)習(xí)自定義數(shù)據(jù)類型的應(yīng)用;練習(xí)使

用簡(jiǎn)潔的輸入輸出;觀看頭文件的作用;學(xué)會(huì)使用VC6.0開(kāi)

發(fā)環(huán)境中的debug調(diào)試功能;嫻熟程序設(shè)計(jì)中的技巧;

2.試驗(yàn)內(nèi)容:

1)給定一個(gè)字符變量輸出其二進(jìn)制形式。例如chara=W;

其二進(jìn)制為00100001。

1)源代碼和說(shuō)明

#include<iostream>

usingnamespacestd;

intmain()

(

charch;

intj,k[8]={0};

cout<<"請(qǐng)輸入一個(gè)字符:"?endl;

cin?ch;

for(j=0;j<=7;j++)

(

if(ch)

(

if(ch%2==0)

k[j]=0;

else

ch=(ch-(ch%2))/2;

)

)

for(j=7;j>=0;j-)

{

cout?k[j];

}

cout?endl;

2)運(yùn)行結(jié)果:

a"

「青輸人一個(gè)子符:

Ihshbsfgbfs

901101000

IPressanykeytocontinue

2)給定一個(gè)字符變量輸出其二進(jìn)制反轉(zhuǎn)形式。例如char

a=,a,;其二進(jìn)制為00100001,反轉(zhuǎn)形式為10000100。(提

示:使用位運(yùn)算)

1)源代碼和說(shuō)明:

#include<iostream>

usingnamespacestd;

intmain()

(

charch;

intj,k[8]={0};

cout<<"請(qǐng)輸入一個(gè)字符:"<<endl;

cin?ch;

for(j=0;j<=7;j++)

{

if(ch)

(

if(ch%2==0)

kfj]=O;

else

ch=(ch-(ch%2))/2;

cout?ch<<"二進(jìn)制是:”;

for(j=7;j>=0;j-)

(

cout?k[j];

}

cout?endl;

for(j=0;j<=7;j++)

(

k[j]=k[j]Al;

)

cout<<"二進(jìn)制反碼是:”;

for(j=7;j>=0;j-)

{

cout?kfj];

}

cout?endl;

}

試驗(yàn)結(jié)果:

"E:\vc6.0\MyPrqjects\aga\Debug\aga.exe

請(qǐng)輸入一個(gè)子將:

grdgdfg

二進(jìn)制是:0H00111

二進(jìn)制反碼是:10011000

Pressanykeytocontinue.

3)袋子里有紅,黃,藍(lán),綠,黑五種不同顏色的球若干

個(gè),從中取出三個(gè)不同顏色的球,編程輸出每種取法及統(tǒng)

計(jì)不同取法的總數(shù)(提示:使用枚舉)

1)源代碼和說(shuō)明;

#include<iostream>

usingnamespacestd;

enumcolor{red=0,yellow,blue,green,black};

boolisNum(inti)

(

intj=0;

for(intk=0;k<6;k++)

if(i?k&l==l)

j++;

returnj==3?true:false;

}

voidprintResult(inti)

(

for(intk=O;k<5;k++)

(

if(i?k&l==l)

switch(k)

(

casered:

cout?nred”;

break;

caseyellow:

cout?nyellow”;

break;

caseblue:

cout?nblue”;

break;

casegreen:

cout?"green

break;

caseblack:

cout?Hblack”;

break;

default:

cout?nen-or!!n;

break;

)

)

cout?""?endl;

)

voidmain()

(

intj=0;

cout?”可能的方案有:”;

for(inti=0;i<=32;i++)

(

if(isNum(i))

(

printResult(i);

j++;

)

)

cout<<"共有"《j<<"種方案"<<endl;

)

2)試驗(yàn)結(jié)果:

■E:\vc6.0\MyPrqjects\terw\Debug\terw.exe"1|回

可能的方案有:redyellowblue

redyellowgreen

redbluegreen

yellowbluegreen

redyelloviblack

redblueblack

5/ellowblueblack

redgreenblack

yellowgreenblack

bluegreenblack

共有i。種方案

Pressanykeytocontinue

試驗(yàn)三函數(shù)的應(yīng)用試驗(yàn)

(設(shè)計(jì)性試驗(yàn)2學(xué)時(shí))

1.目的要求:

把握函數(shù)的定義和調(diào)用方法;練習(xí)重載函數(shù)的使用;練

習(xí)使用系統(tǒng)函數(shù);學(xué)習(xí)使用VC++的debug調(diào)試功能,使用

stepinto追蹤到函數(shù)內(nèi)部。

2.試驗(yàn)內(nèi)容:

1)用遞歸的方法編寫函數(shù)求Fibonacci級(jí)數(shù),觀看遞歸調(diào)

用的過(guò)程。

源代碼和說(shuō)明:

#include<iostream>

usingnamespacestd;

intFibonacci(inti)

(

if(i==l)

return0;

else

(

if(i==2)

return1;

else

returnFibonacci(i-1)+Fibonacci(i-2);

)

)

intmain()

(

intn,j,i;

cin?n;

for(i=l;i<=n;i++)

(

j=Fibonacci(i);

cout?j?endl;

試驗(yàn)結(jié)果:

2)編寫重載函數(shù)Maxi可分別求取兩個(gè)整數(shù),三個(gè)整數(shù),

兩個(gè)雙精度數(shù),三個(gè)雙精度數(shù)的最大值。

源代碼和說(shuō)明:

#include<iostream>

usingnamespacestd;

intmaxl(inta,intb);

intmaxi(intq,intw,inte);

doublemaxi(doublei,doublej);

doublemaxi(doublek,doubleu,doublep);

voidmain()

(

inta,b,q,w,e;

doublei,j,p,u,k;

cout?npleaseentertwo(int)numbers:H?endl?endl;

cin?a?b;

maxl(a,b);

cout?npleaseenterthree(int)numbers:n?endl?endl;

cin?q?w?e;

maxl(q,w,e);

cout?npleaseentertwo(double)numbers:M?endl?endl;

cin?i?j;

maxl(i,j);

cout?npleaseenterthree(double)numbers:n?endl?endl;

cin?k?u?p;

maxl(k,u,p);

intmaxl(inta,intb)

(

if

(a>b){

cout?nthemaxnumber:n?a?endl;}

elsecout?"themaxnumber:n?b?endl;

return0;

)

intmaxi(intq,intw,inte)

(

inttemp;

if(q>=w)

(

temp=q;

if(temp>=e)

(

cout?"themaxnumbe亡"v<t6mp<<endl;

)

elsecout?Hthemaxnumber:n?e?endl;

else

temp=w;

if(temp>=e)

{

cout?nthemaxnumber:n?temp?endl;

)

elsecout?nthemaxnumber:"?e?endl;

return0;

doublemaxi(doublei,doublej)

(

if

(i>j){

cout?nthemaxnumber:n?i?endl;}

elsecout?nthemaxnumber:"<<j?endl;

return0;

}

doublemaxi(doublek,doubleu,doublep)

(

inttemp;

if(k>=u)

(

temp=k;

if(temp>=p)

(

cout?nthemaxnumber:"?temp?endl;

)

elsecout?nthemaxnumber:n?p?endl;

)

else

temp=u;

if(temp>=p)

{

cout?"themaxnumber:n?temp?endl;

)

elsecout?"themaxnumber:"?p?endl;

return0;

試驗(yàn)結(jié)果:

"E:\vc6.0\MyPrqjects\gaerfgas\Debug\gaerfgas.exe"

pleaseentertvio<int>nunbers:

56

themaxnumber:6

pleaseenterthree<int>nunhers:

257

Ithemaxnumber:?

[pleaseentertwo(double>nunbers:

|2.41.2

Ithemaxnumber:2.4

Ipleaseenterthree<double>numbers:

123.4334.2255.33

Ithemaxnumber:55.33

IPressanykeytocontinue

3)寫一個(gè)函數(shù),能夠接收身高、體重等數(shù)據(jù),能夠依據(jù)

身高、體重檢測(cè)身體狀況,胖,瘦等。

源代碼和說(shuō)明

#include<iostream>

usingnamespacestd;

voidSHENGC(doublei,doublej)

(

if(i<j*32)

cout?”這個(gè)人偏胖n?endl;

else

{if(i=j*32)

cout<<”這個(gè)人適中”<<endl;

else

coutvv”這個(gè)人偏瘦偏<endl;

intmain()

(

doublei,j;

cout<<”請(qǐng)輸入身高(cm)和體重(kg)"?endl;

cin?i?j;

SHENGC(ij);

2)試驗(yàn)結(jié)果

試驗(yàn)四類與對(duì)象試驗(yàn)

(設(shè)計(jì)性試驗(yàn)4學(xué)時(shí))

1.目的要求:

把握類的定義和使用;把握類對(duì)象的聲明;復(fù)習(xí)具有不

同訪問(wèn)屬性的成員的訪問(wèn)方式;觀看構(gòu)造函數(shù)和析構(gòu)函數(shù)的

執(zhí)行過(guò)程;學(xué)習(xí)類組合使用方法;使用VC++的debug調(diào)試

功能觀看程序流程,跟蹤觀看類的構(gòu)造函數(shù)、析構(gòu)函數(shù)、成

員函數(shù)的執(zhí)行挨次。

2.試驗(yàn)內(nèi)容:

1)定義一個(gè)CPU類,包含等級(jí)(Rank)、頻率(frequency)、

電壓(voltage)等屬性,有兩個(gè)公有成員函數(shù)run、stop。其

中,rank為枚舉類型CPU—Rank,定義為enum

CPU_Rank{Pl=1,P2,P3,P4,P5,P6,P7}frequency為單位是

MHz的整型數(shù),voltage為浮點(diǎn)型的電壓值。觀看構(gòu)造函

數(shù)和析構(gòu)函數(shù)的調(diào)用挨次。

源代碼和說(shuō)明:

#include<iostream>

usingnamespacestd;

enumCPU.Rank{P1=1,P2,P3,P4,P5,P6,P7};

classCPU

(

public:

CPU();

?CPU();

voidrun(enumCPU_Rankr,intf,doublev);

voidstop();

private:

enumCPU_RankRank;

intfrequency;

doublevoltage;

CPU::CPU()

(

cout?"調(diào)用構(gòu)造函數(shù)"<<endl;

)

CPU::~CPU()

(

cout?"調(diào)研析構(gòu)函數(shù)"<<endl;

)

voidCPU::run(enumCPU_Rankr,intf,doublev)

Rank=r;

frequency=f;

voltage=v;

)

voidCPU::stop()

(

cout?Rank?endl;

cout?frequency?endl;

cout?voltage?endl;

intmain()

(

enumCPU_Rankt=Pl;

CPUc;

c.run(t,2,4.865);

c.stopO;

)

試驗(yàn)結(jié)果:

'E:\vc6.0\MyProjects\gvfrdaf\Debug\gvfrdaf.exe"

調(diào)用構(gòu)造函數(shù)

1

2

4.865

調(diào)研析構(gòu)函數(shù)

Pressanykeytocontinue,

i.定義一個(gè)簡(jiǎn)潔的Computer類,有數(shù)據(jù)成員芯片

(cpu)、內(nèi)存(ram)、光驅(qū)(cdrom)等等,有兩個(gè)公有

成員函數(shù)run、stopocpu為CPU類的一個(gè)對(duì)象,

ram為RAM類的一個(gè)對(duì)象,cdrom為CDROM類

的一個(gè)對(duì)象,定義并實(shí)現(xiàn)這個(gè)類,觀看這些類的構(gòu)

造函數(shù)和析構(gòu)函數(shù)的調(diào)用挨次。

源代碼和說(shuō)明:

#include<iostream>

usingnamespacestd;

classCPU

(

public:

CPU()

(

cout?"CPU構(gòu)造函數(shù)被調(diào)用"<<endl;

)

~CPU()

(

cout?"CPU析構(gòu)函數(shù)被調(diào)用"<<endl;

)

);

classRAM

(

public:

RAM()

(

cout?"RAM構(gòu)造函數(shù)被調(diào)用,y<endl;

)

-RAM()

(

cout?"RAM析構(gòu)函數(shù)被調(diào)用"<<endl;

classCDROM

public:

CDROM()

(

cout?"CDROM構(gòu)造函數(shù)被調(diào)用"<<endl;

)

~CDROM()

(

cout?"CDROM析構(gòu)函數(shù)被調(diào)用"<<endl;

classComputer

(

private:

CPUcpu;

RAMram;

CDROMcdrom;

public:

Computer()

(

cout?”Computer構(gòu)造函數(shù)被調(diào)用”《endl;

)

-Computer。

(

cout?nComputer析構(gòu)函數(shù)被調(diào)用”《endl;

)

voidrun();

voidstop();

);

intmain()

(

ComputerC;

試驗(yàn)結(jié)果:

?"E:\vc6.0\MyProjects\fearf\Debug\fearf.exe'

ii.定義一個(gè)Body類,擁有身高、體重等數(shù)據(jù),能夠

依據(jù)身高、體重檢測(cè)身體狀況,要求設(shè)計(jì)相應(yīng)的函

數(shù)成員和構(gòu)造函數(shù)。

源代碼和說(shuō)明:

#include<iostream>

usingnamespacestd;

classbody

{

public:

body()

(

cout<<"構(gòu)造函數(shù)被調(diào)用"<<endl;

)

~body()

(

cout<<"析構(gòu)函數(shù)被調(diào)用"<<endl;

voidset(doubleh,doublew)

HIGH=h;

WEIGHT=w;

voidshow()

cout?"HIGH="?HIGH?endl;

cout?"WEIGHT="?WEIGHT?endl;

private:

doubleHIGH;

doubleWEIGHT;

);

intmain()

doublei,j;

bodya;

cout<<"請(qǐng)輸入身高(cm)和體重(kg)"?endl;

cin?i?j;

a.set(i,j);

a.show();

)

試驗(yàn)結(jié)果:

*'E:\vc6.0\MyProjects\fearf\Debug\fearf.exe"

構(gòu)造函燮彼調(diào)用

請(qǐng)輸入身圖<cm〉和體重〈kg)

17865

HIGH=178

WEIGHT=65

析構(gòu)函數(shù)被調(diào)用

Pressanykeytocontinue

試驗(yàn)五C++程序的結(jié)構(gòu)試驗(yàn)

(設(shè)計(jì)性試驗(yàn)2學(xué)時(shí))

1.目的要求:

觀看程序運(yùn)行中變量的作用域、生存期和可見(jiàn)性;學(xué)習(xí)

類的靜態(tài)成員的使用;學(xué)習(xí)多文件結(jié)構(gòu)在C++程序中的使用。

1)實(shí)現(xiàn)客戶機(jī)(CLIENT)類。定義字符型靜態(tài)數(shù)據(jù)成員

ServerName,保存其服務(wù)器名稱;整型靜態(tài)數(shù)據(jù)成員

ClientNum,紀(jì)錄已定義的客戶數(shù)量;定義靜態(tài)函數(shù)

ChangeServerName。轉(zhuǎn)變服務(wù)器名稱。在頭文件client.h

中定義類,在文件client.cpp中實(shí)現(xiàn),在文件test.cpp中

測(cè)試這個(gè)類,觀看相應(yīng)的成員變量取值的變化狀況。(需

要給出main函數(shù)代碼和運(yùn)行結(jié)果)

//cilent.h

#include<iostream>

usingnamespacestd;

classClient

private:

staticcharSeverName[10];

staticintClientnum;

public:

Client()

cout?”Client構(gòu)造函數(shù)被調(diào)用”《endl;

Clientnum++;

?Client。

cout?MClient析構(gòu)函數(shù)被調(diào)用"<<endl;

Clientnum—;

staticvoidChangeServername()

(

inti;

cout<<”請(qǐng)輸入服務(wù)器的名字:”《endl;

cin?SeverName;

)

voidshow();

);

intClient::Clientnum=O;

charClient::SeverName[10]=HabcdH;

//Client.cpp

voidClient::show()

(

coutvv”該用戶機(jī)的服務(wù)器端名字是:“《endl;

cout?SeverName?endl;

coutvv”用戶數(shù)量有:n?endl;

cout?Clientnum?endl;

)

//Client.exe

voidmain()

(

Client::ChangeServername();

Clienta;

a.show();

Clientb;

b.showQ;

試驗(yàn)結(jié)果:

3

請(qǐng)輸入服務(wù)器的名字:

Imanv/uze

Clien南造函谷被調(diào)用

該用戶機(jī)的服騫器端名字是:

nanwuze

用戶數(shù)量有:

在ie史竹淳函蓼被調(diào)用

I該用戶機(jī)的服募器端名字是:

Inanwuze

用戶數(shù)量有:

2

Client折杓函數(shù)被調(diào)用

Client柿構(gòu)函數(shù)被調(diào)用

IPressanykeytocontinue

iii.完善Body類,將檢測(cè)胖瘦的標(biāo)準(zhǔn)定義為靜態(tài)數(shù)據(jù)

成員并設(shè)計(jì)相應(yīng)的靜態(tài)成員函數(shù)。(最好給出main

函數(shù)代碼和運(yùn)行結(jié)果)

源代碼和說(shuō)明:

#include<iostream>

usingnamespacestd;

classbody

public:

body()

cout?”body構(gòu)造函數(shù)被調(diào)用"<<endl;

?body。

cout?”body析構(gòu)函數(shù)被調(diào)用"<<endl;

voidset(doublei,doublej);

voidshow();

staticvoidset()

cout?"請(qǐng)輸入推斷胖瘦的標(biāo)準(zhǔn):"<<endl;

cin?body::i;

cout?n檢測(cè)胖瘦的標(biāo)準(zhǔn)是:"vvendl;

cout?body::i?endl;

)

private:

doubleheigh;

doubleweight;

staticdoublei;

);

doublebody::i=3.2;

voidbody::set(doublei,doublej)

(

heigh=i;

weight=j;

)

voidbody::show()

(

cout<<”這個(gè)人偏"<<endl;

if(heigh/weight>body::i)

cout?n瘦"?endl;

else

{

if(heigh/weight==body::i)

cout?"正常"?endl;

else

cout?"胖"?endl;

)

)

intmain()

(

doublei,j;

bodya;

body::set();

coutv<”請(qǐng)輸入身高(cm)和體重(kg):"vvendl;

cin?i?j;

a.set(i,j);

a.show();

試驗(yàn)結(jié)果:

?"E:\vc6.0\MyPrqjects\GEFED\Debug\GEFED.exe"回JaJ

body構(gòu)造函數(shù)被調(diào)用

請(qǐng)輸入判斷胖嬤的標(biāo)準(zhǔn):

32

檢測(cè)胖瘦的標(biāo)準(zhǔn)是:

3.2

請(qǐng)輸入身高<cm>和體重<kg〉:

17865

這個(gè)人偏

body析構(gòu)函數(shù)被調(diào)用

Pressanykeytocontinue.

iv.定義Boat;和Car兩個(gè)類,二者都有weight屬性,

定義二者的一個(gè)友元函數(shù)totalWeight(),計(jì)算二

者的和。

源代碼和說(shuō)明:

#include<iostream>

usingnamespacestd;

classBoat

(

public:

Boat()

(

cout?nBoat構(gòu)造函數(shù)被調(diào)用"<<endl;

?Boat。

cout?nBoat析構(gòu)函數(shù)被調(diào)用"<<endl;

}

voidset(doublei);

frienddoubleTotalweight(classBoat&j,classCar&k);

private:

doubleweight;

);

classCar

(

public:

Car()

{

cout?nCart構(gòu)造函數(shù)被調(diào)用"<<endl;

)

~Car()

{

cout?"Cart析構(gòu)函數(shù)被調(diào)用”<<?11(11;

}

voidset(doublei);

frienddoubleTotalweight(classBoat&j,classCar&k);

private:

doubleweight;

};

voidBoat::set(doublei)

(

this->weight=i;

)

voidCar::set(doublei)

(

this->weight=i;

)

doubleTotalweight(classBoat&j,classCar&k)

(

doublem;

m=j.weight+k.weight;

returnm;

intmain()

doublej;

Boatb;

Carc;

coutvv”請(qǐng)輸入Boat類的重量"v<endl;

cin?j;

b.set(j);

cout<<”請(qǐng)輸入Cart類的重量”<<endl;

cin?j;

c.set(j);

cout<<”兩者重量總和是"v<endl;

cout?Totalweight(b,c)?endl;

}

試驗(yàn)結(jié)果:

試驗(yàn)六數(shù)組、指針與字符串試驗(yàn)

(設(shè)計(jì)性試驗(yàn)4學(xué)時(shí))

1.目的要求:

學(xué)習(xí)使用數(shù)組;學(xué)習(xí)字符串?dāng)?shù)據(jù)的組織和處理;學(xué)習(xí)標(biāo)

準(zhǔn)C++庫(kù)的使用;把握指針的使用方法;練習(xí)通過(guò)debug觀

看指針的內(nèi)容及其所指的對(duì)象的內(nèi)容;練習(xí)通過(guò)動(dòng)態(tài)內(nèi)存安

排實(shí)現(xiàn)動(dòng)態(tài)數(shù)組,并體會(huì)指針在其中的作用;分別使用字符

數(shù)組和標(biāo)準(zhǔn)C++庫(kù)練習(xí)處理字符串的方法。

2.試驗(yàn)內(nèi)容:

1)編寫一個(gè)用于3X3數(shù)組保存矩陣的類,具有矩陣顯示

和矩陣轉(zhuǎn)置函數(shù)。

源代碼和說(shuō)明:

#include<iostream>

usingnamespacestd;

classpoint

(

public:

point()

(

cout?"point構(gòu)造函數(shù)被調(diào)用"<<endl;

)

~point()

(

cout?"point析構(gòu)函數(shù)被調(diào)用"<<endl;

)

voidset();

voidzhanz();

voidshow();

private:

intp[3][3];

);

voidpoint::set()

(

inti,j;

for(i=0;i<=2;i++)

(

for(j=0;j<=2;j++)

cin?p[i][j];

voidpoint::show()

inti,j;

for(i=0;i<=2;i++)

(

for(j=0;j<=2;j++)

coutv<p[i][jkv"

cout?endl;

voidpoint::zhanz()

(

inti,j,k=O;

intt[9];

for(i=0;i<=2;i++)

(

for(j=0;j<=2;j++)

t[k++]=pU][i];

for(k=0;k<=8;k++)

(

cout?t[k]?n

if(!((k+l)%3))

cout?endl;

intmain()

pointjuzhen;

coutvv”請(qǐng)輸入3*3矩陣的數(shù)據(jù)”《endl;

juzhen.setO;

cout?n矩陣是:"<<endl;

juzhen.show();

cout<v"轉(zhuǎn)置后矩陣是:n?endl;

juzhen.zhanzQ;

試驗(yàn)結(jié)果:

■,"E:\vc6.0\MyProjects\edaf\Debug\edaf.exe"

point構(gòu)造函數(shù)被調(diào)用

請(qǐng)輸入3*3矩蟀的數(shù)據(jù)

434215323

矩陣是:

434

215

323

轉(zhuǎn)置后矩陣是:

423

312

453

Point析構(gòu)函數(shù)被調(diào)用

Pressanykeytocontinue

V.使用動(dòng)態(tài)內(nèi)存安排生成動(dòng)態(tài)數(shù)組來(lái)重新完成上題,

使用指針實(shí)現(xiàn)函數(shù)的功能。

源代碼和說(shuō)明:

#include<iostream>

usingnamespacestd;

classzhuz

(

public:

zhuz()

(

cout?”zhuz構(gòu)造函數(shù)被調(diào)用"<<endl;

p=newint[3][3];

?zhuz()

cout?"zhuz析構(gòu)函數(shù)被調(diào)用"<<endl;

deletef]p;

)

voidset()

(

inti,j;

cout<〈"請(qǐng)輸入3*3矩陣數(shù)據(jù)"<<endl;

for(i=0;i<=2;i++)

(

for(j=0;j<=2;j++)

cin?p[i][j];

)

)

voidshow()

(

inti,j;

for(i=0;i<=2;i++)

(

for(j=0;j<=2;j++)

(

cout?p[i][j]?"

}

cout?endl;

)

)

voidzhuanz()

(

inti,j,k;

for(i=0;i<=2;i++)

(

for(j=0;j<=i;j++)

(

k=p[j][i];

pUl[i]=P[i]Ul;

p[i][j]=k;

)

)

for(i=0;i<=2;i++)

for(j=0;j<=2;j++)

cout?p[i][j]?"

)

cout?endl;

}

)

private:

int(*p)[3];

);

intmain()

(

zhuza;

a.set();

cout?n矩陣是:"<<endl;

a.show();

cout<<"轉(zhuǎn)置后矩陣是:n?endl;

a.zhuanz();

試驗(yàn)結(jié)果:

1=1回

vi.拷貝構(gòu)造2)題中的矩陣類對(duì)象,運(yùn)行程序看看是

否存在問(wèn)題,應(yīng)當(dāng)如何改進(jìn)。(提示:深淺拷貝)

源代碼和說(shuō)明:

#include<iostream>

usingnamespacestd;

classzhuz

(

public:

zhuz()

(

cout?"zhuz構(gòu)造函數(shù)被調(diào)用"<vendl;

)

?zhuz()

(

cout?nzhuz析構(gòu)函數(shù)被調(diào)用"<vendl;

deletef]P;

zhuz(zhuz&q)

(

inti,j;

p=newint[3][3];

for(i=0;i<=2;i++)

{

for(j=0;j<=2;j++)

Pfi][j]=q.p[i]rjl;

voidset()

(

inti,j;

cout?"請(qǐng)輸入3*3矩陣數(shù)據(jù)"<<endl;

p=newint[31f3];

for(i=0;i<=2;i++)

(

for(j=0;j<=2;j++)

cin?p[i][j];

)

}

voidshow()

{

inti,j;

for(i=0;i<=2;i++)

(

for(j=0;j<=2;j++)

cout?p[i][j]?"

cout?endl;

)

)

voidzhuanz()

(

int

for(i=0;i<=2;i++)

(

for(j=0;j<=i;j++)

(

Pfj][i]=Pfi]rj];

p[i][j]=t;

)

)

for(i=0;i<=2;i++)

(

for(j=0;j<=2;j++)

cout?p[i]fj]?"

cout?endl;

)

)

private:

int(*p)[3];

);

voidmain()

zhuza;

a.set();

cout<<"矩陣是:"?endl;

a.showQ;

cout?endl;

cout<<"轉(zhuǎn)置后矩陣是:"<<endl;

a.zhuanz();

coutvv”其次個(gè)矩陣是:"vvendl;

zhuzb(a);

b.show();

)

試驗(yàn)結(jié)果:

■,E:\vc6.0\MyProjects\edaf\Debug\edaf.exe'M回ZJ

轉(zhuǎn)置后矩陣是:

536

328

552

第二個(gè)矩陣是:

536

328

552

zhu咂酒函熬遺調(diào)用

zhuz柿構(gòu)函數(shù)襁調(diào)用

Pressanykeytocontinue,

vii.編程實(shí)現(xiàn)兩字符串的連接。要求使用字符數(shù)組保存

字符串,不要使用系統(tǒng)函數(shù)。

源代碼和說(shuō)明:

#include<iostream>

usingnamespacestd;

voidString(char*a,char*b)

char*p;

p=a;

while(*p!=NULL)

P++;

while(*b!=NULL)

(

*p=*b;

P++;

b++;

)

*p=*b;

)

intmain()

(

charshuzl[20];

charshuz2[20];

coutvv”請(qǐng)輸入第一個(gè)字符串“vvendl;

cin?shuzl;

coutvv”請(qǐng)輸入其次個(gè)字符串“vvendl;

cin?shuz2;

String(shuzl,shuz2);

cout<<"組合后的字符串是:"?endl;

cout?shuz1?endl;

試驗(yàn)結(jié)果:

'C:\Users\asdasdw\Debug\asdasdw.exe"I口u

請(qǐng)輸入第一個(gè)字符串

aeswdfasdasd

請(qǐng)輸入第二個(gè)字符串

asfasdasd

組合后的字符串是:

aeswdfasdasdasfasdasd

Pressanykeytocontinue

viii,使用string類定義字符串對(duì)象,重新實(shí)現(xiàn)上一小

題。?

源代碼和說(shuō)明:

#include<string>

#include<iostream>

usingnamespacestd;

intmain()

(

stringshuzl="abc',,shuz2=Hbcdn;

coutvv”請(qǐng)輸入第一個(gè)字符串n?endl;

cin?shuzl;

coutvv”請(qǐng)輸入其次個(gè)字符串“vvendl;

cin?shuz2;

shuzl+=shuz2;

cout<<"組合后字符串是:"?endl;

cout?shuzl;

cout?endl;

試驗(yàn)結(jié)果:

|,=|回5」

F?C:\Users\asdasdw\Debug\asdasdw.exe"

請(qǐng)輸入第一個(gè)字符串

asdasdasd

請(qǐng)輸入第二個(gè)字符串

asfsfa

組合后字符串是:

asdasdasdasfsfa

Pressanykeytocontinue1

ix.定義Body類的數(shù)組,評(píng)測(cè)班級(jí)每個(gè)同學(xué)的身體狀

況。

源代碼和說(shuō)明:

#include<iostream>

usingnamespacestd;

classBody

public:

Body()

cout?"Body構(gòu)造函數(shù)被調(diào)用“<<endl;

?Body。

cout?”Body析構(gòu)函數(shù)被調(diào)用n?endl;

voidGetweight(doubleW)

Weight=W;

voidGethigh(doubleH)

{

High=H;

)

voidshowWei()

(

cout<<"該同學(xué)體重是:"?Weight?endl;

)

voidshowH()

(

cout<<"該同學(xué)身高是:”《High?endl;

)

doubleshow()

(

returnHighAVeight;

)

private:

doubleWeight;

doubleHigh;

voidmain()

(

inti,k;

doublea,b,n,j=3.2;

COUtVV”請(qǐng)輸入要測(cè)試的同學(xué)的個(gè)數(shù)”;

cin?k;

Body"people二newBody[k];

for(i=0;i<=k-l;i++)

(

cout<〈”請(qǐng)輸入第"Wi+lvv”個(gè)同學(xué)的身高”;

cin?a;

people[i].Gethigh(a);

cout<<”*****************體重”?

cin?b;

people[i].Getweight(b);

}一

cout?endl?endl;

for(i=0;i<=k-l;i++)

n=people[i].show();

if(n<j)

cout?"|iU"?i+l<<"該同學(xué)偏:胖"<<endl;

elseif(n==j)

cout<<"|iU"?i+l<v"該同學(xué)偏正常"<<endl;

else

cout?"|jU"<vi+l<<”該同學(xué)偏:瘦"<<endl;

people[i].showH();

peoplefi].showWei();

cout?endl;

}delete[]people;

)

試驗(yàn)結(jié)果:

r

■"C:\Users\asdasdw\Debug\asdasdw.exe"

?■XKXXMXWN***X*[本~^~42

m2同f

口=:

該D1

?何:

該72

正60

四3謨回堂得瘦

:瘦

:154

數(shù)

調(diào)

^用

調(diào)

-度

調(diào)

T用

9yCont

keto

試驗(yàn)七繼承與派生試驗(yàn)

(驗(yàn)證性試驗(yàn)4學(xué)時(shí))

目的要求:

學(xué)習(xí)定義和使用類的繼承關(guān)系,定義派生類;熟識(shí)不同

繼承方式下對(duì)基類成員的訪問(wèn)掌握;學(xué)習(xí)采用虛基類解決二

義性問(wèn)題。

2.試驗(yàn)內(nèi)容:

1)定義一個(gè)基類Animal,有私有整型成員變量age,構(gòu)

造其派生類dog,在其成員函數(shù)SetAge(intn)中直接給age

賦值,看看會(huì)有什么問(wèn)題,把a(bǔ)ge改為公有或愛(ài)護(hù)成員變

量,還會(huì)有問(wèn)題嗎?編程試試看,說(shuō)明白什么原則?

#include<iostream>

usingnamespacestd;

classAnimal

(

public:

Animal()

(

cout?nAnimal構(gòu)造函數(shù)被調(diào)用上4口出;

)

?Animal。

(

cout?HAnimal析構(gòu)函數(shù)被調(diào)用“<<endl;

)

//private:

//protected:

intage;

);

classdog:publicAnimal

(

public:

dog()

(

cout?"dog構(gòu)造函數(shù)被調(diào)用"vvendl;

?dog()

cout?ndog析構(gòu)函數(shù)被調(diào)用"<<endl;

voidSetAge(intn);

voidshow()

(

cout<<"年齡是:

cout?age?endl;

voiddog::SetAge(intn)

n=3;

age=n;

intmain()

intt;

dogb;

b.SetAge(t);

b.showQ;

試驗(yàn)結(jié)果:

■T?C:\Users\WDASD\Debug\WDASD.exe'???一[o畫

Animal構(gòu)造函數(shù)被調(diào)用

dog構(gòu)造匡|數(shù)被調(diào)用

年的是:3

dog橋范I函數(shù)被調(diào)用

Animal析構(gòu)函數(shù)被調(diào)用

Pressanykeytocontinue

x.定義一個(gè)基類BasClass,有整型成員變量Number,

構(gòu)造其派生類DerivedClass,觀看構(gòu)造函數(shù)和析構(gòu)

函數(shù)的執(zhí)行狀況和執(zhí)行挨次。

源代碼和說(shuō)明:

#include<iostream>

usingnamespacestd;

classBasClass

(

public:

BasClass()

(

cout?"BasClass構(gòu)造函數(shù)被調(diào)用"vvendl;

)

?BasClass。

(

cout?"BasClass析構(gòu)函數(shù)被調(diào)用"vvendl;

)

);

classDerivedClass:publicBasClass

(

public:

DerivedClass()

{

cout?nDerivedClass構(gòu)造函數(shù)被調(diào)用"<<endl;

)

-DerivedClass()

{

cout?nDerivedClass析構(gòu)函數(shù)被調(diào)用"vvendl;

)

private:

);

intmain()

DerivedClassa;

試驗(yàn)結(jié)果:

■,C:\Users\WDASD\Debug\WDASD.exe-Io|回

構(gòu)

ss囊

調(diào)

dc函

數(shù)

la調(diào)

dcss函

la調(diào)

ss用

構(gòu)

ss被

anyyc

ketoonti

xi.定義一個(gè)車(vehicle)基類,具有MaxSpeed、Weight

等成員變量,Run、Stop等成員函數(shù),由此派生出

自行車(bicycle)類,汽車(motorcar)類。自行

車(bicycle)類有高度(Height)等屬性,汽車

(motorcycle)類有座位數(shù)(SeatNum)等屬性。

從bicycle和Motorcar派生出摩托車(motorcycle)

類,在繼承過(guò)程中,留意把vehicle設(shè)置為虛基類。

假如不把vehicle設(shè)置為虛基類,會(huì)有什么問(wèn)?編

程試試看。

源代碼和說(shuō)明:

#include<iostream>

usingnamespacestd;

classvehicle

public:

vehicle()

(

cout?"vehicle構(gòu)造函數(shù)被調(diào)用"<<endl;

)

?vehicle。

(

cout?nvehicle析構(gòu)函數(shù)被調(diào)用"<<endl;

)

voidRun()

(

inti,j;

cout<〈"請(qǐng)輸入最大重量和最大速度:"<<endl;

cin?i?j;

MaxSpeed=i;

Weight=j;

},

voidStop()

(

cout?nMaxSpeed=H?MaxSpeed?endl;

cout?nWeight=n?Weight?endl;

)

private:

doubleMaxSpeed,Weight;

};

classbicycle:virtualpublicvehicle

(

public:

bicycle()

(

cout?"bicycle構(gòu)造函數(shù)被調(diào)用"<vendl;

)

?bicycle。

{

cout?"bicycle析構(gòu)函數(shù)被調(diào)用"<<endl;

)

private:

doubleHeight;

classmotorcar:virtualpublicvehicle

public:

motorcar()

(

cout?”motorcar構(gòu)造函數(shù)被調(diào)用"vvendl;

)

?motorcar。

(

cout?"motorcar析構(gòu)函數(shù)被調(diào)用"<<endl;

)

private:

intSeatNum;

);

classmotorcycle:publicmotorcar,publicbicycle

(

public:

motorcycle()

(

cout?Hmotorcycle構(gòu)造函數(shù)被調(diào)用”《endl;

)

?motorcycle。

(

cout?nmotorcycle析構(gòu)函數(shù)被調(diào)用"vvendl;

)

};

intmain()

(

motorcyclea;

a.bicycle::Run();

a.bicycle::Stop();

a.motorcar::Run();

a.motorcar::Stop();

試驗(yàn)結(jié)果:

試驗(yàn)八多態(tài)性試驗(yàn)

(設(shè)計(jì)性試驗(yàn)2學(xué)時(shí))

1.目的要求:

把握運(yùn)算符重載的方法;學(xué)習(xí)使用虛函數(shù)實(shí)現(xiàn)動(dòng)態(tài)多態(tài)

性。

2.試驗(yàn)內(nèi)容:

1)定義Point類,有坐標(biāo)_x,_y兩個(gè)成員變量;對(duì)Point類

重載“++”(自增)、”(自減)運(yùn)算符,實(shí)現(xiàn)對(duì)坐標(biāo)的

轉(zhuǎn)變。(提示:留意前++和后++)

源代碼和說(shuō)明:

#include<iostream>

usingnamespacestd;

classpoint

public:

point()

{

cout?Hpoint構(gòu)造函數(shù)被調(diào)用"《endl;

)

?point。

(

cout?"point析構(gòu)函數(shù)被調(diào)用”"endl;

)

voidset(inti=l,intj=3)

{

x=i;

y=j;

)

voidshow()

(

cout?”坐標(biāo)是:°?endl;

cout?x?n"?y?endl;

)

pointoperator++();

pointoperator-();

pointoperator++(int);

pointoperator-(int);

private:

intx,y;

);

pointpoint::operator++()

(

x++;

y++;

return*this;

)

pointpoint::operator-()

(

x-;

y--;

return*this;

)

pointpoint::operator++(int)

++x;

++y;

return*this;

pointpoint::operator-(int)

-x;

-y;

return*this;

)

intmain()

(

inti,j;

pointa;

coutvv”請(qǐng)輸入坐標(biāo):"v<endl;

cin?i?j;

a.set(i,j);

a.showQ;

++a;

a.show();

-a;

a.show();

a++;

a.show();

a-;

a.showQ;

}

試驗(yàn)結(jié)果:

7,C:\Users\WDASD\Debug\WDASD.exe-

point構(gòu)造函數(shù)被調(diào)用

請(qǐng)輸入坐標(biāo):

16

坐標(biāo)是:

16

po洌晰構(gòu)函數(shù)被調(diào)用

27

叫起智斤.構(gòu)函數(shù)被調(diào)用

坐標(biāo)是:

案藉甑構(gòu)函數(shù)被調(diào)用

2)

poiR仔斤構(gòu)函數(shù)被調(diào)用

坐標(biāo)7E:

16

point析構(gòu)函數(shù)被調(diào)用

Pressanykeytocontinue.

xii.定義一個(gè)車(vehicle)基類,有Run、Stop等虛成員

函數(shù),由此派生出自行車(bicycle)類、汽車

(motorcar)類,從bicycle到motorcar派生出摩

托車(motorcycle)類,它們都有Run^Stop等成員

函數(shù),采用基類指針或引用虛函數(shù),觀看虛函數(shù)的

作用,說(shuō)說(shuō)多態(tài)的含義,假如不采納虛函數(shù)會(huì)是什

么樣的結(jié)果?

源代碼和說(shuō)明:

#include<iostream>

usingnamespacestd;

classvehicle

(

public:

vehicle()

{

cout?"vehicle構(gòu)造函數(shù)被調(diào)用"<<endl;

}

~vehicle()

(

cout?"vehicle析構(gòu)函數(shù)被調(diào)用"<<endl;

}

virtualvoidRun()

(

cout<<"設(shè)置vehicle最大速度和重量"<<endl;

)

virtualvoidStop()

(

cout<

溫馨提示

  • 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. 人人文庫(kù)網(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ì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論