数据结构实验2停车场问题.docVIP

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

HUNAN UNIVERSITY 实验二最终报告 题 目: 停车场管理 学生姓名 学生学号 专业班级 指导老师 完 成 日 期 2014年4月24日 需求分析 输入形式:用户通过键盘输入一组数据:字符、整数、整数后,输出汽车到达或者汽车离去的相应信息到DOS界面。当用户输入数据不符合规范时,提示重新输入。 输入规则: 第一个字符中‘A’表示车辆到达;‘D’表示车辆离去;‘E’表示输入结束; 第二个整数代表车牌号码; 第三个整数代表到达或离去的时刻。 输出形式: 停入停车场:车牌号为x的汽车到达,位于停车场位置y 停入便道:停车场已满,车牌号为x的汽车位于便道位置y 移动停车位置:车牌号为x的汽车停在停车场位置y 离开车辆信息:车牌号为x的汽车离开,停车时间y小时,缴费z元 功能: 根据用户输入数据,若是车辆到达,则输出汽车在停车场内或便道上的停车位置;若是车辆离去,则输出汽车在停车场内停留的时间和应交纳的费用。 测试数据 停车场系统容量为2 收费标准:每小时5元 输入:A 1 5 输出:车牌号为1的汽车到达,位于停车场位置1 输入:A 2 10 输出格式:车牌号为2的汽车到达,位于停车场位置2 输入:A 3 20 输出格式:停车场已满,车牌号为3的汽车位于便道位置1 输入:D 1 15 输出格式:车牌号为1的汽车离开,停车时间10小时,缴费50元。 输出格式:车牌号为3的汽车到达停车场,位于位置2 输入:E 0 0 二、概要设计 抽象数据类型 根据题目设计要求,车辆只能从一个大门出入,汽车只能从停车场唯一一条狭长通道驶入驶出,而暂时停放车辆的便道同理。每一辆停入停车场或便道的汽车有唯一的前驱和后继,所以问题适合建立一个线性数据关系求解。 因为停车场具有只有一个出入口、容量限定的特点,所以实现停车场的线性结构需要具备可限定空间大小,“先进后出”,只有一端出入口的特性,所以用堆栈实现它。 而临时车道停放车辆后要按原序停放回停车场,具有“先进后出”的特点,且需要的临时车道的容量小于等于停车场容量,所以用实现停车场的同一堆栈实现它。 停车便道具有“先进先出”的特点,且需要停车便道的长度不可预测,所以使用链式队列实现。 由于每辆汽车都包含车牌号、停放时间的信息,所以定义一个汽车类为每辆汽车打包这些信息。 class car //car类 { public: int num; //车牌号码 int time; //汽车停放时间 }; 堆栈ADT定义: 数据对象:car类 数据关系:R={ai-1 ,ai|ai-1,ai∈car,i=1,2,3….n} 约定an 为栈顶,a1为栈底。 Stack(); //结构初始化操作 bool push(const car it); //压入一个数据 bool pop(car it); //依次弹出m个数据 bool topValue(car it); //获取栈顶元素 ~Stack(); //结构销毁操作 int length() const; //获取栈的长度 队列ADT定义: 数据对象:car类 数据关系:R={ai-1 ,ai|ai-1,ai∈car,i=1,2,3….n} 约定a1 为队列头,an为队列尾。 Queue(); //队列结构初始化 ~Queue(); //结构销毁操作 bool push(const car it); //数据入列 bool pop(car it); //数据出列 virtual int length() const; //获取队列长度 算法的基本思想 1) 如果有一辆车要停入,先判断停车场是否已满。若未满,把汽车停入停车场(入栈),记录下汽车的车牌号和停放时间。若已满,把汽车停入便道(入队列)中,记录汽车车牌号,并提示输出停放位置。 2) 如果一辆车要离开,用该车车牌号查找停车场中的车,如果不是所查找的车,把此车驶出停车场(出栈),停入临时车道中(入临时栈),直到查找到该车为止。若查找到,把此车驶出停车场,记录

文档评论(0)

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

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

1亿VIP精品文档

相关文档