



版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(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ū)ο蟮恼完?duì)列編程院系 :計(jì)算機(jī)科學(xué)與技術(shù)專業(yè)班級(jí):CS1209 班學(xué)號(hào) :姓名 :指導(dǎo)教師:李春花2015年01月22日一、需求分析1. 題目要求整型隊(duì)列是一種先進(jìn)后出的存儲(chǔ)結(jié)構(gòu),對(duì)其進(jìn)行的操作通常包括判斷隊(duì)列是否為空、向隊(duì)列頂添加一個(gè)整型元素、出隊(duì)列等。整型隊(duì)列類型及其操作函數(shù)采用面向?qū)ο蟮腃+ 語言定義,請(qǐng)將完成上述操作的所有函數(shù)采用C+ 編程, 然后寫一個(gè) main 函數(shù)對(duì)隊(duì)列的所有操作函數(shù)進(jìn)行測(cè)試。注意,請(qǐng)用實(shí)驗(yàn)三的SATCK 組合形成新的類QUEQUE 。請(qǐng)說明如果刪掉virtual有什么不同。class QUEUESTACK
2、 s1, s2;public:QUEUE(int m);/初始化隊(duì)列:每個(gè)棧最多m 個(gè)元素QUEUE(const QUEUE&s);/用隊(duì)列 s 拷貝初始化隊(duì)列virtual operator int ( ) const;/返回隊(duì)列的實(shí)際元素個(gè)數(shù)virtual QUEUE& operator<<(int e);/ 將 e 入隊(duì)列 ,并返回隊(duì)列virtual QUEUE& operator>>(int &e);/出隊(duì)列到 e, 并返回隊(duì)列virtual QUEUE& operator=(const QUEUE&s); /賦
3、s 給隊(duì)列 ,并返回被賦值的隊(duì)列virtual void print( ) const;/打印隊(duì)列virtual QUEUE( );/銷毀隊(duì)列;2. 需求分析采用面向?qū)ο蟮?C+語言定義,構(gòu)建整型隊(duì)列并對(duì)其進(jìn)行的操作通常包括判斷隊(duì)列是否為空、向隊(duì)列頂添加一個(gè)整型元素、出隊(duì)列等,再寫一個(gè) main 函數(shù)對(duì)隊(duì)列的所有操作函數(shù)進(jìn)行測(cè)試。二、系統(tǒng)設(shè)計(jì)用兩個(gè)棧實(shí)現(xiàn)隊(duì)列,先判棧 S2 是否為空,如果為空,對(duì) S1 進(jìn)行入棧操作,如果不是空,棧 S2 數(shù)據(jù)元素倒入到 S1,然后對(duì) S1 進(jìn)行入棧操作。出隊(duì)列時(shí)。判斷 S2 是否為空,如果非空S2 中的元素出棧,若果為空,把S1 的元素倒入到 S2,對(duì) S2
4、的元素進(jìn)行出棧操作。三、軟件開發(fā)使用 CodeBlocks 進(jìn)行編寫并調(diào)試。四、軟件測(cè)試1)總界面如圖 1 所示:圖 12)進(jìn)行入隊(duì)列操作,如圖2 所示:圖 23)打印隊(duì)列如圖 3 所示:圖 34)進(jìn)行出隊(duì)列操作,如圖4 所示:圖 45)打印完后隊(duì)列中實(shí)際元素個(gè)數(shù)如圖5 所示:圖 5五、源碼和說明1. 文件清單及其功能說明main.c是源程序文件1.h是頭文件2.h55.exe是頭文件是可執(zhí)行文件2. 用戶使用說明書使用 CodeBlocks 進(jìn)行編寫和調(diào)試。3. 源代碼main.c:#include"2.h"int main()int m;int op;int x,e,e
5、3,e4;cout<<" 請(qǐng)輸入隊(duì)列的最大容量m:n"cin>>m;QUEUE que1(m);QUEUE que2(que1);cout<<" 初始化隊(duì)列:最多m 個(gè)元素完成n用隊(duì)列s 拷貝初始化隊(duì)列完成n"Sleep(3000);dosystem("cls");menu();cout<<" 請(qǐng)輸入序號(hào): n"cin>>op;switch(op)case 1:x=que1;cout<<" 實(shí)際元素為: "<<x
6、<<"n"getchar();getchar();break;case 2:cout<<" 將 e 入隊(duì)列 ,并返回隊(duì)列: "cin>>e;que1<<e;getchar();getchar();break;case 3:que1>>e3;cout<<" 出隊(duì)列到e,并返回隊(duì)列 "<<e3;getchar();getchar();break;case 4:que2 = que1;getchar();getchar();break;case 5:cout
7、<<" 請(qǐng)輸入想打印的隊(duì)列1or2n"cin>>e4;if(e4=1)que1.print();elseque2.print();getchar();getchar();break;case 6:cout<<" 請(qǐng)輸入想銷毀的隊(duì)列1or2"int e5;cin>>e5;if(e5=1)que1.QUEUE();elseque2.QUEUE();getchar();getchar();break;default:cout<<" 輸入有誤請(qǐng)重新輸入:"break;while(op
8、);cout<<"tt*謝謝使用 !*n"<<endl;return 0;1.h:#include<iostream>#include<stdlib.h>#include<stdio.h>#include <windows.h>using namespace std;class STACKint*constelems;/ 申請(qǐng)內(nèi)存用于存放棧的元素constintmax; / 棧能存放的最大元素個(gè)數(shù)intpos;/ 棧實(shí)際已有元素個(gè)數(shù),??諘r(shí)public:STACK(int m);/ 初始化棧:最多m 個(gè)
9、元素STACK(const STACK&s);/ 用棧 s 拷貝初始化棧virtual int size( ) const/ 返回棧的最大元素個(gè)數(shù)maxpos=0;return max;/返回棧的最大元素個(gè)數(shù)maxvirtual operator int ( ) const/返回棧的實(shí)際元素個(gè)數(shù)posreturn pos;/ 返回棧的實(shí)際元素個(gè)數(shù)posvirtual int operator (int x) const/取下標(biāo) x 處的棧元素return elemsx;virtual STACK& operator<<(int e)/ 將 e 入棧 ,并返回棧if(
10、pos>=max)cout<<" 隊(duì)列已滿! "else*(elems+pos)=e;pos+;return (*this);virtual STACK& operator>>(int &e)/ 出棧到 e,并返回棧if(pos=0)cout<<" 隊(duì)列為空! "elsee=*(elems+pos-1);pos-=1;return (*this);virtual STACK& operator=(const STACK&s) /賦 s 給棧 ,并返回被賦值的棧pos=s.pos;r
11、eturn (*this);virtual void print( ) const/ 打印棧cout<<" 最大量: t"<<max<<endl;cout<<" 當(dāng)前的元素個(gè)數(shù):t"<<pos<<endl;cout<<" 里面的元素為:t"for(int i=pos-1;i>=0;i-)cout<<*(elems+i)<<"t"virtual STACK( )/銷毀棧delete elems;if(el
12、ems=0)cout<<" 銷毀沒成功! "<<endl;else cout<<" 銷毀成功!"<<endl;STACK:STACK(int m=20):max(m),elems(new intm)pos=0;STACK:STACK(const STACK&s):max(s.max),elems(s.elems)pos=0;2.h#include"1.h"class QUEUESTACK s1, s2;public:QUEUE(int m);/ 初始化隊(duì)列:每個(gè)棧最多m 個(gè)元素Q
13、UEUE(const QUEUE&s);/ 用隊(duì)列 s 拷貝初始化隊(duì)列virtual operator int ( ) const;/ 返回隊(duì)列的實(shí)際元素個(gè)數(shù)virtual QUEUE& operator<<(int e);/ 將 e 入隊(duì)列 ,并返回隊(duì)列virtual QUEUE& operator>>(int &e);/ 出隊(duì)列到e,并返回隊(duì)列virtual QUEUE& operator=(const QUEUE&s); / 賦 s 給隊(duì)列 ,并返回被賦值的隊(duì)列virtual void print( ) const;
14、/ 打印隊(duì)列virtual QUEUE( );/ 銷毀隊(duì)列;QUEUE:QUEUE(int m):s1(m),s2(m)QUEUE:operator int () constint x=s1;int x2=s2;return (x+x2);QUEUE:QUEUE(const QUEUE&s):s1(s.s1),s2(s.s2)QUEUE&QUEUE:operator <<(int e)int x2=s2;if(x2=0)s1<<e;return (*this);elseint p; while(x2>=1)s2>>p;s1<<
15、;p;x2=s2;s1<<e;return(*this);QUEUE&QUEUE:operator >>(int &e)int x=s1;int x2=s2;if(x2=0)int p; while(x>=1)s1>>p;s2<<p;x=s1;s2>>e;return (*this);elses2>>e;return (*this);QUEUE& QUEUE:operator=(const QUEUE&s)this->s1=s.s1;this->s2=s.s2;return (*this);void QUEUE:print()consts1.print();s2.print();QUEUE:QUEUE()s1.STACK();s2.STACK();void menu(void)cout<<"t*n"cout<<"t 1. 返回隊(duì)列的實(shí)際元素個(gè)數(shù)"cout<<"tt 2. 將
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 投入資金沒簽協(xié)議書
- 私人住房買賣協(xié)議書
- 醫(yī)院科研協(xié)議書范本
- 晚會(huì)安全協(xié)議書模板
- 兄弟贍養(yǎng)哥哥協(xié)議書
- 親戚住房借住協(xié)議書
- 援藏項(xiàng)目資金協(xié)議書
- 事故協(xié)議書需要簽字
- 同行寵物售賣協(xié)議書
- 家具運(yùn)輸承包協(xié)議書
- 空氣動(dòng)力學(xué)試題
- 精軋機(jī)組F軋機(jī)主傳動(dòng)系統(tǒng)設(shè)計(jì)
- GB 15631-2008特種火災(zāi)探測(cè)器
- 菩薩蠻黃鶴樓(毛澤東).中職課件電子教案
- 銀行存款日記賬課件
- 2023高中學(xué)業(yè)水平合格性考試歷史重點(diǎn)知識(shí)點(diǎn)歸納總結(jié)(復(fù)習(xí)必背)
- 導(dǎo)游人員管理法律制度課件
- 美國(guó)地圖高清中文版
- 金屬監(jiān)督監(jiān)理實(shí)施細(xì)則
- 正確認(rèn)識(shí)汽車太陽膜課件
- 工程建筑給排水外文文獻(xiàn)翻譯1
評(píng)論
0/150
提交評(píng)論