停车场管理系统的设计与实现数据结构课程设计Word格式.docx
《停车场管理系统的设计与实现数据结构课程设计Word格式.docx》由会员分享,可在线阅读,更多相关《停车场管理系统的设计与实现数据结构课程设计Word格式.docx(30页珍藏版)》请在冰点文库上搜索。
4.如果一辆车车库移到便道,除了更换进入便道的时间外,车牌号从链表的数据里得到,从便道移到车库也类似。
另外,更改位置前停放费用不计入最后的费用。
5.除了要输入进入时间,在更换停车位置时需要输入进入时间,在最后提车时需要输入离开时间,方便计算总费用。
三.详细设计
1.主函数设置两个选择:
最外层的选择显示是用户自己选择停车还是系统选择停车位置,最里层的选择为主菜单。
2.进入车库(入栈)
();
:
进入车库时间
;
车牌号
显示是否更改过停车位置
3.离开车库(出栈)
将后面三个形参设置为引用调用是为了得到数据域里的数据,供主函数使用
4.进入便道
5.离开便道
将后面三个形参设置为引用调用是为了得到数据域里的数据,供主函数使用。
(其实在主函数传地址给调用函数也可以,但是不知道为什么没有试验成功。
)
6.()和()都是显示菜单函数
7.
8.();
函数是计算费用函数,是在最近一个停车位置的停车时间,在主函数已经由离开时间减去进入时间计算好,为标志位,为1,需要多支付20元的管理费用,是需要发票的标志,需要为1,则最后费用为原有费用的基础上增加%15,同时用一个浮点型的返回值返回给主函数使用,同时主函数用%.2f来控制最后只显示小数点最后两位。
四.源程序
/*
2015年11月15日21:
21:
37
本次试验主要熟悉栈和队列的存储方式,同时结合顺序表和链表知识
具体试验要求见代码底部
*/
#<
>
<
车库
{
;
到达在车库时间
汽车牌照
标记位置,在车库为1,在便道为0
};
1便道
到达便道上的时间,以小时为单位(下同)
1*;
}1;
顺序栈
*;
栈顶指针
栈底指针
此次代码形参与实参之间是引用调用,故不需要传地址
链式队列
队头指针
队尾指针
(z);
计算停车费用
初始化车库的顺序栈!
();
计费函数
()
在停车场的时间
离开便道世间
离开车库时间
是否需要发票,需要为1,不需要为0
((0));
1;
;
初始化车库
初始化便道
2;
("
"
2);
(2'
Q'
2'
q'
{
(2)
{
'
p'
:
P'
1;
();
("
1);
(10)
{
(1)
1:
("
欢迎您到便道停车,我们将竭诚为您服务!
\n"
);
请输入到达时间:
请输入车牌照(阿拉伯数字)"
(,0);
恭喜!
牌照为的车主在便道停车成功!
;
2:
("
欢迎您到车库停车,我们将竭诚为您服务!
(())
{
车道已经停满,请选择便道停车!
}
请输入到达车库时间:
牌照为的车主在车库停车成功!
;
3:
欢迎您更换到便道停车!
车库里没有车,你的选择有误!
();
您的爱车到达车库时间是\n"
您的爱车牌照是:
请输入到达便道的时间:
(,1);
您的车辆已经移动到便道!
4:
欢迎您更换到车库停车!
()
便道上没有车,您的选择有误!
(11);
您的爱车到达便道时间是\n"
请输入到达车库的时间:
(1,1);
您的车辆已经移动到车库!
5:
欢迎您到车库取车!
牌照是:
的车主您好,您的车到达车库时间是\n"
(1)
("
您的车在停车场中有更换停放位置!
请输入您的爱车的离开时间:
=-;
请选择是否需要发票1:
表示需要发票,0表示不需要发票"
{
您好,请缴费%.2f元\n"
(,1));
请保管好您的发票!
感谢您使用本系统,祝您一路顺风!
}
(,0));
6:
欢迎您到便道取车!
的车主您好,您的车到达便道时间是\n"
(11)
(,1)/2);
(,0)/2);
}结束大括号
("
下面是菜单,请继续选择或者按0退出!
}结束大括号
自主选择菜单结束
s'
S'
("
您好,已经由系统为您做出了选择!
1=()%2+1;
(10)
表示有发票,0表示不需要发票"
;
}最外层结束大括号
();
}最外层大括号
0;
}
()初始化车库的顺序栈!
=(*)(()*100);
()
动态内存分配失败!
(-1);
}
=;
栈空是返回
(->
=100)
栈满是返回
(())
车库已满,请退出!
>
=;
车库已空,您的选择有错误!
=>
;
==(1*)(
(1));
>
1*p;
p=(1*)(
(1));
=p;
指向新进入便道的车
()队列为空,无法出队
p=>
=>
(p)
(p);
******************************************************\n"
*************请输入P或S来进行选择(不分大小写)*********\n"
\t\.自助选择停车地点\n"
\t\.系统为您选择\n"
\t\.退出系统\n"
*****************************************\n"
*************请输入0~6来进行选择*********\n"
\t\t1.停在便道\n"
\t\t2.停在车库\n"
\t\t3.从车库移到便道\n"
\t\t4.从便道移到车库\n"
\t\t5.从车库取车\n"
\t\t6.从便道取车\n"
\t\t0.退出系统\n"
(1)需要发票,需要在原有基础上加上%15的费用
(1)中途有更改停车地点
(<
0.1)小于10分钟
=(0+20)*1.15;
0.5)
=(5+20)*1.15;
1)
=(8+20)*1.15;
(()<
12)
=((()1)*6+8+20)*1.15;
=((()-12)*5+8+11*6+20)*1.15;
}
一直停在车库中
=(0+20);
=(5+20);
=(8+20);
=(()1)*6+8+20;
=(()-12)*5+8+11*6+20;
不需要发票,不需要20的管理费
=0*1.15;
=5*1.15;
=8*1.15;
=((()1)*6+8)*1.15;
=((()-12)*5+8+11*6)*1.15;
=0;
=5;
=8;
=(()1)*6+8;
=(()-12)*5+8+11*6;
停车场管理系统的设计与实现
问题描述:
设计一个停车场管理系统,模拟停车场的运作,此程序应具备以下功能:
(1)若车辆到达,则显示汽车在停车场车库内或便道上的停车位置;
(2)若车辆离去,则显示汽车在停车场内停留的时间和应交纳的费用。
总费用应为在便道上的费用加上在停车场车库内的费用。
基本要求:
(1)要求以栈模拟停车场车库,以队列模拟车场外的便道,按照从终端读入的输入数据序列进行模拟管理;
(2)a.车主进入停车场后,若车库和便道都有空闲,则由车主选择具体停在车库还是便道上;
b.在车库和便道都有空闲的情况下,车辆停放位置也可应车主的要求选择更换(如原先停放在便道中的车辆,车主可以要求停在车库内);
c.若车主没有特别要求,则按照栈和队列的顺序由系统自动分配位子。
(3)要求处理的数据元素包括的数据项为:
汽车"
到达"
和"
离去"
的时间信息(包括在便道上和车库内的时间)、汽车牌号等;
(4)要求栈以顺序结构实现,队列以链表实现。
测试数据:
自行设计一组在停车场车库内停车的数据和在便道上停车的数据。
实现提示:
(1)该停车场车库能容纳车辆的数量,便道上的停车数量。
(2)车辆到达对应栈或队列的"
入"
操作,车辆离去对应栈或队列的"
出"
操作。
(3)费用计算问题:
a.应分等级收取费用,对于停在车库的车辆,十分钟以内免费,半小时内5元,第一个小时8元,以后每超过一个小时6元。
b.停留12小时以上者另加每小时5元的托管费(前12小时不收托管费)。
d.对索要发票者,另加总费用15%的税费。
e.对车主更换位置的车辆,收取20元的系统维护费。
f.在便道上停留的时间按照半价收取。
五.用户手册
请根据主菜单操作,注意括号内的提示内容即可。