c語言車輛管理系統(tǒng)課程設(shè)計_第1頁
c語言車輛管理系統(tǒng)課程設(shè)計_第2頁
c語言車輛管理系統(tǒng)課程設(shè)計_第3頁
c語言車輛管理系統(tǒng)課程設(shè)計_第4頁
c語言車輛管理系統(tǒng)課程設(shè)計_第5頁
已閱讀5頁,還剩10頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、#include<stdio.h> #include<stdlib.h>#include<string.h>#define MAX 3 /* 車庫容量*/#define price 0.5 /* 每車每分鐘費用*/ typedef struct timeint hour;int min;Time; /* 時間結(jié)點*/ typedef struct nodechar num10;Time reach;Time leave;CarNode;/* 車輛信息結(jié)點*/ typedef struct NODECarNode *stackMAX + 1;int top;M

2、oni_Cheku;typedef struct carCarNode *data;struct car *next;QueueNode;typedef struct NodeQueueNode *head;QueueNode *rear;Moni_Biandao;void InitStack(Moni_Cheku *); /* 初始化車庫*/int InitQueue(Moni_Biandao *);/* 初始化便道*/int Arrival(Moni_Cheku *, Moni_Biandao *); /* 車輛到達*/void Leave(Moni_Cheku *, Moni_Cheku

3、 *, Moni_Biandao *); /*車輛離開 */void List(Moni_Cheku, Moni_Biandao); /* 顯示車庫和便道的存車信息 */int main() Moni_Cheku Enter, Temp;Moni_Biandao Wait;int ch;InitStack(&Enter); /* 初始化車站*/InitStack(&Temp); /* 初始化讓路的臨時鏈表*/InitQueue(&Wait); /* 初始化便道*/printf("n");printf(" A_A歡迎進入停車場管理系統(tǒng)1!八_

4、八門");printf("n");printf(" 提 示 ! (1). 該 車 庫 的 最 大 容 量 為 :%d;n", MAX);printf(" (2). 該車庫的收費標(biāo)準(zhǔn)為:%4.2f 元 /(輛 *分鐘) .n", price);while (1)system("CLS");printf(”*主菜單*n");printf("1. 車輛到達");printf(" 2.車輛離開");printf(" 3.列表顯示");10pri

5、ntf(" 4. 退出系統(tǒng) n");printf(”*n");printf(" 請選擇 (1-4): bb");while (1)scanf("%d",&ch);if (ch >= 1 && ch <= 4)break;else printf(" 錯誤 ! 請重選 (1-4): bb");switch (ch)case 1:Arrival(&Enter, &Wait); break; /* 車輛到達*/case 2:Leave(&Enter, &

6、amp;Temp, &Wait); break; /* 車輛離開*/case 3:List(Enter, Wait); break; /* 打印列表信息*/case 4:exit(0); /* 退出主程序*/default: break;return 0;void InitStack(Moni_Cheku *s) /* 初始化車庫*/int i;s->top = 0;for (i = 0; i <= MAX; i+)s->stacks->top = NULL;int InitQueue(Moni_Biandao *Q) /* 初始化便道*/Q->head

7、= (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(" 請輸入離開的時間:/*:*/");scanf("%d:%d", &(p->leave.hour), &(p-&

8、gt;leave.min);printf(" 離開車輛的車牌號為:");puts(p->num);printf(" 其 到 達 時 間 為 : %d:%dn", p->reach.hour, p->reach.min);printf(" 離 開 時 間 為 :%d:%dn", p->leave.hour,p->leave.min);A1 = p->reach.hour;A2 = p->reach.min;81 = p->leave.hour;82 = p->leave.min;pr

9、intf(" 應(yīng)交費用為:%4.2f 元 ", (B1 - A1) * 60 + (B2 -A2)*price);free(p);int Arrival(Moni_Cheku *Enter, Moni_Biandao *W) /* 車輛到達*/CarNode *p;QueueNode *t;p = (CarNode *)malloc(sizeof(CarNode);fflush(stdin);printf(" 請輸入車牌號( 例如:中CUG888):");scanf("%s",&(p->num);if (Enter-&g

10、t;top < MAX) /* 車庫未滿,車進車庫*/Enter->top+;printf("該車在車庫位置%d.n", Enter->top);printf("請輸入到達時間(*:*):");scanf("%d:%d", &(p->reach.hour), &(p->reach.min);Enter->stackEnter->top = p;return(1);else /* 車庫已滿,車進便道*/printf(" 該車須在便道等待!n");t = (Qu

11、eueNode *)malloc(sizeof(QueueNode);t->data = p;t->next = NULL;W->rear->next = t;W->rear = t;return(1);void Leave(Moni_Cheku *Enter, Moni_Cheku *Temp, Moni_Biandao*W) /* 車輛離開*/int i, room;CarNode *p, *t;QueueNode *q;/* 判斷車庫內(nèi)是否有車*/if (Enter->top > 0) /* 有車 */printf(" 請輸入車在車庫的

12、位置(1-%d) : ", Enter->top);/*輸入車輛離開的信息*/while (1)scanf("%d", &room);if (room >= 1 && room <= Enter->top) break;else printf(" 錯誤 ! 請重選 :");while (Enter->top > room) /* 車輛離開*/Temp->top+;Temp->stackTemp->top = Enter->stackEnter->top;E

13、nter->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); /

14、* 判斷通道上是否有車及車庫是否已滿*/if (W->head != W->rear) && Enter->top < MAX) /* 便道的車輛進入車庫*/q = W->head->next;t = q->data;Enter->top+;printf("n 便道的5號車進入車場第時置.",t->num,Enter->top);printf("n 請輸入現(xiàn)在的時間(*:*):");scanf("%d:%d", &(t->reach.hour),

15、 &(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(Moni_Cheku *S) /* 列表顯示車庫信息*/int i;if (S->top > 0) /* 判斷車庫內(nèi)是否有

16、車*/printf(" 車庫號到達時間t 車牌號 n");for (i = 1; i <= S->top; i+)printf(" %d ", i);11printf("t%d:%d", S->stacki->reach.hour,S->stacki->reach.min);printf("tt%sn",S->stacki->num);else printf(" 車庫里沒有車n");void List2(Moni_Biandao *W) /* 列表

17、顯示便道信息*/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(Moni_Cheku S, Moni_Biandao W)int flag, tag;flag = 1;while (flag)15printf(”*查看 *n");printf("1. 車庫 2. 便道 3. 返回 n");printf("*n");printf(" 請選擇 (1-3

溫馨提示

  • 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)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論