停车场管理系统实验报告汇总

合集下载

智慧停车场实训报告总结

智慧停车场实训报告总结

一、引言随着我国城市化进程的加快,汽车保有量逐年攀升,停车难问题日益突出。

为解决这一问题,智慧停车技术应运而生。

本实训报告以智慧停车场为主题,通过对智慧停车场的建设、运营和管理等方面进行实训,总结实训过程中的经验和体会。

二、实训内容1. 智慧停车场建设(1)硬件设备:实训过程中,我们学习了智慧停车场所需硬件设备,如车牌识别系统、地磁感应器、视频监控系统、感应道闸等。

这些设备是实现智慧停车场功能的基础。

(2)软件系统:实训中,我们了解了智慧停车场软件系统的功能,包括车辆管理、车位管理、收费管理、数据分析等。

通过软件系统,实现对停车场的智能化管理。

2. 智慧停车场运营(1)车位管理:实训中,我们学习了如何通过软件系统实时掌握停车场车位使用情况,合理分配车位资源。

(2)收费管理:实训过程中,我们了解了智慧停车场收费方式,包括无感支付、自助缴费、人工收费等。

通过多种收费方式,提高停车场运营效率。

(3)数据分析:实训中,我们学习了如何利用数据分析功能,对停车场运营情况进行全面评估,为优化运营策略提供依据。

3. 智慧停车场管理(1)安全监控:实训过程中,我们了解了智慧停车场安全监控系统,包括视频监控、红外报警、消防系统等,确保停车场安全。

(2)应急处理:实训中,我们学习了如何应对突发事件,如车辆故障、火灾等,确保停车场正常运营。

三、实训体会1. 智慧停车场技术优势实训过程中,我们深刻体会到智慧停车场在以下方面的优势:(1)提高停车场运营效率:通过智能化管理,实现车位资源合理分配,减少车主寻找车位时间,提高停车场运营效率。

(2)降低运营成本:智慧停车场采用无人化运营模式,减少人工成本,降低运营成本。

(3)提升用户体验:智慧停车场提供便捷的缴费方式、实时车位信息查询等服务,提升车主停车体验。

2. 智慧停车场发展趋势(1)技术创新:随着5G、物联网、人工智能等技术的不断发展,智慧停车场将实现更加智能化、便捷化的功能。

停车场模拟管理系统实验报告

停车场模拟管理系统实验报告

停车场模拟管理系统实验报告实验报告:停车场模拟管理系统一、引言停车场是现代城市交通管理中不可或缺的一部分,如何高效地管理停车场成为城市交通规划和管理的重要课题之一、为了更好地理解停车场系统的运作原理,并学习相关管理策略,我们设计了停车场模拟管理系统实验。

二、实验目的1.了解停车场系统的工作流程与每个角色的职责;2.掌握停车场管理系统的设计与实现方法;3.学习利用计算机模拟系统来辅助管理停车场。

三、实验方法与步骤1.系统需求分析:明确系统主要功能,确定系统用户和使用场景,梳理系统流程;2.系统设计:根据需求分析,设计系统的功能模块、数据库表结构、界面设计等;3.系统实现:使用编程语言开发系统,编写相应的代码实现各个功能模块;4.系统测试与优化:测试系统的各项功能是否正常工作,进行反复测试并修复潜在的问题;5.系统上线与使用:将系统部署到服务器上,供用户正式使用。

四、实验结果与分析我们设计的停车场模拟管理系统主要包括以下功能:1.车辆进入停车场:当车辆驶入停车场时,系统记录车辆信息,并分配一个唯一的停车位;2.车辆离开停车场:车辆离开停车场时,系统根据停车时间计算停车费用,并更新车辆的状态信息;3.车位管理:系统可以查看当前停车场车位的使用情况,根据需要修改停车位的状态;4.停车记录查询:系统可以查询指定车辆的停车记录,包括进入停车场的时间、离开停车场的时间以及停车费用;5.收费管理:系统可以提供不同计费规则的选择,并根据规则计算车辆的停车费用;6.用户管理:系统可以管理停车场的员工和管理员账号,设置不同的权限和角色。

