c语言车辆管理系统课程设计.docx

上传人:b****8 文档编号:8872033 上传时间:2023-02-02 格式:DOCX 页数:9 大小:16.49KB
下载 相关 举报
c语言车辆管理系统课程设计.docx_第1页
第1页 / 共9页
c语言车辆管理系统课程设计.docx_第2页
第2页 / 共9页
c语言车辆管理系统课程设计.docx_第3页
第3页 / 共9页
c语言车辆管理系统课程设计.docx_第4页
第4页 / 共9页
c语言车辆管理系统课程设计.docx_第5页
第5页 / 共9页
点击查看更多>>
下载资源
资源描述

c语言车辆管理系统课程设计.docx

《c语言车辆管理系统课程设计.docx》由会员分享,可在线阅读,更多相关《c语言车辆管理系统课程设计.docx(9页珍藏版)》请在冰豆网上搜索。

c语言车辆管理系统课程设计.docx

c语言车辆管理系统课程设计

#include

#include

#include

#defineMAX3/*车库容量*/

#defineprice0.5/*每车每分钟费用*/

typedefstructtime

{

inthour;

intmin;

}Time;/*时间结点*/

typedefstructnode

{

charnum[10];

Timereach;

Timeleave;

}CarNode;/*车辆信息结点*/

typedefstructNODE

{

CarNode*stack[MAX+1];

inttop;

}Moni_Cheku;

typedefstructcar

{

CarNode*data;

structcar*next;

}QueueNode;

typedefstructNode

{

QueueNode*head;

QueueNode*rear;

}Moni_Biandao;

voidInitStack(Moni_Cheku*);/*初始化车库*/

intInitQueue(Moni_Biandao*);

/*初始化便道*/

intArrival(Moni_Cheku*,Moni_Biandao*);/*车辆到达*/

voidLeave(Moni_Cheku*,Moni_Cheku*,Moni_Biandao*);/*车辆离开*/

voidList(Moni_Cheku,Moni_Biandao);/*显示车库和便道的存车信息*/

intmain()

