数据结构课程设计52264new.docVIP

  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文档。上传文档
查看更多
数据结构课程设计52264new.doc

佳乐停车场管理系统 1.课程设计的目的课程设计的2.1设计思路 本课程设计是由栈和队列组成的,它们广泛应用于各种软件系统,此次课程设计通过他们的特点进行编程。 栈是一种限定仅可以在表尾进行插入或删除操作的线性表,因此,对于栈来,表尾端尤其特殊含义,表尾端称为栈顶(top),表头端称为栈底(bottom),不含元素的空表为空栈,则栈的修改是按后进先出(last in first out)的原则进行的,因此,栈又称为后进先出的线性表。因为这样的特点,就满足了当停车场内的车辆需要离开时,其后面顺序的车辆需要依次退出停车场,按照后进先出的原则。栈有两种存储表示方法:顺序栈,链栈。 此程序运用的是顺序栈,它的存储结构是利用一组地址连续的存储单元依次存放栈底到栈顶的数据元素,同时附设指针top指示栈顶元素在顺序栈中的位置。它的顺序栈定义为:(base为栈底指针,top为栈顶指针,stacksize指示栈的当前可使用的最大容量) typedef struct { car_info *base; car_info *top; status stacksize; }sqstack; 队列是一种先进先出(first in last out)的特殊线性表,它只允许在表的一端进行插入,而另一段删除元素,在队列中,允许插入的一端叫做队尾(rear),允许删除的一端叫做对头(front)typedef struct Qnode { int car_num; int time; struct Qnode *next; }QNode,*QueuePtr; typedef struct {QueuePtr front; QueuePtr rear; int lenth; }LinkQueue; 2.2需求分析 本程序通过运用队列和栈的算法进行设计的,为了便于停车场的管理而设计的,停车场需要对于已占用车位的车辆以及等候在便道上的车辆进行有规则管理,利用栈和队列的各自特点,使程序加以更好的完善。 2.3逻辑关系 本课程设计是利用线性存储结构完成的。 3.课程设计的内容及源程序清单 3.1课程设计的内容 本设计完成停车场只有一个可停放3辆汽车的狭长通道,只有一个大门可供汽车进出。汽车在停车场内按车辆到达的先后顺序依次排列,若车场内已停满几辆汽车,则后来的汽车只能在门外的便道上等候,一旦停车场内有车辆开走,则排在便道上的第一辆汽车即可进入;当停车场内某辆汽车要开走时,由于停车场是狭长的通道,在它之后开入的车辆必须先推出车场为他让路,待车辆开出大门,为他让路的车辆再按原次序进入车场。试设计这样一个停车场模拟管理程序。? 该管理系统大致分为四个功能模块分别为:程序功能介绍和操作提示模块,汽车进入停车场的管理模块,汽车离开停车位的管理模块,查看停车场状态的查询模块。它的总体功能框图如图1所示。 图1 停车场管理系统总体功能框图 3.2课程设计内容的步骤 (1)为了便于区分每辆汽车并了解每辆车当前所处的位置,当每辆车进入停车场时,需要记录汽车的车牌照号码和汽车当前的状态。功能实现模块算法如下所示。 void arrive(sqstack *s,LinkQueue *p,car_info a,int n) { if(s-stacksizen) { push(s,a); printf(\nThe car number %d drive into the stopping place %d hao che dao\n,a.car_num,s-stacksize); } (2)为了便于停车场的管理工作,要为每个车位分配一个固定的编号。当每个车辆进入停车场时按照到来时的先后次序依次排好位置。例如:第一辆车停在一号车道,第二辆车停在二号车道……针对这一情况使用一个顺序栈来完成即可。 (3)由于车位是一个狭长的通道,所以不允许两辆车同时进入停车位,当有车到来时,车辆必须依次进站,当停车场的停车位上都已停满了汽车,又有新的汽车到来时要把它调度到便道上,便道上的车辆要按照进入便道的先后顺序顺次序放在便道上,为便道上的每个位置分配一个固定的编号。以便后续功能的较好实现。功能实现模块算法如下所示。 void arrive(sqstack *s,LinkQueue *p,car_info a,int n) { if(s-stacksizen) { push(s,a); printf(\nThe car number %d drive in

文档评论(0)

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

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

版权声明书
用户编号:5311233133000002

1亿VIP精品文档

相关文档