通过对实际停车场运营流程的模拟,我们可以观察到以下结果:1.系统能够准确记录每辆车进入和离开停车场的时间,方便车主查询;2.停车场车位使用情况能够实时更新,帮助管理员有效管理停车资源;3.不同计费规则可以灵活设置,可以根据不同需求调整停车费用;4.员工和管理员账号权限分离,保证了系统的安全性和管理的有序性。

停车场管理实验报告

停车场管理实验报告

停车场管理实验报告一、实验目的:通过对停车场管理的实际操作,掌握停车场管理的基本流程、技巧和方法,提高停车场管理的效率和质量。

二、实验原理:停车场管理是指对停放在停车场内的车辆进行有序管理和监督的过程。

其主要内容包括车辆的进出登记,停车位的分配,车辆停放位置的调整等。

通过合理的管理和监督,可以提高停车场的利用率,缩短停车时间,避免车辆拥堵,提高停车场的收益。

三、实验步骤:1.登记车辆信息:对每辆进入停车场的车辆进行登记,包括车辆的品牌、颜色、车牌号等信息。

2.分配停车位:根据停车场的空余停车位数量和车辆的类型,为车辆分配合适的停车位。

3.调整停车位置:当车辆数量较多时,根据实际情况进行停车位置的调整,以便保证每辆车都能停放到合适的位置。

4.缴费离场:当车主停车结束后,需要缴纳相应的停车费用,收取费用后放行车辆。

四、实验结果:通过实验,我们发现采用合理的停车场管理方法可以提高停车场的利用率和效益。

在实验过程中,我们按照停车场管理的基本流程进行操作,及时登记车辆信息,合理分配停车位,并根据实际情况进行停车位置的调整。

通过合理管理和调整,车辆停放得更加有序,效率和质量得到了显著提高。

五、实验总结:本实验通过对停车场管理的实际操作,使我们更加深入地了解和掌握了停车场管理的基本流程、技巧和方法。

合理的停车场管理可以提高停车场的利用率和效益,减少车辆拥堵,为车主提供更好的服务。

在今后的实践中,我们需要进一步学习和掌握停车场管理的相关知识和技巧,不断提高停车场管理的水平和质量。

六、实验感想:通过这次停车场管理实验,我对停车场管理的重要性有了更深刻的认识。

合理的停车场管理对于提高停车场利用率和效益具有重要意义。

在实际操作过程中,需要注重细节,如及时登记车辆信息,合理分配停车位以及根据实际情况调整停车位置。

我希望通过今后的学习和实践,不断提升自己的停车场管理能力,为社会交通管理贡献力量。

停车场管理实验报告3篇

停车场管理实验报告3篇

停车场管理实验报告第一篇:实验简介本次实验是关于停车场管理的,旨在探讨停车场的管理方法以及利用计算机技术对停车场进行智能管理的可行性。

实验过程中,我们首先对停车场的基本情况进行了调查和分析,并确定了停车场的布局和车位数量。

然后,我们设计了一个基于计算机视觉技术的车牌识别系统,能够自动识别汽车牌照,并将其和相应的车位绑定。

最后,我们开发了一个基于云端的管理系统,能够实时监控停车场的使用情况,统计收益和预测流量,优化停车场管理。

通过本次实验,我们希望能够提高停车场的利用率,降低管理成本,提高用户体验。

第二篇:实验步骤1. 调查和分析首先,我们对停车场的周边环境、车流量、停车需求等进行了调查和分析,并根据调查结果确定了停车场的布局和车位数量。

2. 设计车牌识别系统我们采取了基于计算机视觉技术的车牌识别系统,能够自动识别汽车牌照,并将其和相应的车位绑定。

该系统主要分为以下三个部分:(1)摄像头:采用高清摄像头,能够自动对焦和自动曝光,提高识别准确率。

(2)软件系统:采用OpenCV图像处理库进行开发,能够自动识别车牌,并提取车牌号码信息。

(3)数据存储:采用MySQL数据库进行存储,能够存储车牌号码和相应的车位信息,方便管理。

3. 开发管理系统我们开发了一个基于云端的管理系统,能够实时监控停车场的使用情况,统计收益和预测流量,优化停车场管理。

该系统主要包括以下功能:(1)实时监控:通过车牌识别系统和摄像头,能够实时监控停车场内的车辆,并提供车位信息和空余位置。

(2)预约停车:用户可以通过手机或网站进行预约停车,并预定相应的车位。

