《数据结构》课程实验 实 验 报 告 题目: 停车场管理 专业: 计算机科学与几技术 班级: 姓名: 学号: 完成日期: 一、试验内容 设停车场是一个可以停放n辆汽车的狭长通道,且只有一个大门可供汽车进出。汽车在停车场内按车辆到达时间的先后顺序,依次由北向南排列(大门在最南端,最先到达的第一辆车停放在车场的最北端),若车场内已经停满n辆汽车,则后来的汽车只能在门外的便道上等候,一旦有车开走,则排在便道上的第一辆车即可开入;当停车场内某辆车要离开时,在它之后进入的车辆必须先退出场为它让路,待该辆车开出大门外,其他车辆再按次序进入车场,每辆停放在车场的车在它离开停车场时必须按它停留的时间长短交纳费用,试为停车场编制按上述要求进行管理的模拟程序。以栈模拟停车场,以队列模拟车场外的便道,按照从终端读入的输入数据序列进行模拟管理。每一组输入数据包括三个数据项:汽车“到达”或“离去”信息、汽车牌照号码以及到达或离去的时刻。对一组输入数据进行操作后的输出信息为:若是车辆到达,则输出汽车在停车场内或便道上的停车位置;若是车辆离去,则输出汽车在停车场内停留的时间和应交纳的费用(在便道上停留的时间不收费)。 二、试验目的 (1)深入了解栈和队列的特性,掌握栈和队列的存储方法。 (2)掌握栈和队列的基本操作,如初始化、入栈(队列)、出栈(队列)等,并能在实际问题背景下灵活运用。 三、流程图 输入数据判断结束if(m=='e'||m=='E')判断如果车到达存入便道存入停车场如果停车场满了如果车离开判断车的位置离开,后面的车向前排判断车是否是最后一位离开,计算结果如果是最后一位后面的车退出如果不是如果车在停车场内如果车在便道上便道内的车开进场内最后一位 四、源程序代码 #include void main() { struct cc1 { int hm1,sk1; }a[5];//停车场 struct bd { int hm2,sk2; }b[5];//便道 struct cc2 { int hm3,sk3; }c[4];//存放从停车场内退出的车 int p=0,q=0,x=0,n,y,t,r,i,j,g,h,z; char m; printf("输入停车场容量和每分钟收费\n"); scanf("%d%d",&n,&y); printf("输入数据:\n"); for(;;) { scanf("%c",&m); //判断输入数据 if(m=='e'||m=='E') break; scanf("%d%d",&t,&r);//t表示车牌号,r表示时间 //车到达 if(m=='a'||m=='A') { if(p