{

Moni_ChekuEnter,Temp;

Moni_BiandaoWait;

intch;

InitStack(&Enter);/*初始化车站*/

InitStack(&Temp);/*初始化让路的临时链表*/

InitQueue(&Wait);/*初始化便道*/

printf("\n");

printf("^_^欢迎进入停车场管理系统1!

^_^\n");

printf("\n");

printf("提示!

(1).该车库的最大容量为:

%d;\n",MAX);printf("

(2).该车库的收费标准为:

%4.2f元/(辆*分钟).\n",price);

while

(1)

{

system("CLS");

printf("********************主菜单********************\n");

printf("1.车辆到达");

printf("2.车辆离开");

printf("3.列表显示");

printf("4.退出系统\n");

printf("**********************************************\n");

printf("请选择(1-4):

[]\b\b");

while

(1)

{

scanf("%d",&ch);

if(ch>=1&&ch<=4)break;

elseprintf("错误!

请重选(1-4):

[]\b\b");

}

switch(ch)

{

case1:

Arrival(&Enter,&Wait);break;/*车辆到达*/

case2:

Leave(&Enter,&Temp,&Wait);break;/*车辆离开*/

case3:

List(Enter,Wait);break;/*打印列表信息*/

case4:

exit(0);/*退出主程序*/

default:

break;

}

}

return0;

}

voidInitStack(Moni_Cheku*s)/*初始化车库*/

{

inti;

s->top=0;

for(i=0;i<=MAX;i++)

s->stack[s->top]=NULL;

}

intInitQueue(Moni_Biandao*Q)/*初始化便道*/

{

Q->head=(QueueNode*)malloc(sizeof(QueueNode));

if(Q->head!

=NULL)

{

Q->head->next=NULL;

Q->rear=Q->head;

return

(1);

}

elsereturn(-1);

}

voidPRINT(CarNode*p,introom)/*输出出库车的信息*/

{

intA1,A2,B1,B2;

{

printf("请输入离开的时间:

/**:

**/");

scanf("%d:

%d",&(p->leave.hour),&(p->leave.min));

printf("离开车辆的车牌号为:

");

puts(p->num);

printf("其到达时间为:

%d:

%d\n",p->reach.hour,p->reach.min);

printf("离开时间为:

%d:

%d\n",p->leave.hour,p->leave.min);

A1=p->reach.hour;

A2=p->reach.min;

B1=p->leave.hour;

B2=p->leave.min;

printf("应交费用为:

%4.2f元",((B1-A1)*60+(B2-A2))*price);

free(p);

}

}

intArrival(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->top

{

Enter->top++;

printf("该车在车库位置%d.\n",Enter->top);

printf("请输入到达时间(**:

**):

");

scanf("%d:

%d",&(p->reach.hour),&(p->reach.min));

Enter->stack[Enter->top]=p;

return

(1);

}

else/*车库已满,车进便道*/

{

printf("该车须在便道等待!

\n");

t=(QueueNode*)malloc(sizeof(QueueNode));

t->data=p;

t->next=NULL;

W->rear->next=t;

W->rear=t;

return

(1);

}

}

voidLeave(Moni_Cheku*Enter,Moni_Cheku*Temp,Moni_Biandao*W)/*车辆离开*/

{

inti,room;

CarNode*p,*t;

QueueNode*q;

/*判断车库内是否有车*/

if(Enter->top>0)/*有车*/

{

printf("请输入车在车库的位置(1--%d):

",Enter->top);/*输入车辆离开的信息*/

while

(1)

{

scanf("%d",&room);

if(room>=1&&room<=Enter->top)break;

elseprintf("错误!

请重选:

");

}

while(Enter->top>room)/*车辆离开*/

{

Temp->top++;

Temp->stack[Temp->top]=Enter->stack[Enter->top];

Enter->stack[Enter->top]=NULL;

Enter->top--;

}

p=Enter->stack[Enter->top];

Enter->stack[Enter->top]=NULL;

Enter->top--;

while(Temp->top>=1)

{

Enter->top++;

Enter->stack[Enter->top]=Temp->stack[Temp->top];

Temp->stack[Temp->top]=NULL;

Temp->top--;

}

PRINT(p,room);/*判断通道上是否有车及车库是否已满*/

if((W->head!

=W->rear)&&Enter->top

{

q=W->head->next;

t=q->data;

Enter->top++;

printf("\n便道的%s号车进入车场第%d位置.",t->num,Enter->top);

printf("\n请输入现在的时间(**:

**):

");

scanf("%d:

%d",&(t->reach.hour),&(t->reach.min));

W->head->next=q->next;

if(q==W->rear)W->rear=W->head;

Enter->stack[Enter->top]=t;

free(q);

}

elseprintf("\n便道里没有车.\n");

}

elseprintf("车库里没有车!

\n");/*没车*/

}

voidList1(Moni_Cheku*S)/*列表显示车库信息*/

{

inti;

if(S->top>0)/*判断车库内是否有车*/

{

printf("车库号到达时间\t车牌号\n");

for(i=1;i<=S->top;i++)

{

printf("%d",i);

printf("\t%d:

%d",S->stack[i]->reach.hour,S->stack[i]->reach.min);

printf("\t\t%s\n",S->stack[i]->num);

}

}

elseprintf("车库里没有车\n");

}

voidList2(Moni_Biandao*W)/*列表显示便道信息*/

{

QueueNode*p;

p=W->head->next;

if(W->head!

=W->rear)/*判断便道上是否有车*/

{

printf("在便道里等待的车辆的号码为:

\n");

while(p!

=NULL)

{

puts(p->data->num);

p=p->next;

}

}

elseprintf("便道里没有车.\n");

}

voidList(Moni_ChekuS,Moni_BiandaoW)

{

intflag,tag;

flag=1;

while(flag)

{

printf("**********查看**********\n");

printf("1.车库2.便道3.返回\n");

printf("************************\n");

printf("请选择(1-3):

[]\b\b");

while

(1)

{

scanf("%d",&tag);

if(tag>=1&&tag<=3)break;

elseprintf("错误!

请重选(1-3):

[]\b\b");

}

switch(tag)

{

case1:

List1(&S);

break;/*列表显示车库信息*/

case2:

List2(&W);

break;/*列表显示便到信息*/

case3:

flag=0;

break;

default:

break;

}

}

}

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 总结汇报 > 学习总结

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1