(3)收费管理:管理人员可以通过系统对停车场的收费进行监控和管理,能够统计收益和优化停车场营运。

4. 测试和优化最后,我们进行了系统的测试和优化,并对系统的性能进行了评估和改进,确保停车场管理系统的稳定和可靠性。

第三篇:实验结果与展望经过长时间的实验和努力,我们开发出了一套基于计算机视觉技术的停车场管理系统,能够实现车辆自动识别和智能管理。

最新停车场管理实验报告

最新停车场管理实验报告

最新停车场管理实验报告实验目的:本次实验旨在评估和分析最新的停车场管理系统在实际运行中的效率、准确性以及用户体验。

通过对系统的各项功能进行测试,我们期望能够得出系统的性能指标,并提出可能的改进措施。

实验方法:1. 硬件与软件配置:首先,记录实验所用停车场管理系统的硬件和软件配置,包括但不限于摄像头分辨率、传感器类型、处理单元性能以及软件版本等。

2. 功能性测试:对停车场管理系统的各项功能进行测试,包括车辆识别、空位检测、费用计算、支付方式等。

3. 效率评估:通过模拟不同车流量的情况,记录车辆进出停车场的时间,分析系统处理速度和响应时间。

4. 用户体验调查:通过问卷和现场访谈的方式,收集使用者对停车场管理系统的满意度和改进建议。

实验结果:1. 功能性:实验数据显示,车辆识别准确率达到98%,空位检测准确率为95%。

费用计算无误差,支持多种支付方式,包括现金、银行卡和移动支付。

2. 效率:在高峰时段,车辆平均等待时间为30秒,非高峰时段为10秒。

系统响应时间稳定在2秒以内。

3. 用户体验:大部分用户对新的停车场管理系统表示满意,特别是对快速通行和多种支付方式给予高度评价。

但也有少数用户反映,在系统出现故障时,应急措施不够完善。

结论与建议:根据实验结果,新的停车场管理系统在功能性和效率方面表现良好,用户反馈总体正面。

建议在未来的版本中,加强对系统故障的应急处理方案,并对用户提出的改进建议进行深入分析,以进一步提升用户体验。

同时,建议定期进行系统维护和升级,确保系统长期稳定运行。

停车场系统数据分析报告(3篇)

停车场系统数据分析报告(3篇)

第1篇一、摘要随着城市化进程的加快,车辆保有量的持续增长,停车难问题日益凸显。

为了解决这一问题,我国各大城市纷纷投入大量资金建设停车场系统。

本报告通过对某城市某大型停车场系统的运行数据进行深入分析,旨在了解停车场系统的运行状况、用户行为特点以及存在的问题,为优化停车场管理提供数据支持。

二、数据来源及处理1. 数据来源:本报告所使用的数据来源于某城市某大型停车场系统的实时监控数据和用户调查问卷。

2. 数据处理:首先,对原始数据进行清洗,去除异常值和重复数据;其次,对数据进行分类整理,包括停车时间、停车次数、车辆类型、收费标准等;最后,运用统计分析方法对数据进行分析。

三、数据分析1. 停车场使用率分析(1)日使用率分析通过对停车场每日的停车次数和车位总数进行对比,得出停车场日使用率。

结果显示,该停车场日使用率在80%以上,说明停车场供不应求。

(2)月使用率分析对停车场每月的停车次数和车位总数进行对比,得出停车场月使用率。

结果显示,该停车场月使用率在85%以上,说明停车场在节假日和周末使用率较高。

2. 用户行为分析(1)停车时间分布通过对停车时间进行统计分析,得出以下结论:- 短时停车(0-2小时)占停车次数的50%;- 中时停车(2-4小时)占停车次数的30%;- 长时停车(4小时以上)占停车次数的20%。

(2)车辆类型分布通过对车辆类型进行统计分析,得出以下结论:- 摩托车占停车次数的20%;- 小型汽车占停车次数的60%;- 中型汽车占停车次数的10%;- 大型汽车占停车次数的10%。

(3)收费标准分析通过对收费标准进行统计分析,得出以下结论:- 停车费用在10元以下的占停车次数的30%;- 停车费用在10-20元的占停车次数的40%;- 停车费用在20元以上的占停车次数的30%。

3. 停车场运行效率分析(1)车位周转率通过计算车位周转率,得出以下结论:- 该停车场车位周转率为5次/天,说明停车场运行效率较高。

