数据结构课程设计——停车场管理一、需求分析:1、问题描述:设停车场是一个可停放 n 辆汽车的狭长通道,且只有一个门可供出入。汽车在停车场按车辆到达时间的先后顺序,依次由北向南排列(门在最南端,最先到达的第一辆车停放在车场的最北端),若车场已停满 n 辆汽车,则后来的汽车只能在门外的便道上等候,一旦有车开走,则排在便道上的第一辆汽车即可开入;当停车场某辆车要离开时,在它之后进入的车辆必须先退出车场为它让路,待该辆车开出大门外,其他车辆再按原顺序进入车场,每辆停放在车场的车在它离开停车场时必须按它停留的时间长短交纳费用。应用个简单的栈与队列实现该功能。2、基本要求(1)以顺序栈模拟停车场,以链队列模拟便道。(2)当车辆到达时,输入车辆车牌号、达到时间,得到车辆在停车场的位置。车牌号格式要正确,达到时间为00:00 到 24:00 之间。(3)当车辆离开时,输入车辆在停车场位置与离开时间,离开时间应在该车进入时间之后。等待车辆按顺序进入停车场,并输入进入时间,进入时间应在上辆离开车辆离开时间之后。(4)打印出离开车辆的车牌号、到达时间、离开时间、停留时间与应缴费用。(5)显示停车场和便道车辆信息。二、概要设计 1、数据结构: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; }SeqStackCar; /*模拟车站*/typedef struct car{ CarNode *data;struct car *next; }QueueNode; typedef struct Node{ QueueNode *head; QueueNode *rear; }LinkQueueCar; /*模拟通道*/2、模块本程序首先定义了用来模拟停车场的堆栈模块和用来模拟便道的链队列模块为全局变量,然后编写主函数,在主函数中实现对其他各个模块的调用。在进入菜单界面后程序分别调用车辆到达、车辆离开、存车信息、退出这四个模块。其中车辆离开模块中又调用了打印离开车辆信息的函数,在存车信息模块中有调用了显示停车场车辆信息函数与显示便道车辆信息函数。最后从调用的四个函数模块回到主函数结束程序运行。3、流程图: 否 是开始车 场 容 量为0~10初始化栈与队列主菜单车辆到达进入车场车辆离开显示存车信息退出车场信息便道信息退出存车信息是进入便道否车 场 是否为空是否车辆离开,并进行计费便道是否为...