版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
本文格式為Word版,下載可任意編輯——面向?qū)ο蟪绦蛟O(shè)計課程實驗報告課
程
實
驗
報
告
課程名稱:
面向?qū)ο蟪绦蛟O(shè)計
院院
系:
專業(yè)班級:
學(xué)
號:
姓
名:
指導(dǎo)教師:
目目
錄試驗一..面向過程的整型棧編程0
1.需求分析0
11.1題目要求0
21.2需求分析0
2.系統(tǒng)設(shè)計1
12.1概要設(shè)計1
22.2詳細設(shè)計2
4.軟件測試3
5.特點與不足3
15.1技術(shù)特點3
25.2不足和改進的建議4
6.過程和體會4
16.1遇到的主要問題和解決方法4
26.2課程設(shè)計的體會4
7.源碼和說明4
17.1文件清單及其功能說明4
27.2用戶使用說明書4
37.3源代碼4
試驗二..面向?qū)ο蟮恼蜅>幊?1
1.需求分析11
11.1題目要求11
21.2需求分析11
2.系統(tǒng)設(shè)計12
12.1概要設(shè)計12
22.2詳細設(shè)計12
3.軟件開發(fā)13
4.軟件測試13
5.特點與不足13
15.1技術(shù)特點13
25.2不足和改進的建議14
6.過程和體會14
16.1遇到的主要問題和解決方法14
26.2課程設(shè)計的體會14
7.源碼和說明14
17.1文件清單及其功能說明14
27.2用戶使用說明書14
37.3源代碼14
試驗三..基于算符重載的整型棧編程18
1.需求分析18
11.1題目要求18
21.2需求分析18
2.系統(tǒng)設(shè)計19
12.1概要設(shè)計19
22.2詳細設(shè)計19
3.軟件開發(fā)19
4.軟件測試19
5.特點與不足20
15.1技術(shù)特點20
25.2不足和改進的建議20
6.過程和體會20
16.1遇到的主要問題和解決方法20
26.2課程設(shè)計的體會20
7.源碼和說明20
17.1文件清單及其功能說明20
27.2用戶使用說明書20
37.3源代碼20
試驗四..面向?qū)ο蟮恼完犃芯幊?4
1.需求分析24
11.1題目要求24
21.2需求分析24
2.系統(tǒng)設(shè)計25
3.軟件開發(fā)25
4.軟件測試25
5.特點與不足25
15.1技術(shù)特點25
25.2不足和改進的建議25
6.過程和體會25
16.1遇到的主要問題和解決方法25
26.2課程設(shè)計的體會26
7.源碼和說明26
17.1文件清單及其功能說明26
27.2用戶使用說明書26
37.3源代碼26
試驗五..基于組合的整型隊列編程30
1.需求分析30
11.1題目要求30
21.2需求分析30
2.系統(tǒng)設(shè)計30
3.軟件開發(fā)31
4.軟件測試31
5.特點與不足31
15.1技術(shù)特點31
25.2不足和改進的建議31
6.過程和體會31
16.1遇到的主要問題和解決方法31
26.2課程設(shè)計的體會31
7.源碼和說明32
17.1文件清單及其功能說明32
27.2用戶使用說明書32
37.3源代碼32
試驗六..基于繼承的整型隊列編程36
1.需求分析36
11.1題目要求36
21.2需求分析37
2.系統(tǒng)設(shè)計37
3.軟件開發(fā)37
4.軟件測試37
5.特點與不足37
15.1技術(shù)特點37
25.2不足和改進的建議37
6.過程和體會38
16.1遇到的主要問題和解決方法38
26.2課程設(shè)計的體會38
7.源碼和說明38
17.1文件清單及其功能說明38
27.2用戶使用說明書38
37.3源代碼38
試驗一.面向過程的整型棧編程1.需求分析
11.1題目要求
整型棧是一種先進后出的存儲結(jié)構(gòu),對其進行的操作尋常包括判斷棧是否為空、向棧頂添加一個整型元素、出棧等。整型棧類型及其操作函數(shù)采用非面向?qū)ο蟮募僀語言定義,請將完成上述操作的所有函數(shù)采用面向過程的方法編程,然后寫一個main函數(shù)對棧的所有操作函數(shù)進行測試。
structSTACK{
int
*elems;//申請內(nèi)存用于存放棧的元素
int
max;
//棧能存放的最大元素個數(shù)
int
pos;
//棧實際已有元素個數(shù),棧空時pos=0;};voidinitSTACK(STACK*constp,intm);//初始化p指空棧:可存m個元素voidinitSTACK(STACK*constp,constSTACKs);//用s初始化p指空棧int
size(constSTACK*constp);//返回p指的棧的最大元素個數(shù)maxint
howMany(constSTACK*constp);//返回p指的棧的實際元素個數(shù)posint
getelem(constSTACK*constp,intx);//取下標x處的棧元素STACK*constpush(STACK*constp,inte);
//將e入棧,并返回pSTACK*constpop(STACK*constp,inte);//出棧到e,并返回pSTACK*constassign(STACK*constp,constSTACKs);//賦給p指棧,返回pvoidprint(constSTACK*constp);
//打印p指向的棧元素voiddestroySTACK(STACK*constp);
//銷毀p指向的棧,釋放21.2需求分析
本試驗需要實現(xiàn)棧的功能的操作,如元素的進棧,連續(xù)進棧,出棧和連續(xù)出棧,所以需要設(shè)計兩個棧,在完成初始化后直接在程序里給定棧內(nèi)元素。
2.系統(tǒng)設(shè)計
12.1概要設(shè)計
函數(shù)結(jié)構(gòu)圖見圖1.1棧初始化棧返回max,pos取棧內(nèi)元素入棧、出棧打印棧銷毀棧圖1.1總體流程圖見圖1.2開始初始化是否繼續(xù)入棧是否繼續(xù)出棧銷毀棧終止YNYN圖1.2
22.2詳細設(shè)計
voidinitSTACK(STACK*constp,intm)入口參數(shù):intm出口參數(shù):無功能:初始化棧,可存m個元素
voidinitSTACK(STACK*constp,constSTACKs)入口參數(shù):constSTACKs出口參數(shù):無功能:用s初始化p指空棧int
size(constSTACK*constp)
入口參數(shù):無出口參數(shù):intmax功能:返回p指的棧的最大元素個數(shù)maxint
howMany(constSTACK*constp)
入口參數(shù):無出口參數(shù):intpos功能:返回p指的棧的實際元素個數(shù)posint
getelem(constSTACK*constp,intx)
入口參數(shù):intx出口參數(shù):elem[m]功能:取下標x處的棧元素STACK*constpush(STACK*constp,inte)
入口參數(shù):inte出口參數(shù):(*this)功能:將e入棧,并返回pSTACK*constpop(STACK*constp,inte)
入口參數(shù):inte出口參數(shù):(*this)功能:出棧到e,并返回pSTACK*constassign(STACK*constp,constSTACKs)
入口參數(shù):STACKs出口參數(shù):(*this)功能:賦s給p指棧,返回pvoidprint(constSTACK*constp)
入口參數(shù):無出口參數(shù):無功能:打印p指向的棧元素voiddestroySTACK(STACK*constp)
入口參數(shù):
出口參數(shù):
功能:銷毀p指向的棧,釋放3.軟件開發(fā)
在Codeblocks編譯環(huán)境下,使用C++語言編寫。
4.軟件測試
測試結(jié)果見圖1.3
圖1.35.特點與不足
15.1技術(shù)特點
完成了試驗的所有要求,沒有錯誤的地方。
25.2不足和改進的建議
沒有做人機交互界面,無法自由選擇入棧的數(shù)據(jù);同時解釋較少,對于程序不了解的人可能需要花費更多時間去了解。
6.過程和體會
16.1遇到的主要問題和解決方法
輸出結(jié)果數(shù)字與預(yù)計不同,檢查后發(fā)現(xiàn)原因是變量初始值未設(shè)置。
26.2課程設(shè)計的體會
本次試驗主要還是通過回想C語言中棧的知識完成在C++上的編程,所以總體過程沒有出現(xiàn)太大的問題;同時也對const變量有了進一步的認識。
7.源碼和說明
17.1文件清單及其功能說明
experiment1.cpp源碼experiment1.exe可執(zhí)行文件。
27.2用戶使用說明書
experiment1.cpp是程序的源碼,可通過修改其中main函數(shù)中的變量來測試各個函數(shù)。
37.3源代碼
#includelt;stdio.hgt;#includelt;malloc.hgt;#includelt;stdlib.hgt;
structSTACK{
int
*elems;//申請內(nèi)存用于存放棧的元素
int
max;
//棧能存放的最大元素個數(shù)
int
pos;
//棧實際已有元素個數(shù),??諘rpos=0;
};voidinitSTACK(STACK*constp,intm);//初始化p指向的棧:最多m個元素voidinitSTACK(STACK*constp,constSTACKs);//用棧s初始化p指向的棧int
size(constSTACK*constp);
//返回p指向的棧的最大元素個數(shù)maxint
howMany(constSTACK*constp);//返回p指向的棧的實際元素個數(shù)posint
getelem(constSTACK*constp,intx);//取下標x處的棧元素STACK*constpush(STACK*constp,inte);
//將e入棧,并返回pSTACK*constpop(STACK*constp,inte);
//出棧到e,并返回pSTACK*constassign(STACK*constp,constSTACKs);//賦s給p指的棧,并返回pvoidprint(constSTACK*constp);
//打印p指向的棧voiddestroySTACK(STACK*constp);
//銷毀p指向的棧
intmain(intargc,char*argv[]){
STACK*s1=(STACK*)malloc(sizeof(STACK));
STACK*s2=(STACK*)malloc(sizeof(STACK));
initSTACK(s1,10);
push(s1,1);
push(s1,2);
push(push(s1,3),4);
initSTACK(s2,*s1);
print(s2);
printf(quot;棧s1:\nquot;);
print(s1);
//assign(s2,*s1);
printf(quot;棧s2:\nquot;);
print(s2);
inta,b,c;
a=size(s1);
printf(quot;棧的最大元素個數(shù)是%d\nquot;,a);
b=
howMany(s1);
printf(quot;棧的實際元素個數(shù)是%d\nquot;,b);
c=
getelem(s1,3);
printf(quot;3處棧元素是是%d\nquot;,c);
intx,y,z;
pop(s2,x);
pop(pop(s2,y),z);
printf(quot;x=%d,y=%d,z=%d\nquot;,x,y,z);
destroySTACK(s2);
destroySTACK(s1);
getchar();
return0;}
voidinitSTACK(STACK*constp,intm)//初始化p指向的棧:最多m個元素{
p-gt;elems=(int*)malloc(m*sizeof(int*));
if(!p-gt;elems)
return;
p-gt;pos=0;
p-gt;max=m;
inti;
for(i=0;ilt;(p-gt;max);i++)
p-gt;elems[i]=0;}
voidinitSTACK(STACK*constp,constSTACKs)//用棧s初始化p指向的棧{
p-gt;elems=(int*)malloc((s.max)*sizeof(int));
p-gt;pos=s.pos;
p-gt;max=s.max;
inti;
for(i=0;ilt;(s.pos);i++)
{
p-gt;elems[i]=s.elems[i];
printf(quot;%d\nquot;,p-gt;elems[i]);
}}
int
size(constSTACK*constp)
//返回p指向的棧的最大元素個數(shù)max{
returnp-gt;max;}
int
howMany(constSTACK*constp)//返回p指向的棧的實際元素個數(shù)pos{
returnp-gt;pos;}
int
getelem(constSTACK*constp,intx)//取下標x處的棧元素{
if(p==NULL)
returnNULL;
else
{
if(xgt;(p-gt;pos))
printf(quot;不存在元素\nquot;);
else
returnp-gt;elems[x];
}}
STACK*constpush(STACK*constp,inte)
//將e入棧,并返回p{
if(p==NULL)
returnNULL;
else
{
if((p-gt;pos)lt;=(p-gt;max))
{
p-gt;elems[p-gt;pos]=e;
p-gt;pos++;
returnp;
}
else
printf(quot;棧滿\nquot;);
}}
STACK*constpop(STACK*constp,inte)
//出棧到e,并返回p{
if(p==NULL)
returnNULL;
else
{
if((p-gt;pos)==0)
printf(quot;棧為空\nquot;);
else
{
e=p-gt;elems[(p-gt;pos)-1];
(p-gt;pos)--;
returnp;
}
}}
STACK*constassign(STACK*constp,constSTACKs)//賦s給p指的棧,并返回p{
if(p==NULL||s==NULL)
{
returnNULL;
}
else
{
free(p-gt;elems);
//free(p);
//STACK*p=(STACK*)malloc(sizeof(STACK));
initSTACK(p,s);
returnp;
}}
voidprint(constSTACK*constp)
//打印p指向的棧{
inti;
if(p==NULL)
{
return;
}
elseif(p-gt;pos==0)
{
printf(quot;棧為空\nquot;);
}
else
{
for(i=0;ilt;(p-gt;pos);i++)
{
printf(quot;%dquot;,p-gt;elems[i]);
}
printf(quot;\nquot;);
}}
voiddestroySTACK(STACK*constp)//銷毀p指向的棧{
free(p-gt;elems);
free(p);
printf(quot;棧已銷毀\nquot;);}
試驗二.面向?qū)ο蟮恼蜅>幊?/p>
1.需求分析
11.1題目要求
整型棧是一種先進后出的存儲結(jié)構(gòu),對其進行的操作尋常包括判斷棧是否為空、向棧頂添加一個整型元素、出棧等。整型棧類型及其操作函數(shù)采用面向?qū)ο蟮腃++語言定義,請將完成上述操作的所有函數(shù)采用C++編程,然后寫一個main函數(shù)對棧的所有操作函數(shù)進行測試。
classSTACK{
int
*const
elems;//申請內(nèi)存用于存放棧的元素
const
int
max;//棧能存放的最大元素個數(shù)
int
pos;
//棧實際已有元素個數(shù),??諘rpos=0;public:STACK(intm);
//初始化棧:最多m個元素STACK(constSTACKs);//用棧s拷貝初始化棧int
size()const;
//返回棧的最大元素個數(shù)maxint
howMany()const;//返回棧的實際元素個數(shù)posint
getelem(intx)const;//取下標x處的棧元素STACKpush(inte);
//將e入棧,并返回棧STACKpop(inte);
//出棧到e,并返回棧STACKassign(constSTACKs);//賦s給棧,并返回被賦值的棧voidprint()const;
//打印棧~STACK();
//銷毀棧};21.2需求分析
采用面向?qū)ο蟮腃++語言定義整型棧,對其進行的操作尋常包括判斷棧是否為空、向棧頂添加一個整型元素、出棧等。
2.系統(tǒng)設(shè)計
12.1概要設(shè)計
首先需要定義一個類來實現(xiàn)棧,然后依次實現(xiàn)棧的各個功能,在主函數(shù)中給定一個棧然后,然后通過函數(shù)調(diào)用實現(xiàn)棧的功能。
22.2詳細設(shè)計
STACK(intm)
功能:初始化棧:最多m個元素返回值:無
STACK(constSTACKs)
功能:用棧s拷貝初始化棧返回值:無
int
size()const功能:返回棧的最大元素個數(shù)max返回值:最大元素個數(shù)max
int
howMany()const功能:返回棧的實際元素個數(shù)pos返回值:元素數(shù)目pos
int
getelem(intx)const
功能:取下標x處的棧元素返回值:下標為x的元素
STACKpush(inte)功能:將e入棧返回值:棧的引用
STACKpop(inte)功能:出棧到e,并返回棧返回值:棧的引用
STACKassign(constSTACKs)
功能:使用棧s給棧p賦值返回值:棧的引用
voidprint()const功能:打印棧返回值:無
~STACK()
功能:銷毀棧返回值:無3.軟件開發(fā)
在Codeblocks編譯環(huán)境下,使用C++語言編寫。
4.軟件測試
測試結(jié)果見圖2.1
圖2.15.特點與不足
15.1技術(shù)特點
完成了初定目標,無其他特點。
25.2不足和改進的建議
人機交互需要進一步完善。
6.過程和體會
16.1遇到的主要問題和解決方法
由于第一次使用c++面向?qū)ο缶帉懗绦?,開始不明白對象的生成及使用。在和同學(xué)老師的溝通和交流中,逐漸學(xué)會了編程的方法。
26.2課程設(shè)計的體會
C++語言與C語言有好多相通的地方,所以其中的某些原理和方法可以相互借鑒,這樣就減少了在理解上的難度。
7.源碼和說明
17.1文件清單及其功能說明
experiment2.cpp源碼experiment2.exe可執(zhí)行文件。
27.2用戶使用說明書
experiment2.cpp是程序的源碼,可通過修改其中main函數(shù)中的變量來測試各個函數(shù)。
37.3源代碼
#includelt;iostreamgt;#includelt;stringgt;usingnamespacestd;classSTACK{
int
*const
elems;//申請內(nèi)存用于存放棧的元素
const
int
max;//棧能存放的最大元素個數(shù)
int
pos;
//棧實際已有元素個數(shù),棧空時pos=0;public:STACK(intm);
//初始化棧:最多m個元素
STACK(constSTACKs);//用棧s拷貝初始化棧int
size()const;
//返回棧的最大元素個數(shù)maxint
howMany()const;//返回棧的實際元素個數(shù)posint
getelem(intx)const;//取下標x處的棧元素STACKpush(inte);
//將e入棧,并返回棧STACKpop(inte);
//出棧到e,并返回棧STACKassign(constSTACKs);//賦s給棧,并返回被賦值的棧voidprint()const;
//打印棧~STACK();
//銷毀棧};STACK::STACK(intm):elems(newint[m]),max(m),pos(0){}STACK::STACK(constSTACKs):elems(newint[s.size()]),max(s.size()),pos(s.howMany()){
for(inti=0;ilt;pos;i++)
elems[i]=s.getelem(i);
coutlt;lt;quot;復(fù)制構(gòu)造成功quot;lt;lt;endl;};intSTACK::size()const{
returnmax;}intSTACK::howMany()const{
returnpos;}intSTACK::getelem(intx)const{
returnelems[x];}STACKSTACK::push(inte){
if(poslt;max)
{
elems[pos]=e;
pos++;
}
elsecoutlt;lt;quot;full\nquot;;
return*this;}STACKSTACK::pop(inte){
if(pos==0)
{
coutlt;lt;quot;emptystackquot;;return*this;
}
pos--;
e=elems[pos];
coutlt;lt;quot;出棧成功quot;;
return*this;}STACKSTACK::assign(constSTACKs){
inti;
deleteelems;//
elems=newint[s.size()];//
max=s.size();
pos=s.howMany();
for(i=0;ilt;s.howMany();i++)
{elems[i]=s.getelem(i);}
return*this;}voidSTACK::print()const{
inti;
coutlt;lt;quot;棧的元素為:quot;;
for(i=0;ilt;pos;i++)
coutlt;lt;elems[i]lt;lt;quot;
quot;;
coutlt;lt;endl;}STACK::~STACK(){
deleteelems;//
elems=0;
//
max=0;
pos=0;
coutlt;lt;quot;析構(gòu)完成quot;;}intmain(){
STACKs(7);
s.push(5);
s.push(7);
s.push(9);
s.push(11);
s.print();
inti;
s.pop(i);
coutlt;lt;quot;出棧元素quot;lt;lt;ilt;lt;endl;
STACKp(s);
coutlt;lt;quot;容量quot;lt;lt;p.size()lt;lt;endl;
coutlt;lt;quot;當(dāng)前元素數(shù)目quot;lt;lt;p.howMany();}
試驗三.基于算符重載的整型棧編程
1.需求分析
11.1題目要求
整型棧是一種先進后出的存儲結(jié)構(gòu),對其進行的操作尋常包括判斷棧是否為空、向棧頂添加一個整型元素、出棧等。整型棧類型及其操作函數(shù)采用面向?qū)ο蟮腃++語言定義,請將完成上述操作的所有函數(shù)采用C++編程,然后寫一個main函數(shù)對棧的所有操作函數(shù)進行測試。
classSTACK{
int
*const
elems;//申請內(nèi)存用于存放棧的元素
const
int
max;//棧能存放的最大元素個數(shù)
int
pos;
//棧實際已有元素個數(shù),??諘rpos=0;public:STACK(intm);
//初始化棧:最多m個元素STACK(constSTACKs);
//用棧s拷貝初始化棧virtualint
size()const;
//返回棧的最大元素個數(shù)maxvirtualoperatorint()const;//返回棧的實際元素個數(shù)posvirtualintoperator[](intx)const;//取下標x處的棧元素virtualSTACKoperatorlt;lt;(inte);
//將e入棧,并返回棧virtualSTACKoperatorgt;gt;(inte);//出棧到e,并返回棧virtualSTACKoperator=(constSTACKs);//賦s給棧,并返回被賦值的棧virtualvoidprint()const;
//打印棧virtual~STACK();
//銷毀棧};21.2需求分析
采用面向?qū)ο蟮腃++語言定義,構(gòu)建整型棧并對其進行判斷棧是否為空、向棧頂添加一個整型元素、出棧等操作。
2.系統(tǒng)設(shè)計
12.1概要設(shè)計
首先需要定義一個類來實現(xiàn)棧,然后依次實現(xiàn)棧的各個功能,在主函數(shù)中給定一個棧然后,然后通過函數(shù)調(diào)用實現(xiàn)棧的功能。
22.2詳細設(shè)計
初始化定義一個類,分派一個數(shù)組空間來存儲棧內(nèi)元素信息,然后初始化為0;
實現(xiàn)入棧則需要將入棧元素e放入棧內(nèi),采用了先判斷棧的最大容量夠不夠的問題,假如不夠重新分派空間,并且讓e入棧,將當(dāng)前元素pos加一;然后返回棧結(jié)構(gòu)。
實現(xiàn)出棧操作,首先判斷是不是空,若空直接返回,不空則需將棧頂?shù)脑刭x給一個變量然后將當(dāng)前元素pos減一;返回棧結(jié)構(gòu)。
實現(xiàn)棧的賦給即需要將s1棧內(nèi)的元素依次賦給s2棧的,當(dāng)前元素也需一致并且返回新的棧結(jié)構(gòu)。
3.軟件開發(fā)
在Codeblocks編譯環(huán)境下,使用C++語言編寫。
4.軟件測試
測試結(jié)果見圖3.1
圖3.1
5.特點與不足
15.1技術(shù)特點
使用了符號重載,在一定程度上簡化了函數(shù)。
25.2不足和改進的建議
在使用符號重載時需要特別注意,防止與其他操作符混淆。
6.過程和體會
16.1遇到的主要問題和解決方法
對于符號重載,剛開始不會調(diào)用函數(shù),之后通過查閱書籍,明白了重載的含義。
26.2課程設(shè)計的體會
本次試驗以試驗二為基礎(chǔ),通過使用符號重載來更簡單的實現(xiàn)試驗?zāi)康摹?/p>
7.源碼和說明
17.1文件清單及其功能說明
experiment3.cpp源碼experiment3.exe可執(zhí)行文件。
27.2用戶使用說明書
experiment3.cpp是程序的源碼,可通過修改其中main函數(shù)中的變量來測試各個函數(shù)。
37.3源代碼
#includelt;iostreamgt;#includelt;stringgt;usingnamespacestd;classSTACK{
int
*const
elems;//申請內(nèi)存用于存放棧的元素
const
int
max;//棧能存放的最大元素個數(shù)
int
pos;
//棧實際已有元素個數(shù),??諘rpos=0;public:STACK(intm);
//初始化棧:最多m個元素STACK(constSTACKs);
//用棧s拷貝初始化棧virtualint
size()const;
//返回棧的最大元素個數(shù)maxvirtualoperatorint()const;
//返回棧的實際元素個數(shù)posvirtualintoperator[](intx)const;//取下標x處的棧元素virtualSTACKoperatorlt;lt;(inte);
//將e入棧,并返回棧virtualSTACKoperatorgt;gt;(inte);//出棧到e,并返回棧virtualSTACKoperator=(constSTACKs);//賦s給棧,并返回被賦值的棧virtualvoidprint()const;
//打印棧virtual~STACK();
//銷毀棧};STACK::STACK(intm):elems(newint[m]),max(m),pos(0){}STACK::STACK(constSTACKs):elems(newint[s.max]),max(s.max),pos(s.pos){
for(inti=0;ilt;pos;i++)
elems[i]=s.elems[i];};intSTACK::size()const{returnmax;}STACK::operatorint()const{returnpos;}intSTACK::operator[](intx)const{returnelems[x];}STACKSTACK::operatorlt;lt;(inte){
if(posgt;max)
{
coutlt;lt;quot;棧滿quot;;
}
else
{
*(elems+pos)=e;
pos++;
}
return(*this);}STACKSTACK::operatorgt;gt;(inte){
if(pos==0)
{
coutlt;lt;quot;??誵uot;;
}
else
{
e=*(elems+pos-1);
pos--;
}
return(*this);}STACKSTACK::operator=(constSTACKs){
deleteelems;
*(int**)elems=newint[s.max];
*(int*)max=s.max;
for(pos=0;poslt;s.pos;pos++)
elems[pos]=s.elems[pos];
return*this;}voidSTACK::print()const{
for(inti=0;ilt;pos;i++)
coutlt;lt;elems[i]lt;lt;quot;\nquot;;}STACK::~STACK(){
delete[]elems;
if(elems==0)
{
coutlt;lt;quot;銷毀失敗quot;lt;lt;endl;
}
else
{
coutlt;lt;quot;銷毀成功quot;lt;lt;endl;
}}intmain(){
STACKi(5),j(8);
ilt;lt;1lt;lt;3lt;lt;6lt;lt;9;
intk;
igt;gt;k;
coutlt;lt;klt;lt;quot;\nquot;;
i.print();
j=i;
j.print();
jlt;lt;1lt;lt;2lt;lt;3lt;lt;4;
coutlt;lt;endllt;lt;(int)j;}
試驗四.
面向?qū)ο蟮恼完犃芯幊?/p>
1.需求分析
11.1題目要求
整型隊列是一種先進先出的存儲結(jié)構(gòu),對其進行的操作尋常包括判斷隊列是否為空、向隊列頂添加一個整型元素、出隊列等。整型隊列類型及其操作函數(shù)采用面向?qū)ο蟮腃++語言定義,請將完成上述操作的所有函數(shù)采用C++編程,然后寫一個main函數(shù)對隊列的所有操作函數(shù)進行測試。
classQUEUE{
int
*const
elems;//申請內(nèi)存用于存放隊列的元素
const
int
max;//隊列能存放的最大元素個數(shù)
int
h
溫馨提示
- 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)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 針灸科常用治療項目
- 2024景觀工程分包合同協(xié)議書范本
- 蘇州科技大學(xué)天平學(xué)院《文創(chuàng)藝術(shù)設(shè)計》2022-2023學(xué)年第一學(xué)期期末試卷
- 《兒童急救安全常識》課件
- 固體飲料行業(yè)的營銷推廣方案考核試卷
- 危險品運輸中的冷鏈與溫控技術(shù)考核試卷
- 《房地產(chǎn)客戶開發(fā)》課件
- 2024標準版附期限借款合同范文
- 搪瓷制品在農(nóng)業(yè)生產(chǎn)中的應(yīng)用與推廣方案考核試卷
- 安裝自來水管合同5篇
- 執(zhí)照-航空法規(guī)
- 急性化膿性膽囊炎查房課件
- 中國信通院-數(shù)字化供應(yīng)鏈標桿案例匯編(2023)-2023.11
- 2019蘇版GT14-2019馬鞍板圖集
- 2024年國藥集團招聘筆試參考題庫含答案解析
- 成本效益分析匯報
- 委托購買設(shè)備協(xié)議書
- 大學(xué)音樂表演職業(yè)生涯規(guī)劃書
- 硫酸脲氨化造粒復(fù)合肥料的生產(chǎn)技術(shù)
- 圖像學(xué)完整分
- 神奇的數(shù)學(xué):牛津教授給青少年的講座
評論
0/150
提交評論