(完整word版)停车场实验报告

合集下载

停车场管理实验报告

停车场管理实验报告

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

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

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

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

三、实验步骤: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. 用户体验:大部分用户对新的停车场管理系统表示满意,特别是对快速通行和多种支付方式给予高度评价。

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

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

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

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

实验报告停车场管理

实验报告停车场管理

top;int //栈顶指针int maxSize;struct Set// 定义一个结构体,可以存放两个数据实验 停车场管理姓名:曹国君 梁辰 唐琪皓 黄悦 学号:09125676 0912567509125672 09125673 1. 问题描述设停车场内只有一个可停放 n 辆汽车的狭长通道,且只有一个大门可供 汽车进出。

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

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

2. 数据结构设计由于停车场的停车位有限,只有一个入口,且通道狭长,当停车场内某 辆车要离开时,在它之后开入得车辆必须先退出车场为它让路,顺序栈的结构 符合停车场的需求。

若车场内已停满,车辆再外排队等候,队伍不限长度,可以使用链式队列进行 模拟。

输入:停车位数,停车费单价,进入或离去,车牌号,进入或离去时间 输出:进入:输出停在停车场或者便道上的位置离去:输出停留在停车场上的时间(离开时间 - 进入停车场的时间)及费用 为了满足以上的要求,至少需要记录进入时间以及车牌号template<class ElemType> class SqStack { protected:// 顺序栈的数据成员 :班级:信息 1 班实验时间:第 5 周{ElemType num; ElemType time; };最大容量Set *elems;template <class ElemType> struct NodeNULL); // 已知数数据元素值和指针建立结构 };3. 程序设计 (1) 头文件由于数据域的改变,创建,插入,删除等函数都需要增加一个数据域的处理 顺序栈:public:// 抽象数据类型方法声明及重载编译系统默认方法声明 :SqStack(int size = DEFAULT_SIZE);// 构造函数virtual~SqStack(); // 析构函 数int Length() const; // 求 栈 长 度// 栈{// 数据成员 :ElemType data1,data2;Node<ElemType> *next;// 构造函数 : Node();// 两个数据域// 指针域// 无参数的构造函数Node(ElemType item1,ElemType item2 ,Node<ElemType> *link boolconst;为空Empty() // 判断栈是否Clear(); 栈清空void Traverse(void (*Visit)(const ElemType &)) const;//遍历栈Status Push(const ElemType &e,constElemType&t);// 入栈Status Top(ElemType &e,ElemType &t)const;// 取顶元素Status Pop(ElemType&e,ElemType&e);// 出栈SqStack(const SqStack<ElemType> &copy);// 复制构造函数SqStack<ElemType> &operator =(const SqStack<ElemType> &copy); // 赋值语句重载 链式队列: public:LinkQueue(); // 无参数的构造函数virtual~LinkQueue();// 析构函数intLength() const;// 求队 列 长度boolEmpty()const;// 判断队列是否为空voidClear();// 将队列清空voidTraverse(void(*Visit)(constElemType &)) const ;//遍历队列StatusDelQueue(ElemType&e,ElemType&t);// 出队操作StatusGetHead(ElemType &e,ElemType &t)const; //取队头操作void // 将Status EnQueue(const ElemType &e,const ElemType &t); // 入队操作LinkQueue(const LinkQueue<ElemType> &copy); // 复制 构造函数LinkQueue<ElemType> &operator =(const LinkQueue<ElemType> &copy);//赋值语句重载(2)辅助函数 当车辆离开时,输入车牌号与离开时间,如果该车辆在停车场中,则在 其之后的车辆需要暂时离开停车场为其让路,返回其进入停车场的时间,并判 别为真;如果该车辆不存在停车场中,则判别为假。

(完整word版)停车场实验报告

(完整word版)停车场实验报告

《算法与数据结构》课程设计题目:停车场的收费管理系统组长:张赛组员:王佳琪,袁洁莹,张瑜完成日期:2013年12月25日一、设计目的与内容1.问题描述任务:停车场可以同时停放M辆车,停车场的入口和出口可分别有N辆车排队。

停车每小时收费5元,每天不超过50元,停车不满半小时不收费,超过半小时按一小时收费。

功能要求:完成停车场进出车的收费管理以及查询每辆车的停车记录(按照车牌号查询);停车场目前的状况(满或空的车位数)。

规定:输入数据形式和范围:车牌号、停车开始时间输出形式:有中文提示,停车的时间长短、离开停车场的时间、费用界面要求:有合理的提示。

存储结构:学生自己根据系统功能要求自己设计,但是要求停车记录要存储在数据文件中。

测试数据:要求使用1、全部合法数据;2、整体非法数据;3、局部非法数据。

进行程序测试,以保证程序的稳定。

测试数据及测试结果请在上交的资料中写明;2.基本要求(1)停车场管理主要实现以下几个功能:①、停车场车位的划分。

②、车辆进出管理及收费功能。

③、停车场车辆信息查询功能。

④、退出系统。

(2)以栈模拟停车场,以队列模拟车场外的便道,按照从终端读入的输入数据序列进行模拟管理。

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

3.目的:程序所能达到的功能:程序主要服务于停车场使用者和停车场管理者。

对于使用停车场的停车者,在其等待期间,系统为使用者提供查询,修改,删除车辆信息的操作。

当使用者想要离开停车场,停车场自动计算出停车费用,并自动让正在等待的使用者有序进入停车位。

而管理者可以通过本系统查询过场,在场,等待的车辆信息,也可以统计24小时内的停车收入。

停车场的管理系统利用栈和队列的这些特点来实现模拟停车场和便道。

二、算法的基本思想1.数据结构定义(1)队列数据类型定义:ADT Queue{数据对象:D={ai|ai∈ElemSet, i=1,2,……,n,n≥0}数据关系:R1={|ai-1,ai∈D,i=2……,n}基本操作:InitQueue(&Q)操作结果:构造一个空队列Q。

停车场管理实验报告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. 车位管理模块车位管理模块实现了车位编号、分组和预定等功能,并提供了实时车位状态查询。

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

停车场实习报告

停车场实习报告

停车场实习报告篇一:停车场调查实习报告交通工程学停车场调查实习报告班级:姓名:熊健学号:区域:西宁市城西区09交通工程 09130XX0一、区域1停车场调查1、基本资料调查区域1停车场为佳惠家具城的专属停车场,位于五四大街与冷湖路北段交叉口的西侧,距交叉口约153米,紧邻舒泊来雁小酒店与青海师范大学,实则为佳惠家具城的后院。

主要为来家具城商洽家具生意的客人提供停车服务,不对外开放。

面积不大,约735平米。

呈矩形,约可提供20个泊位。

停车场外有诱导信息“向右直行右转30米”,停车场内的停放方式为垂直式,停发方式为“后进前出”式。

2、调查数据整理及分析在一小时的观察时间里,停放车辆的次数为2,累计停车数为9,故:a、停车场饱和度Wn=9/20=45%b、停车周转率fn=2/20=10%c、步行距离停车场离目的地佳惠家具城非常近,据目估大约只有10米停放点离目的地的距离非常理想,方便停车与洽谈生意。

3、问题及建议整个停车场内一片狼藉,工人们出了搬着家具在其中穿梭外,更有几名工人在停车区域的近旁工作。

场面混乱且无专人引导停车,一切都得靠停车人的自觉意识。

另外,停车场内没有消防设施,与木料打交道的这个停车场一旦发生火灾,后果不堪设想。

建议该停车场先安装好消防设备,并且将停车区与工作区作适当的隔离,另应设专人管理。

二、区域2停车场调查1、基本资料调查区域2停车场是一个配建停车场,位于五四大街与冷湖路南段交叉口的西侧,距交叉口仅十几米,处在交通银行古城台支行与联通五四路营业厅前,对外开放。

整个停车场呈现“L”字形,面积约810平米,可提供50个左右的泊车位。

2、调查数据整理及分析A、在一小时的观察时间里,停车次数为23,而累计停车数为43,故:a、停车场饱和度Wn=43/50=86%b、停车周转率fn=23/50=46%B、随机对20为车主进行停放目的问卷调查,有5位是回家,12位是购物,3位为其他。

调查得出停车目的为非购物的高达(5+3)/20=40%,停车购物的只占60%。

停车场实验报告

停车场实验报告

停车场实验报告引言停车场作为一个常见的公共设施,在城市中发挥着重要的作用。

合理的停车管理能够提高车辆停放效率,减少拥堵,优化城市交通流动。

本文通过对停车场实验的设计和分析,旨在探讨一种更加高效的停车管理方法。

实验目标本实验的目标是通过实际场景模拟,测试不同的停车策略,以找到最优的停车管理方案。

具体目标如下: 1. 分析停车场中的车辆流量和停车时间分布特点。

2.比较不同停车策略(如单向行驶、优先级停车等)对停车场性能的影响。

3. 寻找最佳停车策略,以提高停车场的使用效率。

实验设计实验场景模拟本实验使用一个虚拟停车场进行场景模拟。

停车场总共有10个停车位,每个停车位可以容纳一辆车。

在每个时间步长内,会有一定数量的车辆到达停车场,并且每个车辆都有一个停车时长。

实验参数设置为了模拟真实场景,我们设置以下参数: - 车辆到达率:每个时间步长内到达停车场的车辆数量,假设服从泊松分布。

- 停车时长分布:设定车辆停车时长的概率分布,如均匀分布、指数分布等。

- 停车策略:设置不同的停车策略比较它们的性能,例如按照优先级停车、FIFO(先进先出)等。

实验过程为了对停车场的性能进行评估,我们进行了多组实验,每组实验都使用相同的参数设置。

下面介绍了一组实验的过程。

参数设置•车辆到达率:平均每个时间步长内到达停车场的车辆数量为4辆。

•停车时长分布:假设车辆停车时长为10到30分钟之间的均匀分布。

•停车策略:采用FIFO(先进先出)的停车策略。

实验步骤1.初始化停车场:将停车场的状态设置为空,即所有停车位都可用。

2.开始模拟时间流逝:按照设定的时间步长,模拟车辆的到达和离开。

在每个时间步长内:–生成新车辆:根据车辆到达率和停车时长分布生成新的车辆到达停车场。

–停车:将到达的车辆按照FIFO策略停放到可用停车位上。

–车辆离开:根据停车时长,确定哪些车辆在当前时间步长内离开停车场。

–更新停车场状态:将离开的车辆的停车位标记为可用。

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

《算法与数据结构》课程设计题目:停车场的收费管理系统组长:张赛组员:王佳琪,袁洁莹,张瑜完成日期:2013年12月25日一、设计目的与内容1.问题描述任务:停车场可以同时停放M辆车,停车场的入口和出口可分别有N辆车排队。

停车每小时收费5元,每天不超过50元,停车不满半小时不收费,超过半小时按一小时收费。

功能要求:完成停车场进出车的收费管理以及查询每辆车的停车记录(按照车牌号查询);停车场目前的状况(满或空的车位数)。

规定:输入数据形式和范围:车牌号、停车开始时间输出形式:有中文提示,停车的时间长短、离开停车场的时间、费用界面要求:有合理的提示。

存储结构:学生自己根据系统功能要求自己设计,但是要求停车记录要存储在数据文件中。

测试数据:要求使用1、全部合法数据;2、整体非法数据;3、局部非法数据。

进行程序测试,以保证程序的稳定。

测试数据及测试结果请在上交的资料中写明;2.基本要求(1)停车场管理主要实现以下几个功能:①、停车场车位的划分。

②、车辆进出管理及收费功能。

③、停车场车辆信息查询功能。

④、退出系统。

(2)以栈模拟停车场,以队列模拟车场外的便道,按照从终端读入的输入数据序列进行模拟管理。

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

3.目的:程序所能达到的功能:程序主要服务于停车场使用者和停车场管理者。

对于使用停车场的停车者,在其等待期间,系统为使用者提供查询,修改,删除车辆信息的操作。

当使用者想要离开停车场,停车场自动计算出停车费用,并自动让正在等待的使用者有序进入停车位。

而管理者可以通过本系统查询过场,在场,等待的车辆信息,也可以统计24小时内的停车收入。

停车场的管理系统利用栈和队列的这些特点来实现模拟停车场和便道。

二、算法的基本思想1.数据结构定义(1)队列数据类型定义:ADT Queue{数据对象:D={ai|ai∈ElemSet, i=1,2,……,n,n≥0}数据关系:R1={|ai-1,ai∈D,i=2……,n}基本操作:InitQueue(&Q)操作结果:构造一个空队列Q。

DestroyQueue(&Q)初始条件:队列Q已存在。

操作结果:队列Q被销毁,不再存在。

ClearQueue(&Q)初始条件:队列Q已存在。

操作结果:将Q清为空队列。

QueueEmpty(&Q)初始条件:队列Q已存在。

操作结果:若Q为空队列,则返回TRUE,否则返回FALSE。

QueueLength(Q)初始条件:队列Q已存在。

操作结果:返回Q的元素个数,即队列的长度。

GetHead(Q, &e)初始条件:Q为非空队列。

操作结果:用e返回Q的队头元素。

EnQueue(&Q, e)初始条件:队列Q已存在。

操作结果:插入元素e为Q的新的队尾元素。

DeQueue(&Q, &e)初始条件:Q为非空队列。

操作结果:删除Q的队头元素,并用e返回其值。

QueueTraverse(Q, visit())初始条件:Q已存在且非空。

操作结果:从队头到队尾,依次对Q的每个数据元素调用函数visit()。

一旦visit()失败,则操作失败。

}ADT Queue(2)栈数据类型定义ADT stack{数据对象:D={ai|ai∈charset, i=1,2,……,n,n≥0}数据关系:R1={|ai-1,ai∈D,i=2……,n}基本操作:initstack(&S, n)操作结果:构造一个空栈S,该栈可存放n个元素。

push(&S, e)初始条件:栈S已存在。

操作结果:在栈S的栈顶插入新的栈顶元素e。

pop(&S, &e)初始条件:栈S已存在。

操作结果:删除S的栈顶元素,并以e返回其值。

DestroyStack(&S)初始条件:栈S已存在。

操作结果:销毁栈S。

ClearStack(&S)初始条件:栈S 已存在。

操作结果:将S 清为空栈。

StackLength(&S)初始条件:栈S 已存在。

操作结果:返回栈S 的长度。

StackEmpty(&S)初始条件:栈S 已存在。

操作结果:若S 为空栈,则返回TRUE ,否则返回FALSE 。

GetTop(S, &e)初始条件:栈S 已存在。

操作结果:若栈S 不空,则以e 返回栈顶元素。

StackTraverse(S, visit())初始条件:栈S 已存在。

操作结果:从栈底到栈顶依次对S 中的每个元素调用函数visit()。

}ADT stack2. 主程序流程基本框架:(1). 车辆信息类型typedef struct {int Htime;int Mtime;}Time; //简单模拟时间信息,记录小时和分钟typedef struct {已收取的总停车费用过场、在场与等待车辆信息查找(栈 数组) 在场车辆信息修改(栈)等待车辆队列删除(队列)char num[20];Time reachtime;Time leavetime;}carinfo;(2).栈类型typedef struct stack{ carinfo car[5];int top;}Stack;int inistack(Stack *S) //初始化栈{ S->top=-1;return 1;}void Push(Stack *S,carinfo x) //进栈操作{ S->top++;S->car[S->top]=x;printf("进站成功!\n");}void Pop(Stack *S,carinfo x) //出栈操作{ if(S->top=-1)printf("空栈,无法出栈!");x=S->car[S->top];S->top--;printf("出栈成功!\n");}int IsEmpty(Stack *S) //判断栈空{ if(S->top==-1)return 1;elsereturn 0;}(3).队列类型(便道)typedef struct Node{carinfo data;struct Node *next;}QueueNode;typedef struct {QueueNode *front;QueueNode *rear;}Queue,*linkQueue;int EnterQ(Queue *Q,carinfo x);int iniQueue(Queue *Q) //初始化便道{ Q->front=(QueueNode *)malloc(sizeof(QueueNode)); //申请节点if(Q->front!=NULL){ Q->rear=Q->front;Q->front->next=NULL;return 1;}else return 0;}int EnterQ(Queue *Q,carinfo x) //进便道{ QueueNode *newNode;newNode=(QueueNode *)malloc(sizeof(QueueNode));if(newNode!=NULL){newNode->data=x;newNode->next=NULL;Q->rear->next=newNode;Q->rear=newNode;return 1;}else return 0;}int DeleteQ(Queue *Q,carinfo x) //出便道{QueueNode *p;p=Q->front->next;if(Q->front==Q->rear) //判断便道是否有车return 0;x=p->data;if(p->next==Q->rear){Q->rear=Q->front;Q->front->next=NULL;}Q->front->next=p->next;free(p);return 1;}(4)主函数及其他函数的算法void main(){ Queue *Q;Stack *S=NULL;S=(Stack *)malloc(sizeof(Stack)); //申请栈节点Q=(linkQueue)malloc(sizeof(Queue)); //申请便道节点 int i;iniQueue(Q); //初始化调用inistack(S); //初始化调用printf("\n****************************欢迎使用停车场管理界面******************************\n");printf("*******本停车场每小时收费2元,停车不满半小时不收费,超过半小时按一小时收费*******");printGraph();while(1){printf("\n请输入操作");scanf("%d",&i);switch(i){case 1:Arrive(S,Q);printGraph(); break;case 2:Departure(S,Q);printGraph();break;case 3:Print(S);printGraph();break;case 0:exit(1);break;case 4:PrintQ(Q);break;case 5:Search(S);break;default :printf("重新输入");printGraph();}}}void Lpush(Stack *S,carinfo x){ Push(S,x); //进临时栈}void LPop(Stack *S,carinfo x){Pop(S,x);}int Arrive(Stack *S,Queue *Q) //车辆到达{carinfo x;int a;printf("输入车牌号:");scanf("%s",x.num);printf("请输入进车场的时间(**:**):");scanf("%d:%d",&x.reachtime.Htime,&x.reachtime.Mtime);if(S->top==Size-1){printf("车场已满,不能进入,进便道\n");a=EnterQ(Q, x); //递归调用进便道操作if(a==1){printf("OK\n");}elseprintf("No!\n");}else{Push(S,x);}return 1;}int Departure(Stack *S,Queue *Q) //车辆离开操作{ carinfo a;int parktime,paytime;char x[20];Time leavetime;Stack *p=NULL;int point1=S->top;int point2=S->top;printf("请输入要离去的车牌号:");scanf("%s",x);while(point1!=-1&&point2!=-1){if(strcmp(S->car[point1].num,x)==0) //匹配函数,是否输入的信息与车场信息匹配{printf("请输入要离开的时间(**:**):");scanf("%d:%d",&leavetime.Htime,&leavetime.Mtime);for(;point1!=S->top;point1++,point2++) //扫描直到结束S->car[point1]=S->car[point2]; //如果找到了,出车S->top--;printf("成功出车场\n");parktime=(leavetime.Htime-S->car[point1].reachtime.Htime)*60+(leavetime.Mtime-S ->car[point1].reachtime.Mtime);if(leavetime.Htime-S->car[point1].reachtime.Htime>=10) paytime=10;else if(leavetime.Mtime-S->car[point1].reachtime.Mtime<=30) paytime=leavetime.Htime-S->car[point1].reachtime.Htime;else paytime=leavetime.Htime-S->car[point1].reachtime.Htime+1;printf("其在停车场内停留时间为%d分钟,实际按照%d小时计费,所需付费为:%d元。

相关文档
最新文档