精华内容
下载资源
问答
  • 根据本身资源和实力选择适合居住小区机动车停车管理服务协议DOC,学习和参考居住小区机动车停车管理服务...该文档为居住小区机动车停车管理服务协议DOC,是一份很不错的参考资料,具有较高参考价值,感兴趣的可以...
  • 这是一款整理发布的地下停车场物业管理服务协议,适合所有涉及地下停车场物业管理服务协议参考...该文档为地下停车场物业管理服务协议,是一份很不错的参考资料,具有较高参考价值,感兴趣的可以下载看看
  • 智慧停车管理服务平台实现对城区全部停车资源的统一管理,并为政府、企业、公众提供相应的停车服务,从而满足城市停车管理服务的业务需求。平台可以实现对设备、车位、人员、收费等的规范管理,能为线下停车场...
  • 智慧停车管理系统-智慧停车整体解决方案初心不二科技智慧停车解决方案依托智慧停车管理服务平台,运用区域网格化、精细化管理思维,打造区域内所有人、车、路、场、环境等紧密协调、高效、安全的静态交通全景图,...

    智慧停车管理系统-智慧停车整体解决方案

    初心不二科技智慧停车解决方案依托智慧停车管理服务平台,运用区域网格化、精细化管理思维,打造区域内所有人、车、路、场、环境等紧密协调、高效、安全的静态交通全景图,采用NB-LOT地磁探测器、手持PDA+APP+云平台监管、支持多种支付方式,缓解城市路边停车问题。

    一、智慧停车系统介绍

    智慧停车是基于NB-LOT智能停车管理系统采用无线通信技术、物联网技术、计算机网络技术等先进技术手段,实时采集各占道停车及停放车辆相关信息,通过无线基站传输至后台中心,对数据进行统计-储存、处理。通过后台中心统与前端PDA设备及相关系统进行数据交互,实现临时占道停车智能管理。通过车位监测技术,手机支付手段,提高停车收费监管力度,实现应收尽收,提高经济效益。

    智慧路边停车解决方案主要分为路边停车收费和停车诱导两大部分,路边停车收费通过实时采集车辆人员信息到云平台上,可实现自动结算。停车诱导可检测各个停车位信息,车主可通过诱导寻找车位。NB-LOT无线地磁实现停车泊位数据采集、上传,车主可通过APP查询空位信息,结合车牌识别系统联动,自动生成停车费账单,方便车主自主完成停车扫码缴费业务和多项停车管理功能。

    a6165faec5c8b639e92c7a896d8004e6.png

    二、系统组成

    基于NB-LOT地磁占道停车系统主要由三部分组成:占道停车系统硬件设备及软件平台组成,软件平台包括:智慧停车APP、综合管理云平台、智能手持收费系统。

    1、硬件设备:

    NB-LOT双模地磁、手持一体机,配套监控系统,用于对停车位进行24小时监控,并且有太阳能警示标志,全天警示同行人员及车辆。

    e4b0348abe471dcf38742d60feff22b8.png

    2、软件平台:

    A.智慧停车APP包括用户APP和管理端APP.

    APP为停车用户提供了所有智慧停车相关的业务,包括注册、绑定(车辆和银行卡)、充值、缴费、查询、导航等各种服务。多种支付方式,满足不同需求;实时停车导航信息查询;计时收费透明化;便捷支付、安全放心。

    稽查员APP通过接受智慧停车管理平台下发的任务工单发起各种业务流程,如违停稽查客诉处理、欠费催缴、停车异常等,稽查员完成任务后在APP中上传处理结果,经监控员审核后结束流程。

    8e8c6d9f94c86228ceeb5de75e24ee11.png

    B.综合管理云平台.

    后台运营管理系统具有可视化交互界面,可提供交易信息查询、泊车分布查询、违停行为监控、交易表统计,运维支持等服务,为运营管理方开展停车运营和管理工作提供重要支撑。实时车辆数据信息存储、查询;多级权限管理,安全可靠;远端数据修改、计费调整;系统设备在线安全管控。

    d0cacd799f8f48aead6d95f4b1c78201.png

    beb85271f951a83293891c1a95e65f8e.png

    三、系统收费流程

    路边停车收费系统分为两个主要流程,停车登记与停车缴费。车主通过手机APP或微信公众号登记或收费人员通过手持PDA人工干预方式来登记。当车主要驾车离开时,通过手机APP或公众号来确认,系统计算对应的停车费用或交费给收费人员。如果车主未缴费,提示车主未缴费或者下次停车时先交费后停车。

    aefe0c039f39d5f56f32daf4ce719d3c.png

    四、车位信息平台架构

    b2774696234f80d1b2821e0512dadf6c.png

    五、智慧停车总结

    智慧停车项目解决了乱停乱放的市容市貌,方便市民出行,是市民停车的重要补充。

    展开全文
  • CloudLot 停车管理服务在云上运行。
  • word文件,48页,智慧停车综合管理服务系统解决方案。精品一级
  • 智慧停车管理服务平台实现对城区全部停车资源的统一管理,并为政府、企业、公众提供相应的停车服务,从而满足城市停车管理服务的业务需求。平台可以实现对设备、车位、人员、收费等的规范管理,能为线下停车场...
  • #智能自助式停车管理系统——后台web管理服务器的设计 设计的意义 方便管理管理整个系统,了解停车场的状态,实时管理停车场。并对用户实时动态管理。有了这个系统,停车场不需要人员值守。 功能 监控管理 视频...
  • 停车管理系统 数据库设计 数据库管理系统在日常生活中的应用十分广泛比如停车管理系统涉及 到车位划分车辆进出收费等信息管理一个好的停车场数据管理系统设计会 使得停车管理结构优化提高服务效率我们现设计并...
  • java实现的停车管理,基于SSM的智能停车系统 ssm实现的校园或者说小区智能停车系统、系统分为普通员工、管理员两个角色,目前系统是基于ssm实现、后期抽空会实现一个springboot版本的。 另外还写过一些其他类似的...

    基于java的停车场管理、基于SSM的智能停车场服务系统

    ssm实现的校园或者说小区智能停车系统、系统分为普通员工、管理员两个角色,目前系统是基于ssm实现、后期抽空会实现一个springboot版本的。
    另外还写过一些其他类似的停车场管理系统 大家可以访问我主页看一下。

    功能模块

    除基本登陆注册功能外 还实现了 车库管理、车位管理、费用结算、停车出入库、及公告、人员管理、拍照智能识别车牌等等。

    源码评论
    感兴趣的朋友扣我2598934293

    登陆

    在这里插入图片描述

    注册
    在这里插入图片描述
    管理员功能列表
    在这里插入图片描述车位图、车位状态浏览
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述在这里插入图片描述

    展开全文
  • 停车场系统源码,停车场小程序,智能停车,Parking system (1)兼容市面上主流的多家相机,理论上兼容所有硬件,可灵活扩展, (2)相机识别后数据自动上传到云端并记录,校验相机唯一id和硬件序列号,防止非法数据...

    功能介绍

    停车场系统源码,停车场小程序,智能停车,Parking system

    (1)兼容市面上主流的多家相机,理论上兼容所有硬件,可灵活扩展,

    (2)相机识别后数据自动上传到云端并记录,校验相机唯一id和硬件序列号,防止非法数据录入,

    (3)用户手机查询停车记录详情可自主缴费(支持微信,支付宝,银行接口支付,支持每个停车场指定不同的商户进行收款),支付后出场在免费时间内会自动抬杆。

    (4)支持app上查询附近停车场(导航,可用车位数,停车场费用,优惠券,评分,评论等),可预约车位。

    (5)断电断网支持岗亭人员使用app可接管硬件进行停车记录的录入。

    技术架构

    后端开发语言java,框架oauth2+springboot2+doubble2.7.3,数据库mysql/mongodb/redis,即时通讯底层框架netty4,安卓和ios均为原生开发,后台管理模板vue-typescript-admin-template,文件服务fastDFS,短信目前仅集成阿里云短信服务。为千万级数据而生,千万级用户无忧,目前真实用户40w无压力,大数据时代物联网必备。100+Java项目教程+源码+笔记

    部署环境

    目前仅测试linux环境一切正常,win环境没部署过,演示地址在本文章末尾

    功能介绍

    (1)兼容市面上主流的多家相机,理论上兼容所有硬件,可灵活扩展。

    (2)相机识别后数据自动上传到云端并记录,校验相机唯一id和硬件序列号,防止非法数据录入。

    (3)用户手机查询停车记录详情可自主缴费(支持微信,支付宝,银行接口支付,支持每个停车场指定不同的商户进行收款),支付后出场在免费时间内会自动抬杆。

    (4)支持app上查询附近停车场(导航,可用车位数,停车场费用,优惠券,评分,评论等),可预约车位。

    (5)断电断网支持岗亭人员使用app可接管硬件进行停车记录的录入。

    开源情况

    代码完全开源,不存在授权问题,完全自主原创,不存在任何后门,不使用任何第三方私有jar包,性能和安全完全自主可控,想怎么耍就这么耍,就是这么任性,后续更新的话本人会持续更新部署教程。代码专业规范,新手看得懂,高手喜欢用。本系统完全免费 。

    软件架构

    一、技术构成简述

    编程语言与架构简述

    1.开发语言

    (1)服务端 服务端语言目前均采用java语言开发,jdk版本要求1.8+。开发框架为springboot2+dubbo,鉴权采用oauth2,DB操作框架Mybaits,即时通讯底层框架与协议netty4

    (2)客户端 目前我们主要客户端分为三个场景,分别为安卓,ios,微信公众号。安卓与ios均为原生开发,H5页面web端框架为vue

    (3)后台管理 后台管理前端框架采用的是主流的vue element admin(TypeScript版本),分层清晰,官方文档完整,社区活跃

    2.数据存储

    (1)重要数据存储 重要数据均采用mysql进行存储,支持部署主从,大部分数据尽可能进行事务处理,确保数据容灾性

    (2)一般数据存储 非重要性数据例如聊天内容,系统消息通知,广告等数据均存储于mongodb数据库中

    (3)缓存数据存储 微小量缓存会存在mysql中,例如评论的前N条评论快照会超小量进行字段适当冗余,在提高存储性价比情况下大大提高数据的查询能力。其它大部分数据缓存均存储于redis数据中

    3.性能与安全

    (1)性能解决方案 架构与技术解决方案均为本团队一线5年开发经验总结,目前我们正在接触的项目真实用户40w+,毫无压力,我们系统采用的架构与技术均在仔细多方面综合考虑后多次调整,采用更加合理,性能更佳的模式与解决方案

    (2)安全解决方案 所有请求均需携带jwt串token进行访问,每个接口服务和管理服务均需配置公钥文件且具有jwt串token合法性校验能力,用户权限服务携带私钥文件负责密钥生成

    4.架构与生命力

    (1)采用架构 本系统采用阿里巴巴微服务框架dubbo来进行实现微服务提供能力,追求高性能,高可用,超细粒度独立微服务,相同服务可以动态灵活增加与减少,支持不停机发布新版本服务。每个服务之间均为独立存在,互不影响。例如短信发送,支付,订单,停车场系统接口,停车场后台管理,停车场提供者服务等均为独立的服务。

    (2)架构潜力 整个系统众多服务分工明确,细粒度微服务,实现真正的插拔服务,功能的删减或停用,新增等均可在不破坏和入侵原来系统的前提下满足新的开发需求

    5.二次开发说明

    (1)适用客户对象 ①本身有互联网it编程技术和经验或者拥有技术团队的。 ②不具备第一个条件但是费用预算比较充足,二次开发需求少或者愿意支付高额定制费的

    (2)团队要求 服务器运维,安卓与ios开发者,web前端开发者,java实际开发经验2年+开发者

    (3)技术要求 过硬的java编程能力,网络编程能力,数据库设计与优化能力,架构设计能力,微服务思维能力,成熟的前端技术开发能力,中大型系统部署与运营能力

    (4)硬件要求 Linux操作系统,4核8G(最低)5M带宽,可多台服务器中的微服务指向统一微服务调度中心(本系统微服务调度中心管理平台zookeeper)

    软件与硬件数据交互简述

    1.硬件端

    (1)目前解决方案 封装工具类,兼容市场主流硬件设备,只负责各类硬件数据封装为统一数据结构。硬件发包目前多为http主动推送数据,被动接受服务端返回指令

    (2)未来解决方案 改造主流厂商硬件底层服务系统,新增硬件规范的合法身份数据,采用长连接进行数据交互,保证数据与指令的实时性与可靠性得到更好的保障

    2.服务端

    (1)被动处理硬件数据 中间件处理各类前端数据,接收硬件推送数据,解析,计算,做出相应反馈

    (2)主动通知硬件发生事件行为 长连接推送指令,例如开闸,实时动态配置硬件数据等,

    二、常规功能简述

    基础功能

    1.硬件管理 支持单个硬件管理与记录,硬件在线状态,维修与进度记录等。与指定停车场出入口进行绑定,均有记录GPS位置

    2.停车场管理 不同时段费用配置,每日封顶因素综合参与动态计费,也支持静态+每日上限计费。支持查询附近停车场功能

    3.停车记录管理 详细记录产生时间,地点,进出口位置,进出时间,异常数据实时推送与快速处理

    4.支付机构管理 每个停车场的支付账号均可以独立配置,支持同一个停车场使用多家支付机构进行支付,例如支付宝,微信,银联等。

    5.支付与优惠活动管理 支付宝与微信,银联都均支持免密支付(无感支付)。本系统自带优惠券功能,支持支持多种套餐自定义与用户进行快捷手机上下单随时购买。100+Java项目教程+源码+笔记

    特色功能

    1.异常数据实时推送,汇报,及时处理,提前预知与通知

    2.即时通讯功能(IM聊天沟通) 性能,架构,优化等均参考微信聊天功能机制进行开发

    3.行业好友与圈子 让该应用不止只能停车,还能交到志同道合的行业知音,让应用更有温度

    4.商城与营销功能 此功能主要考虑到使用者有运营周边的兴趣和能力,在商城和广告营销上进行盈利

    安装教程

    1. 安装JDK1.8+

    2. 安装MySQL5.6+ 安装MongoDB 安装Redis 安装FastDFS 安装Zookeeper

    3. 将打包好的代码上传到服务器上,直接运行jar包即可

    地址:

    项目地址:https://github.com/981011512/–
    演示地址:http://139.9.155.149 admin 123456

    展开全文
  • 停车管理系统.zip

    2021-04-19 16:37:26
    停车管理系统 浙江农林大学地理信息科学171班 HMc、FZ、HHb、XHc、ZLl、CC小组 模块 模块名 命名空间 介绍 完成度 模型模块 Park.Model 提供数据库模型 99% 服务模块 Park.Service 提供业务处理方法 99% 管理模块 ...
  • 停车管理系统

    千次阅读 2019-01-21 18:05:17
    做了一个个人实践项目 停车管理系统 运用的栈和队列的结构(C) 以前写代码时总会图方便直接使用一些封装好的东西,后来仔细想想 自己并不能独立的完整地写出这些东西,从新写一下,让自己学到了不少东西 主要...

    很久没有写新东西了,然后就把最近学的一些东西整理一下

    做了一个个人实践项目 停车管理系统 运用的栈和队列的结构(C)

    以前写代码时总会图方便直接使用一些封装好的东西,后来仔细想想

    自己并不能独立的完整地写出这些东西,从新写一下,让自己学到了不少东西

    主要功能:停车,取车,显示信息

    主要是利用栈和队列去实现一些简单功能

    基于linux系统的小程序1

    main.c//主函数

    /*****************************
    author:***
    mail:***3370834@qq.com
    desc:停车管理系统主函数
    *****************************/
    #include "car.h"
    #include "seqStack.h"
    #include "seqQueue.h"
    
    int main()
    {
            SqStack S;
            queue q;
            SqStack Sf;
            InitStack(&Sf);
            InitStack(&S);
            initQueue(&q, 100);
            while(1){
                welcome(&S, &q);
                int i;
                i = get_num();
    	    int flag = 1;
                switch(i)
                {
                    case 1:in_car(&S, &q);
                        break;
                    case 2:out_car(&S, &Sf, &q);
                        break;
    		case 3:put(&S, &q);
    		    break;
                    case 4:flag = 0;
                        break;
                    default:printf("输入信息错误 请重新输入!\n");
                        break;
                }
    	    if(flag == 0)break;
            }
            destroyQueue(&q);
            DestroyStack(&S);
            DestroyStack(&Sf);
            return 0;
    }
    

    car.h//关于停车取车方面的头文件

    #ifndef CAR_H
    #define CAR_H
    
    #include <stdio.h>
    #include <stdlib.h>
    #include <assert.h>
    #include <string.h>
    #include "seqStack.h"
    #include "seqQueue.h"
    /*#define OK 1 //正确
    #define ERROR 0   //出错
    #define TRUE 1  //为真
    #define FALSE 0   //为假
    typedef int status;
    typedef int ElemType;   //宏定义队列的数据类型
    #define MAX_SIZE 20 //.
    #define MAX_Car 10
    #define STACK_INIT_SIZE 20
    #define OVERFLOW 0
    #define STACK_INCREMENT 10*/
    
    void welcome(SqStack *S, queue *q);
    int out_1(int num, SqStack *S, SqStack *Sf);
    void out_car(SqStack *S, SqStack *Sf, queue *q);
    void in_car(SqStack *S, queue *q);
    int get_num();
    void put(SqStack *S, queue *q);
    
    #endif

    car.c

    /*****************************
    author:***
    mail:***3370834@qq.com
    desc:停车操作函数
    *****************************/
    #include "car.h"
    /*
    return:
    	无
    parm:
    	S:栈
    	q:队列
    desc:
    	输出S和q中的信息
    */
    void put(SqStack *S, queue *q)
    {
        printf ("\t*******************目前停车场状况***********************\n");
        printf ("\t停车场共有%d个车位,当前停车场共有%d辆车,等候区共有%d辆车\n",MAX_Car, LengthStack(S), getQueueLen(q));
        printf ("\t********************************************************\n");
        printf ("\t       车牌号                   车辆状态                \n");
        TrverseStack(S);//输出S
        queueTraverse(q);//输出q
    }
    /*
    return:
    	-1:输入信息不合法
    	num:输入的信息
    parm:
    	无
    desc:
    	获取数据并检验是否合法
    */
    int get_num()
    {
        char sh[100];
        fgets(sh, 80, stdin);
        int num = 0;
        int flag = 0;
        int len = 0;
        len = strlen(sh);
        int i = 0;
        if(len > 9 || sh[0] == '\n')
        {
    	flag = 1;
        }
        while(i < len - 1)//通过循环把num的值计算出
        {
            if(sh[i] >= '0' && sh[i] <= '9')
            {
                num *= 10;
                num += (sh[i] - '0');
            }
            else
            {
                flag = 1;
                break;
            }
            i++;
        }
        if(flag == 1)return -1;
        else return num;
    }
    /*
    return:
    	flag:是否查找成功
    parm:
    	S:主队列
    	Sf:辅助队列
    desc:
    	判断栈中是否有待取元素信息
    */
    int out_1(int num, SqStack *S, SqStack *Sf)
    {
        int flag = 0;
        while(IsEmptyStack(S) == 0)
        {
            int num1 = -1;
            Pop(S, &num1);
            if(num1 == num)
            {
                flag = 1;
                break;
            }
            Push(Sf, num1);
        }
        while(IsEmptyStack(Sf) == 0)
        {
            int num1 = -1;
            Pop(Sf, &num1);
            Push(S, num1);
        }
        return flag;
    }
    /*
    return:
    	无
    parm:
    	S:栈
    	Sf:辅助栈
    	q:队列
    desc:
    	取车
    */
    void out_car(SqStack *S, SqStack *Sf, queue *q)
    {
        int num;
        printf("请输入要取的车牌号!\n");
        while(1)
        {
            num = get_num();
            if(num < 0)
            {
                printf("输入信息错误 请重新输入\n");
            }
            else{
                break;
            }
        }
        if(num == queuefront(q))
        {
            printf("车牌号为%d的车辆取消排队\n", num);
            int linshi;
            deQueue(q, &linshi);
    
        }
        else
        {
            if(out_1(num, S, Sf) == 1)
            {
                printf("车牌号为%d的车辆离开了停车场.\n", num);
                if(isEmpityQueue(q) == 0)
                {
                    int xx;
                    deQueue(q, &xx);
                    //printf("*************** %d ********\n", xx);
                    Push(S, xx);
                    printf("车牌号为%d的车辆进入了停车场.\n", xx);
                }
            }
            else
            {
                printf("停车场中无此车信息\n");
            }
        }
    }
    /*
    return:
    	无
    parm:
    	S:栈
    	q:队列
    desc:
    	进停车场
    */
    void in_car(SqStack *S, queue *q)
    {
        printf("请输入车辆牌号:\n");
        int num;
        while(1)
        {
            num = get_num();
            if(num < 0)
            {
                printf("输入信息错误 请重新输入\n");
            }
            else{
                break;
            }
        }
        if(LengthStack(S) < MAX_Car)
        {
            Push(S, num);
            printf("车牌号为%d的车辆进入了停车场.\n", num);
        }
        else
        {
            enQueue(q, num);
            printf("车牌号为%d的车辆开始排队.\n", num);
        }
    }
    /*
     return:
    	操作界面
     parm:
    	S:栈
    	q:队列
     desc:
    	主操作界面
    */
    void welcome(SqStack *S, queue *q)
    {
        printf ("\t*******************目前停车场状况***********************\n");
        printf ("\t停车场共有%d个车位,当前停车场共有%d辆车,等候区共有%d辆车\n",MAX_Car, LengthStack(S), getQueueLen(q));
        printf ("\t********************************************************\n");
        printf ("\t---------------Welcome to our Car Parking---------------\n");
        printf ("\t*                     1.Parking                        *\n");
        printf ("\t*                     2.leaving                        *\n");
        printf ("\t*                     3.situation                      *\n");
        printf ("\t*                     4.exit                           *\n");
        printf ("\t--------------------------------------------------------\n");
        printf ("请输入服务编号:\n");
    }

    seqQueue.h//队列

    #ifndef SEQQUEUE_H
    #define SEQQUEUE_H
    
    #include <stdio.h>
    #include <stdlib.h>
    #include <string.h>
    #include<assert.h>
    
    #define OK 1 //正确
    #define ERROR 0   //出错
    #define TRUE 1  //为真
    #define FALSE 0   //为假
    typedef int status;
    typedef int Status;
    typedef int ElemType;   //宏定义队列的数据类型
    #define MAX_SIZE 20
    #define MAX_Car 10
    #define STACK_INIT_SIZE 20
    #define OVERFLOW 0
    #define STACK_INCREMENT 10
    
    typedef struct
    {
        ElemType *pBase;    //数组指针
        ElemType front;      //队头索引
        ElemType rear;       //队尾索引
        int maxSize;    //当前分配的最大容量
    }queue;
    
    //创建空队列 queueCapacity-队列容量
    status initQueue(queue *PQueue,int queueCapacity);
    //销毁队列
    void destroyQueue(queue *PQueue);
    //清空队列
    void clearQueue(queue *PQueue);
    //判断队列是否为空
    status isEmpityQueue(queue *PQueue);
    //判断队列是否为满
    status isFullQueue(queue *PQueue);
    //获得队列长度
    int getQueueLen(queue *PQueue);
    //新元素入队 [先进先出原则:在队尾的位置插入] element-要插入元素
    status enQueue(queue *PQueue,ElemType element);
    //新元素出队,同时保存出队的元素 [先进先出原则:在队头的位置删除]
    status deQueue(queue *PQueue,ElemType *pElement);
    //遍历队列
    void queueTraverse(queue *PQueue);
    status queuefront(queue *PQueue);
    #endif
    

    seqQueue.c

    /*****************************
    author:***
    mail:***3370834@qq.com
    desc:队列的线性实现函数
    *****************************/
    
    #include "seqQueue.h"
    /*
     return:
    	ERROR:分配内存失败
    	OK:初始化成功a
     parm:
    	PQueue:队列
    	queueCapacity:申请内存的大小
     desc:
    	初始化队列
    */
    status initQueue(queue *PQueue,int queueCapacity)
    {
        //给数组指针分配内存
        PQueue->pBase = (ElemType *)malloc(sizeof(ElemType)*queueCapacity);
        if(!PQueue->pBase)
        {
            printf("给数组指针分配内存失败\n");
            return ERROR;
        }
    
        PQueue->front = 0; //最开始创建时,队头索引为0
        PQueue->rear = 0; //最开始创建时,队尾索引为0
        PQueue->maxSize = queueCapacity;
    
        return OK;
    }
    
    /*
     return:
    	无;
     parm:
    	PQueue:队列
     desc:
    	销毁队列
    */
    void destroyQueue(queue *PQueue)
    {
        free((*PQueue).pBase);  //释放队列数组指针指向的内存
        (*PQueue).pBase = NULL;    //队列数组指针重新指向NULL,避免成为野指针
    }
    
    /*
     return:
    	无
     parm:
    	PQueue:队列
     desc:
    	清空队列
    */
    void clearQueue(queue *PQueue)
    {
        PQueue->front = 0; //队头索引清0
        PQueue->rear = 0; //队尾索引清0
    }
    
    /*
     return:
    	TRUE:队空
    	FALSE:队不空
     parm:
    	PQueue:队列
     desc:
    	判断队列是否为空
    */
    status isEmpityQueue(queue *PQueue)
    {
        if( PQueue->front == PQueue->rear )  //队头==队尾,说明为空
            return TRUE;
    
        return FALSE;
    }
    
    /*
     return:
    	TRUE:队满
    	FALSE:队不满
     parm:
    	PQueue:队列
     desc:
    	判断队满
    */
    status isFullQueue(queue *PQueue)
    {
        if( (PQueue->rear+1)%PQueue->maxSize == PQueue->front )  //队列满
            return TRUE;
    
        return FALSE;
    }
    
    /*
     return:
    	返回队列长度
     parm:
    	PQueue:队列
     desc:
    	获取队列长度
    */
    int getQueueLen(queue *PQueue)
    {
        //正常情况下,队列长度为队尾队头指针之差,但如果首尾指针跨容量最大值时,要%
        return (PQueue->rear - PQueue->front + PQueue->maxSize)%PQueue->maxSize;
    }
    
    /*
     return:
    	TRUE:入队成功
    	FALSE:队满 入队失败
     parm:
    	PQueue:队列
    	element:入队元素
     desc:
    	向队列中添加新的元素
    */
    status enQueue(queue *PQueue,ElemType element)
    {
        if(isFullQueue(PQueue)==TRUE)
        {
            printf("队列已满,不能再插入元素了!\n");
            return FALSE;
        }
    
        //向队列中添加新元素
        PQueue->pBase[PQueue->rear] = element;
        PQueue->rear = (PQueue->rear+1) % PQueue->maxSize; //将rear赋予新的合适的值
    
        return TRUE;
    }
    
    /*
     return:
    	TRUE:出队列成功
    	FALSE:出队列失败
     parm:
    	PQueue:队列
    	pElement:记录出队元素
     desc:
    	出队
    */
    status deQueue(queue *PQueue,ElemType *pElement)
    {
        //如果队列为空,则返回false
        if(isEmpityQueue(PQueue)==TRUE)
        {
            printf("队列为空,出队失败!\n");
            return FALSE;
        }
    
        *pElement = PQueue->pBase[PQueue->front];       //先进先出
        PQueue->front = (PQueue->front+1) % PQueue->maxSize; //移到下一位置
    
        return TRUE;
    }
    
    /*
     return:
    	无
     parm:
    	PQueue:队列
     desc:
    	遍历输出队列元素
    */
    void queueTraverse(queue *PQueue)
    {
        int i = PQueue->front;           //从头开始遍历
        while(i != PQueue->rear)
        {
            printf ("\t%10d                        排队中\n", PQueue->pBase[i]);
            i = (i+1) % PQueue->maxSize;
        }
        printf("\n");
    }
    status queuefront(queue *PQueue)
    {
        if(isEmpityQueue(PQueue) == 0)
        {
            return PQueue->pBase[PQueue->front];
        }
        return -1;
    }
    

    seqStack.h

    #ifndef SEQSTACK_H
    #define SEQSTACK_H
    
    #include <stdio.h>
    #include <stdlib.h>
    #include <string.h>
    #include<assert.h>
    //进行宏定义
    /*#define STACK_INIT_SIZE  20 //空间初始分配
    #define STACK_INCREMENT 10 /// 存储空间分配增量
    #define ElemType int
    #define Status int
    #define OK 1
    #define ERROR 0
    #define TRUE 1
    #define FALSE 0
    #define OVERFLOW 0*/
    //顺序栈结构体
    typedef struct
    {
        int *base;
        int *top;
        int stacksize;
    } SqStack;
    //函数声明
    int InitStack (SqStack *S);
    int DestroyStack(SqStack *S);
    int ClearStack(SqStack *S);
    int IsEmptyStack(SqStack *S);
    int LengthStack(SqStack *S);
    int GetTop(SqStack *S);
    int Push(SqStack *S,int e);
    int Pop(SqStack *S, int *e);
    int TrverseStack(SqStack *S);
    
    #endif
    

    seqStack.c

    /*****************************
    author:***
    mail:***3370834@qq.com
    desc:栈的线性实现函数
    *****************************/
    #include "seqStack.h"
    #include "seqQueue.h"
    /*
     * return:
     * 	OVERFLOW:分配内存失败
     * 	OK:初始化成功
     * parm:
     * 	S:栈
     * desc:
     * 	初始化栈S 为栈分配空间
     * 	*/
    int InitStack (SqStack *S)
    {
        assert(NULL != S);
        (*S).base = (ElemType * )malloc(STACK_INIT_SIZE * sizeof(ElemType));
        if (NULL == (*S).base) exit(0);//内存分配失败
        (*S).top = (*S).base;
        (*S).stacksize = STACK_INIT_SIZE;
        return 1;//初始化成功
    }
    /*
     * return:
     * 	OK:销毁栈成功
     * parm:
     * 	S:栈
     * desc:
     * 	销毁栈
     * 	*/
    Status DestroyStack(SqStack *S)
    {
        assert(NULL != S);
    	free((*S).base);
    	(*S).base = NULL;
    	(*S).top = NULL;
        return OK;
    }
    Status ClearStack(SqStack *S)
    {
        assert(NULL != S);
        ElemType *index;
        (*S).top = (*S).base;
        return OK;
    }
    /*
    	return:
    		TRUE:栈为空
    		FALSE:栈不空
    	parm:
    		S:栈
    	desc:
    		判定栈是否为空
    */
    Status IsEmptyStack(SqStack *S)
    {
        assert(NULL != S);
        if ((*S).base == (*S).top) return TRUE;//栈空
        else return FALSE;//栈不空
    }
    /*
     * return:
     * 	(*S).top -(*S).base: 栈的长度
     * parm:
     * 	S:栈
     * desc:
     * 	求栈的长度
     * 	*/
    Status LengthStack(SqStack *S)
    {
        assert(NULL != S);
        return (*S).top - (*S).base;
    }
    /*
     * return:
     * 	ERROR:栈空出错
     * 	e:栈定元素
     * parm:
     * 	S:栈
     * desc:
     * 	求栈顶元素
     * 	*/
    ElemType GetTop(SqStack *S)
    {
        assert(NULL != S);
        if ((*S).top == (*S).base) return ERROR;//栈空
        ElemType e = *((*S).top - 1);//把栈定元素赋值给e
        return e;
    }
    /*
     * return:
     * 	OVERFLOW:分配内存失败
     * 	OK:插入成功
     * parm:
     * 	S:栈
     * 	e:待插入元素
     * desc:
     * 	把e入栈
     * 	*/
    Status Push(SqStack *S,ElemType e)
    {
        assert(NULL != S);
        if ((*S).top - (*S).base >= (*S).stacksize)//内存不够时额外申请内存
        {
            (*S).base = (ElemType *) realloc ((*S).base,((*S).stacksize + STACK_INCREMENT) * sizeof(ElemType));
            if (NULL == (*S).base)exit(OVERFLOW);//申请内存失败
            (*S).top = (*S).base + (*S).stacksize;
            (*S).stacksize += STACK_INCREMENT;
        }
        *((*S).top) = e;
        (*S).top ++;
        return OK;
    }
    /*
     * return:
     * 	ERROR:栈空 无法弹出
     * 	OK:弹出栈顶成功
     * parm:
     * 	S:栈
     * 	e:记录栈顶值
     * desc:
     * 	弹出栈顶值
     * 	*/ 	
    Status Pop(SqStack *S, ElemType *e)
    {
        assert(NULL != S);
        if ((*S).top == (*S).base) return ERROR;//栈空
        *e = * --(*S).top;
        return OK;
    }
    /*
     * return:
     * 	OK:输出成功
     * parm:
     * 	S:栈
     * desc:
     * 	从栈低到栈顶输出栈中元素
     * 	*/
    Status TrverseStack(SqStack *S)
    {
        assert(NULL != S);
        ElemType *index;
        for (index = (*S).base; index != (*S).top; index ++)
        {
            printf ("\t%10d                        停车中\n", *index);
        }
        printf("\n");
        return OK;
    }
    

    makefile

    main:main.o seqQueue.o car.o seqStack.o
    	gcc -g main.o seqQueue.o car.o seqStack.o -o main
    main.o:main.c seqQueue.h car.h seqStack.h
    	gcc -g -c main.c -o main.o
    car.o:car.c car.h seqQueue.h
    	gcc -g -c car.c -o car.o
    seqQueue.o:seqQueue.c seqQueue.h
    	gcc -g -c seqQueue.c -o seqQueue.o
    seqStack.o:seqStack.c seqStack.h seqQueue.h
    	gcc -g -c seqStack.c -o seqStack.o
    clean:
    	rm -fr *.o
    	rm -fr main
    

     

    展开全文
  • 停车管理系统

    2019-03-12 11:54:40
    对于不同的停车场,经营者可以根据他的停车场的具体情况来进行系统设置,一旦设置成功,并保存在初始化文件里面后,该停车管理系统就是为他这一个停车服务的。我们在满足不同用户需求的同时又做到了每个用户的...
  •  非接触式IC卡停车管理系统是一种高效快捷、公正准确、科学经济的停车管理手段,是停车场对于车辆实行动态和静态管理的综合。从用户的角度看,其服务高效、收费透明度高、准确无误;从管理者的角
  • 城市级智慧停车整体解决方案,是融合了车牌智能识别、车辆信息采集、物联网传感、移动支付、云计算等技术而打造的城市停车泊位资源管理和运营...根据使用对象的划分,本系统包括公众服务平台和停车管理平台两个子系统。
  • 重庆市城管委在停车领域已与阿里云达成战略合作,将借助ET城市大脑汇聚全市实时全量的停车资源信息,进行区域泊位信息监控和预测,并结合城市动态交通信息与交警联动,提供出行规划、流量引导、停车诱导等多种服务,...
  • 随着社会经济的快速发展,城市的交通问题日益突出,逐渐成为我国各城市普遍面临的问题之一。尤其是市中心节假日期间,大多数驾车者会因找不到...智慧停车管理系统的迅速发展为化解停车难提供新的有效手段,而智慧停...
  • 高新区城市道路停车泊位(车行道)及“荷塘月色”小区前市政用地停车场经营承包管理服务采购项目标书
  • 智能停车场管理系统采用先进技术和高度自动化的机电设备,将机械、电子计算机和自控设备以及CAN-BUS技术有机地结合起来,通过电脑管理可实现车辆出入管理、自动存储数据等功能,实现脱机运行并提供—种高效管理服务...
  • 的立体车库停车管理信息系统,一方面方便停车管理,一方面 方便立体车库的设备检查、维修以及其他售后服务,保障立体 车库的正常运行。 图形化信息系统是信息系统发展的一个趋势,以其直观、 准确、方便管理的特点受到...
  • 加州停车服务-源码

    2021-02-13 17:27:38
    该公司是一家位于加利福尼亚州Commerce的加利福尼亚停车服务公司,他们需要帮助以使其用户更具交互性,从而使其网站更易于访问和更现代。 我们重新设计了6页的页面,这些页面代表了CPS的服务和功能,包括代客泊车...
  • 停车AGV公司

    千次阅读 2018-11-15 09:08:29
    随后,怡丰机器人与南京地铁公司成功签署了国内第一个AGV机器人停车库项目,用于地铁P+R停车场。包括机器人停车,全自动停车(垂直,平面等).   2.海康机器人 海康机器人推出了“智能泊车机器人系统”,该系统由...
  • 智能停车管理系统 解决方案

    千次阅读 2020-05-16 15:34:11
    随着人们生活水平的不断提高,各种车辆的数目在不断的增加,占道违章停车的现象严重,停车管理的智能化水平较低,对停车设施的需求也在不断增加,当停车设施不满足车辆停车的需求,就会出现停车难的问题。...
  • 系统采用了B/S架构,Tomcat8.0作为运行服务器,基于J2EE标准。Eclipse4.6开发环境,...实现管理人员管理,车位管理,IC管理,固定停车管理,临时停车管理,模拟汽车出入停车场信息进行收费管理。相对完整,运行无误
  • 停车场管理尊重并保护所有使用服务用户的个人隐私权。为了给您提供更准确、更有个性化的服务,停车场管理会按照本隐私权政策的规定使用和...您在同意停车管理服务使用协议之时,即视为您已经同意本隐私权政策全部...
  • 针对目前我国城市停车系统工作...通过模块测试和整体操作,该系统可实现用户车辆的不停车通行管理停车引导、自动缴费、反向寻车、车位预订、停车场信息对外发布等功能,使停车场智能化,提高了停车效率和服务水平。
  • 停车管理 目录 关于 该项目旨在有效处理整个停车场的车辆停车服务。 车辆使用其车牌信息进行唯一标识,并在各个摄像头位置进行跟踪。 监控停放的汽车的位置,以方便参考和使用。 还计算出停车位的空位,以管理停车场...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 11,263
精华内容 4,505
关键字:

停车管理服务公司