数据结构实验报告二-停车场管理【荐】.docVIP

数据结构实验报告二-停车场管理【荐】.doc

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
数据结构实验报告二-停车场管理【荐】.doc

实验2停车场管理 需求分析 输入的形式和输入值的范围: 第一次输入一个正整数,代表停车场容量大小。 以后每一次输入三个值,分别为字符、整形、整形,中间用逗号隔开。分别代表车“到达”或“离去”信息、汽车牌照号码以及到达或离去的时刻。其中字符必须为“A,D,E”三者之一。 输入格式为:“(‘A’,1,5)”、“(‘D’,1,15)”。 不对非法输入做处理,即假设输入都是合法的。 输出的形式: 若是车辆到达,则输出汽车在停车场内或便道上的停车位置;若是车辆离去,则输出汽车在停车场内停留的时间和应交纳的费用(在便道上停留的时间不收费)。 程序所能达到的功能: 对于用户输入的车辆信息,可以输出该车的停车位置或者停车时间及应缴费用。 测试数据: 请输入停车场容量2 A,1,1 车停在停车场第 1 个位置 A,2,2 车停在停车场第 2 个位置 A,3,3 车停在便道第 1 个位置 D,1,4 停车时间:3 缴纳费用:¥6 D,2,5 停车时间:3 缴纳费用:¥6 A,5,5 车停在停车场第 2 个位置 E,0,0 概要设计 抽象数据类型的定义: 由于每一辆车包含多种信息。所以定义一个Data类来存储汽车的“来去、车牌号,时间”信息。 class Data //每辆车的信息类 { public: int license;//车牌号码 int arrive;//到达时间 }; 用栈模拟停车场,其ADT如下: ADT stack 数据对象:Data类型 数据关系:线性关系 基本操作: bool push(const Dataitem)//入栈 bool pop(Data item)//出栈 bool topValue(Data it)//顶层元素值 算法的基本思想: 1、 对于指定大小的停车场,其只有一端出口,先进后出,用栈存储; 超过停车场容量的车停在便道上,先进先出,用队列存储; 当汽车离开时,在它之后进入的车辆必须先退出再按原次序进入车场,需要一个临时栈存储。 2、 每进入一辆车,进行入栈操作,即停车场;如果入栈不成功则入队列,即便道。 每离开一辆车: 要对在该车之后进入的车辆进行弾栈操作,出栈的元素依次存入另一个临时堆栈,即为离开车辆开道。 在对该车进行出栈操作后,再将临时堆栈的元素弹回原栈。 通过离开时间与该车储存在Data中的到达时间差获得停车时间以及费用(费用的计算根据2元/小时)。 此时如果队列不为空,表明便道上有车待入,修改此待入车辆的到达时间为离开车的离开时间,并进行入栈操作。 当输入不为‘E’时,循环进行上述操作。 详细设计 实现概要设计中定义的所有数据类型: 分别用字符型、整形、整形存储用户的输入,并将相应数据存入Data类。 class Data //每辆车的信息类 { public: int license;//车牌号码 int arrive;//到达时间 }; class Stack//堆栈,模拟停车场 { private: int size; int top; Data *listArray; public: Stack(int sz){size=sz;top=0;listArray=new Data[sz];} ~Stack(){delete []listArray;} bool push(const Dataitem)//入栈 { if(top==size)return false; else { listArray[top++]=item; return true; } } bool pop(Data item)//出栈 { if(top==0)return false; else {

文档评论(0)

cnsg + 关注
实名认证
文档贡献者

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

1亿VIP精品文档

相关文档