停车系统实验报告

停车系统实验报告

一、实验背景随着城市化进程的加快,汽车数量不断增加,停车难问题日益突出。

为了提高停车效率,减少交通拥堵,实现停车场管理的智能化,我们设计并实现了一个基于数据结构的停车场管理系统。

本系统采用栈和队列数据结构模拟停车场的运行过程,实现了车辆进出、停车位置分配、费用计算等功能。

二、实验目的1. 理解并掌握栈和队列数据结构在停车场管理中的应用。

2. 设计并实现一个停车场管理系统,实现车辆进出、停车位置分配、费用计算等功能。

3. 体会数据结构在实际问题中的应用价值。

三、实验内容1. 系统设计(1)数据结构设计停车场:采用顺序栈实现,栈顶表示停车场最北端,栈底表示停车场最南端。

便道:采用链队列实现,队首表示便道最北端,队尾表示便道最南端。

汽车信息:定义一个结构体,包含车牌号、到达时间、离开时间、停车费用等属性。

(2)功能模块设计进出停车场:根据车辆到达或离开的时间,判断车辆是进入停车场还是离开停车场。

停车位置分配:根据停车场和便道的实际情况,为车辆分配停车位置。

费用计算:根据车辆在停车场停留的时间,计算停车费用。

输出结果:输出每辆车到达后的停车位置、离开时的费用和停留时间。

2. 系统实现(1)数据结构实现顺序栈:使用数组实现,提供入栈、出栈、判空等操作。

链队列:使用链表实现,提供入队、出队、判空等操作。

(2)功能模块实现进出停车场:根据车辆到达或离开的时间,判断车辆是进入停车场还是离开停车场。

停车位置分配:根据停车场和便道的实际情况,为车辆分配停车位置。

费用计算:根据车辆在停车场停留的时间,计算停车费用。

输出结果:输出每辆车到达后的停车位置、离开时的费用和停留时间。

3. 系统测试(1)功能测试测试车辆进出停车场功能。

测试停车位置分配功能。

测试费用计算功能。

(2)性能测试测试系统在高并发情况下的性能。

四、实验结果与分析1. 功能测试结果经过测试,系统各项功能均能正常运行,满足设计要求。

2. 性能测试结果在高并发情况下,系统运行稳定,性能良好。

停车场管理实验报告2篇

停车场管理实验报告2篇

停车场管理实验报告2篇[停车场管理实验报告1]一、实验目的本次实验的目的是设计一个适用于停车场管理的有效系统,该系统将实现停车场的自动拍照、车辆识别、计费以及车位管理等功能。

该系统可以帮助停车场管理员实现对停车场的管理和运营。

二、实验原理与方法1. 车辆识别技术:使用深度学习技术对车辆图片进行分类识别,从而实现对车辆的识别,具体方法为:1)采集车辆图片,对车辆图片进行图像处理,去除噪声和背景干扰;2)使用卷积神经网络训练模型,通过建立车辆图片库对车辆进行分类;3)对每张停车车辆的图片进行识别,判断车辆类型和车牌号码,实现进出车辆的自动记录。

2. 计费方式:对于停车的车辆,根据时间和车型计费,计费方式为:1)分段计费,每隔30分钟计费一次;2)按车型分类计费,小车和大车计费规则不同,大车计费更高;3)计费方案可以根据车位所在区域和周边车位情况进行调整。

3. 车位管理:车位管理模块包括停车位预约和空车位查询功能,实现停车场的车位管理,具体方法为:1)对车位进行编号,分区域管理;2)通过车位预约功能实现用户对停车的预约;3)通过查询车位状态实现空车位的查询。

三、实验过程本次实验中,我们基于深度学习的车辆识别技术和计费方式进行了系统设计和开发。

1. 车辆识别模块车辆识别模块使用优化的卷积神经网络模型识别车辆图片,准确率较高。

在实际应用中,我们将该模块集成到摄像头设备中,实现对车辆的自动接收和输入。

2. 计费模块计费方式的实现主要涉及时间和车型两个方面。

我们采用了分段计费和按车型分类计费两种策略,并根据室内和室外车位的不同特点进行了适当调整。

具体计费规则如下:1)小车:每隔30分钟收费2元,首小时收费3元,之后每小时加收1元;2)大车:每隔30分钟收费4元,首小时收费6元,之后每小时加收2元。

