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

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

#include

#include

#include

#define MAX 3 /*车库容量*/

#define price 0.5 /*每车每分钟费用*/ typedef struct time

{

int hour;

int min;

}Time; /*时间结点*/

typedef struct node

{

char num[10];

Time reach;

Time leave;

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

typedef struct NODE

{

CarNode *stack[MAX + 1];

int top;

}Moni_Cheku;

typedef struct car

{

CarNode *data;

struct car *next;

}QueueNode;

typedef struct Node

{

QueueNode *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 *, 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(" ^_^欢迎进入停车场管理系统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;

else printf("错误!请重选(1-4):[ ]\b\b");

}

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;

}

}

return 0;

}

void InitStack(Moni_Cheku *s) /*初始化车库*/

{

int i;

s->top = 0;

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

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

}

int InitQueue(Moni_Biandao *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("请输入离开的时间:/**:**/");

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);

}

}

int Arrival(Moni_Cheku *Enter, Moni_Biandao *W) /*车辆到达*/ {

CarNode *p;

QueueNode *t;

相关文档
最新文档