停车场管理,,请求帮助实现代码!!!!
本帖最后由 jessica1 于 2015-12-2 08:48 编辑停车场管理1
1、问题分析
根据题目要求,停车场可以用一个长度为n的堆栈来模拟。由于停车场内如有某辆车要开走,在它之后近来的车都必须先退出停车场为它让路,待其开出停车场后,这些车辆再依原来的次序进场。所以可以设两个堆栈。
2、实现过程
#define n 30
设立两个长度为n的堆栈park,temp。汽车信息采用结构体存储,设立汽车信息结构体:
Struct carInfo
{
Char action; //到达(‘A’)还是离去(‘D’),或者结束标志‘E’。
IntcarNo; //汽车牌照号码
Intschedule; //到达/离去的时刻
Intflag; //标志汽车是否进入了停车场(0表示在停车场,1表示在便道上)
}CInfo;
3、主体算法流程
While(输入信息!=(’E’,0,0))
{
If(action==’A’)
{
If(park堆栈未满)
{
把flag标志置为0;
该汽车信息进堆栈;
输出“停在停车场!”;
}
Else
{
把flag标志置为1;
输出“停在便道上!”;
}
}
If(action==’D’)
{
If(flag==1)//停在便道上
输出“该车在便道上,不用交费,直接开走!”;
Else
{
While(park堆栈栈顶元素出堆栈(执行pop操作))
{
if(栈顶元素的carNo==输入的carNo)
{
输出”该车在停车场的停留时间**,应交费¥¥”;(停留时间=离去时刻-到达时刻,交费金额=单价*停留时间,单价自己设定)
temp堆栈中的元素依次出堆栈(pop),同时进park堆栈(push)。
Break;
}
Else
栈顶元素进temp堆栈(push);
}
}
}
页:
[1]