- 1、本文档共12页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
一、设计目的
1.了解并掌握数据结构与算法的设计方法,具备初步的独立分析和设计能力;
2.初步掌握软件开辟过程的问题分析、系统设计、程序编码、测试等基本方
法和技能;
3.提高综合运用所学的理论知识和方法独立分析和解决问题的能力;
4.训练用系统的观点和软件开辟普通规范进行软件开辟,培养软件工作者所应具
备的科学的工作方法和作风。
二、设计内容
设停车场是一个可停放n辆汽车的狭长通道,且惟独一个大门可供汽车进
出。汽车在停车场内按车辆到达时间的先后顺序,挨次由北向南罗列(大门在最
南端,最先到达的第一辆车停放在车场的最北端),若车场内已停满n辆汽车,
则后来的汽车只能在门外的便道上等待,一旦有车开走,则排在便道上的第一辆
车即可开入;当停车场内某辆车要离开时,在它之后进入的车辆必须先退出车场
为它让路,待该辆车开出大门外,其他车辆再按原次序进入车场,每辆停放在车
场的车在它离开停车场时必须按它停留的时间长短交纳费用。试为停车场编制按
上述要求进行管理的摹拟程序。
三、设计要求
按照从终端读入的输入数据进行摹拟管理,每一组输入数据包括三个数据项:
汽车“进站”或者“出站”信息、汽车牌照号码以及进站或者出站的时刻,对每一组
输入数据进行操作后的输出信息为:若是车辆到达,则输出汽车在停车场内或者便
道上的停车位置;若是车辆离去,则输出汽车在停车场内逗遛的时间和应交纳的
费用(在便道上停留不收费),按以顺序结构实现,队列以链表结构实现。
四、设计过程
1、算法思想分析
由于停车场是一个狭窄通道,而且惟独一个大门可供汽车进出,问题要求汽
车停车场内按车辆到达时间的先后顺序,挨次由北向南罗列。由此很容易联想到
数据结构中的堆栈模型,因此可首先设计一个堆栈,以堆栈来摹拟停车场,又因
为每一个汽车的车牌号都不一样,这样一来可以根据车牌号准确找到汽车位置,所
以堆栈里的数据元素我设计成汽车的车牌号。当停车场内某辆车要离开时,在他
之后进入的车辆必须先退出车场为它让路,待该辆车开出大门外,其他车辆再按
原次序进入停车场。这是个一退一进的过程,而且让道的汽车必须保持原有的先
后顺序,因此可再设计一个堆栈,以之来暂时存放为出站汽车暂时让道的汽车车
牌号。当停车场满后,继续进来的汽车需要停放在停车场旁边的便道上等候,若
停车场有汽车开走,则按排队的先后顺序挨次进站,最先进入便道的汽车将会最
先进入停车场,这彻底是一个先进先出模型,因此可设计一个队列来摹拟便道,
队列中的数据元素仍然设计成汽车的车牌号。此外,停车场根据汽车在停车场内
停放的总时长来收费的,在便道上的时间不计费,因此必须记录车辆进入停车场
时的时间,车辆离开停车场时的时间不需要记录,当从终端输入时可直接使用。
由于时间不像汽车一样需要让道,我设计了一个顺序表来存放时间。又用顺序表
用派生法设计了一个堆栈,恰好满足上面摹拟停车场的需要。
2、算法描述与实现
(1)时间结点类型
typedefstructtime{
inthour;
intmin;
}Time;/*时间结点*/
(2)车辆进出站信息类型
typedefstructnode{
charnum[10];
Timereach;
Timeleave;
}CarNode;/*车辆信息结点*/
(3)停车场和便道信息类型
typedefstructNODE{
CarNode*stack[Max+1];
inttop;
}SeqStackCar;/*摹拟车站*/
typedefstructcar{
CarNode*data;
structcar*next;
}QueueNode;
typedefstructNode{
QueueNode*head;
QueueNode*rear;
}LinkQueueCar;/*摹拟通道*/
voidInitStack(SeqStackCar*,intn);/*声明栈*/
//初始化,创建一个新栈S用于停车场
intInitQueue(LinkQueueCar*);/*声明便道*/
//初始化,创建一个队列Q用于便道
intArrival(SeqStackCar*,LinkQueueCa
您可能关注的文档
- 2022—2023年部编人教版二年级语文上册期末考试(及参考答案).pdf
- 山东省济南市市中区2022-2023学年九年级上学期期末数学试题.pdf
- 2021-2022学年天津市河北区九年级上学期期末历史试卷含详解.pdf
- 北分SP~3420A气相色谱仪操作规范流程.pdf
- 2022-2023学年河南省南阳市卧龙区北师大版(三起)六年级上册期末英语试卷(含答案解析).pdf
- 《食品酶学》课程思政教学案例(一等奖).pdf
- 2023年美丽乡村建设实施方案模板28802.pdf
- 【冀教版适用】一年级数学上册《第二单元过关检测卷》(附答案).pdf
- 2023年恒大经营范围(41个范本).pdf
- 中国人民大学附属中学2023年高考化学必刷试卷含解析.pdf
文档评论(0)