歡迎來(lái)到裝配圖網(wǎng)! | 幫助中心 裝配圖網(wǎng)zhuangpeitu.com!
裝配圖網(wǎng)
ImageVerifierCode 換一換
首頁(yè) 裝配圖網(wǎng) > 資源分類 > DOC文檔下載  

C數(shù)據(jù)結(jié)構(gòu) 大作業(yè)課程設(shè)計(jì)

  • 資源ID:113981538       資源大?。?span id="gts3ouc" class="font-tahoma">879KB        全文頁(yè)數(shù):131頁(yè)
  • 資源格式: DOC        下載積分:40積分
快捷下載 游客一鍵下載
會(huì)員登錄下載
微信登錄下載
三方登錄下載: 微信開(kāi)放平臺(tái)登錄 支付寶登錄   QQ登錄   微博登錄  
二維碼
微信掃一掃登錄
下載資源需要40積分
郵箱/手機(jī):
溫馨提示:
用戶名和密碼都是您填寫的郵箱或者手機(jī)號(hào),方便查詢和重復(fù)下載(系統(tǒng)自動(dòng)生成)
支付方式: 支付寶    微信支付   
驗(yàn)證碼:   換一換

 
賬號(hào):
密碼:
驗(yàn)證碼:   換一換
  忘記密碼?
    
友情提示
2、PDF文件下載后,可能會(huì)被瀏覽器默認(rèn)打開(kāi),此種情況可以點(diǎn)擊瀏覽器菜單,保存網(wǎng)頁(yè)到桌面,就可以正常下載了。
3、本站不支持迅雷下載,請(qǐng)使用電腦自帶的IE瀏覽器,或者360瀏覽器、谷歌瀏覽器下載即可。
4、本站資源下載后的文檔和圖紙-無(wú)水印,預(yù)覽文檔經(jīng)過(guò)壓縮,下載后原文更清晰。
5、試題試卷類文檔,如果標(biāo)題沒(méi)有明確說(shuō)明有答案則都視為沒(méi)有答案,請(qǐng)知曉。

C數(shù)據(jù)結(jié)構(gòu) 大作業(yè)課程設(shè)計(jì)

