C语言数据结构停车场管理系统

要求停车场有M个入口,P个出口,停车场共有N个车位,其中每5个车位为一个小型立体车库,先来后到原则进行入场,入场后开始进行计费。若停车场满了之后,门口的车一次排队,出来一辆车之后,放行一辆车再入场。要求:1)每个入口使用队列结构模拟排队场景,排序车辆需要记录排队时间,根据时间先后进场放行。2)每个小型立体车库只用散列表进行模拟入库及出库。3)计费原则:15分钟以下免费,超过15分钟按0.5元/15分钟。小型车夜间停车1元/小时。

main.c

#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <stdbool.h>
#include "stackAndQueue.h"
#include "parking.h"

int main(void)
{
    Stack parking = CreateStack();
    Queue shortcut = CreateQueue();
    Car tempItem;
    STime st;
    printf("请按照正确顺序输入:\n车辆状态(进入'A'或离开'D'),车牌号,车辆类型(大车'B'或小车'S'),进入时间或离开时间)\n");
    while (1)
    {        
        scanf("%c", &tempItem.state);
        if (tempItem.state == 'E')
            break;
        scanf("%d %c %d:%d:%d", &tempItem.num, &tempItem.type, &st.hour, &st.min, &st.sec);
        rewind(stdin);
        if (tempItem.state == 'A')
        {
            tempItem.inTime = st;
            inCar(parking, shortcut, tempItem);
        }
        if (tempItem.state == 'D')
        {
            tempItem.outTime = st;
            outCar(parking, shortcut, tempItem);
        }
        
    }
    //释放内存
    DestroyStack(&parking);
    DestroyQueue(&shortcut);
    return 0;
}