logo资料库

停车场管理系统实验报告.doc

第1页 / 共17页
第2页 / 共17页
第3页 / 共17页
第4页 / 共17页
第5页 / 共17页
第6页 / 共17页
第7页 / 共17页
第8页 / 共17页
资料共17页,剩余部分请下载后查看
一、案例描述
1、总体描述
2、模块描述
二、设计思路
三、概要设计
四、程序设计
1、数据结构描述
2、主函数及其流程图
3、源程序
五、调试与分析
1开始运行程序
2车辆进入停车场
3显示停车场信息
4车辆离开
六、设计总结
1、完成情况
2、心得体会
宁波大红鹰学院 信息工程学院 课 程 设 计 报 告 停车场管理系统 信息工程学院制 项目名称: 项目组长: 项目成员: 班级名称: 专业名称: 完成时间:
目 录 一、案例描述 ........................................................................................................................- 1 - 1、总体描述................................................................................................................. - 1 - 2、模块描述................................................................................................................. - 1 - 二、设计思路 ........................................................................................................................- 1 - 三、概要设计 ........................................................................................................................- 2 - 四、程序设计 ........................................................................................................................- 2 - 1、数据结构描述......................................................................................................... - 2 - 2、主函数及其流程图................................................................................................. - 3 - 3、源程序 ......................................................................................................................- 6 - 五、调试与分析................................................................................................................. - 12 - 1 开始运行程序 .......................................................................................................... - 12 - 2 车辆进入停车场 ...................................................................................................... - 13 - 3 显示停车场信息 ...................................................................................................... - 13 - 4 车辆离开 .................................................................................................................. - 14 - 六、设计总结 ......................................................................................................................- 14 - 1、完成情况............................................................................................................... - 14 - 2、心得体会............................................................................................................... - 14 -
一、案例描述 1、总体描述 设有一个可以停放 n 辆汽车的狭长停车场,它只有一个大门可以供车辆进出。车辆按到 达停车场时间的早晚依次从停车场最里面向大门口处停放(最先到达的第一辆车放在停车场 的最里面)。如果停车场已放满 n 辆车,则后来的车辆只能在停车场大门外的便道上等待, 一旦停车场内有车开走,则排以便道上的第一辆车就进入停车场。停车场内如有某辆车要开 走,在它之后进入停车场的车都必须先退出停车场为它让路,待其开出停车场后,这些辆再 依原来的次序进场。每辆车在离开停车场时,都应根据它在停车场内停留的时间长短交费。 如果停留在便道上的车未进停车场时,允许其离去,不收停车费,并且仍然保持在便道上等 待的车辆的次序。编制一程序模拟该停车场的管理。 2、模块描述 1)菜单设计:菜单设计的比较简单,最上面是欢迎语和程序开发人员,一 开始不能直接进入菜单,要输入停车场容量和收费标准后才可以进入菜单,上面 会有 4 个选项功能选择你可以输入不同的数字进入不同的模块。 2)停车模块:当一辆车进入停车场时,先输入其车牌号,再判断栈是否已 满,如果栈没满,则将车停入停车场,若栈已满,则车就停在便道上,此时只有 当停车场里的某辆车要开走时,便道上的车才可以进入停车场,否则就得和后面 进来的车一样停在便道上。 3)出车模块:当停车场内某辆车要离开时,先判断这辆车是否是开入停车 场的最后一辆车,若是,则直接离开,若不是,则在它之后开入的车辆必须先退 出车场为它让路,待该辆车开出大门外,其它的车辆在按原次序进入车场,此时 便道上的车才可以进入停车场,每辆停放在车场的车在它离开停车场时必须按它 停留的时间长短缴纳费用。 二、设计思路 由于停车场是一个狭窄通道,而且只有一个大门可供汽车进出,问题要求 汽车停车场内按车辆到达时间的先后顺序,依次由北向南排列。由此很容易联 想到数据结构中的堆栈模型,因此可首先设计一个堆栈,以堆栈来模拟停车场, 又因为每个汽车的车牌号都不一样,这样一来可以根据车牌号准确找到汽车, 所以堆栈里的数据元素设计成汽车的车牌号。当停车场内某辆车要离开时,在 它之后进入的车辆必须先退出车场为它让路,待该辆车开出大门外,其他车辆 再按原次序进入停车场。这是个一退一进的过程,而且让道的汽车必须保持原 有的先后顺序,因此可再设计一个堆栈,以之来暂时存放为出站汽车暂时让道 的汽车车牌号。当停车场满后,继续进来的汽车需要停放在停车场旁边的便道 上等候,若停车场有汽车开走,则按排队的先后顺序依次进站,最先进入便道 的汽车将会最先进入停车场,这完全是一个先进先出模型,因此可设计一个队 - 1 -
列来模拟便道,队列中的数据元素仍然设计成汽车的车牌号。另外,停车场根 据汽车在停车场内停放的总时长来收费的,在便道上的时间不计费,因此必须 记录车辆进入停车场时的时间和车辆离开停车场时的时间。 三、概要设计 1、用栈模拟停车场,用队列模拟车场外的便道,按照从终端读入的输入数 据序列进行模拟管理。 2、每一组输入数据包括三个数据项:汽车到达或离去的信息,汽车牌照号 码以及到达或离去的时刻。 3、每次输入完进行输出操作:若是车辆到达,输出汽车在停车场内或便道 上的停车位置;若是车辆离去,输出停留时间和应缴纳的费用(在便道上停留的 时间不收费)。 4、其中栈以顺序结构实现,队列以链表结构实现。 四、程序设计 1、数据结构描述 本程序定义了五个结构体,一个结构体作为时间结点,定义了时间的小时和 分;一个结构体作为车辆信息结点,定义了车辆信息的车牌号,车辆到达时间和 车辆离开时间;一个结构体作为模拟停车站的栈,定义了栈的大小的栈顶指针; 一个结构体作为模拟通道的队列,定义了队列的头指针和尾指针。详细定义如下: typedef struct time { int hour; int min; }Time; /*时间结点*/ typedef struct node { char num[10]; Time reach; Time leave; }Car; /*车辆信息结点*/ typedef struct NODE { Car *stack[100]; int top; }SqStack; /*停车站*/ typedef struct car { - 2 -
Car *data; struct car *next; }QNode; typedef struct Node { QNode *head; QNode *rear; }LinkQueue; /*通道*/ 2、主函数及其流程图 1)停车模块:当一辆车进入停车场时,先输入其车牌号,再判断栈是否已 满,如果栈没满,则将车停入停车场,若栈已满,则车就停在便道上,此时只有 当停车场里的某辆车要开走时,便道上的车才可以进入停车场,否则就得和后面 进来的车一样停在便道上。这里有两种情况,当车库未满的程序流程图如图 1 所 示: start 车场未满 找到车位 记录车辆信息 去便道函数 栈顶指针加 1 break 返回主函数 图 1 - 3 -
车辆停在便道上的程序流程图如图 2 所示: start 初始化 便道上有车 记录便道车位 车库和便道都已满 记录车辆信息 break 返回主函数 图 2 2)出车模块:当停车场内某辆车要离开时,先输入车在停车场的位置,然 后判断这辆车是否是开入停车场的最后一辆车,若是,则直接离开,若不是,则 在它之后开入的车辆必须先退出车场为它让路,待该辆车开出大门外,其它的车 辆在按原次序进入车场,每辆停放在车场的车在它离开停车场时必须按它停留的 时间长短缴纳费用。程序流程图如图 3 所示: - 4 -
start 输入离开车的车牌号 找到结构体 车是最后一辆 计算时间和费用 是便道上的第一辆车 便道上的第一辆车驶入停车场,记录时间 便道上的车向前移动 返回主函数 图 3 3)信息保存模块:当停车场或便道上有某辆车进入时,系统就要对车辆的一些 信息进行存储,先定义一个变量,然后存储信息,再使这个变量自增,然后存储 信息,如此循环,只有当这个变量的长度大于停车场和便道的总长度时才退出, 程序流程图如图 4 所示: - 5 -
start 定义 i,并赋值 i=0 以‘写’的形式打开文件 car.txt i
分享到:
收藏