




版權(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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 情緒飽滿進(jìn)入職場(chǎng)課件
- 2026屆福建省福州市福建師大附中化學(xué)高二第一學(xué)期期末達(dá)標(biāo)測(cè)試試題含答案
- 2026屆蚌埠市重點(diǎn)中學(xué)化學(xué)高三上期末質(zhì)量跟蹤監(jiān)視模擬試題含解析
- 春季學(xué)期教務(wù)處工作方案
- 幼兒園班務(wù)新學(xué)期工作方案
- 酒吧營(yíng)銷活動(dòng)方案年
- 全年銷售工作方案
- 調(diào)查隊(duì)面試題及答案
- 旅游營(yíng)銷活動(dòng)策劃方案
- 稅務(wù)延期面試題及答案
- 唯奮斗最青春+課件-2026屆跨入高三第一課主題班會(huì)
- 共青團(tuán)中央所屬事業(yè)單位2024年度社會(huì)公開(kāi)招聘筆試備考題庫(kù)參考答案詳解
- 2025年《分級(jí)護(hù)理制度》考試試題(及答案)
- 高中喀斯特地貌說(shuō)課課件
- 氣候變化與健康課件
- 公司電腦配備管理辦法
- 留疆戰(zhàn)士考試試題及答案
- 大學(xué)生創(chuàng)新創(chuàng)業(yè)基礎(chǔ)(創(chuàng)新創(chuàng)業(yè)課程)完整全套教學(xué)課件
- 樓板下加鋼梁加固施工方案
- X射線衍射課件(XRD)
- 常見(jiàn)皮膚病的種類及癥狀圖片、簡(jiǎn)介大全課件
評(píng)論
0/150
提交評(píng)論