華中科技大學(xué)計(jì)算機(jī)學(xué)院C++試驗(yàn)報(bào)告試驗(yàn)二_第1頁(yè)
華中科技大學(xué)計(jì)算機(jī)學(xué)院C++試驗(yàn)報(bào)告試驗(yàn)二_第2頁(yè)
華中科技大學(xué)計(jì)算機(jī)學(xué)院C++試驗(yàn)報(bào)告試驗(yàn)二_第3頁(yè)
華中科技大學(xué)計(jì)算機(jī)學(xué)院C++試驗(yàn)報(bào)告試驗(yàn)二_第4頁(yè)
華中科技大學(xué)計(jì)算機(jī)學(xué)院C++試驗(yàn)報(bào)告試驗(yàn)二_第5頁(yè)
已閱讀5頁(yè),還剩10頁(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)介

1、課程實(shí)驗(yàn)報(bào)告課程名稱:面向?qū)ο蟪绦蛟O(shè)計(jì) 實(shí)驗(yàn)名稱:面向?qū)ο蟮恼蜅>幊淘?系:計(jì)算機(jī)科學(xué)與技術(shù)專業(yè)班級(jí):CS1209班學(xué) 號(hào):姓 名:扌旨導(dǎo)教師:李春花2014年月22_日面向?qū)ο蟪绦蛟O(shè)計(jì)實(shí)驗(yàn)報(bào)告一、需求分析1. 題目要求整型棧是一種先進(jìn)后出的存儲(chǔ)結(jié)構(gòu),對(duì)其進(jìn)行的操作通常包括判斷棧是否為空、向棧頂 C+語(yǔ)言定義,請(qǐng)將C+編程,然后寫(xiě)一個(gè)main函數(shù)對(duì)棧的所有操作函數(shù)進(jìn)行測(cè)添加一個(gè)整型元素、出棧等。整型棧類型及其操作函數(shù)采用面向?qū)ο蟮?完成上述操作的所有函數(shù)采用 試。class STACKint *const elems; /const int max;int pos;public:STACK(

2、i nt m);/申請(qǐng)內(nèi)存用于存放棧的元素 棧能存放的最大元素個(gè)數(shù) 棧實(shí)際已有元素個(gè)數(shù),??諘r(shí) pos=0;初始化棧:最多m個(gè)元素STACK(const STACK&s); /用棧s拷貝初始化棧 int size ( ) con st;int howMa ny ( ) con st;int getelem (int x) con st;STACK& push(int e); STACK & pop( int & e);/返回棧的最大元素個(gè)數(shù) max 返回棧的實(shí)際元素個(gè)數(shù)pos/取下標(biāo)x處的棧元素 將e入棧,并返回棧 出棧到e,并返回棧STACK& ass

3、ign(const STACK&s); / 賦s給棧,并返回被賦值的棧 void prin t( ) con st;/ 打印棧STACK( );/ 銷(xiāo)毀棧;2. 需求分析采用面向?qū)ο蟮腃+語(yǔ)言定義整型棧,對(duì)其進(jìn)行的操作通常包括判斷棧是否為空、向棧頂 添加一個(gè)整型元素、出棧等。、系統(tǒng)設(shè)計(jì)概要設(shè)計(jì)介紹設(shè)計(jì)思路、原理。將一個(gè)復(fù)雜系統(tǒng)按功能進(jìn)行模塊劃分、建立模塊的層次結(jié)構(gòu)及調(diào) 用關(guān)系、確定模塊間的接口及人機(jī)界面等。三、軟件開(kāi)發(fā)該實(shí)驗(yàn)代碼我用CodeBlocks進(jìn)行編寫(xiě)并調(diào)試。四、軟件測(cè)試-11 -1)總體界面如圖1所示:Sa處值 個(gè)鳩元宀妝n幵1 E e S臼尹回回7打印桟匸_叭退岀程序情輸入

4、序號(hào):圖12)進(jìn)行入棧操作,如圖2所示:請(qǐng)輸入序號(hào)*咅輸入憩壓桟的元素=1233)進(jìn)行打印棧操作,如圖3所示:請(qǐng)輸入序號(hào)=請(qǐng)輸入SB打印的桟"曲34 2 :1 數(shù): 10事 一7f: >旳的 大前面圖34)進(jìn)行出棧操作,如圖4所示:請(qǐng)輸入序號(hào)匕茁棧元素為5)用下標(biāo)去元素,如圖5所示:請(qǐng)輸入序號(hào):請(qǐng)輸入想得到的元素的下標(biāo):2下表為2的元素:342圖56)棧中實(shí)際元素的個(gè)數(shù)如圖6所示:請(qǐng)輸入序號(hào):?際元素為:3五、源碼和說(shuō)明1. 文件清單及其功能說(shuō)明ma in .c是源程序2.exe是可執(zhí)行文件2. 用戶使用說(shuō)明書(shū)使用CodeBlocks進(jìn)行編譯,或者直接打開(kāi)可執(zhí)行文件。3. 源代

