



版權說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權,請進行舉報或認領
文檔簡介
1、課程實驗報告課程名稱:面向?qū)ο蟪绦蛟O計實驗名稱:面向?qū)ο蟮恼蜅>幊淘合?: 計算機科學與技術專業(yè)班級:CS1209 班學號 :姓名 :指導教師:李春花2014年1月22日精品文檔一、需求分析1. 題目要求整型棧是一種先進后出的存儲結(jié)構,對其進行的操作通常包括判斷棧是否為空、向棧頂添加一個整型元素、出棧等。整型棧類型及其操作函數(shù)采用面向?qū)ο蟮?C+語言定義,請將完成上述操作的所有函數(shù)采用 C+編程, 然后寫一個 main 函數(shù)對棧的所有操作函數(shù)進行測試。class STACKint *const elems; /申請內(nèi)存用于存放棧的元素const intmax;/ 棧能存放的最大元素個數(shù)int
2、pos;/ 棧實際已有元素個數(shù),??諘rpos=0;public:STACK(int m);/ 初始化棧:最多m個元素STACK(const STACK&s); / 用棧 s 拷貝初始化棧int size ( ) const;/ 返回棧的最大元素個數(shù)maxint howMany ( ) const;/ 返回棧的實際元素個數(shù)posint getelem (int x) const;/ 取下標 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+語言定義整型棧, 對其進行的操作通常包括判斷棧是否為空、 向棧頂添加一個整型元素、出棧等。二、系統(tǒng)設計概要設計介紹設計思路、原理。將一個復雜系統(tǒng)按功能進行模塊劃分、建立模塊的層次結(jié)構及調(diào)用關系、確定模塊間的接口及人機界面等。三、軟件開發(fā)該實驗代碼我用CodeBlocks 進行編寫并調(diào)試。四、軟件測試1) 總體界面如圖 1 所示:。- 1 -歡迎下載精品文檔圖 12) 進行入棧操作,如圖2 所示:圖 2
4、3) 進行打印棧操作,如圖3 所示:圖 34) 進行出棧操作,如圖4 所示:圖 45) 用下標去元素,如圖5 所示:。- 2 -歡迎下載精品文檔圖 56)棧中實際元素的個數(shù)如圖6 所示:圖 6五、源碼和說明1. 文件清單及其功能說明main.c是源程序2.exe是可執(zhí)行文件2. 用戶使用說明書使用 CodeBlocks 進行編譯,或者直接打開可執(zhí)行文件。3. 源代碼#include<iostream>#include<stdlib.h>#include<stdio.h>#include <windows.h>using namespace std
5、;class STACKint * elems;/ 申請內(nèi)存用于存放棧的元素int max;/ 棧能存放的最大元素個數(shù)intpos;/ 棧實際已有元素個數(shù),??諘rpos=0;public:STACK(int m);/初始化棧:最多m個元素。- 3 -歡迎下載精品文檔STACK(const STACK&s); /用棧 s 拷貝初始化棧int size() const;/ 返回棧的最大元素個數(shù)maxint howMany() const;/ 返回棧的實際元素個數(shù)posint getelem (int x) const;/ 取下標 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<<"當前的元素不存在: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、;"當前的元素個數(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.返回棧的最大元素個數(shù)max"cout<<"tt 2.返回棧的實際元素個數(shù)
10、posn"cout<<"t 3.取下標 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<<"請輸入棧的最大容量m:n"cin>>m;STACK st1(m);。- 6 -歡迎下載精品文檔STACK st2(st1);cout<<"初始化棧:最多"<<m<<" 個元素完成 n 用棧 s 拷貝初始化棧完成n"Sleep(3000);dosystem("cls");menu();cout<<"
12、 請輸入序號: n"cin>>op;switch(op)case 1:t=st1.size();cout<<"當前棧的大小為:"<<t;getchar();getchar();break;case 2:x=st1.howMany();cout<<"實際元素為: "<<x<<"n"getchar();getchar();break;case 3:cout<<"請輸入想得到的元素的下標:"<<"n&quo
13、t;cin>>x1;x2=st1.getelem(x1);cout<<"下表為 "<<x1<<" 的元素: "<<x2;getchar();getchar();break;case 4:cout<<"請輸入想壓棧的元素:"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<<"請輸入想打印的棧1or2n"cin>>e4;if(e4=1)st1.print();elsest2.print();getchar();getchar();break;case 8:cout<<"請輸入想銷毀的棧
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- T/CECS 10312-2023基樁自平衡靜載試驗用荷載箱
- T/CECS 10246-2022綠色建材評價智能坐便器
- T/CECA-G 0176-2022居住建筑配套用空氣源熱泵熱水器技術條件
- T/CCS 054-2023碳捕集、利用與封存示范項目數(shù)據(jù)管理要求
- T/CCMA 0162-2023非公路移動式加油車安全使用規(guī)范
- T/CCMA 0136-2022工業(yè)車輛安全監(jiān)控管理系統(tǒng)檢驗與試驗規(guī)范
- T/CCASC 5002-2023氯堿工業(yè)規(guī)程編寫指南
- T/CAS 428-2020綜合管廊智能化巡檢機器人通用技術標準
- T/CAQI 57-2018輸水用中小型一體化泵站
- oraclejava面試題及答案
- 酒店籌開期操作手冊(業(yè)主代表小組適用)
- 城市生活垃圾衛(wèi)生填埋場運行管理培訓
- 2023年《早》舒淇早期古裝掰全照原創(chuàng)
- 部編版六年級語文下冊根據(jù)語境寫詞語(小升初歸類練習)
- 人工智能之知識庫
- 張哲華鑫仔小品《警察和我》臺詞劇本手稿
- 中等職業(yè)學校英語課程標準(2020年版)(word精排版)
- 畢業(yè)生就業(yè)推薦表word模板
- 南京市特種設備安全監(jiān)督檢驗研究院公開招考5名編外工作人員模擬檢測試卷【共1000題含答案解析】
- 2023年八年級生物學業(yè)水平考試復習試卷
- YY/T 1685-2020氣動脈沖振蕩排痰設備
評論
0/150
提交評論