停车场管理方案.doc

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
一、停车场管理 问题描述 设停车场内只有一个可停放n辆汽车的狭长通道,且只有一个大门可供汽车进出。汽车在停车场内按车辆到达时间的先后顺序,依次由北向南排列(大门在最南端,最先到达的第一辆车停放在车场的最北端),若车场内已停满n辆汽车,则后来的汽车只能在门外的便道上等候,一旦有车开走,则排在便道上的第一辆车即可开入;当停车场内某辆车要离开时,在它之后开入的车辆必须先退出车场为它让路,待该辆车开出大门外,其它车辆再按原次序进入车场,每辆停放在车场的车在它离开停车场时必须按它停留的时间长短交纳费用。试为停车场编制按上述要求进行管理的模拟程序。 基本要求 以栈模拟停车场,以队列模拟车场外的便道,按照从终端读入的输入数据序列进行模拟管理。每一组输入数据包括三个数据项:汽车“到达”或“离去”信息、汽车牌照号码及到达或离去的时刻,对每一组输入数据进行操作后的输出数据为:若是车辆到达,则输出汽车在停车场内或便道上的停车位置;若是车离去;则输出汽车在停车场内停留的时间和应交纳的费用(在便道上停留的时间不收费)。栈以顺序结构实现,队列以链表实现。 设计思想 需另设一个栈,临时停放为给要离去的汽车让路而从停车场退出来的汽车,也用顺序存储结构实现。输入数据按到达或离去的时刻有序。栈中每个元素表示一辆汽车,包含两个数据项:汽车的牌照号码和进入停车场的时刻。 1.1需求分析 1.1.1程序的功能 若是车辆到达,则输出汽车在停车场内或便道上的停车位置;若是车离去;则输出汽车在停车场内停留的时间和应交纳的费用(在便道上停留的时间不收费)。 1.1.2.输入输出的要求 输入数据,每一组输入数据包括三个数据项:汽车“到达”或“离去”信息、汽车牌照号码及到达或离去的时刻,其中,‘A’表示到达;‘D’表示离去,‘E’表示输结束。 1.2 总体设计 1.2.1 程序结构 1.2.2 程序组成 (1)、运用栈思想表示车站 (2)、运用队列表示便道 (3)、根据输入数据选择 1.3详细设计 //模拟停车场 typedef struct Car1{//车 int number;//车号 int ar_time;//到达时间 }CarNode; typedef struct{//停车场 CarNode *base;//停车场的堆栈底 CarNode *top;//停车场的堆栈顶 int stacksize; }Park; //模拟便道 typedef struct Car2{//车 int number;//车号 int ar_time;//到达时间 struct Car2 *next; }*CarPtr; typedef struct{//便道 CarPtr front;//便道的队列的对头 CarPtr rear;//便道的队列的队尾 int length; }Shortcut; Status InitStack(Park P){//初始化停车场} Status Push(Park P,CarNode e){//进入停车场} Status Pop(Park P,CarNode e){//离开停车场} Status InitQueue(Shortcut S){//初始化便道} Status EnQueue(Shortcut S,int number,int ar_time){//进入便道} Status DeQueue(Shortcut S,CarPtr w){//离开便道} Status Arrival(Park P,Shortcut S){//进站车辆的处理} Status Leave(Park P,Park P1,Shortcut S){//离站车辆的处理} 1.4 调试分析 运行成功。 1.5 核心源程序清单和执行结果 1.5.1源程序 #includestdio.h #includestdlib.h #includemalloc.h #define OK 1 #define ERROR 0 #define TRUE 1 #define FALSE 0 #define INFEASIBLE -1 #define OVERFLOW -2 #define SIZE 3//停车场位置数 typedef int Status; //模拟停车场 typedef struct Car1 {//车 int number;//车号 int ar_time;//到达时间 }CarNode; typedef struct{//停车场 CarNode *base;//停车场的堆栈底 CarNode *to

文档评论(0)

liuxing044 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档