C+/數(shù)據(jù)結(jié)構(gòu) 大作業(yè)/課程設(shè)計(jì)【校園導(dǎo)游咨詢】【停車場(chǎng)管理】娃娃們可以收著以后用 絕對(duì)純手工打造 內(nèi)含類模塊/一維指針數(shù)組(謹(jǐn)以此程序供大家參考。運(yùn)行結(jié)果后面有貼圖)目錄【1】校園導(dǎo)游咨詢 程序設(shè)計(jì)源代碼 及 截圖【2】停車場(chǎng)管理方案一 程序設(shè)計(jì)源代碼 及 截圖【3】停車場(chǎng)管理方案二 程序設(shè)計(jì)源代碼 及 截圖#【1】【校園導(dǎo)游咨詢】#(ps:該校園導(dǎo)游咨詢系統(tǒng)沒(méi)有輸入值,所有信息是都在class MGraph的構(gòu)造函數(shù)中傳輸?shù)?,且校園景點(diǎn)信息皆為【上海電力學(xué)院】景點(diǎn)信息。請(qǐng)大家注意,直接從文章copy到visual stutio中會(huì)出現(xiàn)中文字符,注意刪除,推薦大家在一行語(yǔ)句的分號(hào)后面,點(diǎn)出光標(biāo),按一下delete鍵,然后按一下enter鍵,完成visual stutio的自動(dòng)對(duì)齊,這樣程序看起來(lái)一目了然,更易于操作和更改)【問(wèn)題描述】設(shè)計(jì)一個(gè)校園導(dǎo)游程序,為來(lái)訪的客人提供各種信息查詢服務(wù)?!净疽蟆?1)設(shè)計(jì)你所在學(xué)校的校園平面圖,所含景點(diǎn)不少于10個(gè)。以圖中頂點(diǎn)表示校內(nèi)各景點(diǎn),存放景點(diǎn)名稱、代號(hào)、簡(jiǎn)介等信息;以邊表示路徑,存放路徑長(zhǎng)度等相關(guān)信息。(2)為來(lái)訪客人提供圖中任意景點(diǎn)相關(guān)信息的查詢。(3)為來(lái)訪客人提供圖中任意景點(diǎn)的問(wèn)路查詢,即查詢?nèi)我鈨蓚€(gè)景點(diǎn)之間的一個(gè)最短的簡(jiǎn)單路徑?!具x作內(nèi)容】(6)擴(kuò)充每個(gè)景點(diǎn)的鄰接景點(diǎn)的方向等信息,使得路徑查詢結(jié)果能提供詳盡的導(dǎo)向信息。*【以下為類的定義】*#include<iostream>#include<iomanip>using namespace std;const int MaxSize=18;const int INFINITY=65535;/最大值無(wú)窮class direction;template <class T> class MGraph;template <class T>class VertexNode/定義頭結(jié)點(diǎn)friend class MGraph<T> public:int vex;/頂點(diǎn)名稱T vexname;/頂點(diǎn)名稱T vexinf;/頂點(diǎn)信息direction dir;/存放頂點(diǎn)方位信息的direction類的dir。;class directionpublic:int ln;/存放在方向圖中的橫坐標(biāo),表示東西int col;/存放在方向圖中的縱坐標(biāo),表示南北;template <class T>class MGraph/定義無(wú)向圖的鄰接矩陣public:MGraph(); /構(gòu)造函數(shù),初始化具有n個(gè)頂點(diǎn)的圖void printvexname();/顯示所有景點(diǎn)及景點(diǎn)代號(hào)void printvexinf(int i);/顯示代號(hào)為i景點(diǎn)的名稱及信息void printroad(int i,int j);/顯示景點(diǎn)ij的最短路徑方案信息void printdir(int i,int j);/顯示景點(diǎn)i到j(luò)的方向信息,如“向東100m,向南200m”VertexNode<T> adjlistMaxSize; /存放景點(diǎn)全部信息的 景點(diǎn)類數(shù)組int vertexNum,arcNum; /圖的頂點(diǎn)數(shù)和邊數(shù)void Root(int p,int q);/遞歸尋找pq間的最短路徑int PathMaxSizeMaxSize,DistMaxSizeMaxSize;/創(chuàng)建Path和Dist分別存放兩點(diǎn)間最短路徑的前驅(qū)節(jié)點(diǎn),兩點(diǎn)間最短路徑長(zhǎng)度int LineMaxSize;/Line存放路徑int kkk;/Line數(shù)組的標(biāo)記private:T vertexMaxSize; /存放圖中頂點(diǎn)的數(shù)組int arcMaxSizeMaxSize;/存放圖中邊的數(shù)組;*【以下為類的實(shí)現(xiàn) 即類函數(shù)的定義】*template <class T>MGraph<T>:MGraph()/a為景點(diǎn)代號(hào),b為景點(diǎn)名稱,c為景點(diǎn)信息,d為景點(diǎn)方位信息的橫坐標(biāo),e為景點(diǎn)方位信息的縱坐標(biāo)/s為存放景點(diǎn)鄰接矩陣信息的一維數(shù)組,根據(jù)其對(duì)稱性可以用公式賦值給二維數(shù)組arcint s=0,1,0,0,2,0,0,0,2,0,0,0,2,3,0,0,0,0,4,2,0,0,0,0,0,2,3,0,0,0,0,0,2,3,1,0,0,0,2,0,2,0,0,2,0,4,0,2,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,2,0,1,0,0,0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,0,0,0,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,3,0,0,2,0,0,0,0,0,0,0,0,0,0,0,0,0,4,4,0,0,2,0;int a=0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17;char* b="南門","實(shí)驗(yàn)樓","南圖","大活","睿思樓","大禮堂","南4教","知行樓","國(guó)交樓","南3教","南2教","南1教","北圖","北3教","北4教","北2教","北1教","北門"char* c="南校區(qū)正門","物理實(shí)驗(yàn)樓","南校區(qū)圖書館","大學(xué)生活動(dòng)中心","教師辦公樓、醫(yī)務(wù)室及留學(xué)生公寓","大禮堂,用于舉辦各種文藝演出","南校區(qū)第4教學(xué)樓","實(shí)習(xí)基地,計(jì)算機(jī)房等","國(guó)際交流中心,教職工餐廳","南校區(qū)第3教學(xué)樓","南校區(qū)第2教學(xué)樓","南校區(qū)第1教學(xué)樓","北校區(qū)圖書館","北校區(qū)第3教學(xué)樓","北校區(qū)第4教學(xué)樓","北校區(qū)第2教學(xué)樓","北校區(qū)第1教學(xué)樓","北校區(qū)正門"int d=8,6,4,4,1,0,0,1,3,4,6,8,4,3,2,3,5,8;int e=8,8,8,10,8,10,7,6,6,6,6,6,3,1,0,0,0,2;int i,j;vertexNum=18;arcNum=30; for(i=0;i<vertexNum;i+)adjlisti.vex=ai;adjlisti.vexname=bi;adjlisti.vexinf=ci;adjlisti.dir.ln=di;adjlisti.dir.col=ei;for (i=0; i<vertexNum; i+)/初始化鄰接矩陣for (j=0; j<vertexNum; j+)arcij=arcji=s(i*(i+1)/2+j; /根據(jù)s的對(duì)稱性,將一維數(shù)組中的數(shù)據(jù)賦給二維數(shù)組arc template<class T>void MGraph<T>:printvexname()int i;for(i=0;i<vertexNum;i+)cout<<adjlisti.vex<<" "<<adjlisti.vexname<<endl;template<class T>void MGraph<T>:printvexinf(int i)cout<<i<<" "<<adjlisti.vexname<<":"<<adjlisti.vexinf<<endl;template<class T>void MGraph<T>:printdir(int i,int j)int dx,nb;/臨時(shí)存放i與j之間的南北東西關(guān)系 j在i的哪邊?dx=adjlistj.dir.col-adjlisti.dir.col;nb=adjlistj.dir.ln-adjlisti.dir.ln;if(dx>0)/即j在i的東邊cout<<"向東"<<dx*100<<"m,"elsecout<<"向西"<<dx*(0-100)<<"m,"if(nb>0)/即j在i的南邊cout<<"向南"<<nb*100<<"m"elsecout<<"向北"<<nb*(0-100)<<"m"template<class T>void MGraph<T>:Root(int p,int q) if (Pathpq>0) Root(p,Pathpq); Root(Pathpq,q); else Linekkk=q; kkk+; template<class T>void MGraph<T>:printroad(int i,int j)int p,q,m,k,item1,item2;for(p=0;p<vertexNum;p+)for(q=0;q<vertexNum;q+)Distpq=arcpq;/鄰接矩陣賦值for(k=0;k<vertexNum;k+) for(p=0;p<vertexNum;p+)if (Distpk>0) for(q=0;q<vertexNum;q+) if (Distkq>0) if (Distpq>Distpk+Distkq)|(Distpq=0)&&(p!=q) Distpq=Distpk+Distkq; Pathpq=k; cout<<"n=n"cout<<"從"<<adjlisti.vexname<<"到"<<adjlistj.vexname<<"的最短路徑為:"<<endl;cout<<adjlisti.vexname;kkk=2;Root(i,j);item2=Line2;cout<<"->"printdir(i,item2);cout<<"->"<<adjlistitem2.vexname;for(m=3;m<=kkk-1;m+)item1=Linem;cout<<"->"printdir(item1-1,item1);cout<<"->"<<adjlistitem1.vexname;cout<<endl;cout<<"n=n"*【以下為主函數(shù)】*int funcchoice()/系統(tǒng)功能選擇頁(yè)面int choice;cout<<"="<<endl;cout<<" 歡迎進(jìn)入校園導(dǎo)游咨詢平臺(tái)"<<endl;cout<<" 1-顯示校園所有景點(diǎn)信息"<<endl;cout<<" 2-查詢校園景點(diǎn)信息"<<endl;cout<<" 3-問(wèn)路查詢系統(tǒng)"<<endl;cout<<" 4-退出導(dǎo)游資訊平臺(tái)"<<endl;cout<<"="<<endl;cout<<"請(qǐng)輸入要選擇的功能號(hào):"cin>>choice;return choice;void main()MGraph<char*> mg;int funcchoice();int fc;while(1)fc=funcchoice();if(fc=1)int i;for(i=0;i<mg.vertexNum;i+)mg.printvexinf(i);else if(fc=2)int i;mg.printvexname();cout<<endl<<"請(qǐng)輸入所要查詢景點(diǎn)代號(hào):"cin>>i;mg.printvexinf(i);else if(fc=3)int i,j;mg.printvexname();cout<<"請(qǐng)輸入兩景點(diǎn)代號(hào)(我們將把最短路線反饋予您):"cin>>i>>j;mg.printroad(i,j);else if(fc=4)break;elsecout<<"輸入有誤,請(qǐng)重新輸入!"<<endl;運(yùn)行測(cè)試圖#【2】【停車場(chǎng)管理系統(tǒng)【方案一 程序】#(ps:該程序有漏洞,若將要離開(kāi)的車輛是停于便道上的,則對(duì)該車進(jìn)行駛離操作時(shí)程序內(nèi)部有錯(cuò)誤數(shù)據(jù),雖然做了函數(shù)完成這一功能,但因時(shí)間有限,沒(méi)能及時(shí)查找更正,現(xiàn)在懶得改了。大家將就看吧。不過(guò)運(yùn)行是可以的)【問(wèn)題描述】設(shè)停車場(chǎng)是一個(gè)可停放n輛汽車的 長(zhǎng)通道,且只有一個(gè)大門可供汽車進(jìn)出。汽車在停車場(chǎng)內(nèi)按車輛到達(dá)時(shí)間的先后順序,依次由北向南排列(大門在最南端,最先到達(dá)的第一輛車信放在車場(chǎng)的最北端),若車場(chǎng)內(nèi)已停滿n輛汽車,則后來(lái)的汽車只能在門外的便道上等候,一旦有車開(kāi)走,則排在便道上的第一輛車即可開(kāi)入;當(dāng)停車場(chǎng)內(nèi)某輛車要離開(kāi)時(shí),在它之后進(jìn)入的車輛必須先退出車場(chǎng)為它讓路,待該輛車開(kāi)出大門外,其他車輛再按原次序進(jìn)入車場(chǎng)院,每輛停放在車場(chǎng)的車在它離開(kāi)停車場(chǎng)時(shí)必須按它停留的時(shí)間長(zhǎng)短交納費(fèi)用。試為停車場(chǎng)編制按上述要求進(jìn)行管理的模擬程序?!净疽蟆恳詶DM停車場(chǎng),以隊(duì)列模擬車場(chǎng)外的便道,按照從終端讀入的輸入數(shù)據(jù)序列進(jìn)行模擬管理。每一組輸入數(shù)據(jù)包括三個(gè)數(shù)據(jù)項(xiàng):汽車“到達(dá)”或“離去”信息、汽車牌照號(hào)碼以及到達(dá)或離去的時(shí)刻。對(duì)每一組輸入數(shù)據(jù)進(jìn)行操作后的輸出信息為:若是車輛到達(dá),則輸出汽車在停車場(chǎng)內(nèi)或便道上的停車位置;若是車輛離去,則輸出汽車在停車場(chǎng)內(nèi)停留的時(shí)間和應(yīng)交納的費(fèi)用(在便道上停留的時(shí)間不收費(fèi))。棧以順序結(jié)構(gòu)實(shí)現(xiàn),隊(duì)列以鏈表結(jié)構(gòu)實(shí)現(xiàn)?!緶y(cè)試數(shù)據(jù)】設(shè)n=2,輸入數(shù)據(jù)為:(A,1,5),(A,2,15),(A,3,20),(A,4,25),(A,5,30),(D,2,35),(D,4,40),(E,0,0)。其中:A表示到達(dá)(Arrival);D表示離去(Departure);E表示輸入結(jié)束(End)。*【以下為類的定義】*#include<iostream>using namespace std;const int Max=2;/車庫(kù)最大容量const double price=30;/每小時(shí)的費(fèi)用/思想:(報(bào)告第四頁(yè))/我的系統(tǒng)界面,輸入信息為:(到達(dá)/離開(kāi)/退出);車牌號(hào);時(shí)刻/因此,我的停車場(chǎng)類分成車輛到達(dá)和車輛離開(kāi)兩個(gè)主要的函數(shù)實(shí)現(xiàn)。/車輛到達(dá),有入棧和入隊(duì)。車輛離開(kāi)有出棧,出隊(duì)和入棧操作。/因此我又編寫入棧的類,隊(duì)的類。與parkingmanagement進(jìn)行友元。/*類定義*class car/車的信息類public:double time;/計(jì)費(fèi)時(shí)間int number;/車牌號(hào)car *next;/存放car類型元素的數(shù)組初始地址;class carstack/棧(停車場(chǎng))的類friend class parkingmanagement;/parkingmanagement能訪問(wèn)carstack類中所有成員public:carstack();/構(gòu)造函數(shù),棧的初始化int empty();/判斷棧是否為空int full();/判斷棧是否為滿car *s;/存放car類型棧元素的數(shù)組初始地址int top;/棧頂指針;class carqueue/隊(duì)列(便道)的類friend class parkingmanagement;/parkingmanagement能訪問(wèn)carstack類中所有成員public:carqueue();/構(gòu)造函數(shù),隊(duì)列的初始化int full();/判斷隊(duì)列是否為滿car *front,*rear;/存放car類型隊(duì)列元素的數(shù)組初始地址;class parkingmanagementpublic:int pushstack(carstack &cs,int cnum,double ctime);/入棧,cs棧內(nèi)進(jìn)行調(diào)整,返回棧內(nèi)位置void popstack(carstack &cs,int cnum);/出棧,cs棧內(nèi)進(jìn)行調(diào)整,/根據(jù)車牌號(hào)把車彈出棧,將出棧car的number賦值給int popstacknumber()/將出棧car的time賦值給double popstacktime(),無(wú)返回值!int pushqueue(carqueue &cq,int cnum,double ctime);/入隊(duì),隊(duì)內(nèi)進(jìn)行調(diào)整,返回隊(duì)內(nèi)位置int popqueue(carqueue &cq);/出隊(duì),隊(duì)內(nèi)進(jìn)行調(diào)整,返回汽車車牌號(hào)void arrival(carstack &cs,carqueue &cq,int cnum,double ctime);/車輛到達(dá),/根據(jù)輸入的車牌號(hào)、到達(dá)時(shí)間,變更函數(shù)參數(shù);并cout車位信息void leave(carstack &cs,carqueue &cq,int cnum,double ctime);/車輛離開(kāi),/根據(jù)輸入的車牌號(hào)找到汽車,并進(jìn)行出棧操作、出隊(duì)操作和入棧操作;/并cout停留時(shí)間和收費(fèi)情況void deletequeue(carqueue &cq,int i);/刪除cq過(guò)道中第i輛車int popstacknumber;/專門存放出棧的時(shí)候返回的車牌號(hào)double popstacktime;/專門存放出棧的時(shí)候返回的時(shí)刻;*【以下為類的實(shí)現(xiàn)】*carstack:carstack()/構(gòu)造函數(shù),棧的初始化top=-1;s=new carMax;/創(chuàng)建car類型棧元素的數(shù)組if(s=NULL)cout<<"??臻g分配不成功!"<<endl;exit(1);int carstack:full()/判斷棧是否為滿return top=Max-1;carqueue:carqueue()/構(gòu)造函數(shù),隊(duì)列的初始化rear=front=NULL;int parkingmanagement:pushstack(carstack &cs,int cnum,double ctime)/入棧,cs棧內(nèi)進(jìn)行調(diào)整,返回棧內(nèi)位置if(cs.top=Max-1)/Max從1開(kāi)始,top從0開(kāi)始cout<<"停車場(chǎng)已滿!"<<endl;return Max;else cs.top+;(cs.scs.top).number=cnum;/將cnum賦給棧頂位置的車的車牌號(hào),s是car類型棧元素的數(shù)組(cs.scs.top).time=ctime;/將ctime賦給棧頂位置的車的入棧時(shí)間,s是car類型棧元素的數(shù)組return (cs.top+1);/返回棧內(nèi)位置加1,即停車場(chǎng)內(nèi)車位從1號(hào)開(kāi)始void parkingmanagement:popstack(carstack &cs,int cnum)/出棧,cs棧內(nèi)進(jìn)行調(diào)整,/根據(jù)車牌號(hào)把車彈出棧,將出棧car的number賦值給int popstacknumber/將出棧car的time賦值給double popstacktime,無(wú)返回值!int i;car p;carstack stemp;/定義一個(gè)carstack類型的臨時(shí)存放出棧元素的棧for(i=0; i<=cs.top; i+)if(cs.si).number=cnum) break;/當(dāng)要出棧的車的車牌號(hào)=棧內(nèi)的車牌號(hào)元素時(shí),跳出循環(huán)p=cs.si;/將要出棧的元素賦給car類型的p存放while(cs.top>i)stemp.s+(stemp.top)=cs.s(cs.top)-;/出棧的元素?cái)?shù)組逐個(gè)賦給臨時(shí)棧popstacknumber=p.number;/將這個(gè)車牌號(hào)信息傳給int popstacknumber()popstacktime=p.time;/將該車的時(shí)間信息傳給double popstacktime()cs.top-;/棧頂指針回到原來(lái)位置while(stemp.top>=0)cs.s+(cs.top)=stemp.s(stemp.top)-;/臨時(shí)棧出棧的元素逐個(gè)賦給原棧,完成先退再進(jìn)的工作int parkingmanagement:pushqueue(carqueue &cq,int cnum,double ctime)/入隊(duì),隊(duì)內(nèi)進(jìn)行調(diào)整,返回隊(duì)內(nèi)位置car *p,*countp;int count(1);/count用于記錄車在過(guò)道上的位置信息,因隊(duì)列為鏈?zhǔn)降?,所以進(jìn)行循環(huán)累加p=new car;/創(chuàng)建一個(gè)car類型的指針p->number=cnum;p->time=ctime;p->next=NULL;/首先將指向存放car類型元素的數(shù)組初始地址置空if (cq.front=NULL)/第一次入隊(duì)要判斷頭結(jié)點(diǎn)是否為空cq.front=cq.rear=p;else /尾插法插入元素p->next=(cq.rear)->next;(cq.rear)->next=p;cq.rear=(cq.rear)->next;countp=(cq.front)->next;while(countp!=NULL)count+;countp=countp->next;/count即車在過(guò)道上的位置,【從1開(kāi)始計(jì)!】return count;int parkingmanagement:popqueue(carqueue &cq)/出隊(duì),隊(duì)內(nèi)進(jìn)行調(diào)整,返回汽車車牌號(hào)car p;p.number=(cq.front)->next)->number;/cq隊(duì)里,從cq.front開(kāi)始指向下一個(gè)元素的車牌號(hào)賦給car類型的車信息p.time=(cq.front)->next)->time;/cq隊(duì)里,從cq.front開(kāi)始指向下一個(gè)元素的時(shí)刻/賦給car類型的車信息p.next=(cq.front)->next)->next;/cq隊(duì)里,從cq.front開(kāi)始指向下一個(gè)元素的指針/賦給car類型的車信息的下一個(gè)元素的指針return p.number;cq.front=(cq.front)->next;void parkingmanagement:arrival(carstack &cs,carqueue &cq,int cnum,double ctime)/車輛到達(dá),根據(jù)輸入的車牌號(hào)、到達(dá)時(shí)間,變更函數(shù)參數(shù);并cout車位信息int pos;if(!(cs.full()/如果棧未滿,車輛停入停車場(chǎng)int fl(0),i;/定義一個(gè)從0開(kāi)始的標(biāo)記flfor(i=0;i<=cs.top;i+)if(cs.si.number=cnum)/如果到達(dá)的車的車牌號(hào)=棧內(nèi)已有車輛的車牌號(hào)fl=1;/fl記1break;if(fl=1)/如果到達(dá)的車的車牌號(hào)!=棧內(nèi)已有車輛的車牌號(hào)cout<<"輸入錯(cuò)誤!請(qǐng)重新輸入!"<<endl;elsepos=pushstack(cs,cnum,ctime);/入棧,返回車位信息cout<<"該停車場(chǎng)還有空位,請(qǐng)到"<<pos<<"號(hào)車位進(jìn)行泊車"<<endl;cout<<endl;else/如果棧滿,車輛暫停便道pos=pushqueue(cq,cnum,ctime);/入隊(duì),返回車位信息cout<<"該停車場(chǎng)已滿,請(qǐng)將車停到便道"<<pos<<"號(hào)車位上"<<endl;cout<<endl;void parkingmanagement:leave(carstack &cs,carqueue &cq,int cnum,double ctime)/車輛離開(kāi),根據(jù)輸入的車牌號(hào)找到汽車,并進(jìn)行出棧操作、出隊(duì)操作和入棧操作;并cout停留時(shí)間和收費(fèi)情況int i,flag(0),pstack,count(1),outcarnum;double hour;car *p;for(i=0;i<=cs.top;i+)if(cs.si).number=cnum)flag=1;break;if(flag)/如果輸入的車牌號(hào)與棧內(nèi)已有車輛的車牌號(hào)一致popstack(cs,cnum);/出棧操作hour=ctime-popstacktime;/時(shí)間計(jì)算outcarnum=popqueue(cq);/將便道上的第一輛車出隊(duì),入棧。并將其車牌號(hào)賦給outcarnumpstack=pushstack(cs,outcarnum,ctime);/將便道上的第一輛車,入棧cout<<"該車在本停車場(chǎng)內(nèi)停留時(shí)間為"<<hour<<"分鐘,應(yīng)付金額"<<hour*(price/60)<<"元!"<<endl;else/如果輸入的車牌號(hào)與隊(duì)列里已有車輛的車牌號(hào)一致p=cq.front;while(p!=NULL)count+;/如果在過(guò)道中找到該車,則該車的位置為過(guò)道中的第count位置(count從1開(kāi)始)p=p->next;if(p->number=cnum)/在過(guò)道中找到要出去的車,則在隊(duì)列中刪除該car。/后面的車輛依然順序排列,補(bǔ)足空位deletequeue(cq,count);if(count>Max)cout<<"您的車在便道上的位置為"<<count<<"號(hào)車位,請(qǐng)自行駛離,無(wú)需付費(fèi)!"<<endl;break;if(p=NULL)cout<<"您的車不在本停車場(chǎng)內(nèi),或輸入有誤,請(qǐng)重新輸入!"<<endl;void parkingmanagement:deletequeue(carqueue &cq,int i) car *p,*q;int j(0);p=cq.front;while(p && j<i-1)p=p->next;j+;/找到第i個(gè)節(jié)點(diǎn)(i從1開(kāi)始)if(!p | !p->next)cout<<"i不合法"elseq=p->next;p->next=q->next;delete q;*【以下是主程序】*void print()cout<<"= = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = ="<<endl;cout<<"= 歡迎光臨! ="<<endl;cout<<"= ="<<endl;cout<<"= 本停車場(chǎng)收費(fèi)標(biāo)準(zhǔn)為:30元/小時(shí);車庫(kù)容量為:2 ="<<endl;cout<<"= ="<<endl;cout<<"= 請(qǐng)輸入您的泊車信息:格式為:(到達(dá)/離去/退出);車牌號(hào);現(xiàn)在時(shí)刻 ="<<endl;cout<<"= 其中,A:到達(dá);D:離去;E:退出系統(tǒng) ="<<endl;cout<<"= = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = ="<<endl;/*調(diào)試程序*設(shè)n=2,輸入數(shù)據(jù)為:(A,1,5),(A,2,15),*/*(A,3,20),(A,4,25),(A,5,30),*/*(D,2,35),(D,4,40),(E,0,0)。*/*其中:A表示到達(dá)(Arrival);D表示離去(Departure);E表示輸入結(jié)束(End)。*void main()char acc;int carnum;double cartime;parkingmanagement park;carstack cars;carqueue carq;while(1)print();cin>>acc>>carnum>>cartime;if(acc='A')park.arrival(cars,carq,carnum,cartime);else if(acc='D')park.leave(cars,carq,carnum,cartime);else if(acc='E')break;elsecout<<"您的輸入有誤,請(qǐng)重新輸入!"<<endl;#【3】【停車場(chǎng)管理系統(tǒng)【方案二 程序】#(ps:本方案與方案一有同樣的問(wèn)題,就是在對(duì) 便道上的車 進(jìn)行駛離操作時(shí),數(shù)據(jù)錯(cuò)誤,同樣的理由,沒(méi)有改正。如果有細(xì)心娃娃幫忙指點(diǎn)改正,在此感激啦)*【以下為類定義】*#include <iostream>using namespace std;const int MaxSize=2;/停車場(chǎng)內(nèi)最多能停2輛車template<class T> class carStack;/template <class T> /定義模板類struct Node/過(guò)道停車的隊(duì)列所需鏈?zhǔn)浇Y(jié)點(diǎn)T carnum;/定義車牌號(hào)類型Node<T> *next; /此處<T>也可以省略;template<class T>class carinfo friend class carStack; public:T carnum; /車號(hào) int cartime;/停車時(shí)間;template <class T>class carQueuefriend class carStack;public:carQueue(); /構(gòu)造函數(shù),初始化一個(gè)空的鏈隊(duì)列int EnQueue(T cnum); /將元素x入隊(duì),并返回其在隊(duì)內(nèi)的位置(從1開(kāi)始)T DeQueue(); /將隊(duì)頭鏈?zhǔn)浇Y(jié)點(diǎn)出隊(duì),并返回汽車車牌號(hào)void deletequeue(int i);/將隊(duì)內(nèi)低i個(gè)元素刪除,即便道上i位置的汽車駛離bool Empty(); /判斷鏈隊(duì)列是否為空Node<T> *front, *rear; ;template<class T>class carStackfriend class carinfo;public:carStack() ; /構(gòu)造函數(shù),棧的初始化,停車場(chǎng)容量為【size】void Pushcar(T cnum,int ctime); /有車停入停車場(chǎng)int Popcar(T outcnum,int outctime); /將第cnum輛車出棧,并返回其停車時(shí)間(hour)bool full();/判斷棧是否為滿?滿則返回1carinfo<T> *S;/?int top; ;*【以下為類的實(shí)現(xiàn)】*template <class T>/初始化隊(duì)列carQueue<T>:carQueue()front=rear=NULL;template <class T>int carQueue<T>:EnQueue(T cnum)/車子進(jìn)入便道int i(0);Node<T> *s,*p;/?s=new Node<T>s->carnum=cnum;s->next=NULL;if(front=NULL)/空隊(duì)列,【新結(jié)點(diǎn)既是隊(duì)頭,又是隊(duì)尾】關(guān)鍵是!front指向第一個(gè)結(jié)點(diǎn) front=rear=s;else rear->next=s;/將結(jié)點(diǎn)s插入到隊(duì)尾rear=s;p=front;while(p!=NULL)i+;p=p->next;/i即車在過(guò)道上的位置,【從1開(kāi)始計(jì)!】return i;template<class T>T carQueue<T>:DeQueue()Node <T> *p;if (front=NULL) cout<<"便道上沒(méi)車"elsep=front; front=front->next;/將隊(duì)頭元素所在結(jié)點(diǎn)摘鏈return p->carnum;delete p;/將出隊(duì)進(jìn)棧的車從隊(duì)列里刪除template<class T>bool carQueue<T>:Empty()/判斷是否為空,為空則返回1,不為空則返回0return front=NULL;template <class T>carStack<T>:carStack()/構(gòu)造棧算法:top(-1)/建立一個(gè)最大尺寸為size的空棧S=new carinfo<T>MaxSize;/創(chuàng)建存儲(chǔ)棧的數(shù)組if(S=NULL) /分配不成功 cerr<<"動(dòng)態(tài)存儲(chǔ)失敗!"<<endl;exit(1); /stdlib.htemplate<class T>void carStack<T>:Pushcar(T cnum,int ctime)if (top=MaxSize-1)cout<<"車場(chǎng)內(nèi)已停滿汽車"elseS+top.carnum=cnum;Stop.cartime=ctime;template<class T>int carStack<T>:Popcar(T outcnum,int outctime)int i,hour;carStack Stemp;/建一個(gè)臨時(shí)模擬停車場(chǎng)int Stop=-1;for(i=0;i<=top;i+)if(outcnum=Si.carnum)break;while(top>i)Stemp.S+Stop=Stop-;hour=outctime-Stop.cartime;return hour;top-;while(Stop>=0)S+top=Stemp.SStop-;template<class T>bool carStack<T>:full()return top=MaxSize-1;template <class T>void carQueue<T>:deletequeue(int i)Node<T> *p,*q;int j(1);p=front;while(p && j<i-1)p=p->next;j+;/找到第i-1個(gè)結(jié)點(diǎn)(結(jié)點(diǎn)位置從1開(kāi)始)if(!p|!p->next)cout<<"i不合法!"<<endl;elseq=p->next;p->next=q->next;delete q;*【以下為主函數(shù)】*void outputpark()/系統(tǒng)功能選擇頁(yè)面,輸入泊車信息cout<<"="<<endl;cout<<" 歡迎來(lái)到秦小寶停車場(chǎng)!"<<endl;cout<<" (本停車場(chǎng)收費(fèi)標(biāo)準(zhǔn)為5元/小時(shí),60分鐘以內(nèi)記為1小時(shí))"<<endl;cout<<"="<<endl;cout<<"請(qǐng)輸入您的車輛信息:"<<endl;cout<<"(泊車輸入A/駛離輸入D/退出系統(tǒng)輸入E;請(qǐng)輸入您的車牌號(hào);請(qǐng)輸入現(xiàn)在時(shí)刻)"<<endl;void main()int carnum,cartime;char arrive;carStack<int> cs;carQueue<int> cq;while(1)outputpark();cin>>arrive>>carnum>>cartime;if(arrive='A')if(cs.top!=MaxSize-1)/停車場(chǎng)內(nèi)有空位可以駛?cè)隿s.Pushcar(carnum,cartime);cout<<"請(qǐng)駛?cè)胪\噲?chǎng)的"<<cs.top+1<<"號(hào)車位"<<endl;elsecout<<"請(qǐng)駛?cè)氡愕赖?quot;<<cq.EnQueue(carnum)<<"號(hào)車位"<<endl;/將車輛進(jìn)行入隊(duì)操作,即停入便道else if(arrive='D')int flag(0),i;for(i=0;i<=cs.top;i+)if(cs.Si.carnum=carnum)flag=1;break;if(flag)int hour;hour=cs.Popcar(carnum,cartime);cout<<"您的"<<carnum<<"車在秦小寶停車場(chǎng)內(nèi)停留時(shí)間為:"<<hour<<endl;cout<<"需要繳納的費(fèi)用為:"<<hour*5<<"元!"<<endl;cs.Pushcar(cq.DeQueue(),cartime);/出隊(duì)一輛車,并將該車進(jìn)行入棧處理elseint flagde(0),pos(0);/若該車在便道內(nèi),pos用來(lái)記錄該車便道內(nèi)的位置Node<int> *p;p=cq.front;while(p!=NULL)if(p->carnum=carnum)flagde=1;break;pos+;p=p->next;if(flagde)cout<<"您的車停在便道上"<<pos<<"號(hào)車位,無(wú)需繳納費(fèi)用,請(qǐng)自行駛離!"<<endl;cq.deletequeue(pos);elsecout<<"輸入有誤,或您的車不在秦小寶停車場(chǎng)內(nèi)!請(qǐng)重新輸入"<<endl;else if(arrive='E')break; elsecout<<"您的輸入有誤,請(qǐng)重新輸入!"<<endl; (ps:本方案截圖與方案一截圖差不多,所以就不做了)(英文版 ) easily blame, to prevent the broken window effect. Supervise the leading cadres to play an exemplary role, take the lead in the strict implementation of the < code > and < rule >, lead to safeguard the solemnity and authority of the party discipline, ensure that the party discipline and the laws and regulations for implementation in place. Throughout the discipline in the daily supervision and management, strengthen supervision and inspection, from the thorough investigation of violations of discipline behavior. Strengthen to key areas, key departments and key projects as well as the masses reflect the concentration of the units and departments for supervision. - strengthening supervision, discipline inspection and supervision of cadres to set an example for compliance with the < code > and < rule > is a man must be hexyl, blacksmith needs its own hardware. Discipline inspection organs as the executor of the party discipline, and supervisor of the defenders, for its supervision must be more strictly, discipline inspection and supervision of cadres to firmly establish the awareness of Party Constitution, sense of discipline and rules consciousness, politics loyalty, sense obey. Action speak Ji Ordinance to set an example of the regulations of the rule of law, strengthen supervision and accept the supervision of the firmness and consciousness, do comply with < > and < >. To firmly establish the discipline must first be disciplined, the supervisor will be subject to the supervision of "concept, and consciously safeguard and implement party compasses party, take the lead in practicing" three strict real strict, so loyal, clean, play. To be good at learning, the Constitution and the < code > as morality, politics and brought to fruition; to implement < >, do not want to, dare not, not with disciplinary ruler to supervision; to discipline a ruler, often the control inspection, an

