




版權說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權,請進行舉報或認領
文檔簡介
1、停車場模擬管理程序的設計與實現(xiàn) 一、簡介1設計目的:理解線性表的邏輯結構和存儲結構,進一步提高使用理論知識指導解決實際問題的能力。2問題的描述:設停車場只有一個可停放幾輛汽車的狹長通道,只有一個大門可供汽車進出。汽車在停車場內(nèi)按車輛到達的先后順序依次排列,若車場內(nèi)已停滿幾輛汽車,則后來的汽車只能在門外的便道上等候,一旦停車場內(nèi)有車輛開走,則排在便道上的第一輛汽車即可進入;當停車場內(nèi)某輛汽車要開走時,由于停車場是狹長的通道,在它之后開入的車輛必須先推出車場為他讓路,待車輛開出大門,為他讓路的車輛再按原次序進入車場。試設計這樣一個停車場模擬管理程序。二、數(shù)據(jù)結構的設計:(1)為了便于區(qū)分每輛汽車并
2、了解每輛車當前所處的位置,需要記錄汽車的牌照號碼和汽車當前的狀態(tài)。(2)為了便于停車場的管理,要為每個車位分配一個固定的編號。(3)當停車場的停車位上都已停滿了汽車,又有新的汽車到來時要把它調度到便道上,便道上的車輛要按照進入便道的先后順序順次序放在便道上,為便道上的每個位置分配一個固定的編號。當有車從停車位上離開后,便道上的第一輛汽車就立即進入停車位上的某個車位。(4)當某輛車離開停車場的時候,比他后進停車位的車要為他讓路,而且當他開走之后讓路的車還要按照原來的停放次序再次進入停車位的某個車位上,為完成這項功能,定義一個結構體。三、功能(函數(shù))設計:本程序從總體上分為四個功能模塊,分別為:(
3、1)程序功能介紹和操作提示模塊(2)汽車進入停車位的管理模塊(3)汽車離開停車位的管理模塊(4)查看停車場狀態(tài)的查詢模塊四、界面設計: 本程序界面本著易于操作簡單整潔而不失美觀的理念,采用數(shù)字對應功能選項,結合詳細的操作提示,使得操作方便快捷,界面清晰明朗。五、程序設計:1車輛進入停車場模塊:·Arrive函數(shù):有車進入停車廠;·Enter->top<MAX:對棧進行判滿,Y表示棧滿,進入便道;N表示棧不滿,進入車站;2車輛離開停車場模塊:·Leave函數(shù):有車的話就要離開車位。·scanf("%d",&room)
4、:輸入需要離開的車所在的位置,如果Enter->top>room,車輛出站。·W->head!=W->rear)&&Enter->top<MAX:便道上有車且車位沒有滿,便道上的車進入車站。3停車場信息顯示模塊:·List函數(shù):查詢車輛信息。·flag:如果flag=1,則執(zhí)行List1函數(shù);如果flag=2,則執(zhí)行List2函數(shù);如果flag=3,則返回,退出函數(shù)。·List1函數(shù):查詢車站信息。·s->top>0:判斷車站內(nèi)有沒有車,如果Y,用for循環(huán)打印出站內(nèi)的車位和車牌號
5、的信息;如果N,則輸入車場沒有車,返回List函數(shù)。·List2函數(shù):查詢便道信息。·w->head!=w->rear:判斷便道內(nèi)有沒有車,如果Y,用while循環(huán)打印出便道上車的信息;如果N,則輸出便道內(nèi)沒有車,返回List函數(shù)。 六、運行與測試:1、測試的數(shù)據(jù)及其結果:(1)前五輛車到達進入停車位:(2)后來的兩輛車在便道等候:(3)牌照為CF003的車離開,CF004,CF005需要讓道,CF006進入5號車位:(4)查詢車場和便道里的信息 (5)退出程序:2、運行與測試期間遇到的問題及其解決辦法。問題1:在車輛離開時不能顯示車輛讓道的信息; 解決辦法:在
6、離開函數(shù)中一個while循環(huán)中增加一個printf語句,通過循環(huán)可以顯示全部需要讓道的車輛。問題2:在進行進場出場信息的輸入時,只能進行一次; 解決辦法:設置一個標志量flag和while循環(huán),在每一次操作后返回到操作步驟。問題3:運行顯示程序簡介后,繼續(xù)輸入時沒有清屏操作,導致運行結果不方便觀察: 解決辦法:增加getch(); system("cls");語句,實現(xiàn)按任意鍵繼續(xù),并清屏。七、結論:本停車場管理系統(tǒng),可以進行車輛進入停車場和退出停車場以及停車廠內(nèi)部車位和便道上的停車信息的顯示三個步驟的操作。在車輛進入停車場進入模塊中,如果進入停車場的車輛大于5,即車位里停
7、放的車輛已滿,后面的車自動進入便道等候;在車輛離開停車場模塊中,在查找車輛過程中如果沒有對應車輛能夠顯示出“對不起,輸入有誤,請重新輸入!”,并有輔助棧保證從車位上出來的車不會改變順序;車位出現(xiàn)空位時,便道上的車能自動進入車位,同時,便道上的車也可以直接離開停車場;信息查詢模塊,能夠顯示停車場車位和便道上等待車的信息。并有錯誤操作的信息提示。同樣此程序存在一些不足之處。在顯示模塊,沒有顯示出開出停車場車輛的信息,在進一步修改補充時,可以添加車輛開出停車場的顯示模塊;車輛的信息過于簡單,只有一個車牌,可以添加更加詳細的車輛信息以及添加收費操作等功能。八、設計后的思考: 此次課程設計,付出了很多的
8、時間和經(jīng)歷,編程過程中,我看到了自己許多不足,例如程序編寫的有點雜亂,造成編譯時錯誤不好找到,沒有足夠的耐心,有點急功近利,修改編譯錯誤時不能做到系統(tǒng)的分析,造成程序越改越亂,影響了情緒,丟掉了信心。同時,我也深切感受到了程序員的艱辛,明白了作為一個程序員應該盡可能的為用戶考慮,縝密的思維,讓程序不斷地人性化,可操作性強,界面盡可能的友好,把完美作為自己的目標。對于程序本身,我看到了良好的程序編寫風格對于程序員的重要性,函數(shù)之間調用的便利與簡潔,以及循環(huán)套用的魅力之所在。總之,不管簡單還是復雜的程序設計,都要求扎實的基礎知識,因為各種程序都是由簡單的一塊塊的函數(shù)結構組成的,并加強實踐,從程序的
9、編寫中進一步加強對書本知識的掌握。而且,需要耐心,做程序的編寫時比較枯燥的,會出現(xiàn)許多錯誤,需要我們細心并耐心的進行修改?;仡櫨幊痰倪^程,我也學到了許多程序之外的東西,編程的過程對一個人的耐心和毅力是一種極大地考驗,不停地編譯,不停地改錯,不停地被打擊,信心被一點點的消磨,如果放棄,將前功盡棄。所以我選擇了停一停稍作休息然后堅持下去,終于在完成的那一瞬間,內(nèi)心充滿了自豪和成就感。這次任務完成的過程給我上了生動而難忘的一課,面對一次次的挫折與打擊,我會選擇咬牙堅持;為了遠方的目標,我會不懈的努力,一點點的去接近。參考文獻:1譚浩強,C語言設計(第三版). 北京: 清華大學出版社, 20052嚴蔚
10、敏 吳偉民,數(shù)據(jù)結構(C語言版).北京:清華大學出版社,2007附:源代碼 #include<stdio.h> #include <conio.h> #include<stdlib.h> #include<string.h> #define MAX 5/*車庫容量*/ typedef struct node char num10; CarNode;/*車輛信息結點*/ typedef struct NODE CarNode *stackMAX+1; int top; SeqStackCar; /*模擬車站*/ typedef struct car
11、 CarNode *data; struct car *next; QueueNode; typedef struct Node QueueNode *head; QueueNode *rear; LinkQueueCar; /*模擬通道*/ void InitStack(SeqStackCar *); /*初始化棧*/ int InitQueue(LinkQueueCar *); /*初始化便道*/ int Arrival(SeqStackCar *,LinkQueueCar *); /*車輛到達*/ void Leave(SeqStackCar *,SeqStackCar *,LinkQu
12、eueCar *); /*車輛離開*/ void List(SeqStackCar,LinkQueueCar); /*顯示存車信息*/ int j=0; void main() SeqStackCar Enter,Temp; LinkQueueCar Wait; int ch;int j=0; InitStack(&Enter); /*初始化車站*/ InitStack(&Temp); /*初始化讓路的臨時棧*/ InitQueue(&Wait); /*初始化通道*/ printf("|*|n"); printf("|*|n");
13、 printf("|* *|n"); printf("|*歡迎進入停車場管理系統(tǒng)*|n"); printf("|* *|n"); printf("|*|n"); printf("|*|n"); printf("|注:本程序操作容易,請注意跟隨操作提示|n"); printf("n"); printf("請按任意鍵繼續(xù)."); getch(); system("cls"); while(1) printf("
14、請輸入對應的數(shù)字選擇您需要的功能:n"); printf("n*n"); printf("*1.車輛到達*n"); printf("*2.車輛離開*n"); printf("*3.查詢信息*n"); printf("*4.退出系統(tǒng)*n"); printf("*n"); while(1) scanf("%d",&ch); if(ch=4) printf("謝謝您的使用,再見!n"); else if(ch>=1&a
15、mp;&ch<=4)break; else printf("n對不起,您的輸入有誤!n");break; switch(ch) case 1:Arrival(&Enter,&Wait);break; /*車輛到達*/ case 2:Leave(&Enter,&Temp,&Wait);break; /*車輛離開*/ case 3:List(Enter,Wait);break; /*列表打印信息*/ case 4:exit(0); /*退出主程序*/ default: break; void InitStack(SeqSta
16、ckCar *s) /*初始化棧*/ int i; s->top=0; for(i=0;i<=MAX;i+) s->stacks->top=NULL; int InitQueue(LinkQueueCar *Q) /*初始化便道*/ Q->head=(QueueNode *)malloc(sizeof(QueueNode); if(Q->head!=NULL) Q->head->next=NULL; Q->rear=Q->head; return(1); else return(-1); void PRINT(CarNode *p)
17、/*打印出站車的信息*/ printf("n離開車輛的車牌號為:"); puts(p->num); int Arrival(SeqStackCar *Enter,LinkQueueCar *W) /*車輛到達*/ CarNode *p; QueueNode *t; p=(CarNode *)malloc(sizeof(CarNode); flushall(); printf("n請輸入車牌號(例:DS888):n"); gets(p->num); if(Enter->top<MAX) /*車場未滿,車進車場*/ Enter->
18、;top+; printf("n車輛停入車場第%d位置.nn",Enter->top); Enter->stackEnter->top=p; return(1); else /*車場已滿,車進便道*/ printf("n對不起,車場已滿,該車須在便道等待!n"); t=(QueueNode *)malloc(sizeof(QueueNode); j+; t->data=p; t->next=NULL; W->rear->next=t; W->rear=t; printf("車進入%d號便道nn&q
19、uot;,j); return(1); void Leave(SeqStackCar *Enter,SeqStackCar *Temp,LinkQueueCar *W)/*車輛離開*/ int i, room; CarNode *p,*t; QueueNode *q; /*判斷車場內(nèi)是否有車*/ if(Enter->top>0) /*有車*/ while(1) /*輸入離開車輛的信息*/ printf("n請輸入車在車場的位置/1-%d/:",Enter->top); scanf("%d",&room); if(room>
20、=1&&room<=Enter->top) break; while(Enter->top>room) /*車輛離開*/ printf("n牌號為%s的車需要讓道n",Enter->stackEnter->top); Temp->top+; Temp->stackTemp->top=Enter->stackEnter->top; Enter->stackEnter->top=NULL; Enter->top-; p=Enter->stackEnter->top;
21、Enter->stackEnter->top=NULL; Enter->top-; while(Temp->top>=1) Enter->top+; Enter->stackEnter->top=Temp->stackTemp->top; Temp->stackTemp->top=NULL; Temp->top-; PRINT(p); /*判斷通道上是否有車及車站是否已滿*/ if(W->head!=W->rear)&&Enter->top<MAX) /*便道的車輛進入車場*/
22、 q=W->head->next; t=q->data; Enter->top+; printf("n便道的%s號車進入車場第%d位置.n",t->num,Enter->top); W->head->next=q->next; if(q=W->rear) W->rear=W->head; Enter->stackEnter->top=t; free(q); else printf("n對不起,便道里沒有車.n"); else printf("n對不起,車場里沒有車."); /*沒車*/ void List1(SeqStackCar *S) /*列表顯示車場信息*/ int i; if(S->top>0) /*判斷車站內(nèi)是否有車*/ printf("n車場:"); printf("n 位置 車牌號n"); for(i=1;i<=S
溫馨提示
- 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. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025店面合伙經(jīng)營協(xié)議書-咖啡輕食店合作
- 2025年度游戲工作室音效制作人員用工協(xié)議
- 二零二五年度水果店與廣告公司品牌宣傳合作協(xié)議
- 個人車位產(chǎn)權轉讓與車位增值服務及配套設施維護協(xié)議(2025年度)
- 二零二五年度反擔保人合作協(xié)議:旅游度假區(qū)項目資金安全反擔保協(xié)議
- 美容院二零二五年度合伙人合作協(xié)議:風險管理與合規(guī)經(jīng)營
- 二零二五年度小產(chǎn)權房屋買賣與智能家居安裝合同
- 二零二五年度新能源行業(yè)定向就業(yè)人才培養(yǎng)合同
- 二零二五年度房屋拆除工程風險評估與處理合同
- 二零二五年度文創(chuàng)園區(qū)房東租賃服務協(xié)議
- 生物節(jié)律調節(jié)課件
- 2025年黑龍江民族職業(yè)學院單招職業(yè)技能測試題庫匯編
- 感恩父母課件:父母的愛如山如水
- 2020-2025年中國國有控股公司行業(yè)發(fā)展趨勢及投資前景預測報告
- 病區(qū)8S管理成果匯報
- 民法典題庫(附答案)
- 綏芬河市2025年上半年招考事業(yè)單位專業(yè)人員易考易錯模擬試題(共500題)試卷后附參考答案
- 小學數(shù)學新課程標準(教育部2024年制訂)
- 2025復工復產(chǎn)安全教育培訓
- 2025年華僑港澳臺學生聯(lián)招考試英語試卷試題(含答案詳解)
- 閃耀明天 二聲部合唱簡譜
評論
0/150
提交評論