停车场管理系统 数据结构(2)

2019-01-07 15:24

printf(\出场的时刻:\ scanf(\ CarNode e,m; CarPtr w;

while(P.stacksize) { Pop(P,e);

if(e.number==number) {

flag=0;

money=(le_time-e.ar_time)*2; ar_time=e.ar_time; break; }

Push(P1,e); }

while(P1.stacksize) {

Pop(P1,e); Push(P,e); }

// 车从停车场中出 if (flag == 0) {

if(S.length!=0) {

DeQueue(S,w); m.ar_time=le_time; m.number=w->number; Push(P,m); free(w);

printf(\车牌号为%d的车已由便道进入停车场\\n\ }

printf(\停车费为%d, 占用车位数为%d\\n\ } else {

printf(\停车场不存在牌号为%d的车\\n\ }

return OK; }

功能:对离站车辆的处理,记录离站车辆的车牌号,当P.stacksize!=0,即栈不为

空时进入while循环,Pop(P,e)让栈顶的车出栈,判断车牌号是不是和要离站的车的车牌号相等,若相等,则将标志flag赋值为0,且计算需要交纳的费用,并用break跳出循环;若不相等,则将车停到临时停车场P1,

并继续while循环,直到车牌号与离站车的车牌号相等为止。当P1即临时停车场不为空时,将车开出临时停车场P1并进入停车场P。如果flag==0,即确定有车离开停车场,当便道不为空时,将队头的车离开便道并进入停车场的第P.stacksize个车位。如果flag!=0,则打印“停车场不存在车牌号为number的车。

函数的调用关系图: 主函数 InitQueue Arrival InitStack EnQueue Push Arrival 主函数 Leave Pop Push DeQueue Leave 四、调试分析

1、界面

2、当停车数量小于等于5时,停在停车场内。

3、当停车数量大于5时,按顺序停在便道上

4、车从停车场离开时,统计费用和占用车位数,且停在便道上的最前边的车进入停车场。

5、停车场中不存在车牌号为**的车

五、用户手册

这个程序用来实现对停车场内车辆的管理,整个操作界面为中文,更加符合人性化的标准,使得用户使用方便,而且每一个操作都有提示,使得初次接触该程序的用户也能很快适应程序的操作。

这个程序操作简单,对于车牌号,只需输入车牌号上的数字就行,而且对于进出停车场的时间,也简化了操作,只需输入当时的时刻就行,没有具体到小时和分钟,但也许这也是该程序不足之处所在。而且该程序也给用户提供了选择的机会,当运行该程序后,如果想退出程序,可以输入e或E退出该运行程序。

六、测试结果

利用此程序可以进行最简单的停车场管理,可以统计停车的数量以及所需交纳的费用。但是,该程序也有很多不足的地方。主要表现在车辆的车牌号上,现实中的车牌号是一串字符,可是,在这个程序中,为了简便起见,就把车牌号定义为了整型,这个与现实是有些不符的。还有一个不足地方就是记录车辆进入停车场以及离开停车场的时间,应该精确到小时以及分钟的,但在程序中,为了简便起见,只是设置成了一个时刻,所以,在这方面还是有待改进的。改进的程序中,还应该增加时间的判断功能,即停车场内有可能有车辆停放的时间超过一天。

还有一个很重要的问题,对于停车场内可以停放的最多车辆数,为了测试数据的方便,在程序中,定为了5,在实际使用中,可以改变程序开头的宏定义以增加停车场的容量。


停车场管理系统 数据结构(2).doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:2018年电大经济数学基础12全套试题及答案

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: