第一篇:关于高速公路联网收费系统相关问题的探讨
关于高速公路联网收费系统相关问题的探讨
张学军甘肃紫光智能交通与控制技术有限公司
经过多年公路建设的大发展,至2006年我国高速公路已建成45300公里,以纵贯南北和横贯东西的“五纵七横”国道主干线的主骨架的高速公路格局已初具规模,许多省的高速公路网也已经基本形成。随着各省高速公路网的形成,对监控、收费、通信的建设要求也不局限于一条路的范围,而是要从全省范围规划联网监控、收费及通信建设。甘肃、江苏、浙江、广东、山东、四川、湖南等省高速公路都已实施或正在实施部分区域或全省的联网收费。交通部也于2000年颁发了《高速公路联网收费暂行技术要求》,对各省、自治区、直辖市的高速公路联网收费的规划、设计、建设和运营管理起到了规范指导作用。本文只是对联网收费建设中的一些问题进行探讨,供实施联网收费、监控、通信及省交通信息系统时参考。
一、收费管理体制
初期的高速公路某路段收费系统管理一般都采取收费站、收费所、收费分中心三级管理或者收费站、收费分中心二级管理的方式。二级管理的方式,具有机构简化、节省管理人员、房建与设备投资少的优点,收费系统网络构成层次简化、可靠性提高的优点,因此,是收费系统管理宜推荐的方式。一路一公司管理方式的推行,使业主愈来愈明确要求在能防止逃费保证正常收费的前提下尽量减少收费系统的建设投资,降低运营管理费用。在已建的收费系统中,出现了由于出入交通量较少使该站收费金额不能维持该站正常运营的现象;在经济发达、交通量较大路段的管理公司,要求减少收费运营管理人员、降低成本提高经济效益。这些都要求收费系统的管理和建设者思考新的管理方式和系统结构。在收费系统设计中就出现了减少收费站控制室人员的方式。结合部分省市高速公路网具有互通立交间距较近,收费站点多,各路段分中心管理范围较小的特点,采用弱化原模式收费站的功能,加强收费分中心管理功能的新思路,集中在收费分中心进行收费业务的管理。也就是说,取消了原收费站控制室的值班人员,实现站控制室无人值守,路段内各收费广场各车道收费员在分中心的直接监督下进行收费业务与数据的采集和处理,对各个站收费车道和广场的视频监视也是采用集中至分中心
进行监视。这种方式可以称其为部分集中式或集中式。上述二种收费管理新模式和收费系统结构,与原有设站控制室值班人员模式相比,其优点是减少了收费站控制室的值班人员,简化了收费系统的网络结构,降低了运营管理费用,便于分中心集中监督管理。但是,当管理多站的控制室或分中心某些设备或传输通道出现故障时,影响收费系统运行的范围要广一些,为了适应此种模式,对收费员的交接班业务的管理要进行相应的调整。由上分析可见,集中或部分集中方式的优点是明显的,建议在设计收费系统时应根据路网的情况和特点,优先采用。此外,在采用上述方式时,除了管理上进行调整以外,要加强分中心或集中站控制室的可靠性设计有相应的技术措施,例如采取服务器集群或双机与存储器冗余的方式,传输通道冗余保护等技术来提高系统的可靠性。
二、联网收费结算中心的建设
省收费结算中心是省域三级联网收费机构中的最上层,也是最重要的一层。结算中心要公正、准确地进行收费交易数据、通行费等的采集、结算及账务分割,要将通行费的拆分结果数据下传给每个收费中心,或者要对分中心的拆分和结算结果进行校核审定,要与指定的结算银行进行账目信息的交换与结算,建设收费结算中心是实现联网收费最重要的项目工作,也是要优先实施的工程。下面就收费结算中心的功能和网络系统构成要点进行说明。
1. 收费结算中心功能收费结算中心的基本功能有:
(1)确定收费系统运行参数,并下传给各分中心、收费站。包括费率表、车型分类、黑名单、同步时钟等系统参数。
(2)接收收费站上传的收费交换原始数据和通行费拆分数据。
(3)接收收费分中心上传的收费交易统计数据及管理数据。
(4)按规定的原则进行通行费的拆分与结算,并下传拆分结算的结果,或者对分中心提交的拆分与结算进行校核、审定。
(5)与指定结算银行进行账目信息的交换和结算。
(6)对通行券收费票证等进行管理。
(7)具有收费数据、交通量及各种管理报表的统计与打印。
(8)具有查询功能。值班员或分中心管理人员可随时查询当天或历史数据,并按要求进行显示和打印。
(9)系统具有自动数据备份功能,一旦系统受到破坏或停止运行时,可以尽快
地恢复系统运行。
(10)系统具有自诊断功能。能自动测试中心系统的工作状况,包括与各收费分中心、收费站的通道的连接状况,并且在检测到异常时自动显示和打印诊断报告。
(11)安全功能:系统能对不同层次和职责的使用及管理人员,分别设置不同的访问操作使用权限,设置不同的操作口令和密码,防止越权存取和修改,保障数据的完整性,并对值班员的操作进行存贮、记录、打印。与指定银行的数据交换或有通过公用电信网与中心进行数据通信的要有安全技术防范措施,保证数据的安全。
(12)提供内部系统及上级管理部门有关信息,实现信息共享,但与办公管理系统要有安全隔离措施。
2. 结算中心系统构成结算中心的系统构成因根据高速公路网络规模的大小、交通量大小、采用的收费技术来决定。系统的规模要以近期(一般按开通后五年)为主,并结合远期的发展,系统应具有良好的开放性和可扩展性。网络设计应注意以下几点:
(1)目前结算中心局域网宜采用千兆以太网,服务器宜采用企业级小型机组成双机冗余系统,或者由多台服务器组成的集群系统,操作系统宜采用UNIX或WIN2000Server。
(2)本地网络系统的设计宜结合监控系统并考虑本地办公自动化的需求,为办公自动化等管理应用提供网络支持。通常结算中心是和监控、通信中心同址,甚至是在一个楼的相邻楼层,当该处又有一些上级管理部门时,则收费结算中心核心交换机宜为办公管理的需求留有接口。
(3)应根据不同的业务划分子网。例如办公自动化子网应该与收费网络、监控网络隔离,结算中心的结算业务宜与通行券、票证业务用虚拟局域网分开,监控的数据宜和视频应用以VLAN分离等,这样可以提高安全性,并减少子网间不必要的信息交换。
(4)结算中心网络要高可用性,其网络宜进行冗余设计,尽量避免单点设备故障影响系统的正常运行。
(5)结算中心与各路收费分中心组成收费网络的逻辑拓扑结构应采用有备
用通道的星形结构,或者是不完全的网状结构,或者是采用两个环的自愈保护结构,才能保证收费网络的可靠性。
3. 结算中心位置的选择一个省域联网收费区域内宜有一个结算中心,通常是在省会所在市,其物理位置的选择宜从以下几方面考虑。首先,结算中心应在高速公路通信干线光传输网上,只有这样才能得到通信网络的可靠支持,以及满足不断增长的信息传输;其次,收费结算中心宜和高速公路的管理公司在一起,这样相互之间的数据交换与信息共享较易实现,其初期投资也较少,否则两者之间的通信投资会加大或增加工程的复杂性。当租用公用电信网来解决连接通道时,应考虑长期运行费用。此外,交通通利、周围无环境污染、供水供电可靠等因素也是需要考虑的。总之,结算中心位置的选择要结合本地区的实际情况,经过技术经济比较后因地制宜地确定。
三、网络管理系统
1.网管系统的必要性全省高速公路联网收费、监控系统等组成的信息网是一个较大的专用网络,监控、通信及收费中心、分中心、收费站、通信站与各级管理中心等分布省内各处,网络的规模也会随着高速公路的建设增大,设备增多,监控、通信、收费及办公自动化应用中数据、话音、图像及视频等多媒体信息急剧增长,网络也愈来愈复杂,对网络的性能要求也越来越高,管理上也会更困难。因此,为了保证网络的可靠和运行质量,满足联网收费、监控系统和办公自动化的需要,应该建设一个全省的网络管理系统,对监控、收费、通信及办公自动化等网络系统进行统一管理。建立网管系统就可以查看全网的网络连接关系,检查各种设备可能出现的故障,检测网络性能瓶颈及时作出报告,并进行自动处理或远程修复,使网络正常、高效运行。
2.网管系统的主要功能联网收费系统网管应主要包括以下管理功能:
(1)故障管理:网管系统应有自动诊断功能,监控全网络的各种设备,并能够自动发现设备的运行状况。还可以探测到位于广域网上的设备,显示哪些设备和网段工作正常,哪些部分需要引起注意,对接收到的故障事件进行分析和处理,并能执行诊断测试、故障跟踪以及故障修正。
(2)配置管理:能自动发现网络内的所有设备,能够正确地产生拓扑结构图并自动更新。提供跟踪网络变化的能力,为网络上的设备配置、安装和分配软件、修改参数,使网络管理者对网络的配置实施控制,可以改变配置以减轻拥塞分离故障。
(3)性能管理:实时监控设备状态,获取网络运行的信息及统计数据,准
确地发现系统瓶颈和潜在的性能问题,帮助系统管理人员制订正确的解决方案。
(4)安全管理:网络管理能够提供访问保护,包括授权设施、访问控制、加密及密钥管理、身份认证和安全日志记录等功能。根据收费、监控业务处理的要求严格规定谁可以访问哪些数据,可以请求何种服务,可采取影响系统的措施等,保护服务器和数据库的数据安全。
3.网管系统的组成网络管理系统主要由四部分组成:若干被管的代理,至少一个网络管理站;一种公共网络管理协议;一种或多种类别管理信息库。代理可以应用于多种设备上,例如路由器、交换机、服务器、工作站、打印机、UPS电源的后援系统等。网络管理协议是最重要的部分。当前有两种计算机网络管理协议,一种是开放系统互连组织(OSI)提出的公共管理信息及协议(CMIS/CMIP),另一种是Internet工程任务组(IETF)提出的简单网管协议(SNMP)。SNMP是TCP/IP的一个协议,是一个相当简单的请求与应答协议,它是通过网络控制站定期轮询被管理设备的新信息来工作。网络管理站是网络控制中心。管理信息库(MIB)是SNMP代理软件的存储部分,其中存储对象的信息称为变量(或称属性),管理信息库(MIB)可以分为多种类别。OSI提出的方案定义了故障管理、配置管理、计费管理、性能管理和安全管理这五个网管的功能域,对管理的框架、管理信息的定义、对象的属性与行为等都有详细的定义,但实现起来过于复杂,在实际应用中没有得到多数厂家的支持。而SNMP协议由于简单实用被迅速地推广开来,得到了广泛的支持。省高速公路信息网中宜在省中心的监控或收费LAN上配置一台网管工作站,安装相应的网管软件及SNMP网管协议,并采用远程监视(RMONV-
1、-
2、)技术对网络中的路由器、交换机等网络设备、计算机及外围设备以及这些设备上的应用程序经过被管代理进行管理。
4.网络管理方式网管可以分成集中式与分布式管理两种方式,两种方式的特点如下:
(1)分布式在省中心设置一个全网的网管中心对骨干网的路由器、交换机进行控制和管理,并对省中心的收费结算、监控的服务器、数据库系统进行管理。在各路段收费分中心设置本地网管工作站,管理分中心内的网络设备、收
费及监控的数据库、服务器和应用系统。当各节点的网络设备和服务出现故障时,首先由分中心管理员进行处理,如出现无法处理的情况,交给省网管中心管理员负责处理。其优点是层次分明,网络及故障处理是分级进行。在网管中心还可以采用冗余配置,满足大型网络管理的可靠性和连续性。但是投资较大,要与带外管理方式相结合,增加使用者的负担,不适合于中小型网络。
(2)集中式集中式管理方式只在省中心设置一个网管中心,负责全网的服务器、数据库等主机系统、网络设备及网络应用的管理。如果出现网络故障,都由网管中心管理员处理。其优点是统一管理,系统的安全性高、易管理性好,但有可能促成网络拥塞,使网管中心成为瓶颈。但是对多数省的新建高速公路通信网来说,一般不会产生网络拥塞。对于一个省高速公路联网收费、监控等网络管理方式宜结合本省通信网络的规模、通信专网的性能、维护管理人员的水平、近期远期的规划与投资来选择集中式或分布式。作者认为近期多数省高速公路网络管理还处于初期,维护管理人员少、技术水平还不高,新建高速公路通信网一般采用STM-1或STM-4等级光同步传输系统,一般不会因网管产生网络拥塞,所以宜采用集中式网络管理。此外,在各条路的监控、收费、通信的设计和实施中,应强调收费站、收费分中心路由器、局域网交换机等设备应支持SNMP协议和能远程监视(RMON),否则在实施联网收费时会无法进行网络管理影响系统的运行。对网络管理软件,宜选择著名厂商,开放性较好、有丰富开发接口、满足网管基本功能适当兼顾系统管理及应用管理的产品,以满足今后信息网络扩展的需要。
第二篇:江苏高速公路联网收费分析及问题探讨
21109205 夏雪
江苏高速公路联网收费分析及问题探讨
21109205 夏雪
一、江苏高速公路联网收费的发展
江苏省高速公路联网收费始于1999年10月,最先由沪宁高速公路(江苏段)、锡澄高速公路、江阴长江公路大桥所组成的苏南高速路网进行了应用,稍后在沂淮江、宁连、宁通等高速组成的苏北高速路网也得到了应用。这种“分路计价、一次缴费、逐车分配”联网收费制式的雏形实质上就是沪宁高速公路(江苏段)于1996年开始应用的“入口人工判型、出口检测器校核,计算机监控”的半自动收费系统,该收费技术在沪宁高速公路(江苏段)全线实现了“一卡通”,无论在沪宁高速公路的行程多长,都只需进行一次费用结算,突破以往那种途经几个收费站就需缴费几次的传统收费模式,大大节约了司乘人员的在途停留时间,有效支持了高速公路快捷功能的发挥。
之后伴随高速公路联网建设工程的实施而实行的网内道路间的联网收费,实质上是通过增加参与联网结算的站点数量,而扩大上述这种收费技术系统的应用范围,有所区别的是由于收费公路运营主体的不同,需要按行驶里程对通行费收入在对应利益主体间进行拆帐和划转,即增设了联网收费区域结算中心,这是单个道路运营主体内部联网收费模式下所没有的。
近年来,随着苏嘉杭、锡宜、宁杭、沿江等新建高速公路的加入,这种以“联网收费、分路计价、一次缴费、逐车分配”为特征的先进收费制式在苏南高速公路网的应用规模得以迅速扩大,苏北高速公路网亦同样如此,并且出于区域经济(交通)一体化发展战略考虑,相继出现部分省际收费站实行“独立收费、代为发卡”的联合收费形式,如沪宁高速公路的花桥、安亭收费站,苏嘉杭高速公路的盛泽主线收费站,这种过渡性质的省际联合收费,随着长三角区域交通一体化的深入发展,必将为真正意义上的跨省联网收费模式所替代,也就是所说的“省际一卡通”。目前江、浙、沪三省市已开始规划实施“长三角高速公路联网收费”,在上述三地高速公路网内运行的所有车辆最终只需在出口站缴纳通行费即可,免除以往在省际间多次进行的交费、领卡等手续,从而为车辆的快速通行提供了极大的方便。正在实施的沪宁高速公路(江苏段)扩建工程就已按照此规划取消了其原先与上海段交界的花桥主线站的设置。
二、江苏高速公路联网收费现状分析
经过近五年应用实践的检验,联网收费这一新技术模式的先进性在江苏高速公路网得到了充分发挥,但随着联网规模的不断扩大,在实际使用中也同时出现了一些有待解决的问题。
(一)江苏高速公路联网收费功能分析
1.联网收费大大化降低了收费服务的频次,简化了收费服务环节,优化了收费服务质量 联网收费这种征费技术有效避免了行车人在路网行程中的多次停车领卡和缴费,实现了在路网内无论行程跨越几条高速公路,均只需停车领卡、缴费各一次,对于节约顾客在途时间,提高道路服务水平,效果十分显著。
2.联网收费实现了管理资源的优化配置,提高了资源的共享水平及使用效率,令经济性得以发挥
道路联网收费令相联道路间不必建设各自的主线收费站,避免重复建设,节约大量的人、财、物资源,并省下数目巨大的日常运营费用,且每一联网收费站点的管理资源可为整个路网服务,资源的利用程度及使用效率得到很大程度的提高,满足了道路运营经济性的要求,为实现道路运营的高效益提供了支持保障。
3.支持路网互联互通功能的发挥,为实现区域交通一体化格局奠定了基础
高速公路的联网互通情况、快速转换的便利程度对道路功能的发挥至关重要,而收费领域的互联互通是实现道路联网运营的基础条件,并对构建区域一体化交通运输体系发挥举足轻重的作用。否则即使道路实现了物理意义上的联网互通,但因收费因素的制约而令行车人在每条路的终端都要停车交费,形成另一种意义上的“断头路”,运营管理未能联网互通,将令道路联网的卓越功能难以理想发挥。江苏高速公路现已实现的较大规模的联网收费,对于全省高速公路网络功能的发挥,起到了不可替代的巨大作用。
(二)联网收费中尚存的欠缺之处
1.收费服务影响因素的增多,令收费服务质量控制的难度增大。实现联网收费后,发生收费业务关联的站点大大增多,令可能导致收入流失或服务质量受损的业务差错(如入口误判、发放空卡等)发生频次急剧增加,各收费站乃至各道路运营主体对收费服务质量的控制将愈发困难。例如:沪宁高速公路江苏段自与上海段、苏嘉杭高速公路联合收费后,其所属各站发生的收费升降档及收到的空卡均数倍于联合前,这些因素对沪宁高速的收费服务质量产生了不利的影响。省内参加联网的其它道路情况也大抵如此。
2.联网收费所涉及到的不同运营主体间的交互影响,增大了各自收费管理的难度。以江苏宁沪公司为例,其通行费收入有一部分要通过锡澄、苏嘉杭、宁杭、锡宜、江阴大桥等道桥运营主体的代收实现,公司就无法对这部分收入实施严格、规范的征收管理和稽查,于本公司而言,产生了管理和稽查的盲区,故对这一部分通行费的征收质量难以进行乐观的评估,很有可能会出现由于其他征收主体管理控制环节的薄弱及收费稽查盲区的出现而导致本公司的收入隐性流失。
3.联网收费令单次计费里程得以大幅延伸,使得换卡等逃费手段所获取的不法利益更为可观,在巨大利益的驱动下,客观上更大程度地刺激了部分车辆换卡、假冒军车等逃费行为的发生。同时由于收费主体众多,协同管理的困难,很难在防范的措施和打击的力度上保持一致。
三.联网收费问题分析及对策探讨
(一)、问题的根源所在实施联网收费后,虽然在技术系统上实现了联网贯通,但管理系统(包括利益关联、协同管理等方面)未能实现真正有效的联网,尤其是各联网主体在利益机制上所应有关联性的缺位,带来了其责任的缺失,笔者认为这应是当前联网收费问题的根源所在,就整个收费路网而言,各参与联网的路桥运营主体目前尚无法实现征费管理的同一性即管理系统的联网贯通。
(二)、对策探讨
1.对网内相互代征行为实施契约化管理
将各公司于代征过程中所应享有的权利和应履行的义务通过“代征委托合同”作明确约定;将联网收费从行政性的联合转变为市场经济条件下的企业间的经营性业务联合,用合同约束取代行政文件的约束方式。按照经济规律和市场经济规则办事,应是收费联合体共同的需要。
2.建立市场经济的利益调节机制
对各联网公司完成的通行费代征业务建立量化指标考核体系,按质按量兑现劳务收益,代征劳务收入除按代征总额计提,还要按代征工作质量进行考核兑现,从“质”和“量”两个方面掌握好经济杠杆的运用。考核指标体系以各联网公司间开展的互督互查为运行平台。只有落实相关责任制的业务联合才能充分有效地发挥联合的功能,联合体才会具有生命力;只有合理的利益调节机制才能实现责任制的有效落实。而那种缺乏责任约束和利益调节的多主体间的长期联合,其效果是可以想象的。
3.重构路网收费管理组织结构,明确划分多层次管理主
体的职责
道路实施联网收费,应将路网收费管理中心视作第一层次的收费管理主体,下设协调委员会、联网收费区域结算中心、考核委员会三大职能机构,负责对网内所有道路运营主体的征费活动进行规划、组织、管理和协调,对全体联网公司负责;在此之下,由各公司作为二级管理主体,在路网收费管理中心的统一管理下,按照管理中心统一制定的操作及管理规范开展各自的征费业务和相互之间的稽查活动,并接受中心的考核及协调;在此之下,由各联网公司对其所属的收费站征费活动实施直接的业务指导和管理。通过构建层次分明、职责明确、协调有效的组织网络结构以解决联网收费中管理缺位、协调失效以及政出多门等问题。
4.在收费技术已实现同一化的基础上,通过制定详尽、统一的实务操作规范,尽快实现网内收费操作及管理的同一化
尽管联网道路所使用的是同一种收费系统技术平台,但在具体的使用中,对同一种车辆的不同车型判定、对同一车情的不同处理等均会导致政出多门,甚至会相互抵触,也就是软平台的差异性影响了各公司收费服务质量及征费工作的权威性和严肃性。路网收费管理中心应对各公司的收费业务规范进行全面梳理,对做法不一之处做最优化修订,尽快出台为全路网所遵循的收费业务及管理规范。
四、江苏高速公路联网收费发展趋势分析
当前我国高速公路建设已进入网化建设的崭新阶段,近年来江苏省每年新增高速公路通车里程均达数百公里,高速公路骨干网已初步形成,随着省内高速公路联网规模的进一步扩大,以及联网收费技术在实践应用中的不断成熟,联网收费这一先进的技术系统必将在江苏得到更大的发展,联网的规模、质量也必将得到迅速的扩大和提高,在此背景下,江苏高速公路南、北网“合二为一”,实现“全省一卡通”已成为现实的选择;同时随着长三角地区经济一体化战略的实施,以及一体化交通运输体系建设进程的快速推进,在不远的将来实现长三角高速公路联网收费将是大势所趋,相关系统的论证及规划、设计工作目前已全面展开。
江苏省高速公路南、北合网,将令全省高速公路联网畅通工程跃上一个新的台阶,公众使用省内高速公路将更加方便、快捷,路网综合效益的发挥将更为优越,对交通运输业乃至地区经济发展必将产生更为巨大的推动作用。自1999年江苏高速公路分设南、北网实施联网收费以来,通过实践应用的不断完善,技术系统已相对成熟,南、北合网的技术基础已基本具备。在合网的规划设计中,有关收费节点应作为环形路网的中断点功能进行设置。所谓环形路网的中断,就是当路网呈环形结构时,将会出现某驶入站到达某驶出站会有两种乃至更多种的路径选择,对于联网收费而言,就要通过收费节点断开的方式加以识别。路网通达程度越高,路网规模越大,环形结构就越明显,就江苏而言,高密度的高速公路网络内环形结构的出现是不可避免的,在对联网收费系统进行断开设计时,可对过江通道的功能给予侧重考虑,并考虑在其它节点进行环形断开的处理。
五、长三角跨省联网收费展望
长江三角洲经济区是目前中国经济发展速度最快、经济总量规模最大的区域之一,工商业十分发达,交通运输异常繁忙。作为国民经济的先行官,交通运输业应成为破解“长三角经济一体化”这一世纪主题的开篇之作,大规模、高投入地建设高速公路是提升运输生产力水平的一个重要途径,但通过联网收费实现区域内高速公路的联网畅通、畅行到底,则是实现交通一体化的重要先决条件。出于区域经济一体化发展的战略考虑,长三角地区实现高速公路跨省联网收费是发展的必然,也是本地区的共同利益所在,必将得到迅速的发展。
对于参与长三角联网收费的各道路公司而言,由于收费结算方面的便利将令潜在的流量市场得到开发,各家分享和共享的流量资源都将同时扩大,同时由于省际交界收费站的取消,将令各自的营运成本得以降低,这一升一降,将带来道路运营效益方面各方共赢的良好局面。
目前在长三角地区,跨省联网收费刚刚起步,已出现沪浙部分高速联网收费以及苏沪、江浙联合收费等探索性的联网收费形式,在不断摸索、完善的过程中,长三角联网收费已呼之欲出,并且各省(市)内部趋同的联网收费技术系统也为实现整个地区的大联网奠定了良好的技术基础。
在长三角跨省联网收费系统的设计方面,环形路网结构的断开、联网成员之间的协同管理以及日常运作的协调问题等将继续成为技术或管理方面的制约因素,同时还将出现各省(市)征费政策存在差异性这一新的制约因素,上述问题的妥善解决对于联网收费系统的运行是至关重要的,各省(市)应尽快地结合实践开展这些问题的研究解决,通过对技术和管理系统的同步升级改造,以尽快实现长三角跨省联网收费。
收费公路存在的现实意义在于:一方面通过将收费收入资本化和收费权资本化,以缓解公路建设资金短缺的压力,在一定程度上满足经济发展对公路基础设施建设的需求;另一方面道路收费的通行费收入被普遍用于公路的新建、改建或扩建投资,为新建项目提供稳定的融资来源。就我国的现实国情而言,收费公路的存在与发展是现实所需,并且是不可取代的。大力发展联网收费,推动收费公路事业的发展,应是当前业界责无旁贷的光荣而艰巨的使命。
第三篇:循序渐进,逐步建设宁夏高速公路联网收费系统
循序渐进,逐步建设宁夏高速公路联网收费
贾斌 张晶 王芳 王晓东
(宁夏交通信息监控中心,宁夏 银川 750001)
摘要:本文系统阐述了宁夏高速公路联网收费的建设思路、总体计划、实施建议及每一建设阶段的工作重点和工作任务,对全区高速公路机电工程的建设和具体实施具有重要的指导意义。关键词:高速公路 联网收费 建设思路引言
宁夏的高速公路建设起步于1997年,经过7年多的建设,截止2004年末,已建成通车高速公路里程达549公里,自首府银川市向周边省市贯通的高速公路网已初步形成。随着高速公路网络的不断发展和完善,高速公路联网收费系统也在逐步发展建设中。
理者对交通信息系统建设的需求不断增加,迫切需要我们改变目前的现状,尽快实现全区的联网收费。
实现高速公路网的联网收费运营管理,实现对通行费的拆分、结算、划拨、IC卡的统一发行与管理以及与之相关大量技术标准的统一问题,是宁夏高速公路联网收费建设的重要和迫切问题。合理的解决好这个问题,宁夏高速公路联网收费的现状及建设思路
宁夏高速公路机电系统建设和运营管理相对滞后于高速路网的发展,机电工程仅实施了单站收费系统,监控、通信系统尚未建设。
(1)宁夏高速公路实行建管分离,运营管理采用二级管理模式。
(2)宁夏高速公路收费系统建设均按照“单站收费、一卡通行”的原则实施。
(3)已建成通车的高速公路交通流量较小,基本为自由流状态,服务为一级水平,路网的监控、通信系统尚未建设。
随着高速公路路网规模的不断扩大、收费站的增加、业务量的增强以及交通流量的提高,以上模式将不再适应建设发展和运营管理的需要。加之近年来高速公路用户和管
对避免投资浪费,高效发挥高速公路交通工程系统的功能具有重要的意义。由于高速公路联网管理中收费、通信、监控三大系统涉及到机电工程技术发展迅猛,在各个分阶段建成通车的高速公路联网的过程中,管理衔接、收费接口、通信接口以及联合监控等问题往往容易造成先期建成的设备和后期设备无法良好兼容使用,这些问题在各条高速公路单独进行的交通工程设计中,也往往不能得到有效的解决。只有站在全区甚至全国高速公路联网管理建设的高度上,从整体实现宁夏高速公路网的管理科学、收费有效、便捷畅通、安全舒适,进行统一规划、统一设计才是解决好这一问题的根本途径。
宁夏开展高速公路联网收费建设的的研究工作比较早,在区内第一条高速公路开通之前就开始了这项工作,目的就是要解决在相当长的一段时间内宁夏高速公路联网收费建设过程中设计、建设及运营中的问题。通过大量的工作,宁夏最终确定了“单站收费、一卡通行”,待管理中心建成后“建设一段、并入一段”的总体建设思路。现阶段,宁夏的联网收费技术还只停留在收费站一级,仅仅是实现了“一卡通行”,还没有建立起联网收费运营管理的框架,完成联网收费还有许多工作。宁夏高速公路联网收费建设实施的总体计划
目前,《宁夏高速公路联网收费技术方案》、《宁夏高速公路联网收费、监控、通信系统暂行技术要求》已于2005年2月通过了交通厅的审查,从而确定了全区联网收费系统实施的技术路线和总体方案。同期宁夏高速公路管理中心作为全区联网收费的核心,其房建初步设计已通过交通厅审查,现正进行施工图设计,将于2005年开工建设。统筹、科学、合理地安排各项工程的实施,确保联网收费总中心和分中心、分中心和收费站的同步建设,全面加快全区联网收费的建设周期,是总体计划的关键问题。3.1 银川分中心建设及相应改造
要实现全区联网收费,首先要建设高速公路通信干线以及干线汇接点,以保证全线的数据传输。银川既是宁夏路网的中心,又是联网收费的中心,在通信系统上还是一个重要的汇接中心,因此银川分中心片区的通信系统有必要在第一阶段实施。同时,银川片区的通车路段里程最长、车流量最大,且片区管辖的重点路段(包括石中北段、姚叶
段、银古王线和银川绕城高速南环)已建设完成,银川片区分中心的建设时机基本成熟。另外,姚叶等路段收费系统因开通时间较长,部分设备已老化,需要更新,可以借此时机按照联网收费的技术要求进行相应改造。
所以这一阶段联网收费建设的重心应放在银川片区分中心的建设和其管辖路段机电系统的软硬件改造上。
3.2 银川片区联网收费系统的调试和试运行阶段
在银川片区分中心的建设和其管辖路段机电系统的软硬件改造完成后,可以将片区
内符合联网收费的路段接入银川分中心,逐步实现银川片区内的联网收费,并进行调试和试运行。
同时,这一阶段也是我们汲取联网收费的建设经验和培养技术队伍的重要时期。3.3 中宁、固原片区分中心建设阶段
按照规划中宁片区近期(2004-2009)建设的高速公路为210公里,固原片区近期(2004-2009)建设的高速公路为62公里,所辖路段里程较短。在这一阶段里,中宁、固原片区的高速公路网已部分开通,其建设时机也逐步成熟起来,特别是固原片区分中心。在这一阶段同样要注意建设的同步性,即中宁、固原片区分中心的建设应与所辖路段的建设同步进行。
3.4 高速公路管理中心机电工程建设和全区联网收费系统的调试、试运行、运行阶段
在银川、中宁、固原片区内联网收费的建设完成同时,宁夏高速公路管理中心房建工程也基本建设完成,通信干线网形成了自愈环保护形式,全区高速公路联网收费系统
建设时机成熟。在这一阶段可以进行高速公路管理中心机电工程和已建成、改造完毕的高速路网在全区范围内的联网调试、试运行和运行,最终实现全区的联网收费、监控和通信系统。宁夏高速公路联网收费系统第一阶段具体实施建议
4.1 第一阶段的总体实施方案与内容 4.1.1 银川分中心的建设
目前银川分中心有两种建设思路:一种是和即将建设的高速公路管理中心同址建设,另一种是在银川互通立交或银川收费站建设。考虑到总中心和分中心某些设备可以共用,选用第一种建设思路会比较经济,但不利于分期建设。
考虑到总中心和分中心同期建设的必要性以及银川片区联网收费建设时机已基本成熟,在银川互通立交或银川收费站建设银川分中心不失为一种较好的思路。按照《宁夏高速公路联网收费三大系统暂行技术要求》的标准,相对弱化银川分中心的收费系统和监控系统建设,在满足基本管理要求(如联网收费管理,重要路段、特大桥梁的监视)的基础上,逐步将银川分中心所管辖范围内的路段并网管理。这不仅可以为全区高速公路联网收费和管理中心的建设、管理积累经验,有利于培养技术管理人员,而且如以后考虑将银川分中心的管理功能上移到总中心,可把银川分中心的设备用于中宁和固原分中心的机电工程建设,避免不必要的资金浪费。
4.1.2银川片区通信系统的建设
为实现全区联网收费管理,必须首先建设银川片区管理区域的高速公路通信干线以及干线汇接点,以保证全线数据传输。4.1.3银川片区监控系统的建设
银川片区高速路网密度最大,交通流量也不断增加,为满足长期发展的要求,监控系统外场设备应按《宁夏高速公路联网收费
技术方案》中规划的服务水平二级来设置。但在具体设计上,应按“一次设计、分期实施”的原则进行。4.1.4收费软件的统一
2005年宁夏联网收费系统建设要实施三个项目,即:同固高速公路收费系统、中营高速公路收费系统、姚叶高速公路收费系统改造,同时面临一个问题——计重收费改造(含新路段的新建)问题,实施计重收费原有的软件就必须进行改造。
高速公路站级收费软件是保证系统功能和正常联网运行,以及进行系统升级改造的核心和关键,并在某种程度上反映出系统功能的优劣和建设水平的高低。目前宁夏高速公路机电工程的软件由三个承包商分路段开发,三家公司的收费软件也基本兼容。但是,考虑到全区高速公路联网收费的发展需求和目前计重收费、车牌自动识别、费率表结构更改等原因及将来的新的需求,都将引起原有收费软件的改造和升级。过多的软件承包商必将给建设单位造成协调工作量大,后期维护成本高等问题。所以,必须对全区收费软件进行统一改造。
4.1.5银川片区站级收费系统的软、硬件改造
目前银川片区内已建站级收费系统不能够满足联网收费系统的要求,要实现银川片区的联网收费必须对其进行改造,主要包括以下几方面内容:
(1)片区内站级收费系统设备的更新、改造
银川片区内已建成通车路段的收费系统因建设时期早,在新的技术条件下,已不适应全区联网收费的需求,且部分设备已老化,尤其是姚叶段收费系统更新迫在眉睫,都需按照联网收费的技术要求进行更新改造。
(2)计重收费系统的实施
实施计重收费是宁夏全区高速路网范围内的一件大事,不仅要考虑新建路段的建设,还要考虑老路段的改造,并且所要实现的计重收费应是联网计重收费系统,这就对联网收费提出了新的要求。
a)实施联网计重收费需要增加或更改
相应的车辆处理流程;
b)实施联网计重收费需要收费车道在土建、标志、设备、软件及硬件等方面进行改造;
c)实施联网计重收费需要对收费站软
件、收费总中心软件提出新的要求;
d)实施联网计重收费需要对联网收费
数据编码重新定义
所以,制定宁夏高速公路计重收费技术方案及技术要求,以保证全区收费软件的统一和联网收费的顺利进行是一项重要的工作。
(3)车牌自动识别系统的实施
实施车牌自动识别系统与实施计重收费一样,不仅要考虑新建路段的建设,而且要考虑老路段的改造。车牌自动识别系统是防止“倒换卡”等作弊方式的有效手段,即在入口,识别车牌号、抓拍图像、分割二值化图,将其存储,车牌号及二值化图写入通行卡中;在出口,识别车牌号、抓拍图像、分割二值化图,将其存储,同时读取通行卡上信息,在车控机中进行出入口的车牌号码匹配对比,若车牌不符,收费系统向收费员提示报警同时弹出出入口二值化图,收费员人工判断车辆原始图片上的重要部分——二值化图是否一致,若不一致基本可以确认是换卡车辆,再调图取证处罚。所以,实施车牌自动识别系统同样需要对现有收费车道的软硬件进行改造。
为节约建设时间和成本,避免不必要的重复,以上几项工作可在银川片区站级收费系统改造时期一并进行。
4.2银川分中心进入实施阶段后的具体工作内容
4.2.1前期准备工作
前期准备工作主要包括如下两方面的内容:
(1)根据宁夏高速公路的路网规划,科学合理地确定银川片区分中心的管理范围;
(2)要根据银川片区分中心的功能定位,做好银川分中心机电工程初步设计工作。4.2.2招标建设思路
根据银川片区分中心机电工程的主要内容工程招标可划分为两个标段:
(1)Ⅰ标段的工程范围为银川片区范围内通信系统、监控系统、分中心机电工程建设;
(2)Ⅱ标段工程范围为站级收费软件按照统一技术标准进行招标。4.3.3具体实施步骤:
(1)首先以姚叶段或银古王段为试点,结合计重收费和车牌自动识别系统的要求,对原有站级收费系统进行升级改造。待试点改造成功后,进一步推广,从而实现银川片区内所有站级收费软件的统一;
(2)其次完成银川片区范围内各条高速公路通信主干网、监控系统建设;
(3)最后完成银川片区分中心机电工程的初步设计和建设工作,实现银川片区联网收费。
4.3.4银川分中心机电工程初步设计工作内容
(1)银川分中心管辖范围内通信系统的设计;
(2)银川分中心管辖范围内监控系统的设计;
(3)银川分中心机电工程的设计;
(4)增加计重收费和车牌识别功能的站级收费软件的技术标准;
5.结束语
宁夏高速公路联网收费系统的建设是一个庞大的系统工程,资金投入大、建设周期长、参与主体多,不可能一蹴而就。在设计、招投标、施工过程中,要体现“统一规划、一次设计、分期实施、逐步联网、不断完善”的建设原则。本文所述内容可供从事高速公路机电工程建设的技术人员和管理人员参考借鉴。
参考文献:
[1]《高速公路联网收费暂行技术要求》[S],交公路发[2000] 463号,2000
[2]《高速公路交通工程及沿线设施》[S],人民交通出版社,2004
[3]《高速公路规划设计与管理》[s],哈尔滨工业大学出版社,2006
[4]《宁夏高速公路联网收费技术方案》[S],宁夏交通厅,2005
[5]《宁夏高速公路联网收费暂行技术要求》[S],宁夏交通厅,2005
第四篇:联网收费系统存在问题及解决方案
联网收费系统存在问题及解决方案
随着我国经济社会发展和全面建设小康社会的推进,交通需求将持续在一个较高的平台上增长,随着各省高速公路网的形成,对监控、收费、通信的建设要求也不局限于一条路的范围,而是要从全省范围规划联网监控、收费及通信建设。
伴着高速公路的快速建设,联网收费系统也不断地发展完善,但是还是存在着一些问题。
1、规范化施工管理。
2、系统维护管理。
3、数据安全管理。
1、规范化施工管理
由于工程招标的引入,每条路的工程通常分为三大系统,即通信系统、收费系统和监控系统,招标的结果通常为一个集成商做一个系统,当然也有一个集成商做两个,甚至三大系统全部做,如果一个集成商做,这时管理就看集成商的水平;如果是多个集成商,则他们之间如何协调,如何保证自己的部分是正确的。同时还有一个问题即外场设备的选型,怎样连线,不同的集成商选择的外场设备不一样,连线不一样,从而导致收费软件也不一样,如何规范化这些工作,是业主和有关部门应该、并且必须关心的问题,这涉及到以后系统的维护、升级。
2、系统维护管理
随着联网规模的扩大,已经出现了省际间联网,今后可能还会发展到区域大联网,甚至全国联网。联网收费实现后怎样保证收费的正常运转,同时要保证维护费用最低。
3、数据安全性和完整性
数据的安全性和完整性是非常重要的,尤其是高速公路联网收费系统,由于收费过程发生在出口收费车道,因此其现金收入发生在出口所在的收费路段业主,如果不能保证该收费数据完整的进入清算系统,这将影响其他业主的利益,影响联网收费的实施。同时高速公路上计算机管理,包括收费系统、监控系统主要是防止收费员、司机等的作弊行为,但是如果集体作弊、或业主作弊则该系统无能为力。
1、规范化施工管理解决方案
该规范化挂了主要包括以下三个方面,(1)外场设备规范化,(2)设计、施工规范化,(3)验收规范化。(1)外场设备规范化
外场设备规范化要求外场设备的功能和性能指标满足业主要求外,同时还要求其接口标准,通信协议满足标准,该标准可以全国统一制定,也可以有一个省的结算中心制定。越在上层制定,使用面越宽,设备互换性越强。(2)设计、施工规范化
集成商从设计、施工要求规范化,要有完整的图纸,同时施工图纸和实际施工要完全相同,并且其连线要求满足联网收费规范,尤其是外场设备接线。该设计、施工要能保证符合标准的折本买来安装后即可使用。(2)验收规范化
由于可能是不同的集成商施工,相互之间有狠毒连接,如通信系统是基础,收费和监控是该平台上使用,如何提高效率,减少不必要的协调,每个集成商必须提高相应的测试软件,以检查自己施工的正确性,这样可以避免相互之间矛盾,同时减少不必要的费用。所有硬件设备故障,施工为题,最终都从软件上反映出来,软件不能用,或不正确,大家都盲目的将责任推倒软件开发商身上,但真实结果并非如此。因为每个集成商必须提供相应的测试软件,以验证自己施工的正确性。
2、维护管理解决方案
随着路网规模的扩大,各路公司为了保证系统的正常运行,维护工作也正式提到议事日程,但就怎样具体运行目前仍在探索之中。就目前情况来看主要有两种维护方式,第一种由道路公司自己 的维护队伍;第二种是将维护外包。无论采用那一种模式,从业主的角度来考虑,哪一种方式性价比最高就选哪一种。
3、数据的安全性和完整性解决方案
联网收费系统再设计时就考虑了系统的安全性,如采用专网,各个服务器、客户端、操作系统、数据库和应用程序等都考虑了安全性,数据传输和保存采用、加密,或采用数据库,并且采用多级备份机制。但仍然存在许多安全漏洞,如车道计算机的硬盘上,并且为了数据的可靠性在车道计算机上通常要求数据保存一个月。由于目前车道计算机的硬盘是通用硬盘,即便数据采用加密的方式存放,虽然看不到文字,但可以很容易地将数据删除掉,这样数据的安全性和完整性就
得不到保证,因此必须对车道数据采用黑盒方式存放,并且收费软件没有黑盒不能收费,只有应用特制软件能对其操作,其他任何软件都不能访问,也不能破坏。
这就是联网收费系统所存在的一系列问题及解决方法!
交安1002班
何新花
第五篇:C语言课程设计《高速公路联网收费系统》代码
作者:吴侠志
就读院校:东莞理工学院
#include “stdafx.h” #define NUM 4 #define max_len 8 #include
char *mytime(struct tm *timeptr);
//获取系统时间的函数 void Delay(int n);//延时函数 char *filename(int startkey);void initialize(struct car *cars,int num,FILE *fp);///初始化函数 int refer(struct car *cars,int startkey);//查询
int km[10]={0,0,82,162,288,368,391,514,800,867};
/* 记录各站与首站的里程,单位:km */ double price[6]={0.0,0.6,1.2,1.8,2.4,3.0};
/* 记录各类车的里程价位,单位:元/辆公里 */ char *address[10]={“0”,“湛江”,“茂名”,“阳江”,“开平”,“佛山”,“广州”,“深圳”,“汕头”,“汾水”};char *kind[6]={“特殊车”,“一类车”,“二类车”,“三类车”,“四类车”,“五类车”};
struct car { int card_num;
/* 卡号 */ int car_type;int station_in;char time_in[26];int station_out;char time_out[26];char is_in;double money;int flag;}cars[9*NUM+1];
int num=0;int pass=0;int main(int argc, char* argv[]){ int i,key,choice,j,k,m,size;double pay,money;char enter,pwd[max_len+1],password[max_len+1],ch;FILE *fp;fp=fopen(“标记.txt”,“a+”);fclose(fp);
fp=fopen(“记录.txt”,“a+”);
fclose(fp);
printf(“t欢迎登录广东同三高速公路联网收费系统n”);printf(“┏━━━━━━━━━━━━━━━━━━━━┓n”);printf(“┃
1.湛江
2.茂名
3.阳江
┃n”);printf(“┃
4.开平
5.佛山
6.广州
┃n”);printf(“┃
7.深圳
8.汕头
9.汾水关
┃n”);printf(“┗━━━━━━━━━━━━━━━━━━━━┛n”);printf(“请选择所在站点,并输入该序号:”);int startkey;while(1){
fflush(stdin);
while(scanf(“%d%c”,&startkey,&enter)==0 || enter!='n')
{
printf(“terror!!input again:”);
fflush(stdin);
}
if(startkey==1 || startkey==2 || startkey==3 || startkey==4 || startkey==5 || startkey==6 || startkey==7 || startkey==8 || startkey==9)
{
break;
}
else
{
printf(“terror!!input again:”);
continue;
} } printf(“初始化中……”);
fp=fopen(“标记.txt”,“a+”);fscanf(fp,“%d”,&num);fclose(fp);
fp=fopen(“password.txt”,“a+”);fscanf(fp,“%d”,&pass);fclose(fp);if(pass==0)
{
} fp=fopen(“password.txt”,“w+”);fprintf(fp,“%d”,88888888);fclose(fp);
fp=fopen(“记录.txt”,“a+”);rewind(fp);initialize(cars,num,fp);
fclose(fp);Delay(5);time_t timer;struct tm *tblock,*a;timer=time(NULL);a=localtime(&timer);while(1){ system(“cls”);fflush(stdin);printf(“所在地:%s站n登录时间:%sn”,address[startkey],mytime(a));printf(“┏━━━━━━━━━━━━━━━━━━━━━┓n”);printf(“┃
1.发卡
┃n”);printf(“┃
2.检卡并收费
┃n”);printf(“┃
3.查询
┃n”);printf(“┃
4.注销并退出系统
┃n”);printf(“┃
5.退出系统
┃n”);printf(“┗━━━━━━━━━━━━━━━━━━━━━┛n”);printf(“请选择,并输入序号:”);while(1){
while(scanf(“%d%c”,&key,&enter)==0 || enter!='n')
{
printf(“terror!!input again:”);
fflush(stdin);
}
fp=fopen(“标记.txt”,“r+”);
fscanf(fp,“%d”,&num);
fclose(fp);
fp=fopen(“记录.txt”,“r+”);
rewind(fp);
initialize(cars,num,fp);
fclose(fp);
j=0;
for(i=1;i<=9*NUM;i++){
if(cars[i].is_in=='y' && cars[i].station_in!=startkey && cars[i].station_out==0)
{
j++;
break;
} } k=0;for(m=1;m<=9*NUM;m++){
if(cars[m].is_in=='n' && cars[m].station_in==0 && cars[m].station_out==startkey)
{
k++;
cars[m].flag=k;
} } if((key==1 && k>0)||(key==2 && j>0)|| key==3 || key==4 || key==5)break;else if(key==2 && j==0){
printf(“t目前尚无车辆要离站!!input again:”);
fflush(stdin);
continue;} else if(key==1 && k==0){
printf(“t目前卡片不足!!input again:”);
fflush(stdin);
continue;} else {
printf(“terror!!input again:”);
fflush(stdin);
continue;} } if(key==1){ system(“cls”);timer=time(NULL);tblock=localtime(&timer);srand((unsigned)time(NULL));//用即时的系统时间来做随机数种子.生成随机数
choice=(rand()%k)+1;//随机生成choice,格式rand()%k即要求产生k以内的
for(m=1;m<=9*NUM;m++)
{
if(cars[m].is_in=='n' && cars[m].station_in==0 && cars[m].station_out==startkey && cars[m].flag==choice)
{
break;
}
}
printf(“卡号是:%dn现在时间是:%sn”,m,mytime(tblock));
cars[m].station_in=startkey;
cars[m].station_out=0;
strcpy(cars[m].time_in,mytime(tblock));
strcpy(cars[m].time_out,“无”);
num=1;
fp=fopen(“标记.txt”,“w+”);
fprintf(fp,“%d”,num);
fclose(fp);
fp=fopen(“记录.txt”,“w+”);
for(i=1;i<=9*NUM;i++)
{
fprintf(fp,“%d %d %c %lf %d %d %st%stn”,cars[i].card_num,cars[i].car_type,cars[i].is_in,cars[i].money,cars[i].station_in,cars[i].station_out,cars[i].time_in,cars[i].time_out);
}
fclose(fp);
printf(“┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓n”);
printf(“┃0.特殊车:军警车、紧急车
┃n”);
printf(“┃1.一类车:小轿车、吉普车、的士头人货车、摩托车
┃n”);
printf(“┃2.二类车:面包车、小型人货车、轻型货车、小型客车
┃n”);
printf(“┃3.三类车:中型客车、大型普通客车、中型货车、大型豪华客车┃n”);
printf(“┃4.四类车: 大型货车、大型拖(挂)车、20英尺集装箱车
┃n”);
printf(“┃5.五类车: 重型货车、重型拖(挂)车、40英尺集装箱车
┃n”);
printf(“┗━━━━━━━━━━━━━━━━━━━━━━━━━━━━┛n”);
printf(“请选择车型,并输入序号:”);
while(1)
{
fflush(stdin);
while(scanf(“%d%c”,&size,&enter)==0 || enter!='n')
{
printf(“terror!!input again:”);
fflush(stdin);
}
if(size==0 || size==1 || size==2 || size==3 || size==4 || size==5)break;
else
{
printf(“terror!!input again:”);
continue;
}
}
cars[m].is_in='y';
cars[m].car_type=size;
fp=fopen(filename(startkey),“a+”);
fprintf(fp,“%30s%8d%12s%20snn”,mytime(tblock),m,kind[cars[m].car_type],“发卡,放行”);
fclose(fp);
fp=fopen(“标记.txt”,“w+”);
fprintf(fp,“%d”,num);
fclose(fp);
fp=fopen(“记录.txt”,“w+”);
for(i=1;i<=9*NUM;i++)
{
fprintf(fp,“%d %d %c %lf %d %d %st%stn”,cars[i].card_num,cars[i].car_type,cars[i].is_in,cars[i].money,cars[i].station_in,cars[i].station_out,cars[i].time_in,cars[i].time_out);
}
fclose(fp);
printf(“登记完毕,请发卡放行,并按任意键回到主菜单a”);
getche();
}
else if(key==2)
{
system(“cls”);
printf(“请输入卡号(按0返回):”);
while(1)
{
ch='y';
fflush(stdin);
while(scanf(“%d%c”,&choice,&enter)==0 || enter!='n')
{
printf(“terror!!input again:”);
fflush(stdin);
}
fp=fopen(“标记.txt”,“r+”);
fscanf(fp,“%d”,&num);
fclose(fp);
fp=fopen(“记录.txt”,“r+”);
rewind(fp);
initialize(cars,num,fp);
fclose(fp);
if(choice<0 || choice>9*NUM)
{
printf(“无此卡号...ntinput again:”);
continue;
}
else if(choice==0)
{
ch='n';
break;
}
else if(choice>0 && choice<=9*NUM && cars[choice].is_in=='n')
{
printf(“该卡号尚未发布...ntinput again:”);
continue;
}
else if(choice>0 && choice<=9*NUM && cars[choice].is_in=='y' && cars[choice].station_in!=startkey && cars[choice].station_out==0)
{
break;
}
else if(choice>0 && choice<=9*NUM && cars[choice].is_in=='y' && cars[choice].station_in==startkey && cars[choice].station_out==0)
{
printf(“该卡号车于%s从本站进入高速,尚在行...ntinput again:”,cars[choice].time_in);
continue;
}
else
{
printf(“terror!!input again:”);
continue;
}
}
if(ch=='n')continue;
cars[choice].station_out=startkey;
fp=fopen(“记录.txt”,“w+”);
for(i=1;i<=9*NUM;i++)
{
fprintf(fp,“%d %d %c %lf %d %d %st%stn”,cars[i].card_num,cars[i].car_type,cars[i].is_in,cars[i].money,cars[i].station_in,cars[i].station_out,cars[i].time_in,cars[i].time_out);
}
fclose(fp);
if(cars[choice].car_type==0)
{
printf(“该车于%s在%s进入高速,为特殊车,无需收费n”,cars[choice].time_in,address[cars[choice].station_in]);
}
else
{
i=abs(km[cars[choice].station_in]-km[cars[choice].station_out]);
money=cars[choice].money=i*price[cars[choice].car_type];
printf(“该车于%s在%s进入高速,需缴费%.1lf款:”,cars[choice].time_in,address[cars[choice].station_in],cars[choice].money);
fflush(stdin);
while(1)
{
while(scanf(“%lf%c”,&pay,&enter)==0 || enter!='n')
{
printf(“terror!!input again:”);
fflush(stdin);
}
if(pay>money)
{
printf(“缴付%.1lf元,找零%.1lf元...n”,pay,pay-money);
money=0;
break;
}
else if(pay { money=money-pay; printf(“缴付%.1lf元,需再缴付%.1lf元:”,pay,money); continue; } else { printf(“已缴费完毕,共收取人民币%.1lf元...n”,cars[choice].money); break; } } } timer=time(NULL); tblock=localtime(&timer); printf(“现在时间是:%sn”,mytime(tblock)); strcpy(cars[choice].time_out,mytime(tblock)); 元,请付 fp=fopen(“档案.txt”,“a+”); fprintf(fp,“%5d%12s%15s%30s%10.1lf元n”,choice,kind[cars[choice].car_type],address[cars[choice].station_in],cars[choice].time_in,cars[choice].money); fprintf(fp,“%32s%30snn”,address[cars[choice].station_out],cars[choice].time_out); fclose(fp); cars[choice].money=0; cars[choice].is_in='n'; cars[choice].station_in=0; cars[choice].station_out=startkey; strcpy(cars[choice].time_in,“无”); strcpy(cars[choice].time_out,“无”); fp=fopen(filename(startkey),“a+”); if(cars[choice].car_type==0)fprintf(fp,“%30s%8d%12s%20snn”,mytime(tblock),choice,kind[cars[choice].car_type],“收卡,放行”); else fprintf(fp,“%30s%8d%12s%20snn”,mytime(tblock),choice,kind[cars[choice].car_type],“缴费,收卡,放行”); fclose(fp); cars[choice].car_type=0; fp=fopen(“记录.txt”,“w+”); for(i=1;i<=9*NUM;i++) { fprintf(fp,“%d %d %c %lf %d %d %st%stn”,cars[i].card_num,cars[i].car_type,cars[i].is_in,cars[i].money,cars[i].station_in,cars[i].station_out,cars[i].time_in,cars[i].time_out); } fclose(fp); printf(“请收卡放行,并按任意键回到主菜单a”); getche(); } else if(key==3) { system(“cls”); refer(cars,startkey); } else if(key==4) { while(1) { system(“cls”); printf(“input password: ”); for(i=0;;) { fflush(stdin); ch=getch();if(ch=='r' || ch=='n') { break;} else if(ch=='b'){ if(i-->0) { pwd[i]=' '; printf(“b b”); //删除前个字符,光标退一个 } continue;} else if(i==max_len) { continue;} else { pwd[i++]=ch; //接收字符到密码中 printf(“*”);} } pwd[i]=' ';fp=fopen(“password.txt”,“a+”);rewind(fp);fscanf(fp,“%8s”,password);fclose(fp);if(strcmp(pwd,password)==0){ break;} else { printf(“n密码错误或空密码!!(空密码时系统规定为不能注销)n”);printf(“想再输一遍密码吗?(y or n):”);while(1){ fflush(stdin); ch=getche(); if(ch=='y' || ch=='Y') { system(“cls”); break; } else if(ch=='n' || ch=='N') { break; } else { printf(“b b”); continue; } } if(ch=='y' || ch=='Y')continue; else if(ch=='n' || ch=='N')break; } } if(ch=='n' || ch=='N')continue; i=0; for(j=1;j<=9;j++) { fp=fopen(filename(j),“w+”); fclose(fp); } fp=fopen(“记录.txt”,“w+”); fclose(fp); fp=fopen(“标记.txt”,“w+”); fprintf(fp,“%dn”,i); fclose(fp); fp=fopen(“档案.txt”,“w+”); fclose(fp); printf(“n注销成功!!n”); break; } else { fp=fopen(“记录.txt”,“w+”); for(i=1;i { fprintf(fp,“%d %d %c %lf %d %d %st%stn”,cars[i].card_num,cars[i].car_type,cars[i].is_in,cars[i].money,cars[i].station_in,cars[i].station_out,cars[i].time_in,cars[i].time_out); } fclose(fp); fp=fopen(“标记.txt”,“w+”); fprintf(fp,“%dn”,num); fclose(fp); break; } } return 0;} char *mytime(struct tm *timeptr) //获取系统时间的函数 { char wday_name[7][4]={“Sun”,“Mon”,“Tue”,“Wed”,“Thu”,“Fri”,“Sat”};static char result[29];sprintf(result,“%d年%d月%d日(%3s)%d:%d:%d ”,1900+timeptr->tm_year,1+timeptr->tm_mon,timeptr->tm_mday,wday_name[timeptr->tm_wday],timeptr->tm_hour,timeptr->tm_min, timeptr->tm_sec);return result;} char *filename(int startkey){ static char name[22];sprintf(name,“车辆处理与记录%d.txt”,startkey);return name;} void Delay(int n)//延时函数 { int i,j,k;for(i=1;i<=n;i++){ for(j=1;j<500;j++) { for(k=1;k<500;k++) { } } } } void initialize(struct car *cars,int num,FILE *fp)///初始化函数 { int i,j;if(num==0){ for(j=1;j<=9;j++) { for(i=NUM*(j-1)+1;i { cars[i].money=0; cars[i].card_num=i; cars[i].is_in='n'; cars[i].car_type=0; cars[i].station_in=0; cars[i].station_out=j; strcpy(cars[i].time_in,“无”); strcpy(cars[i].time_out,“无”); } } } else { for(i=1;i<=9*NUM;i++) { fscanf(fp,“%d %d %c %lf %d %d %st%stn”,&cars[i].card_num,&cars[i].car_type,&cars[i].is_in,&cars[i].money,&cars[i].station_in,&cars[i].station_out,cars[i].time_in,cars[i].time_out); } } } int refer(struct car *cars,int startkey)//查询 { FILE *fp;int i,j,key,num,k;char ch,enter;time_t timer;struct tm *tblock; while(1){ system(“cls”); printf(“┏━━━━━━━━━━━━━━━━━━━━┓n”); printf(“┃ ****资料查询**** ┃n”); printf(“┃ 1.里程价 ┃n”); printf(“┃ 2.汽车类型 ┃n”); printf(“┃ 3.沿线站点间里程 ┃n”); printf(“┃ 4.高速通车情况 ┃n”); printf(“┃ 5.道路交通安全法实施条例 ┃n”);printf(“┃ 6.车辆处理与记录 ┃n”);printf(“┃ 0.回到主菜单 ┃n”);printf(“┗━━━━━━━━━━━━━━━━━━━━┛n”);printf(“请选择,并输入序号:”);while(1){ fflush(stdin);while(scanf(“%d%c”,&key,&enter)==0 || enter!='n'){ printf(“terror!!input again:”); fflush(stdin);} if(key==1 || key==2 || key==3 || key==4 || key==5 || key==6 || key==0){ system(“cls”); switch(key) { case 1: { printf(“t里程价n”); for(i=1;i<6;i++) { printf(“%s:%.1lf元/公里n”,kind[i],price[i]); } printf(“nt按任意键回到查询菜单”); fflush(stdin); getche(); break; } case 2: { printf(“t汽车类型n”); printf(“一类车:小轿车、吉普车、的士头人货车、摩托车n”); printf(“二类车:面包车、小型人货车、轻型货车、小型客车n”); printf(“三类车:中型客车、大型普通客车、中型货车、大型豪华客车n”); printf(“四类车: 大型货车、大型拖(挂)车、20英尺集装箱车n”); printf(“五类车: 重型货车、重型拖(挂)车、40英尺集装箱车n”); printf(“nt按任意键回到查询菜单”); fflush(stdin); getche(); break; } case 3: { printf(“t沿线站点间里程n”);printf(“┏━━━━━━━━━━━━━━━━━━━━┓n”);printf(“┃ 1.湛江 2.茂名 3.阳江 ┃n”);printf(“┃ 4.开平 5.佛山 6.广州 ┃n”);printf(“┃ 7.深圳 8.汕头 9.汾水关 ┃n”);printf(“┗━━━━━━━━━━━━━━━━━━━━┛n”);printf(“请选择起始站,并输入序号:”);fflush(stdin);while(1){ while(scanf(“%d%c”,&i,&enter)==0 || enter!='n'){ printf(“terror!!input again:”); fflush(stdin);} if(i==1 || i==2 || i==3 || i==4 || i==5 || i==6 || i==7 || i==8 || i==9)break;else { printf(“terror!!input again:”); continue;} } printf(“请选择终点站,并输入序号:”);fflush(stdin);while(1){ while(scanf(“%d%c”,&j,&enter)==0 || enter!='n'){ printf(“terror!!input again:”); fflush(stdin);} if(j==1 || j==2 || j==3 || j==4 || j==5 || j==6 || j==7 || j==8 || j==9)break;else { printf(“terror!!input again:”); continue;} } printf(“tt里程为:%d公里.n”,abs(km[i]-km[j]));printf(“nt按任意键回到查询菜单”);fflush(stdin);getche();break; “); } case 4: { fp=fopen(”标记.txt“,”r+“); fscanf(fp,”%d“,&num); fclose(fp); fp=fopen(”记录.txt“,”r+“); rewind(fp); initialize(cars,num,fp); fclose(fp); j=0; k=0; for(i=1;i<=9*NUM;i++) { if(cars[i].station_in!=0 && cars[i].station_out==0)j++; if(cars[i].station_in!=0 && cars[i].station_out!=0)k++; } timer=time(NULL); tblock=localtime(&timer); printf(”现在时间是:%sn“,mytime(tblock)); printf(”在行车辆:共%d辆.n“,j); if(k>0)printf(”t且有%d辆车正在缴费处缴费,尚未离开.nn“,k); printf(”t以下为此高速公路通车情况.nnnn“); printf(”%5s%12s%15s%30s%10sn“,”卡号“,”车型“,”进/出站点“,”进/出时间“,”金额 fp=fopen(“档案.txt”,“a+”); rewind(fp); fflush(stdin); while(feof(fp)==0) { fflush(stdin); ch=fgetc(fp); putch(ch); } fclose(fp); printf(“t按任意键回到查询菜单”); fflush(stdin); getche(); break;} case 5: { fp=fopen(“广东省道路交通安全法实施条例.txt”,“a+”);printf(“t广东省道路交通安全法实施条例n”); } case 6: { } case 0: rewind(fp);fflush(stdin);while(1){ for(i=0;(i<4000 && feof(fp)==0)||(i>=4000 && ch!='n' && feof(fp)==0);i++){ fflush(stdin); ch=fgetc(fp); putch(ch);} if(feof(fp)==0){ printf(“nnt按任意键翻到下一页”); getche(); system(“cls”); continue;} else break;} fclose(fp);printf(“t按任意键回到查询菜单”);fflush(stdin);getche();break; printf(“%30s%8s%12s%20sn”,“时间”,“卡号”,“车型”,“处理情况”);fp=fopen(filename(startkey),“a+”);rewind(fp);fflush(stdin);while(feof(fp)==0){ fflush(stdin);ch=fgetc(fp);putch(ch);} fclose(fp);printf(“t按任意键回到查询菜单”);fflush(stdin);getche();break; } } } { return 0; break; } } } else { printf(“terror!!input again:”);continue;} if(key==1 || key==2 || key==3 || key==4 || key==5 || key==6)break;