学校的数据结构课程实验之一。
用到的数据结构:栈、队列
需求分析
设停车场内只有一个可停放n辆汽车的狭长通道,且只有一个大门可供汽车进出。汽车在停车场内按车辆到达时间的先后顺序依次排列。
若车场内已停满n辆汽车,则后来的汽车只能在门外便道上等候,一旦有车开走,则排在便道上的第一辆车即可开入;当停车场内某辆车要离开时,在它之后开入的车辆必须先退出车场为它让路,该车开出后,其它车辆再按原次序进入车场,每辆停放在车场的车在它离开时必须按它停留的时间长短交纳费用。
数据要求
要求模拟停车场车辆的管理,按照从终端读入的输入数据序列进行模拟管理。
每一组输入数据包括三个数据项:汽车“到达”或“离去”信息、汽车牌照号码及到达或离去的时刻,对每一组输入数据进行操作后的输出数据为:若是车辆到达,则输出汽车在停车场内或便道上的停车位置;若是车离去;则输出汽车在停车场内停留的时间和应交纳的费用(在便道上停留的时间不收费)。
主函数流程图
主函数
#include <iostream>
#include <string>
#include "Stack.h"
#include "Queue.h"
#include "Time.h"
#include "Parking.h"
using namespace std;
int main()
{
Parking parking;
cout<<"输入示例"<<endl<<"到达:A 京C001 9:40"<<endl<<"离开:D 京B984 10:25";
char choice='y';
while(choice == 'y')
{
cout<<endl<<"请输入事件:"<<endl;
fflush(stdin);
char action;
string num;
Time timing;
cin>>action>>num>>timing;//读入事件
if(action == 'A')
{
parking.park(num, timing);
}
else if(action == 'D')
{
parking.leave(num,timing);
}
cout<<endl<<