C语言 停车场管理

来源:百度知道 编辑:UC知道 时间:2024/06/13 22:50:22
问题描述:
设停车场是一个可停放n辆汽车的狭长通道,且只有有个大门可供汽车进出.汽车在停车场内按车辆到达时间的先后顺序,依次由北向南排列(大门在最南端,最先到达的第一辆车停放在车场的最北端),若车场内一停满n辆汽车,则后来的汽车只能在门外的便道上等候,一旦有车开走,则排在便道上的第一辆车即可开入;当停车场内某辆车要离开时,在它之后进入的车辆必须先退出车场为它让路,待该辆车开出大门外,其他车辆再按原次序进入车场,每辆停放在车场内的车在它离开时必须按它停留时间长短交纳费用.试为停车场编制按上述要求进行管理的模拟程序.
基本要求:
以堆栈模拟停车场,以队列模拟车场外的便道,按照从终端读入的输入数据序列进行模拟管理.每一组输入数据包括三个数据项:汽车"到达"或"离开"信息,汽车牌照号码以及汽车在停车场内或便道上的停车位置;若是车辆离去,则输出汽车在停车场内停留时间和应交纳的费用(在便道上停留的时间不收费).堆栈一顺序结构实现,队列以链表结构实现.
(最好有编程体会,给我你的邮箱地址会再加分,要快,最好在一两天时间内,要是过了就对我没什么意义了,请快!)
请注意:必须在最近两三天的时间内解决,否则不给分了!
最好有设计报告!我一定会多加分的.

楼主注意:

#include<stdio.h>
#include<stdlib.h>
#include<string.h>

#define MAX 2 /*车库容量*/
#define price 0.05 /*每车每分钟费用*/
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; /*模拟通道*/
/*------------------------------------------------------------------------------*/
void InitStack(SeqStackCar *); /*初始化栈*/
int InitQueue(LinkQueueCar *); /*初始化便道*/
int Arrival(SeqStackCar *,LinkQueueCar *); /*车辆到达*/
void Leave(SeqStackCar *,SeqStackCar *,LinkQueueCar *); /*车辆离开*/
void List(SeqStackCar,L