3. 车位管理模块车位管理模块实现了车位编号、分组和预定等功能,并提供了实时车位状态查询。

同时,我们还可以引入图像检测技术对车位进行状态检测,实时更新车位信息。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

华北水利水电学院数据结构实验报告2011~2012学年第二学期2011级计算机专业班级:**** 学号:***** 姓名:**** -实验二栈和队列及其应用一、实验目的:1.掌握栈的特点(先进后出FILO)及基本操作,如入栈、出栈等,栈的顺序存储结构和链式存储结构,以便在实际问题背景下灵活应用。

2.掌握队列的特点(先进先出FIFO)及基本操作,如入队、出队等,队列顺序存储结构、链式存储结构和循环队列的实现,以便在实际问题背景下灵活运用。

二、实验内容:1.链栈的建立、入栈、出栈操作。

2.环形队列的建立、入队、出队操作。

3.停车场管理。

设停车场内只有一个可停放n辆汽车的狭长通道,且只有一个大门可供汽车进出。

汽车在停车场内按车辆到达时间的先后顺序,依次由北向南排列(大门在最南端,最先到达的第一辆车停放在车场的最北端),若车场内已停满n辆汽车,则后来的汽车只能在门外的便道上等候,一旦有车开走,则排在便道上的第一辆车即可开入;当停车场内某辆车要离开时,在它之后开入的车辆必须先退出车场为它让路,待该辆车开出大门外,其它车辆再按原次序进入车场,每辆停放在车场的车在它离开停车场时必须按它停留的时间长短交纳费用。

试为停车场编制按上述要求进行管理的模拟程序。

实现提示:以栈模拟停车场,以队列模拟车场外的便道,按照从终端读入的输入数据序列进行模拟管理。

每一组输入数据包括三个数据项:汽车“到达”或“离去”信息、汽车牌照号码及到达或离去的时刻,对每一组输入数据进行操作后的输出数据为:若是车辆到达,则输出汽车在停车场内或便道上的停车位置;若是车离去;则输出汽车在停车场内停留的时间和应交纳的费用(在便道上停留的时间不收费)。

栈以顺序结构实现,队列以链表(带头结点)实现。

需另设一个栈,临时停放为给要离去的汽车让路而从停车场退出来的汽车,也用顺序存储结构实现。

输入数据按到达或离去的时刻有序。

栈中每个元素表示一辆汽车,包含两个数据项:汽车的牌照号码和进入停车场的时刻。

设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)。

每一组输入数据包括三个数据项:汽车“到达”或“离去”信息、汽车牌照号码及到达或离去的时刻,其中,‘A’表示到达;‘D’表示离去,‘E’表示输入结束。

三、实验要求:1.C/ C++完成算法设计和程序设计并上机调试通过。

2.撰写实验报告,提供实验结果和数据。

3.写出算法设计小结和心得。

