數(shù)據(jù)結(jié)構(gòu)-停車場停車管理系統(tǒng)_第1頁
數(shù)據(jù)結(jié)構(gòu)-停車場停車管理系統(tǒng)_第2頁
數(shù)據(jù)結(jié)構(gòu)-停車場停車管理系統(tǒng)_第3頁
數(shù)據(jù)結(jié)構(gòu)-停車場停車管理系統(tǒng)_第4頁
數(shù)據(jù)結(jié)構(gòu)-停車場停車管理系統(tǒng)_第5頁
已閱讀5頁,還剩48頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)

文檔簡介

數(shù)據(jù)結(jié)構(gòu)-停車場停車管理系統(tǒng)數(shù)據(jù)結(jié)構(gòu)課外實(shí)踐報告項目名稱:停車場停車管理系統(tǒng)所在班級:

10級信管1班小組成員:楊劍楠孫迎張可可吳亮指導(dǎo)教師:王希杰起 止時間:12月4日——12月22日安陽師范學(xué)院 ·數(shù)據(jù)結(jié)構(gòu)課外實(shí)踐·項目基本信息項目名稱項目簡介小組成員

停車場停車管理系統(tǒng)本項目是對停車場停車管理系統(tǒng)的簡單模擬,以完成停車場的停車、出車、收費(fèi)及查詢停車場或便道信息等的功能。楊劍楠 孫迎張可可吳亮張 可 可100903045:InitStack();Pop();Push();InitQueue();EnQueue()任;DeQueue();務(wù)getpas();login();分楊 劍 楠工100903043:reachtime();leavetime();Arrival();孫迎100903038:Leave();Bill();3安陽師范學(xué)院 ·數(shù)據(jù)結(jié)構(gòu)課外實(shí)踐·吳 亮 100903012:List();List1();List2();main();課外實(shí)踐評定成績記錄系統(tǒng)完成情況:優(yōu) 良 中 差指導(dǎo)教師意見報告完成情況:優(yōu) 良 中 差團(tuán)隊整體成績:成答辯評定成績 員成績綜合成績4安陽師范學(xué)院 ·數(shù)據(jù)結(jié)構(gòu)課外實(shí)踐·一、 問題描述及分析1、問題描述:停車場停車管理系統(tǒng):設(shè)一個可以停放 n輛汽車停車場,只有一個大門可供汽車進(jìn)出。汽車在停車場內(nèi)按車輛到達(dá)時間的先后順序停放,若車場內(nèi)已停滿 n輛車,那么后來的車只能在門外的便道上等候;一旦有車開走,則排在便道上的第一輛車即可開入。當(dāng)停車場內(nèi)某輛車要離開時,在它之后進(jìn)入的車輛必須先依次退出車場為它讓路,待該輛車開出大門外,其它車輛再按原次序進(jìn)入車場。每輛停放在車場的車在它離開停車場時必須按它停留的時間長短交納費(fèi)用。2、需求分析:1)題目中要根據(jù)車輛停留時間收費(fèi),故在定義結(jié)構(gòu)體時還需要一個時間的結(jié)構(gòu)體用來保存車輛到達(dá)和離開的時間。2)由于停車場的進(jìn)出符合棧的“后進(jìn)先出,先進(jìn)后出”的操作特點(diǎn),因此,需要設(shè)一個棧來模擬停車場。3)根據(jù)便道停車的特點(diǎn),先排隊的車輛先離開便道進(jìn)入停車場,符合隊列的“先進(jìn)先出,后5安陽師范學(xué)院 ·數(shù)據(jù)結(jié)構(gòu)課外實(shí)踐·進(jìn)后出”的操作特點(diǎn),因此,需要用一個隊列來模擬便道。4)而中間車輛提出離開停車場,后到達(dá)的車輛都須先離開停車場為它讓路,然后這些車輛再依原來次序進(jìn)入停車場,而這個同樣符合“后進(jìn)先出,先進(jìn)后出”的特點(diǎn),因此還需一個棧來作為臨時保存車輛的地方。二、 功能模塊及數(shù)據(jù)結(jié)構(gòu)描述1、功能模塊:★主要功能:1)車輛到達(dá)2)車輛離開3)信息查詢★功能模塊圖:6安陽師范學(xué)院 ·數(shù)據(jù)結(jié)構(gòu)課外實(shí)踐·停車場停車管理員密碼車車信輛輛息到離查達(dá)開詢進(jìn)若車打便停便入滿輛印道車道停,出賬車場信車進(jìn)停單進(jìn)信息圖1.功能模塊圖7安陽師范學(xué)院 ·數(shù)據(jù)結(jié)構(gòu)課外實(shí)踐·2、數(shù)據(jù)結(jié)構(gòu)描述:(1) 車輛信息的表示車輛可以看成是一個節(jié)點(diǎn),設(shè)計成一個結(jié)構(gòu)題,車輛包括:車牌號,車輛到達(dá)時間,車輛離開時間,定義typedefstructnode{charnum[10]; //車牌號Timereach; //保存車輛到達(dá)的時間Timeleave; //保存車輛離開的時間}CarNode;(2) 時間、棧和隊列的定義時間有小時、分鐘和秒表示,即設(shè)計三個變量分別表下:typedefstructtime{inthour;intmin;intsec;}Time;停車場內(nèi)用棧表示:typedefstructNODE{8安陽師范學(xué)院 ·數(shù)據(jù)結(jié)構(gòu)課外實(shí)踐·CarNode*stack[Max+1]; //棧用順序表示inttop;}SqStackCar;便道上的車輛表示:typedefstructcar{CarNode*data; //便道上的車用鏈表structcar*next;}QueueNode;typedefstructNode{QueueNode*head; //設(shè)置頭指針、尾指QueueNode*rear;}LinkQueueCar;三、 主要算法流程描述及部分核心算法(1)主函數(shù)的算法流程描述:9安陽師范學(xué)院 ·數(shù)據(jù)結(jié)構(gòu)課外實(shí)踐·圖2.主函數(shù)流程圖2)核心算法流程描述:☆車輛到達(dá):Arrival函數(shù)主要通過if(Enter->top<Max)來判斷到達(dá)車輛是進(jìn)車場還是進(jìn)便道,如果進(jìn)車場,就把top加1,同時記錄進(jìn)車場的位置和時間,然后結(jié)點(diǎn)進(jìn)棧;如果進(jìn)便道,進(jìn)行隊列操作。車輛到達(dá)函數(shù)的算法流程如下圖:10安陽師范學(xué)院 ·數(shù)據(jù)結(jié)構(gòu)課外實(shí)踐·圖3.車輛到達(dá)流程圖車輛到達(dá):Leave函數(shù)首先定義一個position變量來記錄要離開車輛的位置,用if(Enter->top>0)來保證棧不空,進(jìn)而執(zhí)行以下操作,然后用while(1)來確保輸入要離開車輛位置的合法性,在由while(Enter->top>position)來判斷離開車輛位置是否在最后,若在最后可直接離開,并打印賬單;若不是最后,則用臨時棧執(zhí)行操作。車輛離開函數(shù)的算法流程如下圖:11安陽師范學(xué)院 ·數(shù)據(jù)結(jié)構(gòu)課外實(shí)踐·圖4.車輛離開流程圖四、 使用說明程序名為停車場停車管理系統(tǒng) .exe,運(yùn)行環(huán)境為C++6.0。12安陽師范學(xué)院 ·數(shù)據(jù)結(jié)構(gòu)課外實(shí)踐·★測試數(shù)據(jù):最大容量Max定義為3,收費(fèi)標(biāo)準(zhǔn)為0.05元/秒默認(rèn)密碼為:abc依次選擇1并錄入的車牌號信息aaa,bbb,ccc,ddd,eee,fff。選擇2并輸入車輛離開位置為 2。★程序執(zhí)行后顯示:圖5.身份驗(yàn)證界面輸入密碼正確后進(jìn)入如下界面:13安陽師范學(xué)院 ·數(shù)據(jù)結(jié)構(gòu)課外實(shí)踐·圖6.登陸后界面輸入收費(fèi)標(biāo)準(zhǔn)(任意數(shù)字)后,進(jìn)入主界面:圖7.主菜單界面SELECT:在select后輸入數(shù)字選擇執(zhí)行不同的功能。選擇1:之后輸入車牌號,打印出車輛到達(dá)信息。然后返回主界面。14安陽師范學(xué)院 ·數(shù)據(jù)結(jié)構(gòu)課外實(shí)踐·圖8.車輛到達(dá)界面選擇2:之后輸入要離開車輛的位置,打印出車輛的離開信息及賬單,并顯示便道車輛進(jìn)入停車場的信息。然后返回主界面。圖9.車輛離開界面選擇3:進(jìn)入信息查詢菜單,分為停車場信息、便道信息和返回主菜單選項。15安陽師范學(xué)院 ·數(shù)據(jù)結(jié)構(gòu)課外實(shí)踐·圖10.查詢停車場信息界面圖11.查詢便道信息界面五、 問題及解決辦法這次設(shè)計,總的來說,題目是比較簡單的,主要運(yùn)用了棧和隊列的一些知識,但在執(zhí)行是還是遇到了一些問題。1、怎樣來獲取車輛到達(dá)和離開的時間信息?解決途徑:通過查詢相關(guān)書籍,調(diào)用 time.h 和16安陽師范學(xué)院 ·數(shù)據(jù)結(jié)構(gòu)課外實(shí)踐·conio.h的頭文件及相關(guān)函數(shù),可以獲取系統(tǒng)當(dāng)前的時間。2、在開始輸入車牌號的字符串時總是出錯,便不能再執(zhí)行。解決途徑:通過上網(wǎng)查資料知道,輸入字符時習(xí)慣性的會加Enter鍵然后再輸下一個,這樣相當(dāng)于Enter也作為一個字符讀入,在輸入前加上flushall()函數(shù),用于清除輸入的所有緩沖區(qū)即可。3、車輛離開時的輸出信息中位置和車牌號不相符,導(dǎo)致信息查詢中的信息也不正確。解決途徑:經(jīng)分析知道,開始出棧入棧的具體過程還沒有分析透徹,中間車輛離開時,在其后的車輛進(jìn)臨時棧后要再調(diào)用Pop函數(shù),其才能出棧成功,否則,相當(dāng)于沒有離開停車場,打印信息便會出錯。但是這個程序目前還是有缺點(diǎn)尚未解決,如:1、可以記錄車輛停留多天的記錄而不是當(dāng)天。2、如果便道的車離開,可以實(shí)現(xiàn)其離開且不收費(fèi)。3、若輸入車牌號信息重復(fù),則顯示輸入錯誤。六、 課外實(shí)踐總結(jié)17安陽師范學(xué)院 ·數(shù)據(jù)結(jié)構(gòu)課外實(shí)踐·通過這次對于停車場停車管理系統(tǒng)的設(shè)計,我們的收下:1、我們更深一步地體會到算法的應(yīng)用,它的靈活性決定了它泛用途。2、并且通過這個課程設(shè)計,我們加強(qiáng)了對數(shù)據(jù)結(jié)構(gòu)知識的理解和掌握,尤其是棧和隊列的應(yīng)用。3、培養(yǎng)了我們嚴(yán)肅認(rèn)真的做事作風(fēng),如果想要完成一項完美的設(shè)計,是需要正視的態(tài)度,絕對的耐心和縝密的思維的。4、這個設(shè)計培養(yǎng)了我們發(fā)現(xiàn)并解決問題的能力,學(xué)會查找相關(guān)資料來尋找解決方案,并擴(kuò)展了知識面。5、最重要的是,通過我們共同完成這個設(shè)計,我們體會到團(tuán)隊之間協(xié)調(diào)與合作的重要性,如果沒有團(tuán)隊的共同努力,一個完美的程序是很難實(shí)現(xiàn)的。總之,現(xiàn)在我們的知識面還是很窄,需要學(xué)習(xí)的東西還很多,在之后的學(xué)習(xí)中,我們更加要多看相關(guān)的資料,多實(shí)踐,只有在實(shí)踐中才能真正的進(jìn)步。18安陽師范學(xué)院 ·數(shù)據(jù)結(jié)構(gòu)課外實(shí)踐·源程序(附錄)#include<stdio.h>19安陽師范學(xué)院#include<stdlib.h>#include<string.h>#include<time.h>#include<conio.h>#include<ctype.h>#defineMax10 /*#definePS"abc" /*#defineMPS3 /*/*定義全局變量*/floatprice;time_tstart,end;

·數(shù)據(jù)結(jié)構(gòu)課外實(shí)踐·停車場容量*/默認(rèn)密碼*/失敗重試次數(shù)*//*定義時間的結(jié)構(gòu)體,hour 為時,min為分,sec為秒*/typedefstructtime{inthour;intmin;intsec;20安陽師范學(xué)院 ·數(shù)據(jù)結(jié)構(gòu)課外實(shí)踐·}Time;/*定義車的結(jié)構(gòu)體*/typedefstructnode{charnum[10]; // 車牌號Time reach; // 保存車輛到達(dá)的時間Time leave; // 保存車輛離開的時間}CarNode;/*定義棧結(jié)構(gòu)*/typedefstructNODE{CarNode*stack[Max+1];inttop;}SqStackCar;/*定義隊列中的結(jié)點(diǎn)*/typedefstructcar{21安陽師范學(xué)院 ·數(shù)據(jù)結(jié)構(gòu)課外實(shí)踐·CarNode*data;structcar*next;}QueueNode;/*定義隊列結(jié)構(gòu)*/typedefstructNode{QueueNode*head;QueueNode*rear;}LinkQueueCar;/*------------------------------- 用到的所有 函 數(shù) ( 及 函 數(shù) 聲 明 部 分 )----------------------*/void InitStack(SqStackCar *);初始化棧//intPop(SqStackCar*,CarNode*);//intPush(SqStackCar*,CarNode*);int InitQueue(LinkQueueCar *);初始化隊列//int EnQueue(LinkQueueCar *,QueueNode22安陽師范學(xué)院 ·數(shù)據(jù)結(jié)構(gòu)課外實(shí)踐·*,CarNode*);//intDeQueue(LinkQueueCar*,QueueNode,CarNode*);//char *getpas(char *,int );關(guān)于密碼驗(yàn)證的函數(shù)//intlogin();//void reachtime(CarNode *);獲取到達(dá)的系統(tǒng)時間//void leavetime(CarNode *);獲取離開的系統(tǒng)時間void Arrival(SqStackCar *,LinkQueueCar*,QueueNode*,CarNode*);// 車輛到達(dá)的函數(shù)void Leave(SqStackCar *,SqStackCar*,LinkQueueCar*,CarNode*);// 車輛離開的函數(shù)void Bill(CarNode *);打印賬單的函數(shù)void List(SqStackCar,LinkQueueCar);查詢的函數(shù)23安陽師范學(xué)院 ·數(shù)據(jù)結(jié)構(gòu)課外實(shí)踐·//voidList1(SqStackCar*);//voidList2(LinkQueueCar*);/*----------------------- 關(guān)于管理員進(jìn)入的密 碼 驗(yàn) 證 部 分----------------------------------*//*輸入密碼,并返回輸入的值*/char*getpas(char*s,intn){charc;inti;memset(s,0,n);for(i=0;i<n-1;i++){c=getch();if(isprint(c)){s[i]=c=='\r'?'\0':c;putchar('*');}if(c=='\r')break;24安陽師范學(xué)院 ·數(shù)據(jù)結(jié)構(gòu)課外實(shí)踐·}putchar('\n');returns;}/*密碼驗(yàn)證函數(shù),如果通過驗(yàn)證則返回 1,否則返回0*/intlogin(){charap[80];intfg=1;do{if(strcmp(getpas(ap,80),PS)&&fg<=MPS){printf("\n");printf("\t\t |---------------------------------------------- |\n");printf("\t\t |------------- 輸入有誤,還有%d次機(jī)會!---------- |\n",MPS-fg);printf("\t\t |------------------------------------------25安陽師范學(xué)院 ·數(shù)據(jù)結(jié)構(gòu)課外實(shí)踐·---- |\n");printf("\t\t 密碼:");fg++;}else{system("cls");printf("\n\n\n\n\n");printf("\t\t |---------------------------------------------- |\n");printf("\t\t |--------------------密碼正確!----------------- |\n");printf("\t\t |---------------------------------------------- |\n");return1;}}while(fg<=MPS);return0;}26安陽師范學(xué)院 ·數(shù)據(jù)結(jié)構(gòu)課外實(shí)踐·/*----------------------- 主 函 數(shù) 入 口----------------------------------*/voidmain(){printf("\n\n\n\n\n\n");printf("\t↓↓↓↓↓\n");printf("\t☆★☆☆★☆☆★☆☆★☆☆★☆\n");printf("\t☆安☆☆師☆☆?!睢钴嚒睢顖觥頫n");printf("\t☆★☆☆★☆☆★☆☆★☆☆★☆\n");printf("\t↓↓↓↓↓\n");printf("\t※※※※※\n");start=time(NULL);end=time(NULL);while(end-start<2) //延時2秒執(zhí)行以下27安陽師范學(xué)院 ·數(shù)據(jù)結(jié)構(gòu)課外實(shí)踐·程序{end=time(NULL);}system("cls");printf("\n\n\n\n\n");printf("\t\t |**********************************************|\n");printf("\t\t | 身份驗(yàn)證 |\n");printf("\t\t |**********************************************|\n");printf("\t\t 請輸入密碼(默認(rèn)abc):");if(login()){tLoading??");start=time(NULL);end=time(NULL);while(end-start<2)// 延時2秒執(zhí)行以下28安陽師范學(xué)院 ·數(shù)據(jù)結(jié)構(gòu)課外實(shí)踐·程序{end=time(NULL);}system("cls");SqStackCarEnter,Temp;LinkQueueCarWait;QueueNodeq;CarNodee;intch;InitStack(&Enter);InitStack(&Temp);InitQueue(&Wait);printf("._________________.\n");printf("|_______________|\n");printf("|II|\n");printf("|II|\n");29安陽師范學(xué)院·數(shù)據(jù)結(jié)構(gòu)課外實(shí)踐·printf("|II|\n");printf("|II|\n");printf("|I_____________I|\n");printf("!_________________!\n");printf("._[_______]_.\n");printf(".__|___________|____.\n");printf("|:::____|\n");printf("|[CD-ROM]|\n");printf("!___________________! \n\n");printf(" 單日停車場管理系統(tǒng)操作室 \n");printf(" 請輸入收費(fèi)標(biāo)準(zhǔn)(以秒為單位):");30安陽師范學(xué)院 ·數(shù)據(jù)結(jié)構(gòu)課外實(shí)踐·scanf("%f",&price);while(1){system("cls");printf("\n\n");printf("\t\t\t****** 停車場最大容量:%d*********\n",Max);printf("\t\t\t****** 停車場收費(fèi)標(biāo)準(zhǔn):%2.2f元/秒*****\n",price);printf("\n\n\n\n");printf("\t\t\t*****************************\n");printf("\t\t\t * 1- 到達(dá)登記 *\n");printf("\t\t\t * 2- 離開登記 *\n");printf("\t\t\t * 3- 信息查詢 *\n");printf("\t\t\t * 0- 退出 *\n");31安陽師范學(xué)院 ·數(shù)據(jù)結(jié)構(gòu)課外實(shí)踐·printf("\t\t\t*****************************\n");printf("\t\t\t\t 請選擇(1|2|3|0 ):");scanf("%d",&ch);if(ch<0&&ch>3){printf("\n\t\t\t 您輸入的選項不存在,請重新選擇!\n");}else{system("cls");switch(ch){case1:Arrival(&Enter,&Wait,&q,&e);break;case2:Leave(&Enter,&Temp,&Wait,&e);32安陽師范學(xué)院 ·數(shù)據(jù)結(jié)構(gòu)課外實(shí)踐·break;case3:List(Enter,Wait);break;case0:printf("\n\n\n\n\n");printf("\t************************* 謝謝使用!****************************\n\t");exit(0);default:break;}}}}else{system("cls");printf("\n\n\n\n\n");printf("\t\t |**********************************************|\n");33安陽師范學(xué)院 ·數(shù)據(jù)結(jié)構(gòu)課外實(shí)踐·printf("\t\t | 無此權(quán)限 |\n");printf("\t\t |******************************************|\n");start=time(NULL);end=time(NULL);while(end-start<2) //延時2秒執(zhí)行以下程序{end=time(NULL);}system("cls");main();}}/*---------------------- 有關(guān)棧和隊列的函數(shù)部分-----------------------------------*//*初始化棧*/voidInitStack(SqStackCar*s)34安陽師范學(xué)院 ·數(shù)據(jù)結(jié)構(gòu)課外實(shí)踐·{inti;s->top=0;for(i=0;i<=Max;i++)s->stack[i]=NULL;}/*入棧*/intPush(SqStackCar*S,CarNode*e){if(S->top<Max){S->top++;S->stack[S->top]=e;return1;}else{return0;}}/*出棧*/35安陽師范學(xué)院 ·數(shù)據(jù)結(jié)構(gòu)課外實(shí)踐·intPop(SqStackCar*S,CarNode*e){if(S->top!=0){e=S->stack[S->top];S->top--;return1;}else{return0;}}/*初始化隊列*/intInitQueue(LinkQueueCar*Q){Q->head=(QueueNode*)malloc(sizeof(QueueNode));if(Q->head!=NULL){Q->head->next=NULL;Q->rear=Q->head;36安陽師范學(xué)院 ·數(shù)據(jù)結(jié)構(gòu)課外實(shí)踐·return1;}elsereturn0;}/*入隊列*/intEnQueue(LinkQueueCar*Q,QueueNode*t,CarNode*e){t=(QueueNode*)malloc(sizeof(QueueNode));t->data=e;t->next=NULL;if(Q->head==NULL){Q->rear=Q->head=t;return0;}else{Q->rear->next=t;Q->rear=t;printf("\n\t\t\t%s 車進(jìn)入便道等候!37安陽師范學(xué)院 ·數(shù)據(jù)結(jié)構(gòu)課外實(shí)踐·",e->num);return1;}}/*出隊列*/int DeQueue(LinkQueueCar *Q,QueueNode*q,CarNode*e){if(Q->head!=Q->rear){q=Q->head;Q->head=q->next;e=q->data;if(q==Q->rear)Q->rear=Q->head;free(q);return1;}elsereturn0;}38安陽師范學(xué)院 ·數(shù)據(jù)結(jié)構(gòu)課外實(shí)踐·/*-------------------------- 獲取進(jìn)出的系統(tǒng)時 間 函 數(shù) 部 分-------------------------------*//*獲取進(jìn)入停車場的時間 */voidreachtime(CarNode*c){structtm*date;time_tcurr;curr=time(NULL);date=localtime(&curr);printf("%d/%d/%d%d:%d:%d\n",date->tm_year+1900,date->tm_mon+1,date->tm_mday,date->tm_hour,date->tm_min,date->tm_sec);c->reach.hour=date->tm_hour;c->reach.min=date->tm_min;c->reach.sec=date->tm_sec;}/*獲取離開停車場的時間 */voidleavetime(CarNode*c){39安陽師范學(xué)院 ·數(shù)據(jù)結(jié)構(gòu)課外實(shí)踐·structtm*date;time_tcurr;curr=time(NULL);date=localtime(&curr);printf("%d:%d:%d\n",date->tm_hour,date->tm_min,date->tm_sec);c->leave.hour=date->tm_hour;c->leave.min=date->tm_min;c->leave.sec=date->tm_sec;}/*-------------------------- 關(guān)于收費(fèi),打印賬單部分-------------------------------*/voidBill(SqStackCar*Enter,CarNode*c){floats,m;printf("\n\n");printf("\t\t\t**************************************\n");40安陽師范學(xué)院 ·數(shù)據(jù)結(jié)構(gòu)課外實(shí)踐·printf("\t\t\t%s 車 到 達(dá) 的 時 間是:%d:%d:%d\n",c->num,c->reach.hour,c->reach.min,c->reach.sec);printf("\t\t\t 離開時間是:");leavetime(c);獲取其離開的時間printf("\t\t\t**************************************\n");printf("\t\t\t********* 收費(fèi)標(biāo)準(zhǔn):%2.2f元/秒*********\n",price);printf("\t\t\t**************************************\n");s=((c->leave.hour-c->reach.hour)*3600+(c->leave.min-c->reach.min)*60+(c->leave.sec-c->reach.sec))*price;計算其收費(fèi)printf("\t\t\t 共計:%2.2f元\n",s);printf("\t\t\t 收取現(xiàn)金(元):");41安陽師范學(xué)院 ·數(shù)據(jù)結(jié)構(gòu)課外實(shí)踐·scanf("%f",&m);printf("\n\t\t\t 找零:%2.2f元",m-s);}/*----------------------- 關(guān)于到達(dá)離開停車場 部 分------------------------------------*//*到達(dá)停車場的處理函數(shù) */voidArrival(SqStackCar*Enter,LinkQueueCar*W,QueueNode*q,CarNode*p){p=(CarNode*)malloc(sizeof(CarNode));printf("\n\n\n\n\n");printf("\t\t********************************************\n");flushall();用于清除輸入的所有緩沖區(qū)printf("\t\t\t 請輸入車牌號(例:豫E10101):");gets(p->num);42安陽師范學(xué)院 ·數(shù)據(jù)結(jié)構(gòu)課外實(shí)踐·q->data=p;if(Enter->top<Max){Push(Enter,p);printf("\t\t********************************************\n");printf("\t\t\t 車號為%s的車進(jìn)入停車場的%d位置!\n",p->num,Enter->top);printf("\t\t\t 到達(dá)時間是:");reachtime(p);獲取其進(jìn)入停車場的時間printf("\n\n\n");printf("\t\t\t 請按'Enter' 返回:");getchar();}else{printf("\t\t********************************************\n");printf("\t\t\t 停車場已滿,請進(jìn)入便道等候??");43安陽師范學(xué)院 ·數(shù)據(jù)結(jié)構(gòu)課外實(shí)踐·EnQueue(W,q,p);printf("\n\n\n");printf("\t\t\t 請按'Enter' 返回:");getchar();}}/*離開停車場的處理函數(shù) */voidLeave(SqStackCar*Enter,SqStackCar*Temp,LinkQueueCar*W,CarNode*p){intposition;if(Enter->top>0){printf("\n\n");printf("\n\t\t\t 請輸入車在車場的位置/1--%d/:",Enter->top);scanf("%d",&position);if(position>=1&&position<=Enter->top){while(Enter->top>position)若輸入的車位置不是最后一個,則先讓之后的44安陽師范學(xué)院 ·數(shù)據(jù)結(jié)構(gòu)課外實(shí)踐·車進(jìn)入臨時棧。{p=Enter->stack[Enter->top];Pop(Enter,p);Push(Temp,p);}printf("\n\t\t\t%d 號位置的車%s離開停 車 場 !\n",Enter->top,Enter->stack[Enter->top]->num);Bill(Enter,Enter->stack[Enter->top]);打印要離開車輛的信息及收費(fèi)賬單Pop(Enter,Enter->stack[Enter->top]);車輛離開while(Temp->top>=1)臨時棧中的車按原順序進(jìn)入停車場{p=Temp->stack[Temp->top];Pop(Temp,p);Push(Enter,p);}45安陽師范學(xué)院 ·數(shù)據(jù)結(jié)構(gòu)課外實(shí)踐·if(W->head!=W->rear)若便道上有車,則讓第一個停在便道上的車進(jìn)入停車場{DeQueue(W,W->head,W->head->data);Push(Enter,W->head->data);printf("\n\n\n");printf("\t\t\t********************************************\n");printf("\t\t\t 便道車牌號為 %s的 車 進(jìn) 入 車 場 第 %d 號 位置.",W->head->data->num,Enter->top);printf("\n\t\t\t到達(dá)時間是:");reachtime(W->head->data);getchar();}else{printf("\n\n\n");printf("\t\t\t 便道里沒有車!");getchar();46安陽師范學(xué)院 ·數(shù)據(jù)結(jié)構(gòu)課外實(shí)踐·}printf("\n\n\t\t\t 請按'Enter' 返回:");getchar();}else{printf("\n\n\n");printf("\t\t\t 輸入錯誤!請重新輸入??\n");getchar();printf("\n\n\t\t\t 請按'Enter' 返回:");getchar();}}else{printf("\n\n\n\n\n");printf("\t\t\t 車場里沒有車.");printf("\n\n\t\t\t 請按'Enter' 返回:");getchar

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論