您的位置: 主页 > 资讯中心 >

c++停车场管理系统

发布日期: 2020-12-03 04:05

  c++停车场管理系统._中职中专_职业教育_教育专区。数据结构课程实践报告 项 目 名 称: 停车场管理系统 所 在 班 级: 14 级计算机科学与技术 1 班 小 组 成 员: 尤攀陆、董金明、付增现、王耀权、曲涛 任 课 教 师: 刘国

  数据结构课程实践报告 项 目 名 称: 停车场管理系统 所 在 班 级: 14 级计算机科学与技术 1 班 小 组 成 员: 尤攀陆、董金明、付增现、王耀权、曲涛 任 课 教 师: 刘国英 起 止 时 间: 2015.11.20-2015.12.30 安阳师范学院 ·数据结构课程实践· 项目基本信息 项目名称 停车管理系统 项目简介 设停车场是一个可以停放 n 辆汽车的南北方向的狭长通道,且只有 一个大门可供汽车进出。汽车在停车场内按车辆到达时间的先后顺序, 依次由北向南排列(大门在最南端,最先到达的第一辆车停放在车场的 最北端),若车场内已停满 n 辆车,那么后来的车只能在门外的便道上等 候,一旦有车开走,则排在便道上的第一辆车即可开入;当停车场内某 辆车要离开时,在它之后进入的车辆必须先退出车场为它让路,待该辆 车开出大门外,其它车辆再按原次序进入车场,每辆停放在车场的车在 它离开停车场时必须按它停留的时间长短交纳费用。试为停车场编制按 上述要求进行管理的模拟程序。要求程序输出每辆车到达后的停车位置 (停车场或便道上),以及某辆车离开停车场时应缴纳的费用和它在停车 场内停留的时间。 小组成员 任务分工 尤攀陆 董金明 付增现 王耀权 曲涛 尤攀陆:停车模块 董金明:车辆离开模块 付增现:堆栈与队列的定义及基本操作 王耀权:主函数模块 曲涛:列表显示模块 安阳师范学院 ·数据结构课程实践· 课程实践评定成绩记录 系统完成情况:优 良 中 差 指导教师意见 报告完成情况:优 良 中 差 团队整体成绩: 成 尤攀陆 140901002 员 董金明 答辩评定成绩 成 付增现 140901019 140901022 绩 王耀权 140901058 曲涛 140901040 综合成绩 一、 问题描述及分析 于停车场只有一个大门,当停车场内某辆车要离开时,在它之后进入的车辆必须先退出车场为它让 路,先进停车场的后退出,后进车场的先退出,符合栈的“后进先出,先进后出”的操作特点,因此,可 以用一个栈来模拟停车场。而当停车场满后,继续来到的其它车辆只能停在便道上,根据便道停车的特点, 先排队的车辆先离开便道进入停车场,符合队列的“先进先出,后进后出”的操作特点,因此,可以用一 个队列来模拟便道。排在停车场中间的车辆可以提出离开停车场,并且停车场内在要离开的车辆之后到达 的车辆都必须先离开停车场为它让路,然后这些车辆依原来到达停车场的次序进入停车场,因此在前面已 设的一个栈和一个队列的基础上,还需要有一个地方保存为了让路离开停车场的车辆,由于先退出停车场 的后进入停车场,所以很显然保存让路车辆的场地也应该用一个栈来模拟。因此,本题求解过程中需用到 两个栈和一个队列。栈以顺序结构实现,队列以链表结构实现。 (1)根据车辆到达停车场到车辆离开停车场时所停留的时间进行计时收费。 (2)当有车辆从停车场离开时,等待的车辆按顺序进入停车场停放。实现停车场的调度功能。 (3)用顺序栈来表示停车场,链队表示停车场外的便道。 (4)显示停车场信息和便道信息。 安阳师范学院 ·数据结构课程实践· (5) 程序执行的命令为:1 车辆进入停车场 2 车辆离开停车场 3 显示停车场的信息 二、功能模块及数据结构描述 程序分为三个模块:车辆到达模块、车辆离开模块、车辆信息显示模块; 车辆到达模块: void Arrival(SqStack &Enter, LinkQueue &W){ //车辆到达 ElemType p; printf(请输入车牌号(如陕lt;MAXSIZE - 1){ //停车场不满 printf(请输入到达时间(* * : * * ): ); scanf(%d : %d, &p.reach.hour, &p.reach.min); Push(Enter, p); // 进入停车场 } else{ printf(该车需在便道等待! \n); EnQueue(W, p); //进入便道 } } 车辆离开模块: void Print(ElemType p){ int A1, A2, B1, B2; printf(请输入离开的时间(* * : * * ): ); scanf(%d: %d, &p.leave.hour, &p.leave.min); printf(离开车辆的车牌号为: ); puts(p.num); printf(其到达时间为: %d : %d\n, p.reach.hour, p.reach.min); printf(其离开时间为: %d : %d\n, p.leave.hour, p.leave.min); A1=p.reach.hour; A2=p.reach.min; B1=p.leave.hour; B2=p.leave.min; printf(应交费用 为: %2.1f 元. \n, ((B1 - A1) * 60 + (B2 - A2)) * price); } 车辆显示模块: void List1(SqStack S) {//列表显示停车场信息 int i; if(S.top0){//判断停车场是否有车 printf(停车场\n); printf(位置到达 时间 车牌号\n); for(i=1;i=S.top;i++){ 安阳师范学院 ·数据结构课程实践· printf(%-8d,i); printf(%-2d:%-9d,S.data[i].reach.hour,S.data[i].reach.min); puts(S.data[i].num); }} else printf(停车场内没车!\n);} 停车场的管理流程如下: ①当车辆

咨询热线

400-690-123455