资源描述:
《停车场管理系统数据结构课程设计》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、数据结构课程设计题目:停车场管理系统姓名:邓全飞学号:201120320105专业:信息与计算科学指导老师:姜俊坡目录一课题分析3二逻辑分析32.1数据结构的描述和每个基本操作的功能说明32.1给出本程序包含的模块及模块之间的调用关系图42.3写出重要部分的伪码算法4三详细设计53.1数据结构的定义,及其基本操作的实现53.2主函数和其他函数的实现或伪码算法63.3程序的层次结构的函数调用关系图83.4详细设计8四程序源代码9五程序调试与测试175.1主界面175.2具体操作185.2.1进站时间与车牌号185.2.2车站已
2、满,请进入临时车道195.2.3出站与收费205.2.4结束205.3相关操作20六程序中遇到的问题与解决方法216.1写提纲216.2在程序调试过程,遇到的相关问题21七总结25八参考文献26一课题分析a)该程序主要利用栈和队列来实现车的到达及其离开功能,其中主要有对各种情况的处理,要求如下:1、要求以栈模拟停车场,以队列模拟车场外的便道,按照从终端读入的数据序列进行模拟管理2、要求处理的数据元素包括三个数据项:汽车“到达”或“离去”信息,汽车牌照号码及到达或离去的时间3、该系统完成以下功能:若是车辆到达,则输出汽车在停车
3、场内或便道上的停车位置;若是离去,则输出汽车在停车场内停留的时间和应缴纳的费用(在便道上停留的时间不收费)4、要求栈以顺序结构实现;b)程序的输入,程序功能选择,字符型,A为到达,D离开,E退出系统;车的编号是整型,输入数字即可;时间是float类型,可精确到分钟c)程序的输出,当车到达,程序输出车的编号及到达时间,若栈满则提示停到便道上;车离开时,输出车的编号及其所需费用。d)测试数据,(A,1,5),(A,2,10),(D,1,15),(A,3,20),(A,4,25),(A,5,30),(D,2,35),(D,4,40
4、),E以及a)中的要求。其中‘A’表示到达,D表示离开,E表示结束。二逻辑分析2.1数据结构的描述和每个基本操作的功能说明ADTstack{数据对象:D={ai
5、ai∈CharSet,i=1,2,…,n,n≥0}数据关系:R1={
6、ai-1,ai∈D,i=2,…,n}基本操作:initstack()操作结果:构造一个空栈,并返回地址。gettop(&S)初使条件:栈S已存在。操作结果:栈S不为空,输出顶元素。stop(&S,e)初始条件:栈S已存在。操作结果:要栈S中栈顶插入新的栈顶元素e。ADTqueue
7、{数据对象:D={ai
8、ai∈ElemSet,i=1,2,…,n,n≥0}数据关系:R1={
9、ai-1,ai∈D,i=2,…,n}约定其中ai端为队列的头,an端为队列的尾}initqueue(&Q)操作结果:构造一个空栈,并返回地址。gethead(&S)初使条件:栈S已存在。操作结果:栈S不为空,输出顶元素。enqueue(&S,e)初始条件:栈S已存在。操作结果:要栈S中栈顶插入新的栈顶元素e2.1给出本程序包含的模块及模块之间的调用关系图本程序包含三个模块:1)主程序模块:Voidmain(){初始
10、化;do{接受命令;处理命令;}while(命令!=“退出”)}2)栈模块——实现栈抽象数据类型3)队列模块——实现队列抽象数据类型2.3写出重要部分的伪码算法车辆到达或者离开的伪码算法:do{输出菜单选项;如果选择A,即车辆到达,则{若栈不满,车辆进栈,停到停车场;否则,车入队,车停在便道上;}如果选择D,即车辆离开,则{如果队不空并且栈不满,被选的车辆离开,队列上的车出队入栈;被选的车辆离开;计算时间及其所需费用;}如果选择E,退出程序;}while(输入的菜单选项不正确)三详细设计3.1数据结构的定义,及其基本操作的实
11、现typedefstructtime{inthour;intmin;}Time;typedefstruct//车信息{charlabel[10];floattime;}Car,Car2;typedefstruct//车库信息{Car*top;Car*base;intstacksize;}SqStack;typedefstruct//临时车道{Car2*top2;Car2*base2;intstacksize2;}SqStack2;typedefstructQNode//车道信息{Cardata;structQNode*nex
12、t;}QNode,*QueuePtr;typedefstruct{QueuePtrfront;QueuePtrrear;}LinkQueue;3.2主函数和其他函数的实现或伪码算法voidmain(){SqStackS;SqStack2S2;InitStack(&S);InitStack2