華中科技大學(xué)計(jì)算機(jī)學(xué)院C++實(shí)驗(yàn)報(bào)告-實(shí)驗(yàn)二_第1頁(yè)
華中科技大學(xué)計(jì)算機(jī)學(xué)院C++實(shí)驗(yàn)報(bào)告-實(shí)驗(yàn)二_第2頁(yè)
華中科技大學(xué)計(jì)算機(jī)學(xué)院C++實(shí)驗(yàn)報(bào)告-實(shí)驗(yàn)二_第3頁(yè)
華中科技大學(xué)計(jì)算機(jī)學(xué)院C++實(shí)驗(yàn)報(bào)告-實(shí)驗(yàn)二_第4頁(yè)
已閱讀5頁(yè),還剩5頁(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年1月22日精品文檔一、需求分析1. 題目要求整型棧是一種先進(jìn)后出的存儲(chǔ)結(jié)構(gòu),對(duì)其進(jìn)行的操作通常包括判斷棧是否為空、向棧頂添加一個(gè)整型元素、出棧等。整型棧類型及其操作函數(shù)采用面向?qū)ο蟮?C+語(yǔ)言定義,請(qǐng)將完成上述操作的所有函數(shù)采用 C+編程, 然后寫一個(gè) main 函數(shù)對(duì)棧的所有操作函數(shù)進(jìn)行測(cè)試。class STACKint *const elems; /申請(qǐng)內(nèi)存用于存放棧的元素const intmax;/ 棧能存放的最大元素個(gè)數(shù)int

2、pos;/ 棧實(shí)際已有元素個(gè)數(shù),??諘r(shí)pos=0;public:STACK(int m);/ 初始化棧:最多m個(gè)元素STACK(const STACK&s); / 用棧 s 拷貝初始化棧int size ( ) const;/ 返回棧的最大元素個(gè)數(shù)maxint howMany ( ) const;/ 返回棧的實(shí)際元素個(gè)數(shù)posint getelem (int x) const;/ 取下標(biāo) x 處的棧元素STACK& push(int e);/ 將 e 入棧 , 并返回棧STACK& pop(int &e);/ 出棧到 e, 并返回棧STACK& assi

3、gn(const STACK&s); /賦 s 給棧 , 并返回被賦值的棧void print( ) const;/ 打印棧STACK( );/ 銷毀棧;2. 需求分析采用面向?qū)ο蟮?C+語(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)行編寫并調(diào)試。四、軟件測(cè)試1) 總體界面如圖 1 所示:。- 1 -歡迎下載精品文檔圖 12) 進(jìn)行入棧操作,如圖2 所示:圖 2

4、3) 進(jìn)行打印棧操作,如圖3 所示:圖 34) 進(jìn)行出棧操作,如圖4 所示:圖 45) 用下標(biāo)去元素,如圖5 所示:。- 2 -歡迎下載精品文檔圖 56)棧中實(shí)際元素的個(gè)數(shù)如圖6 所示:圖 6五、源碼和說(shuō)明1. 文件清單及其功能說(shuō)明main.c是源程序2.exe是可執(zhí)行文件2. 用戶使用說(shuō)明書使用 CodeBlocks 進(jìn)行編譯,或者直接打開(kāi)可執(zhí)行文件。3. 源代碼#include<iostream>#include<stdlib.h>#include<stdio.h>#include <windows.h>using namespace std

5、;class STACKint * elems;/ 申請(qǐng)內(nèi)存用于存放棧的元素int max;/ 棧能存放的最大元素個(gè)數(shù)intpos;/ 棧實(shí)際已有元素個(gè)數(shù),??諘r(shí)pos=0;public:STACK(int m);/初始化棧:最多m個(gè)元素。- 3 -歡迎下載精品文檔STACK(const STACK&s); /用棧 s 拷貝初始化棧int size() const;/ 返回棧的最大元素個(gè)數(shù)maxint howMany() const;/ 返回棧的實(shí)際元素個(gè)數(shù)posint getelem (int x) const;/ 取下標(biāo) x 處的棧元素STACK& push(int e);

6、 /將 e 入棧 , 并返回棧STACK& pop(int &e); /出棧到 e, 并返回棧STACK& assign(const STACK&s); /賦 s 給棧 , 并返回被賦值的棧void print()const;/ 打印棧STACK();/ 銷毀棧;STACK:STACK(int m):max(m),elems(new intm)pos=0;STACK:STACK(const STACK&s):max(s.max),elems(s.elems)pos=0;int STACK:size() constreturn max;int STACK:

7、getelem (int x) constif(pos=0)cout<<"棧為空! n"elseif(x>pos)cout<<"當(dāng)前的元素不存在:n"elsereturn elemsx;。- 4 -歡迎下載精品文檔int STACK:howMany ( ) constreturn pos;STACK& STACK: push(int e)if(pos>=max)cout<<"空間不夠!n"else*(elems+pos)=e;pos+;cout<<*(elems+po

8、s-1);return (*this);STACK&STACK: pop(int &e)if(pos=0)cout<<"棧為空! "elsee=*(elems+pos-1);pos-=1;return(*this);STACK& STACK:assign(const STACK&s)pos=s.pos;return (*this);void STACK:print()const。- 5 -歡迎下載精品文檔cout<<"最大量: "<<max<<endl;cout<<

9、;"當(dāng)前的元素個(gè)數(shù):"<<pos<<endl;cout<<"里面的元素為:"for(int i=pos-1;i>=0;i-)cout<<*(elems+i)<<"t"STACK:STACK()delete elems;pos=0;max=0;void menu(void)cout<<"t*n"cout<<"t 1.返回棧的最大元素個(gè)數(shù)max"cout<<"tt 2.返回棧的實(shí)際元素個(gè)數(shù)

10、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.銷毀棧 n"cout<<"ttt 0.退出程序 n"cout<<&

11、quot;t*n"int main()int m;int x1;int op;int t,x,x2,e,e3,e4;cout<<"請(qǐng)輸入棧的最大容量m:n"cin>>m;STACK st1(m);。- 6 -歡迎下載精品文檔STACK st2(st1);cout<<"初始化棧:最多"<<m<<" 個(gè)元素完成 n 用棧 s 拷貝初始化棧完成n"Sleep(3000);dosystem("cls");menu();cout<<"

12、 請(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.howMany();cout<<"實(shí)際元素為: "<<x<<"n"getchar();getchar();break;case 3:cout<<"請(qǐng)輸入想得到的元素的下標(biāo):"<<"n&quo

13、t;cin>>x1;x2=st1.getelem(x1);cout<<"下表為 "<<x1<<" 的元素: "<<x2;getchar();getchar();break;case 4:cout<<"請(qǐng)輸入想壓棧的元素:"cin>>e;st1=st1.push(e);getchar();getchar();break;case 5:st1=st1.pop(e3);cout<<"出棧元素為 "<<e3;。- 7 -歡迎下載精品文檔getchar();getchar();break;case 6:st2=st2.assign(st1);getchar();getchar();break;case 7:cout<<"請(qǐng)輸入想打印的棧1or2n"cin>>e4;if(e4=1)st1.print();elsest2.print();getchar();getchar();break;case 8:cout<<"請(qǐng)輸入想銷毀的棧

溫馨提示

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