欢迎来到天天文库
浏览记录
ID:38693225
大小:149.50 KB
页数:16页
时间:2019-06-17
《停车场模拟管理系统》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、实验二停车场模拟管理系统一题目内容:设停车场只有一个可停放几辆汽车的狭长通道,且只有一个大门可供汽车进出。汽车在停车场内按车辆到达的先后顺序依次排列,若车场内已停满几辆汽车,则后来的汽车只能在门外的便道上等候,一旦停车场内有车开走,则排在便道上的第一辆车即可进入;当停车场内某辆车要离开时,由于停车场是狭长的通道,在它之后开入的车辆必须先退出车场为它让路,待该车辆开出大门,为它让路的车辆再按原次序进入车场。在这里假设汽车不能从便道上开走,试设计这样一个停车场模拟管理程序。二问题分析:(1)为了便于区分每辆汽车并了解每辆汽车当前所处的位置,需要记录汽
2、车的牌照号码和汽车的当前状态,所以为汽车定义一个新的类型CAR(2)由于车位是一个狭长的通道,所以不允许两辆车同时进入停车位,当有车到来要进入停车位的时候车要顺次停放,当某辆车要离开时,比它后到的车要先暂时离开停车位,而且越后到的车就越先离开停车位,显然这和栈的“后进先出”特点相吻合,所以可以使用一个栈来描述停车位。由于停车位只能停放有限的几辆车,而且为了便于停车场的管理,要为每个车位分配一个固定的编号,不妨设为1、2、3、4、5(可利用数组的下标),分别表示停车位的1车位、2车位、3车位、4车位、5车位,针对这种情况使用一个顺序栈比较方(3)当
3、某辆车要离开停车场的时候,比它后进停车位的车要为它让路,而且当它开走之后,让路的车还要按照原来的停放次序再次进入停车位的某个车位上,为了完成这项功能,再定义一个辅助栈,停车位中让路的车依次“压入”辅助栈,待提出请求的车开走后再从辅助栈的栈顶依次“弹出”到停车位中,对辅助栈也采用顺序栈,具体定义与停车位栈类似,(4)功能函数STOPPING*init_stopping()初始化“停车位栈”BUFFER*init_buff()初始化“辅助栈”PAVEMENT*init_pavement()初始化“便道队列”Intcar_come(intpos)将po
4、s指定的汽车信息输入“停车位栈”,并修改该车状态Intcar_leave(intpos)将pos指定的汽车信息从“停车位栈”删除,并修改该车状态Intstop_to_buff(intpos)将pos指定的汽车信息从“停车位栈”移动到“辅助栈”Intbuff_to_stop(intpos)将pos指定的汽车信息从“辅助栈”移动到“停车位栈”Intpave_to_stop(intpos)将pos指定的汽车信息从“便道队列”移动到“停车位栈”Intcar_disp(intpos)将pos指定的汽车信息显示在屏幕上三,程序设计//停车场管理.cpp:De
5、finestheentrypointfortheconsoleapplication.//#include#include"stdio.h"#include#include#include#include#include///////////////////////#defineSTACKSIZE14/*停车场容量STACKSIZE1-1个位*/#defineSTACKSIZE210/*临时停车场容量*/#definemaxq
6、ueue4//只能存maxqueue-1个在便道#definenull0/////////////////////#include"Carinfo.h"#defineLENsizeof(structCarinfo)#include"Sqstack.h"#include"tempstack.h"#include"Queue.h"#include"Reach.h"#include"Leave.h"#include"Disppark.h"#include"Disppave.h"#include"putininfo.h"/////////////////
7、/////////*------------------------------车辆登记--------------------------------*/voidputininfo(Carinfo*car,Sqstack*park){//charch[128];//chartimestr[128];if(!car){cout<<"分配空间失败!"<clock_treach);/
8、/printf("请输出站时间:");//scanf("%d",&car->clock_tleave);time_tt;mems
此文档下载收益归作者所有