注意事項(xiàng)

本文(C數(shù)據(jù)結(jié)構(gòu) 大作業(yè)課程設(shè)計(jì))為本站會(huì)員(ca****in)主動(dòng)上傳,裝配圖網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)上載內(nèi)容本身不做任何修改或編輯。 若此文所含內(nèi)容侵犯了您的版權(quán)或隱私,請(qǐng)立即通知裝配圖網(wǎng)(點(diǎn)擊聯(lián)系客服),我們立即給予刪除!

溫馨提示:如果因?yàn)榫W(wǎng)速或其他原因下載失敗請(qǐng)重新下載,重復(fù)下載不扣分。




關(guān)于我們 - 網(wǎng)站聲明 - 網(wǎng)站地圖 - 資源地圖 - 友情鏈接 - 網(wǎng)站客服 - 聯(lián)系我們

copyright@ 2023-2025  zhuangpeitu.com 裝配圖網(wǎng)版權(quán)所有   聯(lián)系電話:18123376007

備案號(hào):ICP2024067431號(hào)-1 川公網(wǎng)安備51140202000466號(hào)


本站為文檔C2C交易模式,即用戶上傳的文檔直接被用戶下載,本站只是中間服務(wù)平臺(tái),本站所有文檔下載所得的收益歸上傳人(含作者)所有。裝配圖網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)上載內(nèi)容本身不做任何修改或編輯。若文檔所含內(nèi)容侵犯了您的版權(quán)或隱私,請(qǐng)立即通知裝配圖網(wǎng),我們立即給予刪除!