停车管理系统
- 格式:docx
- 大小:124.62 KB
- 文档页数:27
停车场管理系统培训教程一、引言在现代社会,停车场管理系统在各类场所,如商场、写字楼、住宅小区等得到了广泛应用。
为了让相关工作人员能够熟练掌握和操作停车场管理系统,提高停车场的管理效率和服务质量,特编写本培训教程。
二、停车场管理系统概述停车场管理系统是一种智能化的管理工具,它通过计算机技术、传感器技术、图像识别技术等多种手段,实现对停车场车辆的进出、停放、收费等进行有效的管理和监控。
停车场管理系统通常由以下几个部分组成:1、出入口控制设备:包括道闸、车牌识别摄像机、车辆检测器等,用于控制车辆的进出。
2、收费管理设备:如收费终端、读卡器、打印机等,用于收取停车费用。
3、车位引导系统:通过显示屏和指示灯,引导车辆快速找到空闲车位。
4、中央管理系统:对整个停车场的运行数据进行收集、处理和分析,实现远程监控和管理。
三、系统操作流程(一)车辆入场1、当车辆驶近停车场入口时,车牌识别摄像机自动识别车牌号码,并将信息上传至中央管理系统。
2、系统判断车辆是否为有效车辆(如已登记的包月车辆、临时允许进入的车辆等)。
3、若为有效车辆,道闸自动升起,车辆驶入停车场。
同时,系统记录车辆入场时间。
(二)车辆停放1、车位引导系统通过显示屏和指示灯,引导车辆前往空闲车位。
2、车辆停入车位后,车位探测器检测到车辆停放状态,并将信息反馈至中央管理系统。
(三)车辆出场1、车辆驶近停车场出口时,车牌识别摄像机再次识别车牌号码。
2、系统根据车辆的入场时间和收费标准,计算停车费用。
3、车主在收费终端缴纳停车费用后,道闸升起,车辆驶出停车场。
四、收费管理(一)收费模式1、按时收费:根据车辆停放的时间长短进行收费,通常以小时为单位。
2、按次收费:每次车辆进出停车场收取固定的费用。
3、包月收费:车主预先缴纳一个月的停车费用,在本月内可不限次数进出停车场。
(二)收费操作1、收费员在收费终端输入车牌号码,系统自动显示车辆的停放时间和应缴费用。
2、车主可选择现金、银行卡、微信、支付宝等支付方式进行缴费。
停车场管理系统使用办法停车场管理系统是一种利用先进技术实现停车管理、车位分配、收费等功能的智能化系统。
随着城市发展和汽车保有量的快速增长,停车场管理成为一个关键的问题。
传统的停车场管理方式已经无法满足需求,因此停车场管理系统的使用显得尤为重要。
以下是停车场管理系统的使用办法:一、系统安装与设置:1.安装服务器及数据库:根据系统要求,选择适当的服务器硬件,并安装数据库软件。
2.配置系统参数:包括时间、价格、车位数等基本设置。
3.配置网络环境:建立停车场内各个设备与服务器之间的网络连接。
二、系统操作与管理:1.注册与登录:系统管理员通过注册后获得账号权限,登录系统进行管理。
2.车辆入场管理:通过车辆进入停车场时的车牌识别等设备,自动记录车辆信息,并在系统中进行实时更新。
3.计费管理:系统能够根据停车时间和价格设置自动计算停车费用,并提供多种支付方式。
4.车位管理:系统能够自动记录车位的使用情况,并通过实时更新显示可用车位。
5.车辆出场管理:通过车辆出场时的设备,自动识别车牌,并与入场信息比对,实现自动计费和出场管理。
6.报表统计与分析:系统能够生成各种统计报表,如停车场使用率、收入情况等,帮助管理者分析运营情况和做出决策。
三、用户使用:1.停车:用户将车辆停入停车场时,系统会自动记录车牌等信息,用户无需手动操作。
2.缴费:用户在车辆出场前,通过系统提供的自助缴费设备或移动支付等方式,缴纳停车费用。
3.查询:用户可以通过系统的查询功能,查看自己车辆停放的时间、费用等信息。
4.报警功能:系统可以通过显示屏幕和声音等方式提醒用户车辆有违规停车或未缴费情况。
四、系统维护与升级:1.定期备份:对服务器中的数据进行定期备份,以防止数据丢失。
2.维护保养:保持设备的正常运转,定期检查设备的使用情况和维修维护工作。
3.系统升级:根据需要,对系统进行功能升级和安全性补丁更新,以提高系统的可靠性和安全性。
4.培训和技术支持:为操作人员提供培训,确保其熟练操作和日常管理。
停车场管理系统的基础知识一、什么是停车场管理系统停车场管理系统是通过计算机、网络设备、车道管理设备搭建的一套对停车场车辆出入、场内车流引导、收取停车费进行管理的网络系统。
它结合了计算机技术、自动控制技术、智能卡技术和传统的机械技术,旨在实现车辆出入和场内车辆的动态和静态的综合管理。
该系统可以完成的任务包括:采集记录车辆出入记录和场内位置,实现车辆的监控和行车指示,停车计费,以及通过管理软件完成收费策略实现,收费账务管理,车道设备控制等功能。
车道控制设备是停车场系统的关键设备,是车辆与系统之间数据交互的界面,也是实现友好的用户体验关键设备。
停车场管理系统还可以通过安装自动识别装置在停车区域的出入口处,通过非接触式卡或车牌识别来对出入此区域的车辆实施判断识别、准入/拒绝、引导、记录、收费、放行等智能管理。
二、停车场管理系统的组成停车场系统主要由以下几部分组成:出入口设备:停车场入口设备主要包括入口控制机(含IC卡读写模块、主控制器、显示屏、语音提示系统、车辆检测器、自动出卡机、机箱及附件)、自动道闸(含智能计数管理模块、车辆检测器)、摄像机(含支架、护罩、立柱等)、聚光灯等。
出口设备主要包括出口控制机、自动道闸、车辆检测器、收费显示屏等。
停车场管理软件:停车场管理软件是一套完整的收费管理系统,可完成对进出场记录的采集及对场内车辆的收费和综合管理。
它与卡号自动识别系统联动工作,实现自动计时、计费、核查等功能。
图像识别系统:图像识别系统支持车牌识别,通过摄像头抓拍车辆图像,并将图像与车辆信息建立对应关系,记录车辆进出信息,并自动识别进出车牌号码。
中央控制系统:中央控制系统对所有设备进行集中控制,如道闸、红外传感器、车牌识别仪等,并对收费交易进行审计跟踪,实现停车场的全自动化管理。
通讯系统:通讯系统将各部分连为一体,实现数据的传输和共享。
常见的通讯方式包括局域网、CAN总线、RS485等。
数据库系统:数据库系统用于存储停车场系统的各种数据,如车辆进出记录、停车时长、停车费用等,以便后续的数据分析和处理。
引言:智能停车管理系统是一种应用现代科技手段进行停车管理和车位分配的系统。
它通过使用传感器、智能设备和网络连接,实现了停车位的自动识别、车辆导航和支付结算等功能。
本文将介绍智能停车管理系统的概述和主要功能,以及其在提高停车效率、优化资源利用和改善城市交通等方面的应用。
概述:智能停车管理系统是基于现代科技手段的一种停车管理解决方案。
它结合了传感器技术、物联网、云计算等技术,实现了对车辆停放的智能化管理和优化。
该系统主要包括车位监测、导航引导、支付结算和数据分析等功能。
1.提高停车效率1.1车位监测:智能停车管理系统配备了车位监测传感器,可以实时监测每个停车位的使用情况。
通过这些传感器,系统可以准确判断空闲和占用状态,并将信息反馈到用户端。
这样,用户可以提前知道哪些停车位可用,从而节省了寻找停车位的时间和精力。
1.2导航引导:系统可以根据用户的目的地和停车位的位置,提供最佳的导航路线。
用户只需简单输入目的地,系统便会快速计算出最短、最快或最经济的停车路线,并将导航指引发送至用户的智能设备。
这不仅提高了停车效率,还减少了用户在停车场内的迷路风险。
1.3车位预订:智能停车管理系统还支持车位预订功能。
用户可提前通过方式应用程序或网页平台,选择目标停车场和时间段,并预订相应的车位。
这大大减少了用户寻找停车位的时间,提高了停车效率。
2.优化资源利用2.1动态定价:智能停车管理系统可以根据停车场的实时使用情况,对停车费用进行动态调整。
在繁忙时段,停车费用会相应提高,而在低峰时段则会降低,以鼓励用户分散停车。
通过灵活的定价策略,系统可以更好地利用停车资源,避免资源浪费和拥堵问题的发生。
2.2车位共享:智能停车管理系统还支持车位共享功能。
在停车场不够用或用户只需要短暂停车的情况下,用户可以将空闲车位发布到系统中,供其他需要停车的用户使用。
这种车位共享机制可以更充分地利用停车资源,提高资源的利用率。
3.改善城市交通3.1减少拥堵:智能停车管理系统通过提高停车效率和优化资源利用,可以减少车辆在寻找停车位时的往返行驶。
智慧路边停车管理系统方案在当今城市生活中,停车问题越来越突出。
随着车辆数量的增加,如何有效管理路边停车成了一个亟待解决的难题。
智慧路边停车管理系统应运而生,它的目标是通过技术手段,提高停车效率,减轻交通压力,同时提升市民的停车体验。
一、智慧停车的必要性1.1 交通拥堵问题日益严重很多城市在高峰时段都会出现严重的交通拥堵,尤其是商业区和居民区,车主为了寻找停车位,往往在街上游荡,造成不必要的交通停滞。
这不仅浪费了时间,还增加了空气污染,给市民的生活带来了困扰。
1.2 停车位资源的浪费据统计,很多城市的停车位利用率很低。
很多车主在寻找停车位时,无意中错过了已经空置的停车位,这种信息不对称使得资源无法得到合理利用。
智慧停车系统正是针对这一现象,利用技术手段提升停车位的使用效率。
二、智慧停车管理系统的构成2.1 停车信息获取智慧停车系统的核心在于实时获取停车位信息。
通过安装在路边的传感器,系统能够实时监测停车位的使用情况。
当某个车位被占用或空闲时,传感器会立即将信息上传到云端。
这些信息会被处理后,通过手机APP或电子显示屏提供给用户,帮助他们找到最近的空闲停车位。
2.2 停车支付系统停车费用一直是车主关注的重点。
智慧停车管理系统集成了便捷的支付方式,用户可以通过手机完成支付,免去现金找零的麻烦。
系统支持多种支付方式,包括支付宝、微信等主流支付工具,让车主可以更加轻松地完成停车交易。
2.3 数据分析与优化除了实时信息反馈,智慧停车系统还具备数据分析的能力。
系统可以根据历史数据分析停车需求和热点区域,帮助城市管理者进行科学规划。
例如,通过对特定时段内停车需求的分析,可以合理调整停车收费标准,促进停车资源的合理配置。
三、智慧停车的前景3.1 提升城市形象一个高效的停车管理系统能够显著提升城市的整体形象。
市民和游客在寻找停车位时,不再感到无从下手,反而能享受到便捷的服务,这种体验会直接影响他们对城市的评价,增强城市的吸引力。
智能停车场管理系统设计一、系统需求分析在设计智能停车场管理系统之前,我们首先需要明确系统的需求。
这包括以下几个方面:1、车辆进出管理能够准确记录车辆的进出时间、车牌号码等信息,实现快速通行,避免车辆拥堵。
2、车位管理实时监测停车场内的车位使用情况,为车主提供准确的车位信息,引导车辆快速找到空闲车位。
3、收费管理支持多种收费方式,如现金、电子支付等,能够自动计算停车费用,避免收费纠纷。
4、安全管理保障停车场内的车辆和人员安全,防止车辆被盗、损坏等情况发生。
5、数据分析与报表生成对停车场的运营数据进行分析,生成各种报表,为停车场的管理决策提供数据支持。
二、系统总体架构设计智能停车场管理系统通常由以下几个部分组成:1、入口设备包括车牌识别摄像机、道闸、车辆检测器等,用于车辆的识别和放行。
2、出口设备与入口设备类似,但还需要具备收费功能。
3、车位检测设备如地磁传感器、视频车位检测器等,用于检测车位的占用情况。
4、中央控制系统负责整个停车场系统的管理和控制,包括数据处理、设备控制、收费管理等。
5、通信网络用于各个设备之间的数据传输,可采用有线网络或无线网络。
6、管理软件提供友好的用户界面,方便管理人员进行操作和管理。
三、硬件设备选型1、车牌识别摄像机车牌识别摄像机是智能停车场管理系统的关键设备之一。
它需要具备高清晰度、高识别率、快速响应等特点。
目前市场上常见的车牌识别摄像机有枪式摄像机和球型摄像机,可根据停车场的实际情况进行选择。
2、道闸道闸的选择应考虑其稳定性、耐用性和快速开启关闭的性能。
常见的道闸有直杆道闸、曲杆道闸和栅栏道闸等。
3、车辆检测器车辆检测器用于检测车辆的到来和离开,可采用地感线圈式检测器或微波检测器。
4、车位检测设备地磁传感器安装简单,成本较低,但检测精度相对较低;视频车位检测器检测精度高,但成本较高。
可根据停车场的预算和需求进行选择。
四、软件功能设计1、车辆进出管理模块通过车牌识别摄像机自动识别车牌号码,与系统数据库中的车辆信息进行比对,判断车辆是否有权进出停车场。
停车场管理系统介绍停车场管理系统是指利用计算机技术和网络通信技术,管理停车场内的各种信息的软件系统。
它不仅可以方便车主停车和缴费,也可以提高停车场管理的效率和服务质量,减少停车管理的人力和物力成本。
本篇文章将对停车场管理系统进行详细介绍。
停车场管理系统的特点停车场管理系统有以下几个主要的特点:1.自动化管理:停车场管理系统可以自动完成车位的计数、收费、开放、关闭、过车记录、停车信息查询和统计报表等管理工作,减少了人工干预,提高了管理效率。
2.实时监控:停车场管理系统可以实时监控停车场的各个区域,了解车位的使用情况,及时发现和处理异常情况,提高了安全性和服务质量。
3.数据化管理:停车场管理系统可以将各种车辆信息、收费信息、统计分析信息等数据进行收集、分类、存储、分析和处理,形成数据报表,为停车场的决策提供参考。
4.多功能性:停车场管理系统不仅可以管理停车场内的信息,还可以扩展到包括在线支付、电子地图、电子围栏、车位预订、车辆追踪等功能,提高了用户体验和停车场管理的综合性。
停车场管理系统的模块功能停车场管理系统一般由以下几个模块组成:1.系统管理模块:包括系统设置、用户管理、权限管理、数据备份和恢复等功能。
2.数据管理模块:包括用户信息、车辆信息、收费信息、车位信息、停车位状态等数据的管理和统计分析功能。
3.用户管理模块:包括用户注册、登录、密码找回、账户充值、在线支付等用户相关的管理功能。
4.车辆出入库管理模块:包括车辆进出场的号码识别、卡片读取、门禁控制、车位状态检测等功能。
5.收费管理模块:包括车辆付费信息录入、结账、收费报表管理等功能。
6.统计分析模块:包括停车场内各个区域的使用情况、收费情况、停车时间统计、车位利用率分析等功能。
停车场管理系统的应用场景停车场管理系统是广泛应用于城市停车场、机场停车场、商场停车场、大学停车场等场所,以下是具体应用场景:1.城市停车场:城市停车场是城市交通运输基础设施的重要组成部分,停车场管理系统可帮助城市停车场实现现代化管理,减少城市交通堵塞问题。
停车场管理系统操作规程范文一、系统登陆与退出1. 用户需先输入正确的用户名和密码,点击登陆按钮进入系统。
2. 系统验证用户身份后,进入系统主界面,用户可以进行相关操作。
3. 用户在使用完毕系统后,点击退出按钮,系统将退出当前用户并返回登录界面。
二、车辆进入登记1. 车辆进入停车场后,用户点击系统主界面的“车辆进入登记”按钮。
2. 用户需要依次输入车牌号、车辆类型、进入时间等相关信息。
3. 系统会自动为该车辆分配一个可用的停车位,用户无需手动指定。
4. 用户点击确认按钮后,系统将保存车辆信息,更新停车位状态。
三、车辆出场结算1. 车辆准备离开停车场前,用户点击系统主界面的“车辆出场结算”按钮。
2. 用户需要输入车牌号和出场时间进行结算。
3. 系统会根据进入时间和出场时间计算停车时长,并自动获得停车费用。
4. 用户需确认费用无误后,选择支付方式完成结算。
四、停车位管理1. 用户点击系统主界面的“停车位管理”按钮进入停车位管理界面。
2. 用户可以查看停车位列表,了解每个停车位的状态:空闲、占用、维修等。
3. 用户可以手动调整停车位的状态,但需谨慎操作以免造成混乱。
4. 如有停车位需要维修或更换,用户需向管理员提出申请,并提供相应原因及建议。
五、数据统计与报表1. 用户点击系统主界面的“数据统计与报表”按钮进入相关功能界面。
2. 用户可查看停车场当前的车流量、收入情况等综合统计数据。
3. 用户可生成相应的报表,包括日报表、月报表、年报表等,用于管理决策参考。
4. 用户需注意保护数据安全,不得将数据泄漏或用于其他非法用途。
六、系统维护与升级1. 用户点击系统主界面的“系统维护与升级”按钮进入相关功能界面。
2. 用户可查看系统的运行状态和版本信息,并了解相关维护和升级计划。
3. 用户可提交系统使用中遇到的问题或提出改进建议,管理员可能会进行相应的优化和修复。
4. 用户需保持系统的稳定运行,不得进行非授权的系统修改或破坏。
计算机科学与技术专业14级《数据结构》课程设计报告设计题目:停车管理系统学号:26645451213656姓名:吴立华指导教师:李星豪2015年9 月15日目录目录 (1)1.引言 (2)2.课程设计的目的和任务 (3)2.1课程设计的目的 (3)2.2课程设计的任务 (3)3. 设计方案和实施 (5)3.1总体设计 (5)3.2基本操作 (5)3.3详细设计 (6)4.运行调试结果 (8)5.总结与致谢 (12)6.附录 (13)源程序代码: (13)7.参考文献 (26)1.引言数据结构是一门专业基础课,它对学习者的要求很明确:学会分析,研究计算机加工的数据结构的特性,以便为应用设计所需的数据选择适当的逻辑结构、存储结构及相应的算法,并初步掌握算法的时间分析和空间分析的技术。
其次,该课程的学习过程也是复杂程序设计的训练过程,要求学习者编写的程序结构或设计的程序结构体清楚、正确、易读,符合软件工程的规范。
在这个科技发达的时代,汽车对于我们来说越来越普遍,人们对于停车场管理也更加信息化。
本系统主要是运用c语言和数据结构的相关知识,用栈来模拟停车场,队列来模拟便道实现汽车进入和离开的管理,用简单的数据计算对汽车进行收费标准。
使车主更清楚了解停车场信息,车主可以根据系统的提示进行每一项操作。
本次课程设计就是对停车场基本的信息及停车费用的管理做一个简单的设计,主要实现对停车的信息录入,修改,删除,显示,添加,查找等几个方面的功能。
本设计采用c语言作为数据结构和算法的描述语言。
本设计采用目前最通用的程序设计语言之一---- C语言作为数据结构和算法的描述语言。
题目:停车场管理系统设计2.课程设计的目的和任务2.1课程设计的目的(1)要求学生能够熟练掌握c++语言的基本知识和技能(2)基本掌握面向对象程序设计的基本思路和方法(3)能够利用所学的基本知识和技能,解决简单的面向对象程序设计问题(4)开发一个中小型系统,掌握系统研发全过程(5)培养分析问题,解决实际问题的能力2.2课程设计的任务设停车场是一个可停放n辆车的狭长通道,且只有一个大门可供汽车进出。
在停车场内,汽车按到达的先后次序,由北向南依次排列(假设大门在最南端)。
若停车场内已停满n辆车,则后来的汽车需在门外的便道上等候,当有车开走时,便道上的第一辆车即可开入。
当停车场内某辆车要离开时,在它之后进入的车辆必须先退出停车场为它让路,待该辆车开出大门后,其他车辆再按原次序返回车场。
每辆车离开停车场时,应按其停留时间的长短交费(在便道上停留的时间不收费)。
设计要求:1.模拟上述管理过程。
要求以顺序栈模拟停车场,以链队列模拟便道。
2.从终端读入汽车到达或离去的数据,每组数据包括三项:(1)是“到达”还是“离开”;(2)汽车牌照号码;(3)“到达”或“离开”的时刻。
3.与每组输入信息相应的输出信息为:如果是到达的车辆,则输出其在停车场中或便道上的位置;如果是离去的车辆,则输出其在停车场中停留的时间和应交的费用。
程序运行环境:Microsoft Visual C++ 6.0&& DOS3. 设计方案和实施3.1总体设计停车场管理系统分为三个模块,即:车辆到达.离开.列表显示图1:停车管理系统总模块3.2基本操作1.数据结构说明(1)用到两个堆栈:一个为车场栈;另一个为临时栈temp typedefstruct NODE{CarNode *stack[MAX+1];int top;}SeqStackCar; /*模拟车场*/1(2)一个队列结构,存储便道车辆信息:typedefstruct Node{QueueNode *head;QueueNode *rear;}LinkQueueCar; /*模拟便道*/3.3详细设计1、“到达”模块:到达时有两种情况,即车场是否满,未满则直接进入停车场;满时,到便道等待。
图2:到达模块2.“离开”模块:离开时,当车库为空时,提示没有车,结束;否则车辆离开。
图3:离开模块3. “显示”模块:显示模块有两个显示选项,即:车场与便道。
图4:显示模块4.运行调试结果一)测试用例(说明:测试用例要合理并且足够,既要有正确用例,也要有错误用例,同时检验程序的正确性和强壮性)1.第一组测试用例(1)测试输入:停车场的车辆离开,如下表:表1:测试输入图5:测试(2)测试目的:测试离开方法时间格式控制以及费用计算是否正确。
(3)正确输出:第一次离开的是 CD221,应交费2.95元。
第二次时,当在输入65时,应该提示输入错误,重输。
(4)实际输出:(5)错误原因:第一个错误是在计算时,一个数字错了;第二个是没有对时间格式控制。
(6)当前状态:已改正2.第二组测试用例(1)测试输入:连续6辆车到达,如下表:表2:测试输入(2)测试目的:测试到达方法与列表显示方法能否正确完成。
(3)正确输出:先到达的五辆车先进入停车场,最后到达的一辆在便道等候。
(4)实际输出:图6:输出结果表3:测试输入(5)错误原因:没有作出时间先后的判断,而是先输入先进入。
(6)当前状态:待修改3.第三组测试用例(1)测试输入:接上一步输入离开信息,下表:(2)测试目的:测试离开方法功能是否成功以及便道进入车场是否正确。
(3)正确输出:输出3号车位的车辆离开信息清单,便道1号车进入停车场。
(4)实际输出:图7:实际输出(5)错误原因:没有错误。
(6)当前状态:通过5.总结与致谢通过这两周的程序设计,加深了我对《数据结构》这门课程所学内容的进一步的理解和掌握,同时,通过对停车场管理系统的开发,使得我将计算机所学知识与实际问题很好的相连在一起。
在这次课程设计中,不仅培养了我开发中小程序的能力,而且也培养了我的团队合作能力。
在这次对停车管理系统的开发过程中,我们小组成员相互合作,互相帮助,其中有程序功能成功实现时的欣喜,也有遇到问题,解决问题时的执着以及迷茫,在这次课程设计中使得我很好的了解了在开发程序中合作的重要性。
让我们初步有了编写小程序的能力,我们对很多的函数有了新的认识,也学会了运用多种函数,也明白了编写软件的基本过程和基本方法。
编写软件的过程中我们又学到了曾经自己不知道的函数或是自己不会的函数的用法,在软件一次次调试失败下,曾今想过要放弃,但是我们小组互相鼓励,最后还是坚持了下来,自己在编程时经常因为一些类似于“少了分号”这样的简单错误而运行不出来,不够仔细认真,给自己带来麻烦,以后无论是程序设计还是今后的生活都要仔细认真,不能粗心大意。
在此,感谢在本次课程设计中帮助过我的所有老师!感谢您们!6.附录源程序代码:#include<iostream.h>#include<stdio.h>#include<stdlib.h>#include<string.h>#define MAX 5 /*车库容量,可以根据实际情况改变*/ #define price 0.01 /*一辆车每分钟费用,可变*/typedefstruct time{int hour;int min;}Time; /*时间结点*/typedefstruct node{char num[10];Time reach;Time leave;}CarNode; /*车辆信息结点*/typedefstruct NODE{CarNode *stack[MAX+1];int top;}SeqStackCar; /*模拟停车场*/typedefstruct car{CarNode *data;struct car *next;}QueueNode;typedefstruct Node{QueueNode *head;QueueNode *rear;}LinkQueueCar; /*模拟便道*//*方法声明*/void InitStack(SeqStackCar *); /*初始化栈*/intInitQueue(LinkQueueCar *); /*初始化便道*/int Arrival(SeqStackCar *,LinkQueueCar *); /*车辆到达*/void Leave(SeqStackCar *,SeqStackCar *,LinkQueueCar *); /*车辆离开*/void List(SeqStackCar,LinkQueueCar); /*显示信息*/void PRINT(CarNode *p,int room); /*输出离开车辆的信息清单*/void main(){SeqStackCarEnter,Temp;LinkQueueCar Wait;intch;InitStack(&Enter); /*初始化车站*/InitStack(&Temp); /*初始化让路的临时栈*/InitQueue(&Wait); /*初始化通道*/while(1){printf(" ※※※※@欢迎使用本停车管理系统@ ※※※※\n");printf("********************************************************\ n");printf(" ※--※1. 车辆到达※-- ※\n");printf(" ※--※2. 车辆离开※-- ※\n");printf(" ※--※3. 列表显示※-- ※\n");printf(" ※--※4. 退出系统※-- ※\n");printf("********************************************************\ n");printf("!说明:请注意正确输入时间,在输入“时”后,按“ENTER”或者“空格”再输入“分”。
不要为非数字!\n");printf("请选择所需要的服务! (1-4).\n");while(1){scanf("%d",&ch);if(ch>=1&&ch<=4)break;else printf("输入错误!请选择:(1-4).");}switch(ch){case 1:Arrival(&Enter,&Wait);break; /*车辆到达*/case 2:Leave(&Enter,&Temp,&Wait);break; /*车辆离开*/ case 3:List(Enter,Wait);break; /*列表显示信息*/case 4:exit(0); /*退出主程序*/default: break;}}}void InitStack(SeqStackCar *s) /*初始化栈*/{int i;s->top=0;for(i=0;i<=MAX;i++)s->stack[s->top]=NULL;}intInitQueue(LinkQueueCar *Q) /*初始化便道*/{Q->head=(QueueNode *)malloc(sizeof(QueueNode));if(Q->head!=NULL){Q->head->next=NULL;Q->rear=Q->head;return(1);}else return(-1);}int Arrival(SeqStackCar *Enter,LinkQueueCar *W) /*车辆到达*/ {CarNode *p;QueueNode *t;p=(CarNode *)malloc(sizeof(CarNode));flushall();printf("请输入车牌号(例:A1234):\n");gets(p->num);if(Enter->top<MAX) /*车场未满,车进车场*/{Enter->top++;printf("车辆在车场第%d位置!\n",Enter->top);printf("请输入到达时间:(小时:分钟)\n");scanf("%d",&p->reach.hour);while(p->reach.hour<0||p->reach.hour>23) //控制时间格式正确 {printf("输入错误!\n");printf("请重输入到达时间的时(0-23)!\n");scanf("%d",&p->reach.hour);}scanf("%d",&p->reach.min);while(p->reach.min<0||p->reach.min>59) //控制分钟输入正确 {printf("输入错误!\n");printf("请重输入到达时间的分(0-59)!\n");scanf("%d",&p->reach.min);}Enter->stack[Enter->top]=p;return(1);}else /*车场已满,车进便道*/{printf("车场已满,请在便道等待!\n");t=(QueueNode *)malloc(sizeof(QueueNode));t->data=p;t->next=NULL;W->rear->next=t;W->rear=t;return(1);}}void Leave(SeqStackCar *Enter,SeqStackCar *Temp,LinkQueueCar *W) /*车辆离开*/{int room;CarNode *p;QueueNode *q; /*判断车场内是否有车*/if(Enter->top>0) /*有车*/{while(1) /*输入离开车辆的信息*/{printf("请输入车在车场的位置1--%d",Enter->top); scanf("%d",&room);if(room>=1&&room<=Enter->top) break;}while(Enter->top>room) /*车辆离开*/{Temp->top++; /*临时通道栈顶指针*/Temp->stack[Temp->top]=Enter->stack[Enter->top];Enter->stack[Enter->top]=NULL;Enter->top--;}p=Enter->stack[Enter->top];Enter->stack[Enter->top]=NULL;Enter->top--;while(Temp->top>=1) /*判断临时通道上是否有车*/{Enter->top++;Enter->stack[Enter->top]=Temp->stack[Temp->top];Temp->stack[Temp->top]=NULL;Temp->top--;}PRINT(p,room);if((W->head!=W->rear)&&Enter->top<MAX) /*车站是未满*/{ /*便道的车辆进入车场*/q=W->head->next;p=q->data; /*p指向链队头*/Enter->top++;printf("便道的%d号车进入车场第%d位置!\n",p->num,Enter->top); printf("请输入现在的时间如(小时;分钟):\n");scanf("%d",&p->reach.hour);if(p->reach.hour<0||p->reach.hour>23){printf("输入错误!\n");printf("请重输入到达时间的时(0-23)!\n");scanf("%d",&p->reach.hour);}scanf("%d",&p->reach.min);if(p->reach.min<0||p->reach.min>59){printf("输入错误!\n");printf("请重输入到达时间的分(0-59)!\n");scanf("%d",&p->reach.min);}Enter->stack[Enter->top]=p;W->head->next=q->next;if(q==W->rear) W->rear=W->head;free(q); /*释放q地址*/}else printf("便道里没有车!\n"); /*便道没车*/}else printf("车场里没有车!\n"); /*车场没车*/}void PRINT(CarNode *p,int room) /*输出离开车辆的信息清单*/ {int A1,A2,B1,B2;printf("请输入离开的时间:(小时:分钟\n");scanf("%d",&p->leave.hour);while(p->leave.hour<0||p->leave.hour>23){printf("输入错误!\n");printf("请重输入离开的时间的时(0-23)\n");scanf("%d",&p->leave.hour);B1=p->leave.hour;}scanf("%d",&p->leave.min);if(p->leave.min<0||p->leave.min>59)printf("输入错误!\n");printf("请重输入到达时间的分(0-59)!\n");scanf("%d",&p->leave.min);}printf("离开车辆的车牌号为:\n");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("应交费用为: %lf元!\n",(((B1-A1)*60+(B2-A2))+1440)%1440*price);free(p);}void List1(SeqStackCar *S) /*列表显示车场信息*/{printf("您选择的是车场停车情况!\n");int i;if(S->top>0) /*判断车站内是否有车*/printf(" 位置到达时间车牌号\n");for(i=1;i<=S->top;i++){printf(" %d %d:%d %s\n",i ,S->stack[i]->reach.hour,S->stack[i]->reach.min,S->stack[i]->num);}}else printf("车场里没有车!\n");}void List2(LinkQueueCar *W) /*列表显示便道信息*/{printf("您选择的是便道停车情况!\n");int j=1;QueueNode *p;p=W->head->next;if(W->head!=W->rear) /*判断通道上是否有车*/{printf("等待车辆的车牌号码为:\n");while(p!=NULL){//printf<<j;//puts(p->data->num);printf("%d %s\n",j,p->data->num);p=p->next;j++;} //开始时显示不正确,没有按照正常输出}else printf("便道里没有车!\n"); }void List(SeqStackCarS,LinkQueueCar W) /*列表界面*/ {intflag,tag;flag=1;while(flag) /*列表显示循环控制*/{printf("请选择您要显示信息! (1-3):\n");printf("※--1.车场--※\n");printf("※--2.便道--※\n");printf("※--3.返回--※\n");while(1){scanf("%d",&tag);if(tag>=1||tag<=3) break;else printf("输入错误!请选择(1-3):\n");}switch(tag){case 1:List1(&S);break; /*列表显示车场信息*/case 2:List2(&W);break; /*列表显示便道信息*/case 3:flag=0;break;default: break;}}}7.参考文献[1]. 耿国华 .数据结构—用C语言描述 .高等教育出版社,2011.[2]. 颜晖何钦铭.C语言程序设计(第二版) .高等教育出版社,2008.[3]. 严蔚敏 .数据结构(C语言版)[M].清华大学出版社,2002.。