版權(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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 什么是志愿填報(bào)課程設(shè)計(jì)
- 人際交往能力的課程設(shè)計(jì)
- 安卓課程設(shè)計(jì)健康飲食apk
- 2023年平板數(shù)字電視接收機(jī)投資申請(qǐng)報(bào)告
- Lesson 5-6(教案)-2024-2025學(xué)年新概念英語(yǔ)第一冊(cè)
- 人美版(常銳倫、歐京海主編) 五年級(jí)下冊(cè) 美術(shù) 第5課 提袋的設(shè)計(jì) 教案
- 期中測(cè)試卷-2024-2025學(xué)年統(tǒng)編版語(yǔ)文一年級(jí)上冊(cè)
- 影視城木工裝修施工協(xié)議
- 裝修合同清單樣本娛樂(lè)
- 攝影工作室裝修合同范本
- 《導(dǎo)游管理辦法》解讀PPT課件
- 智力七巧板社團(tuán)活動(dòng)記錄表
- 《同底數(shù)冪的乘法》公開(kāi)課
- MSDS危險(xiǎn)化學(xué)品安全技術(shù)說(shuō)明書(shū)——61725--1,2-苯二酚、鄰苯二酚
- 混合痔痔的護(hù)理查房.ppt
- 申請(qǐng)購(gòu)買(mǎi)血液透析機(jī)的可行性報(bào)告
- 冀教版六年級(jí)英語(yǔ)上冊(cè)句型轉(zhuǎn)換完整版
- 投標(biāo)工作流程圖
- 行業(yè)標(biāo)準(zhǔn)撰寫(xiě)流程PPT課件
- 商鋪銷(xiāo)售絕佳說(shuō)辭
- 公路平面交叉工程專項(xiàng)施工方案(優(yōu)秀)
評(píng)論
0/150
提交評(píng)論