河南财经政法大学
实 践 报 告
院系:
班级:
指导老师:
小组:
小组成员:
(一) 设计目的 3
(二) 问题描述 3
(三) 概要设计 4
(四) 详细设计 8
(五) 调试分析 9
(六) 测试分析 10
(七) 心得体会 11
(八) 附录(源代码) 12
设计目的
通过课程设计,了解并掌握数据结构的设计方法,具备初步的独 立分析和设计能力;
通过课程设计,初步掌握软件开发过程的问题分析、系统设计、 程序编码、测试等基本方法和技能;
通过课程设计,提高综合运用所学的理论知识和方法独立分析和 解决问题的能力;
通过课程设计,训练用系统的观点和软件开发一般规范进行软件 开发,培养软件工作者所应具备的科学的工作方法和作风。
问题描述及要求
基本要求
以栈模拟停车场,以队列模拟车场外的便道,按照从终端读入的 输入数据序列进行模拟管理。每一组输入数据包括三个数据项:汽车
“到达”或“离去”信息、汽车牌照号码以及到达或离去的时刻。对
每一组输入数据进行操作后的输出信息为: 若是车辆到达,则输出汽 车在停车场内或便道上的停车位置; 若是车辆离去,则输出汽车在停 车场内停留的时间和应交纳的费用(在便道上停留的时间不收费) 。 栈以顺序结构实现,队列以链表结构实现。
测试数据
设 n=2,输入数据为:('A ,1,5 ) , ( 'A' ,2,10 ) , ( 'D‘,1,15 ), ('A ,3,20 ) , ( 'A ,4,25 ) , ( 'A 5,30) , ( ' D‘ ,2,35 ),
('D‘,4,40 ) , ( 'E‘ ,0,0 )。其中:卞表示到达(arrival );
'D'表示离去(departure ) ; ' E'表示输出结束(end)。
实现提示
需另设一个栈,临时停放为给要离去的汽车让路而从停车场退出 来的汽车,也用顺序存储结构实现。输入数据按到达或离去的时刻有 序。栈中每个元素表示一辆汽车,包含两个数据项:汽车的牌照号码 和进入停车场的时刻。
此外还要实现:
两个栈共享空间,思考应开辟数组的空间是多少?
汽车可有不同种类,则他们的占地面积不同,收费标准也不同, ,1辆十轮卡车占地面积 相当于3辆小汽车的占地面积。
汽车可以直接从便道上开走,此时排在它前面的汽车要先开走
让路,然后再依次排到队尾。
概要设计
1、设计思想
此停车场管理系统是在一个狭长的通道上的,而且只有一个 大门可以供车辆进出,并且要实现停车场内某辆车要离开时,在 它之后进入停车场的车都必须先退出停车场为它让路,待其开出 停车场后,这些辆再依原来的次序进场的功能,就可以设计两个 栈,其中一个栈用来模拟停车场,另一个栈用来模拟临时停车场, 该临时停车场用来存放当有车辆离开时,原来停车场内为其让路 的车辆。至于当停车场已满时,需要停放车辆的通道可以用一个 链队列来实现。当停车场内开走一辆车时,通道上便有一辆车进 入停车场,此时只需要改变通道上车辆结点的连接方式就可以了, 使通道上第一辆车进入停车场这个栈,并且使通道上原来的第二 辆车成为通道上的第一辆车,此时只需将模拟通道的链队列的头 结点连到原来的第二辆车上就可以了。
2、实现方法
对于此停车场管理系统的实现,就是用两个堆栈来分别模拟 停车场以及停车场内车辆为其它车辆让路时退出停车的临时停放 地点。至于通道上车辆的停放则用一个链队列来实现,此时,通 道上车辆的离开或者进入停车场只需改变此链队列上的结点而 已。对于要对停车场内的车辆根据其停放时间收取相应的停车费 用,可以记录下车辆进入以及离开停车场的时间,再用时间差乘 以相应的单价并且打印出最后的费用就可以实现了。
3、流程图分析
流程图按块来分析,共分成整体系统,汽车到达系统,汽车离 去系统,汽车显示系统。如图1。
(1)汽车整体系统
(2)以模块为单位分析算法
1、“到达”模块:到达时有两种情况,即车场是否满,未满则直接进入停车场;满时,到
便道等待。如图2。
图2
3。
2. “离开”模块:离开时,当车库为空时,提示没有车,结束;否则车辆离开。如图
停车场管理系统
A D S
车辆到达 车辆离开 车辆显示
图1
(2)以模块为单位分析算法
1、“到达”模块:到达时有两种情况,即车场是否满,未满则直接进入停车场;满时,到
便道等待。如图2o
车辆到达
停车场是否满 是
否
进入停车场 进入便道
结束
图2
2.“离开”模块:离开时,当车库为空时,提示没有车,结束;否则车辆离开。如图 3o
数据结构实践报告--停车场管理系统 来自淘豆网m.daumloan.com转载请标明出处.