- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
停车场模拟管理程序的设计与实现
一、简介
1.设计目的:理解线性表的逻辑结构和存储结构,进一步提高使用理论知识指导解决实际问题的能力。 2.问题的描述:设停车场只有一个可停放几辆汽车的狭长通道,只有一个大门可供汽车进出。汽车在停车场内按车辆到达的先后顺序依次排列,若车场内已停满几辆汽车,则后来的汽车只能在门外的便道上等候,一旦停车场内有车辆开走,则排在便道上的第一辆汽车即可进入;当停车场内某辆汽车要开走时,由于停车场是狭长的通道,在它之后开入的车辆必须先推出车场为他让路,待车辆开出大门,为他让路的车辆再按原次序进入车场。试设计这样一个停车场模拟管理程序。
二、数据结构的设计:
为了便于区分每辆汽车并了解每辆车当前所处的位置,需要记录汽车的牌照号码和汽车当前的状态。
为了便于停车场的管理,要为每个车位分配一个固定的编号。
当停车场的停车位上都已停满了汽车,又有新的汽车到来时要把它调度到便道上,便道上的车辆要按照进入便道的先后顺序顺次序放在便道上,为便道上的每个位置分配一个固定的编号。当有车从
停车位上离开后,便道上的第一辆汽车就立即进入停车位上的某个车位。
当某辆车离开停车场的时候,比他后进停车位的车要为他让路,而且当他开走之后让路的车还要按照原来的停放次序再次进入停车位的某个车位上,为完成这项功能,定义一个结构体。
三、功能(函数)设计:
本程序从总体上分为四个功能模块,分别为:
程序功能介绍和操作提示模块
汽车进入停车位的管理模块
汽车离开停车位的管理模块
查看停车场状态的查询模块
四、界面设计:
本程序界面本着易于操作简单整洁而不失美观的理念,采用数字对应功能选项,结合详细的操作提示,使得操作方便快捷,界面清晰明朗。
五、程序设计:
车辆进入停车场模块:
Arrive函数
Enter-
topMAX?
Y N
执行语句实现 执行语句实现
进入车站 进入便道
Arrive 函数:有车进入停车厂;
Enter-topMAX:对栈进行判满,Y 表示栈满,进入便道;N
表示栈不满,进入车站;
车辆离开停车场模块:
Leave
Leave函数
站内没有车
退出函数
N
Enter-top0?
Y
输入离开车的信息scanf(%d,r oom);
Enter-
toproom?
N
输入有误
退出函数
Y
执行车辆出站操作
退出函数
N
(W-head!=W-
rear)Enter-
topMAX?
Y
执行便道上的车进
入车站的操作
Leave 函数:有车的话就要离开车位。
scanf(%d,room) : 输入需要离开的车所在的位置, 如果Enter-toproom,车辆出站。
·W-head!=W-rear)Enter-topMAX:便道上有车且车位没有满,
便道上的车进入车站。
停车场信息显示模块:
List
List函数
Flag=?
3
返回
退出函数
1
2
List1函数
List2函数
s-top0?
W-head!=W-
rear?
Y
N
Y
N
车场不空
输出车场信息
输出
车场内没有车
便道不空
输出便道信息
输出
便道内没有车
List 函数:查询车辆信息。
·flag:如果 flag=1,则执行 List1 函数;如果 flag=2,则执行 List2 函数;如果flag=3,则返回,退出函数。
List1 函数:查询车站信息。
s-top0:判断车站内有没有车,如果 Y,用 for 循环打印出站内的车位和车牌号的信息;如果 N,则输入车场没有车,返回 List 函数。
List2 函数:查询便道信息。
w-head!=w-rear:判断便道内有没有车,如果Y,用while 循环打印出便道上车的信息;如果 N,则输出便道内没有车,返回 List 函数。
六、运行与测试:
1、测试的数据及其结果:
前五辆车到达进入停车位:
后来的两辆车在便道等候:
牌照为 CF003 的车离开,CF004,CF005 需要让道,CF006进入 5 号车位:
查询车场和便道里的信息
退出程序:
2、运行与测试期间遇到的问题及其解决办法。
问题 1:在车辆离开时不能显示车辆让道的信息;
解决办法:在离开函数中一个 while 循环中增加一个 printf 语句,通过循环可以显示全部需要让道的车辆。
问题 2:在进行进场出场信息的输入时,只能进行一次;
解决办法:设置一个标志量 flag 和 while 循环,在每一次操作后返回到操作步骤。
问题 3:运行显示程序简介后,继续输入时没有清屏操作,导致运行结果不方便观察:
解决办法:增加 getch(); system(cls);语句,实现按任意键继续,并清屏。
七、结论:
本停车场管理系统,可以进行车辆进入停车场和退出停车场以及停车厂内
文档评论(0)