c语言车辆管理系统课程设计.doc
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 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;