《数据结构》实验设计报告停车场管理系统.DOC

《数据结构》实验设计报告停车场管理系统.DOC

  1. 1、本文档共26页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
《数据结构》实验设计报告停车场管理系统.DOC

《数据结构》实验设计报 题目: 停车场管理系统 姓名: ** 学号: 2010211998 班级: 0491002 学院: 计算机科学与技术学院 目录 TOC \o 1-5 \h \z HYPERLINK \l bookmark4 \o Current Document \h 问题描述 03 问题分析 03 HYPERLINK \l bookmark8 \o Current Document \h 数据结构描述 04 HYPERLINK \l bookmark10 \o Current Document \h 算法设计 04 HYPERLINK \l bookmark12 \o Current Document \h 程序优缺点分析及优化 0 5 HYPERLINK \l bookmark14 \o Current Document \h 程序源代码 07 程序运行结果 13 心得体会 15 HYPERLINK \l bookmark18 \o Current Document \h 附一、优化后的程序 16 HYPERLINK \l bookmark22 \o Current Document \h 附二、优化后程序的运行结果 23 1. 问题描述 设计一个停车场管理系统。 设停车场是一个可停放n辆汽车的狭长通道,且只有一个大门可供汽车进 出。汽车在停车场内按车辆到达时间的先后顺序,依次由北向南排列(大门在 最南端,最先到达的第一辆车停放在停车场的最北端),若停车场内已停满n辆 汽车,则后來的汽车只能在门外的便道上等候,一旦有车开走,则排在便道上 的第一辆车即可开入;当停车场内某辆车要离开时,在它Z后进入的车辆必须 先退出车场为它让路,待该辆车开出大门外,其他车辆再按原次序进入车场, 每俩停放在车场的车在它离开停车场时必须按它停留的时间长短交纳费用。试 为停车场编制按上述要求进行管理的模拟程序。 【基本要求】 以栈模拟停车场,以队列模拟车场外的便道,按照从终端读入的输入数据 序列进行模拟管理。每一组输入数据包括三个数据项:汽车“到达”或“离 去”信息、汽车牌照号码以及到达或离去的时刻。对每一组输入数据进行操作 后的输出信息为:若是车辆到达,则输出汽车在停车场内或便道上的停车位置; 若是车辆离去,则输出汽车在停车场内停留的时间和应交纳的费用(在便道上 停留的时间不收费)。栈以顺序结构实现,队列以链表结构实现。 【选作内容】 (1) 两个栈共享空间,思考应开辟数组的空间是多少? (2) 汽车可有不同种类,则他们的占地面积不同,收费标准也不同,如1辆客 车和1.5辆小汽车的占地面积相同,1辆十轮卡车占地面积相当于3辆小汽车 的占地面积。 (3) 汽车可以直接从便道上开走,此时排在它前面的汽车要先开走让路,然后 再依次排到队尾。 二、问题分析 该问题需要以栈和队列作为基本的存储结构,以顺序栈模拟停车场,以链 队列模拟车场外的便道。汽车进入停车场,即是在顺序栈上执行进栈操作,退 出停车场即是在顺序栈上执行出栈操作;汽车进入便道,即是在链队列上执行 入队操作,退出便道即是在链队列上执行出队操作。 当停车场内某辆车要离开时,在它之后进入的车辆必须先退出车场为它让 路,待该辆车开出人门外,其他车辆再按原次序进入车场。设要删除的元素在 顺序表S t中位置为1,则从i到top Z间的全部元素进入到一个临时栈S tl 中,其次再删除该元素,然后将临栈S tl的元素按照“先进后岀”的原则重新 回到St中。若链队不空,则使队头进栈St,并以当前时刻开始计费。 程序需要构造两个顺序栈St和Stl,其中St用于模拟停车场,Stl用作临 时栈,临时停放为给要离去的汽车让路而从停车场退出来的汽车。此外还需要 构造一个链队列Qu用于模拟便道。 数据结构描述 /*定义顺序栈类型*/ type def struct { int CarN o[N] ; /*车牌号*/ int CarT imc[N] ; /*进场时间*/ intt op; } SqStack; /*栈指针*/ /*定义顺序栈类型*/ /*定义链队类型*/ typedef s truct qnod c { int CarN o; /*车牌号*/ struct q node*next ; } QNode; t ypedcf str uct { QNode *front;/*队首和队尾指针*/ QN ode^rear; } Li Queue; 算法设计 对于子函数模块,则调用顺序栈的基本操作和链队列的基本操作。 如下: /*顺序栈的基木运算算法*/ void Tni tS tack(SqSta ck *s) int StackEmpt y (SqStack *s) int Sta ckFu

文档评论(0)

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

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

1亿VIP精品文档

相关文档