5、碼#in clude<iostream>#i nclude<stdlib.h>#i nclude<stdio.h>#i nclude <win dows.h>using n amespace std;class STACKint * elems;/申請(qǐng)內(nèi)存用于存放棧的元素int max;/棧能存放的最大元素個(gè)數(shù)int pos;/棧實(shí)際已有元素個(gè)數(shù),??諘r(shí)pos=0;public:STACK(i nt m);初始化棧:最多 m個(gè)元素用棧s拷貝初始化棧int size() con st;/返回棧的最大元素個(gè)數(shù)maxint howMa ny() con

6、 st;/返回棧的實(shí)際元素個(gè)數(shù)posint getelem (int x) con st;/取下標(biāo)x處的棧元素STACK& push(int e); /將e入棧,并返回棧STACK & pop(i nt &e); /出棧到e,并返回棧STACK(co nst STACK&s); /STACK& assign(const STACK&s); /賦s給棧,并返回被賦值的棧void prin t()c on st;/打印棧/銷(xiāo)毀棧STACK();STACK:STACK(int m):max(m),elems(new intm)pos=0;STACK:S

7、TACK(co nst STACK&s):max(s.max),elems(s.elems)pos=0;int STACK:size() constreturn ma x;int STACK:getelem (int x) constif(pos=0)cout<<"棧為空! n"elseif(x>pos)cout<<"當(dāng)前的元素不存在:n"elsereturn elemsx;int STACK:howMa ny ( ) constreturn pos;STACK& STACK: push(i nt e)if(

8、pos>=max)cout<<"空間不夠! n"else*(elems+pos)=e;pos+;cout<<*(elems+pos-1);return (*this);STACK&STACK: pop(i nt &e)if(pos=0)cout<<" 棧為空! !";elsee=*(elems+pos-1);pos-=1;return(*this);STACK& STACK:assig n(con st STACK&s)pos=s.pos;return (*this);void S

9、TACK:print()constcout<<"最大量:"<<max<<e ndl;cout<<"當(dāng)前的元素個(gè)數(shù):"<<pos<<endl;cout<<"里面的元素為:"for(i nt i=pos_1;i>=0;i_)cout<<*(elems+i)<<"t"STACK:STACK()delete elems;pos=0;max=0; void menu (void)*n"cout<&

10、lt;"t 1.返回棧的最大兀素個(gè)數(shù)max"cout<<"tt 2.返回棧的實(shí)際兀素個(gè)數(shù) posn"cout<<"t 3.取下標(biāo)x處的棧兀素"cout<<"ttt 4.將e入棧,并返回棧n"cout<<"t 5.出棧到e,并返回棧"cout<<"ttt 6.賦s給棧,并返回被賦值的棧n"cout<<"t 7.打印棧"cout<<"tttt 8.銷(xiāo)毀棧n"

11、cout<<"ttt 0.退出程序n"cout<<"t*cout<<"t*n"int mai n()int m;int x1;int op;int t,x,x2,e,e3,e4;cout<<"請(qǐng)輸入棧的最大容量m:n"cin»m;STACK st1(m);STACK st2(st1);cout<<"初始化棧:最多"<<m<<"個(gè)元素完成n用棧s拷貝初始化棧完成n"Sleep(3000);dos

12、ystem("cls");menu();cout<<"請(qǐng)輸入序號(hào):n"cin> >op;switch(op)case 1:t=st1.size();cout<<"當(dāng)前棧的大小為:"<<t;getchar();getchar();break;case 2:x=st1.howMa ny();cout<<" 實(shí)際元素為:"<<x<<"n"getchar();getchar();break;case 3:cout<

13、<"請(qǐng)輸入想得到的元素的下標(biāo):"<<"n"cin> >x1;x2=st1.getelem(x1);cout<<" 下表為"<<x1<<"的元素:"<<x2;getchar();getchar();break;case 4:cout<<"請(qǐng)輸入想壓棧的元素:"cin»e;面向?qū)ο蟪绦蛟O(shè)計(jì)實(shí)驗(yàn)報(bào)告st仁stl.push(e); getchar();getchar(); break;case 5:st1

14、=st1.pop(e3);cout<<"出棧元素為"<<e3;getchar();getchar(); break;case 6:st2=st2.assig n( st1);getchar();getchar(); break;case 7:1or2n"1or2"cout<<" 請(qǐng)輸入想打印的棧cin> >e4;if(e4=1)st1.pri nt();elsest2.pri nt();getchar();getchar();break;case 8:cout<<"請(qǐng)輸入想銷(xiāo)毀的棧int e5;cin> >e5;if(e5=1)st1.STACK();elsest2.STACK();getchar();g

溫馨提示

  • 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)論