第一篇:第二组省域高速公路联网收费系统可行性报告
长永高速联网收费系统可行性研究报
第二组
成员及分配
查找资料:谢重望张立
World整理:张丽娜(组长)
PPT制作:刘君方赞
引言
我国实行对外开放方针以来,交通日益成为国家快速发展的重要前提,国内的高速公路里程逐年增长。经过多年公路建设的大发展,至2001年我国高速公路已建成19,437公里,以纵贯南北和横贯东西的“五纵七横”国道主干线的主骨架的高速公路格局已初具规模,许多省的高速公路网也已经基本形成。随着各省高速公路网的形成,对监控、收费、通信的建设要求也不局限于一条路的范围,而是要从全省范围规划联网监控、收费及通信建设。高速公路联网收费系统已经成为一种必然趋势。
长永高速公路简介
【长永高速公路】起于长沙县牛角冲,止于浏阳市永安镇。西连长沙湘江二桥东接线,东与浏永超二级公路相接,全长22.25公里。长永公路长沙-黄花机场段,西起牛角村,东至长沙县谷塘,在谷塘以互通式立交桥与全长3.24公里的支线连结黄花机场,全长17.9公里。该段公路竣工通车,改善了长沙市东出口的交通条件,缩短了长沙市区至黄花机场的距离。浏阳至黄花国际机场则不到30分钟。
长永高速公路可行性前提
一、长永高速横贯长沙经济技术开发区,将星沙城区一分为二。为消除高速公路对两侧城区的分割,提升城市品位,改善投资环境,同意建设长永高速星沙段下穿城市改造项目。
二长永高速星沙段下穿城市改造项目采用框架结构分段将长永高速两侧相连,顶层为休闲广场,中间层为停车场,下层为高速公路
长永高速公路收费站现有收费系统是
1,湖南省从2002年11月28日起,在京珠、长永高速启动“一卡通”收费方式,沿途部分收费站将被撤并。进入京珠湖南段和长永高速公路的车辆就不必在各个道口分别付费了,车辆只要在高速入口收费站办卡以后,就可以经过湖南境内所有道口。同时,京珠湖南段、长永高速路首尾收费站中间不设收费站。
2,不是从京珠进入湖南长永高速公路的车辆所通过的收费站采用半自动收费方式,即人工判别车型、计算机计费、人工收费。
长永高速公路收费站
建议长永高速公路收费站实施的联网收费系统是:
电子不停车收费
不停车收费系统(ETC, Electronic Toll Collection),是指车辆在通过收费站时,通过车载设备实现车辆识别、信息写入(入口)并自动从预先绑定的IC卡或银行帐户上扣除相应资金(出口),是国际上正在努力开发并推广普及的一种电子收费系统。
社会方面的可行性及投资效益的可行性
使用电子不停车收费技术,每辆车交易时间仅2-3秒,可以节省车辆在收费口停车、交费、找零花费的时间。据预测,车道通行能力最高可达1800辆/小时,可以有效地解决高速公路收费口拥堵的问题。
同时,使用电子收费,可以提高工作效率,降低人为因素的干扰,也减少司机与收费人员的纠纷。它极大地减少人力、物力投入成本,提升了收费点的管理和服务水平,为广大司乘人员提供便捷的通行和支付方式。电子不停车收费系统是国际上正在努力开发推广的一种用于公路、大桥和隧道的电子自动收费系统,也是目前世界上最先进的路桥收费方式。要不停车缴费须办车载电子标签和湘通卡
需要提醒司机朋友的是,要想真正实现畅通无阻,车主必须同时具有湖南省高速公路联网收费管理中心面向社会发行的车载电子标签和湘通卡。
电子标签是用来记载车辆信息,与ETC专用车道内安装的专用设备进行通讯的车载设备。车主需携带车辆行驶证原件和复印件,驾驶申办车辆去营业厅办理。湘通卡卡内记载用户信息,是用于高速公路通行费支付的专用IC卡。它有记账卡和储值卡两种。记账卡可以与银联卡直接绑定,这样车主就用不着向IC卡充值,系统将直接在银联卡里扣通行费。储值卡需在卡内预存通行费,车辆在通过高速公路收费站时,系统直接从卡内扣除当次通行费。办理湘通卡只需提供证明材料原件和复印件去营业厅申请、交费即可。
高速公路联网收费的意义和必要性在于:
1.高速公路联网收费提高了高速公路的使用效率,提高了车辆通行能力,缩短行车时间,充分发挥了高速公路高效快捷的特点;
2.高速公路联网收费提高了高速公路收费管理水平,减少了许多中间主线站收费,降低了运营成本,堵住了收费管理的漏洞,防止资金的流失;
3.高速公路联网收费可以对全路网进行监控,大大提高了指挥处理突发大型交通事件的能力;
4.高速公路联网收费提高了高速公路服务质量,方便车辆通行,使车辆运行更加快捷、安全;
5.高速公路联网收费节约收费站和各种设备的投资,减少收费员的开支;
6.高速公路联网收费减少车辆停车的次数,从而减少汽车尾气排放,减少环境污染;
7.高速公路联网收费还解决了目前其他收费模式的诸多问题,处理好高速公路服务与收费的关系,扭转人们心目中高速公路到处设卡收费的不良形象,将产生巨大的经济效益和社会效益
总结
高速公路联网收费系统提高了高速公路的使用效率和车辆通行能力,使车辆运行更加快捷、安全,充分发挥了高速公路高效快捷的特点;同时,也提高了高速公路收费管理水平,减少了许多中间主线站收费,降低了运营成本,堵住了收费管理的漏洞,防止资金的流失;高速公路联网收费还解决了目前其他收费模式的诸多问题,处理好高速公路服务与收费的关系,扭转人们心目中高速公路到处设卡收费的不良形象,将产生巨大的经济效益和社会效益。所以高速公路联网收费系统是一种必然的趋势。
第二篇:关于高速公路联网收费系统相关问题的探讨
关于高速公路联网收费系统相关问题的探讨
张学军甘肃紫光智能交通与控制技术有限公司
经过多年公路建设的大发展,至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),否则在实施联网收费时会无法进行网络管理影响系统的运行。对网络管理软件,宜选择著名厂商,开放性较好、有丰富开发接口、满足网管基本功能适当兼顾系统管理及应用管理的产品,以满足今后信息网络扩展的需要。
第三篇:循序渐进,逐步建设宁夏高速公路联网收费系统
循序渐进,逐步建设宁夏高速公路联网收费
贾斌 张晶 王芳 王晓东
(宁夏交通信息监控中心,宁夏 银川 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
第四篇:高速公路收费系统完工报告
高速公路收费系统完工报告
一、项目概况
武汉左岭至花湖高速公路起于左岭镇新桥村,接武汉市和平至左岭高速公路武汉段的终点,向东依次经过左岭镇、葛店开发区、华容镇、华容区蒲团乡、杜山镇、鄂州市鄂城区泽林镇、花湖镇,终点接大广高速公路鄂东长江大桥南引线之花湖互通。项目主线全长约55公里,采用双向四车道高速公路标准建设。
二、工程范围
本项目工程范围为湖北汉鄂高速公路收费站系统设备的提供、运输、安装、调试、开通、试运行、培训、提供资料、交付使用、维修、提供备件等。
本项目收费系统与湖北省高速公路网联网收费,收费制式及技术标准符合湖北省高速公路联网收费暂行技术规定。全线收费系统包括鄂州收费站、鄂州西收费站、华蒲收费站、葛店收费站、鄂州东收费站。
收费系统设备(见附件)
三、施工概况
本机电工程(开工日期2012年7月7日,完工日期为2012年12月30日)。
项目部于成立后,我部工作人员积极深入现场,进行勘查,发现问题及时会同监理、业主、设计单位进行沟通,对照图纸进行修改,及时的完成了对施工图纸的联合设计。
汉鄂高速机电工程由于施工条件复杂,前期的土建、房建工期由于种种客观原因比原定计划严重滞后,给我司的工期进度造成较大的压力。在此情况下我部从大局出发,急业主所急,加紧制定了应急时期的抢工计划,在工程后期,施工界面集中提供,已经不允许按照原计划按部就班地开展工作,我部紧急抽调施工人员和机具赶赴现场,开展多作业面的平行施工、交叉施工,终于保质保量地完成了项目中的全部设备安装调试工作。
在具体调度中狠抓施工中的彼此衔接部分,紧密协调设备材料供应、外场土建、线缆敷设、设备安装、系统调试等各环节、各工序的衔接配合,避免出现等工、窝工的现象,以尽可能短的时间完成施工安装工作。
在全局调度中,项目部将整个工程划分为三个阶段,即前期施工界面的协调、施工准备;中期全面铺开现场施工;后期处理系统联调。
第一阶段,各分项施工负责人、技术负责人及时深入施工现场,及时了解掌握施工界面提供的情况,积极提建议、想办法,配合兄弟单位完善各项机电工程的施工界面,并针对施工界面的变化情况,及时提供提出机电的现场调整方案,为后续工作的顺利展开打下坚实的基础。
第二阶段,集中全部施工力量,按照工程界面提供的顺序,全面开展施工安装工作,做到界面提供一部分,就及时跟进施工一部分,全局观念贯穿与整个施工进程之中,满足了业主对工程进度的各项要求。
第三阶段,调集专业施工技术人员、各专用设备供货商技术人员,进行设备调试,确保机电系统的各项功能指标达到设计要求。
四、分项工程自检测试
1、本系统设备安装调式完成后,我部对所有监控系统设备进行自检测试。
自检项目为:入口车道设备、出口车道设备、IC卡发卡编码系统、收费站(分中心)计算机设备及软件、内部有线对讲及紧急报警系统、闭路电视监视系统、收费站设备及软件。
2、在测试过程中,我们严格依据交通部《公路工程竣(交)工验收办法》、《公路工程质量检验评定标准》、交通部颁发的相关规范、规程以及招投标文件要求进行检查和测试,测试记录详细准确,我部人员按照测试项目结果都逐一进行记录。经自检测试评定,所有分部、分项工程全部合格。
五、完工资料的整理
1、工程施工技术资料的整理应始于工程开工,终于工程竣工,真实记录施工全过程,采用表格方式分类组卷。
2、工程质量保证资料的整理按专业特点,根据工程的内在要求,进行分类组卷。
3、工程检验评定资料的整理按单位工程、分部工程、分项工程划分的顺序,进行分类组卷。
4、竣工图的整理按竣工验收的要求组卷。
2012年12月底圆满完成了汉鄂高速公路机电工程的施工任务,并按时于2013年元月1日正式全线贯通通车。
作为汉鄂高速公路机电工程的总承包单位,在这里我们对各级领导.业主单位各部门以及各相关施工单位对我部给予的支持和帮助表示衷心的感谢。
第五篇: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;