一.问题描述1
实验题目: 设停车场是一个可停放 n 辆汽车的狭长通道,且只有一个大门可供汽车进出
汽车在停车场内按车辆到达时间的先后顺序,依次由北向南排列(大门在最南端,最先到达的第一辆车停放在车场的最北端)
若停车场内已经停满 n 辆车,那么后来的车只能在门外的便道上等候
一旦有车开走,则排在便道上的第一辆车即可开入
当停车场内某辆车要离开时,在它之后进入的车辆必须先退出车场为它让路,待该辆车开出大门外,其他车辆再按原次序进入车场
每辆停放在车场的车在它离开停车场时必须按它停留的时间长短缴纳费用
试为停车场编制按上述要求进行管理的模拟程序
要求:根据各结点的信息,调用相应的函数或者语句,将结点入栈入队,出栈或者出队
二.需求分析1
程序所能达到的基本可能:程序以栈模拟停车场,以队列模拟车场外的便道,根据从终端读入数据的序列进行模拟管理
栈以顺序结构实现,队列以链表结构实现
同时另设一个栈,临时停放为给要离去的汽车让路而从停车场退出来的汽车
输入数据按到达或离去的时刻有序
当输入数据包括数据项为汽车的“到达”(‘A’表示)信息,汽车标识(牌照号)以及到达时刻时,应输出汽车在停车场内或者便道上的停车位置;当输入数据包括数据项为汽车的“离去”(‘D’表示)信息,汽车标识(牌照号)以及离去时刻时,应输出汽车在停车场停留的时间和应缴纳的费用(便道上停留的时间不收费);当输入数据项为(‘P’,0,0)时,应输出停车场的车数;当输入数据项为(‘W', 0, 0)时,应输出候车场车数;当输入数据项为(‘E', 0, 0),退出程序;若输入数据项不是以上所述,就输出"ERROR
输入输出形式及输入值范围: 程序运行后进入循环,显示提示信息:“Please input the state,number and time of the car:”,提示用户输入车辆