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

停車場管理系統(tǒng)畢業(yè)論文設(shè)計——利用所學(xué)C語言知識設(shè)計報告

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

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

停車場管理系統(tǒng)畢業(yè)論文設(shè)計——利用所學(xué)C語言知識設(shè)計報告

2008.12.25 班級:5507128學(xué)號: 指導(dǎo)教師: 姓名: 停車場管理一一. 要求:1.設(shè)計一個停車場用長度為N的堆棧來模擬。由于停車場內(nèi)如有某輛車要開走 ,在它之后進(jìn)來的車都必須先退出為它讓道,待其開出停車場后,這些車再依原來的順序進(jìn)入。2.程序輸出每輛車到達(dá)后的停車位置,以及某輛車離開停車場時應(yīng)交納的費用和它在停車場內(nèi)停留的時間。二、程序中所采用的數(shù)據(jù)結(jié)構(gòu)及存儲結(jié)構(gòu)的說明以棧模擬停車場,以隊列模擬車場外的便道,按照從終端讀入的輸入數(shù)據(jù)序列進(jìn)行模擬管理。棧以順序結(jié)構(gòu)實現(xiàn),隊列以鏈表實現(xiàn)。程序中分別采用了“?!焙汀瓣犃小弊鳛槠浯鎯Y(jié)構(gòu)?!皸!钡亩x可知,每一次入棧的元素都在原棧頂元素之上成為新的元素,每一次出棧的元素總是當(dāng)前棧頂元素使次棧元素成為新的棧頂元素,即最后進(jìn)棧者先出棧。程序中采用的結(jié)構(gòu)是:typedef struct NODE CarNode *stackMAX+1; int top; SeqStackCar; /*模擬車庫*/“隊列”是限定所有插入操作只能在表的一端進(jìn)行,而所有的刪除操作都只能在表的另一端進(jìn)行。插入端叫隊尾,夢芭莎優(yōu)惠券刪除端叫對頭。按先進(jìn)先出規(guī)則進(jìn)行。程序中采用的結(jié)構(gòu)是:typedef struct Node QueueNode *head; QueueNode *rear; LinkQueueCar; /*模擬通道*/三、算法的設(shè)計思想 由于停車場是一個狹窄通道,而且只有一個大門可供汽車進(jìn)出,問題要求汽車停車場內(nèi)按車輛到達(dá)時間的先后順序,依次由北向南排列。由此很容易聯(lián)想到數(shù)據(jù)結(jié)構(gòu)中的堆棧模型,因此可首先設(shè)計一個堆棧,以堆棧來模擬停車場,又每個汽車的車牌號都不一樣,這樣一來可以根據(jù)車牌號準(zhǔn)確找到汽車位置,所以堆棧里的數(shù)據(jù)元素我設(shè)計成汽車的車牌號。當(dāng)停車場內(nèi)某輛車要離開時,在他之后進(jìn)入的車輛必須先退出車場為它讓路,待該輛車開出大門外,其他車輛再按原次序進(jìn)入停車場。這是個一退一進(jìn)的過程,而且讓道的汽車必須保持原有的先后順序,因此可再設(shè)計一個堆棧,以之來暫時存放為出站汽車暫時讓道的汽車車牌號。當(dāng)停車場滿后,繼續(xù)進(jìn)來的汽車需要停放在停車場旁邊的便道上等候,若停車場有汽車開走,則按排隊的先后順序依次進(jìn)站,最先進(jìn)入便道的汽車將會最先進(jìn)入停車場,好樂買優(yōu)惠券這完全是一個先進(jìn)先出模型,因此可設(shè)計一個隊列來模擬便道,隊列中的數(shù)據(jù)元素仍然設(shè)計成汽車的車牌號。另外,停車場根據(jù)汽車在停車場內(nèi)停放的總時長來收費的,在便道上的時間不計費,因此必須記錄車輛進(jìn)入停車場時的時間,車輛離開停車場時的時間不需要記錄,當(dāng)從終端輸入時可直接使用。由于時間不象汽車一樣需要讓道,我設(shè)計了一個順序表來存放時間。又用順序表用派生法設(shè)計了一個堆棧,恰好滿足上面模擬停車場的需要。四.設(shè)計原理、框圖 車輛到達(dá)以堆棧來模擬停車場和以堆棧里的數(shù)據(jù)元素我設(shè)計成汽車的車牌號初始化車站, 初始化讓路的臨時棧, 初始化通道車場未滿,車進(jìn)車場車場已滿,車進(jìn)便道判斷車場是否已滿車輸入車子到達(dá)時間,車牌號未滿車進(jìn)入車場判斷車場內(nèi)是否有車不做任何計算無點x有輸入離開車輛的離開時間,進(jìn)行停車費用的計算此車后面的車輛退出并進(jìn)入臨時棧車子離開五.運行結(jié)果車輛進(jìn)入車場:車場已滿:車輛離開,并收費:列出車場信息:列出車道信息六.程序#include<stdio.h> #include<stdlib.h> #include<string.h> /*-*/ #define MAX 3 /*車庫容量*/#define price 0.5 /*每車每分鐘費用*/ typedef struct time int hour; int min; Time; /*時間結(jié)點*/typedef struct node char num10; Time reach; Time leave; CarNode;/*車輛信息結(jié)點*/ typedef struct NODE CarNode *stack; int top; SeqStackCar; typedef struct car CarNode *data; struct car *next; QueueNode; typedef struct Node QueueNode *head; QueueNode *rear; LinkQueueCar; /*模擬通道*/*-*/ void InitStack(SeqStackCar *); /*初始化棧*/int InitQueue(LinkQueueCar *); /*初始化便道*/int Arrival( r *,LinkQueueCar *); /*車輛到達(dá)*/void Leave(SeqStackCar *,SeqStackCar *,LinkQueueCar *); /*車輛離開*/void List(SeqStackCar,LinkQueueCar); /*顯示存車信息*/*-*/ void main() SeqStackCar Enter,Temp; LinkQueueCar Wait; int ch; InitStack(&Enter); /*初始化車站*/InitStack(&Temp); /*初始化讓路的臨時棧*/InitQueue(&Wait); /*初始化通道*/printf("歡迎光臨");printf("n");while(1) printf("n1.車輛到達(dá)"); printf(" 2.車輛離開"); printf(" 3.列表顯示 "); printf(" 4.退出系統(tǒng)"); while(1) scanf("%d",&ch); if(ch>=1&&ch<=4)break; else printf("nplease choose: 1|2|3|4."); switch(ch) case 1:Arrival(&Enter,&Wait);break; /*車輛到達(dá)*/case 2:Leave(&Enter,& ,&Wait);break; /*車輛離開*/case 3:List(Enter,Wait);break; /*打印列表信息*/case 4:exit(0); /*退出主程序*/default: break; /*-*/ void InitStack(SeqStackCar *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,int room) /*打印出場車的信息*/ int A1,A2,B1,B2; printf("n請輸入離開的時間:/*:*/"); scanf("%d:%d",&(p->leave.hour),&(p->leave.min); printf("n離開車輛的車牌號為:"); puts(p->num); printf("n其到達(dá)時間為: %d:%d",p->reach.hour,p->reach.min); printf("離開時間為: %d:%d",p->leave.hour,p->leave.min); A1=p->reach.hour; A2=p->reach.min; B1=p->leave.hour; B2=p->leave.min; printf("n應(yīng)交費用為:%2.1 元",(B1-A1)*60+(B2-A2)*price); free(p); int Arrival(SeqStackCar *Enter,LinkQueueCar *W) /*車輛到達(dá)*/ CarNode *p; QueueNode *t; p=(CarNode *)malloc(sizeof(CarNode); flushall(); printf("n請輸入車牌號(例如:鄂A1902):"); gets(p->num); if(Enter->top<MAX) /*車場未滿,車進(jìn)車場*/ Enter->top+; printf("n車輛在車場第%d位置.",Enter->top); printf("n請輸入到達(dá)時間:/*:*/"); scanf("%d:%d",&(p->reach.hour),&(p->reach.min); Enter->stackEnter->top=p; return(1); else /*車場已滿,車進(jìn)便道*/ printf("n該車須在便道等待!"); t=(QueueNode *)malloc(sizeof(QueueNode); t->data=p; t->next=NULL; W->rear->next=t; W->rear=t; 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>=1&&room <=Enter->top) break; while(Enter->top>room) /*聚尚網(wǎng)優(yōu)惠券*/ Temp->top+; Temp->stackTemp->top=Enter->stackEnter->top; Enter->stackEnter->top=NULL; Enter->top-; p=Enter->stackEnter->top; 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,room); /*判斷通道上是否有車及車站是否已滿*/if(W->head!=W->rear)&&Enter->top<MAX) /*便道的車輛進(jìn)入車場*/ q=W->head->next; t=q->data; Enter->top+; printf("n便道的%s號車進(jìn)入車場第%d位置.",t->num,Enter->top); printf("n請輸入現(xiàn)在的時間/*:*/:"); scanf("%d:%d",&(t->reach.hour),&(t->reach.min); 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 位置 到達(dá)時間 車牌號n"); for(i=1;i<=S->top;i+) printf(" %d ",i); printf("%d:%d ",S->stacki->reach.hour,S->stacki->reach.min); puts(S->stacki->num); else printf("n車場里沒有車"); void List2(LinkQueueCar *W) /*列表顯示便道信息*/ QueueNode *p; p=W->head->next; if(W->head!=W->rear) /*判斷通道上是否有車*/ printf("n等待車輛的號碼為:"); while(p!=NULL) puts(p->data->num); p=p->next; else printf("n便道里沒有車."); void List(SeqStackCar S,LinkQueueCar W) int flag,tag; flag=1; while(flag) printf("n請選擇 1|2|3:"); printf("n1.車場n2.便道n3.返回n"); while(1) scanf("%d",&tag); if(tag>=1|tag<=3) break; else printf("n請選擇 1|2|3:"); switch(tag) case 1:List1(&S);break;/*列表顯示車場信息*/case 2:List2(&W);break; /*列表顯示便到信息*/case 3:flag=0;break; default: break; 七 結(jié)果

注意事項

本文(停車場管理系統(tǒng)畢業(yè)論文設(shè)計——利用所學(xué)C語言知識設(shè)計報告)為本站會員(1777****777)主動上傳,裝配圖網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對上載內(nèi)容本身不做任何修改或編輯。 若此文所含內(nèi)容侵犯了您的版權(quán)或隱私,請立即通知裝配圖網(wǎng)(點擊聯(lián)系客服),我們立即給予刪除!

溫馨提示:如果因為網(wǎng)速或其他原因下載失敗請重新下載,重復(fù)下載不扣分。




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

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

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


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