四、程序源代码:1.#include<iostream.h>#include<stdlib.h>typedef struct stnode{int data;stnode *next;}LinkStack;//创建一个栈头结点,无头结void InitStack(LinkStack *&ls){ls=NULL;}//进栈,相当于头插法void Push(LinkStack *&ls,int x){LinkStack *p;p=(LinkStack *)malloc(sizeof(LinkStack));p->data=x;p->next=NULL;p->next=ls;ls=p;}//出栈void Pop(LinkStack *&ls){if(ls==NULL)return;LinkStack *p;int x;p=ls;while(p){x=p->data;ls=p->next;cout<<x<<" ";free(p);p=ls;}cout<<"出栈成功!!"<<endl;}//创建栈void CreatStack(LinkStack *&ls){InitStack(ls);int i=1,num;cout<<"以000表示输入结束!!"<<endl;while(1){cout<<"请输入第"<<i<<"个元素:";cin>>num;if(num==000)break;Push(ls,num);i++;}cout<<"进栈成功!!"<<endl;}void main(){LinkStack *ls,*p;CreatStack(ls);Pop(ls);}2.#include<iostream.h>#define QueueSize 100typedef struct sqqueue{int data[QueueSize];int front,rear;}SqQueue;//初始化队列void InitQueue(SqQueue &qu){qu.rear=qu.front=0;}//进队int EnQueue(SqQueue &sq,int x){if((sq.rear+1)%QueueSize==sq.front) return 0;sq.rear=(sq.rear+1)%QueueSize;sq.data[sq.rear]=x;return 1;}//出队void DeQueue(SqQueue &sq){int x;if(sq.front==sq.rear)return;while(sq.front!=sq.rear){sq.front=(sq.front+1)%QueueSize;x=sq.data[sq.front];cout<<x<<" ";}cout<<"出队成功!!"<<endl;}//创建队void CreatQueue(SqQueue &sq){InitQueue(sq);int num,i=1;cout<<"以000表示输入结束!!"<<endl;while(1){cout<<"请输入第"<<i<<"个元素:";cin>>num;if(num==000)break;EnQueue(sq,num);i++;}cout<<"进队成功!!"<<endl;}void main(){SqQueue sq;CreatQueue(sq);DeQueue(sq);}3.#include<iostream.h>#include<stdlib.h>#include<stdio.h>#define MAX 2#define price 0.05typedef struct node{int hour;int min;}Time;//时间结点typedef struct Node{char num[10];//车牌号Time reach;//时间Time leave;}CarNode;//车辆信息结点typedef struct NODE{CarNode *stack[MAX];int top;}CarStack;//顺序栈模拟车站typedef struct QNode//队列{CarNode *data;QNode *next;}QueueNode;//链队结点类型typedef struct pqrt{QueueNode *front,*rear;//设置头指针尾指针}LinkQueueCar;//模拟通道//初始化栈void InitStack(CarStack *cs);//初始化队列(便道)int InitQueue(LinkQueueCar *qc);//车辆到达int Arrival(CarStack *Enter,LinkQueueCar *qc);//车辆离开void Leave(CarStack *Enter,CarStack *Temp,LinkQueueCar *qc); //显示车库信息void List(CarStack s,LinkQueueCar w);void main(){CarStack Enter,Temp;LinkQueueCar Wait;int ch;InitStack(&Enter);InitStack(&Temp);InitQueue(&Wait);while(1){cout<<"欢迎光临"<<endl;cout<<"-----------------------"<<endl;cout<<"1.车辆到达"<<endl;cout<<"2.车辆离开"<<endl;cout<<"3.车场显示"<<endl;cout<<"4.退出程序"<<endl;cout<<"-----------------------"<<endl;cout<<"请选择所需的服务!"<<endl;while(1){cin>>ch;if(ch>=1&&ch<=4)break;}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);break;default:break;}}}void InitStack(CarStack *cs){cs->top=-1;//初始化栈for(int i=0;i<MAX;i++)cs->stack[cs->top]=NULL;}int InitQueue(LinkQueueCar *qc)//初始化队列{//qc=(LinkQueueCar *)malloc(sizeof(LinkQueueCar));这句话不能要?????qc->front=(QueueNode *)malloc(sizeof(QueueNode));if(qc->front!=NULL){qc->front->next=NULL;//带头结点的qc->rear=qc->front;//一定要注意赋值顺序不能反了!!!!!!!!!!return 1;}elsereturn -1;}//打印车站车离开的信息void Print(CarNode *p,int room){int A1,A2,B1,B2;//车辆收费cout<<"请输入离开时间:/**:**/"<<endl;cout<<"请输入离开时间的时(0-23):";cin>>p->leave.hour;while(p->leave.hour<p->reach.hour||p->leave.hour>23){cout<<"error!!"<<endl;cin>>p->leave.hour;}B1=p->leave.hour;cout<<"请输入离开时间的分钟(0-59):";cin>>p->leave.min;while(p->leave.min<0||p->leave.min>59){cout<<"error!!"<<endl;cin>>p->leave.min;}B2=p->leave.min;cout<<endl<<"离开汽车的车牌号为:"<<endl;puts(p->num);cout<<"其到达时间为:"<<p->reach.hour<<":"<<p->reach.min<<endl;cout<<"其离开时间为:"<<p->leave.hour<<":"<<p->leave.min<<endl;A1=p->reach.hour;A2=p->reach.min;cout<<"应交费用为:"<<((B1-A1)*60+(B2-A2))*price<<"元"<<endl;free(p);}int Arrival(CarStack *Enter,LinkQueueCar *qc){CarNode *p;QueueNode *t;p=(CarNode *)malloc(sizeof(CarNode));cout<<"请输入车牌号(例A8888):"<<endl;gets(p->num);if((Enter->top+1)<MAX){Enter->top++;cout<<"车辆在车场第"<<Enter->top<<"位置"<<endl;cout<<"请输入到达时间:/**:**/"<<endl;cout<<"请输入到达时间的时(0-23):";cin>>p->reach.hour;while(p->reach.hour<0||p->reach.hour>23){cout<<"error!!"<<endl;cin>>p->reach.hour;}cout<<"请输入到达时间的分(0-59):";cin>>p->reach.min;Enter->stack[Enter->top]=p;//注意数组下标是从0开始,在显示时下标也要与之对应cout<<"车近停车场成功!!"<<endl;return 1;}else{cout<<"该车需在便道上等待!"<<endl;t=(QueueNode *)malloc(sizeof(QueueNode));//进队列t->data=p;t->next=NULL;qc->rear->next=t;qc->rear=t;cout<<"车进便道成功!!"<<endl;return 1;}}void Leave(CarStack *Enter,CarStack *Temp,LinkQueueCar *qc){CarNode *p,*t;QueueNode *q;int room;if(Enter->top>-1)//判断车场是否为空{while(1){cout<<"请输入车在车场中的位置:";cin>>room;if(room>=0&&room<=Enter->top)break;}//要离开的车后面还有车,则后面的车需进入临时栈给前面的车让路while(Enter->top>room)//用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>=0){Enter->top++;Enter->stack[Enter->top]=Temp->stack[Temp->top];Temp->stack[Temp->top]=NULL;Temp->top--;cout<<"临时车场里的车重新进站成功!!"<<endl;}Print(p,room);//调用计费函数//车离开后如果便道上有车,也进车站if(qc->front!=qc->rear&&Enter->top<MAX)//判断便道上是否有车以及车站是否已满{q=qc->front->next;t=q->data;Enter->top++;cout<<"便道上的"<<t->num<<"号车进入车场第"<<Enter->top<<"位置"<<endl;cout<<"请输入现在的时间:/**:**/"<<endl;cout<<"请输入到达时间的时(0-23):";cin>>t->reach.hour;while(t->reach.hour<0||t->reach.hour>23){cout<<"error!!"<<endl;cin>>t->reach.hour;}cout<<"请输入到达时间的分(0-59):";cin>>t->reach.min;qc->front->next=q->next;//出便道if(q==qc->rear) qc->front=qc->rear;Enter->stack[Enter->top]=t;//进车站free(q);cout<<"便道的车进入停车场成功!!"<<endl;}elsecout<<"便道里没有车!!"<<endl;}elsecout<<"车场里没有车!!"<<endl;}void List1(CarStack *s)//显示车场信息{int i;if(s->top>-1){cout<<"车场"<<endl;cout<<"位置时间车牌号"<<endl;for(i=0;i<(s->top+1);i++){cout<<" "<<i<<" "<<s->stack[i]->reach.hour<<":"<<s->stack[i]->reach.min<<" "<<s->stack[i]->num<<endl;}}elsecout<<"车场里没有车!!"<<endl;}void List2(LinkQueueCar *w)//显示便道信息{QueueNode *p;p=w->front->next;//p先指向第一辆车,if(w->front!=w->rear)//判断便道是否为空{cout<<"等待车辆的号码为:"<<endl;while(p)//用指针p遍历输出数据{puts(p->data->num);p=p->next;}}elsecout<<"便道里没有车!"<<endl;}void List(CarStack s,LinkQueueCar w)//显示整个停车场的信息{int flag,tag;flag=1;while(flag){cout<<"请选择1|2|3:"<<endl;cout<<"1.车场"<<" "<<"2.便道"<<" "<<"3.返回"<<endl;while(1){cin>>tag;if(tag>=1||tag<=3)break;elsecout<<"请选择1|2|3:"<<endl;}switch(tag){case 1:List1(&s);break;case 2:List2(&w);break;case 3:flag=0;break;default:break;}}}五、程序运行情况(写出输入数据及运行结果)六、小结(包括收获、心得体会、存在的问题及解决问题的方法、建议等)本次实验前两题是栈和队列的基本算法,是基础练习,关键是第三题,具体谈谈我理解的停车场。

相关文档
最新文档