中国道路交通网络信息查询系统
基于Android手机的实时公交查询系统设计与实现

4.4 模拟车辆终端运行效果
5 模拟手机客户端系统设计与实现
5.1 模拟手机客户端界面模块
模拟手机客户端一共有四个功能板块,分别为“登录界面(login interface)”、“线路选择(Line selection)”、“站点选择(Site selection)”、“状态选择(State selection)”,与模拟车辆终端 所不同的是,用户在选择完线路和站点后,即可跳转到地图,地图 上显示线路信息及车辆位置,系统将计算出最近的公交到达用户所 选站点的预估时间,并且显示车辆终端及手机客户端所发布的道路 交通状况,用户即可按照预估时间及实时更新的车辆位置,确定自 己出门乘坐公交的时间。而在手机客户端的状态选择中,也有四个 模块,分别为“重度拥堵(State1)”、“中度拥堵(State2)”、“轻 度拥堵(State3)”、“道路顺畅(State4)”,与模拟车辆终端相同,
2.2 系统功能
系统设计的期望功能为为使用者提供查询车辆的位置、站台信 息、发车时刻以及道路交通状况。系统的主要运行方式是:手机客 户端和模拟车辆终端向后台服务器发出的请求,后台服务器实时更 改数据库中的数据,并根据手机客户端上的请求向手机客户端反馈 信息。
3 模拟后台服务器设计
模拟后台服务器为该城市公交实时查询系统的核心,它存储着 所有信息,并担任信息更新的工作,模拟车辆终端和模拟手机客户 端的信息都将存储在这一数据库中,由它实现信息的交互与更新。 因此,模拟后台服务器的设计至关重要。模拟后台服务器的主界面 为系统后台界面,管理员登录账号后,通过点击“添加路线”、“删 除路线”、“更改路线”等,即可使用相应功能,添加或修改删除 公交线路。模拟后台服务器是一个电脑上的一个 Java 应用程序, 后面维护着一个大的总数据库,而这一数据库下是每一条公交线路 的数据,可以称之为小数据库,数据库中的数据将根据车辆终端及 手机客户端所反应的信息不断进行更新,从而实现系统的城市实时 公交查询功能。在应用投入使用前期,城市实时公交查询系统的管 理员要尽可能完善地导入城市公交地线路信息,为用户提供全面准 确地服务。
道路交通综合管控系统-平台功能

1.1平台功能1.1.1平台基础功能1・1・1.1实时视频、过车监控功能智能交通综合管控平台作为视频监控综合管控平台,具备强大而便捷的视频监控及控制功能,主要能够实现视频监控前端的接入、访问,视频的实时浏览、回放以及云台控制等功能。
1,1・1,2统计功能统计功能是系统对前端所采集的往来车辆数据信息进行分类汇总,并根据不同的业务单元的要求,以不同的形式出具统计报表,挖掘隐藏在数据背后的信息。
目前系统能够对单路口、多路口、以及不同时段的车流量进行统计,并出具柱状、曲线或列表形式的日报、周报、月报和年报表。
1,1・1.3布控管理布控功能需要通过前端抓拍点位与平台数据库相互配合,以最短的时间查找到目标对象(车辆、人员等)。
通过上级单位提供的布控数据(通常是车牌号、车辆其他属性特征、人员身份及其他特征信息),综合管控平台能够将各前端采集点所采集的车辆、人员信息与布控数据比较,用以发现布控车辆,并通过平台客户端、所连接的外部设备发出通知、提示信息。
通过布控管理界面能够实现布控配置、红名单配置、批量布控以及撤控的操作,用户能够添加、撤销布控信息,并可选不同的布控方式。
平台高级功能中支持多种布控方式,包括单一车辆布控、单双号布控、单行线布控、限时禁行布控、反向布控、强力布控等。
1・1.1.4运维管理功能智能交通综合管控平台具备运维管理功能,从平台角度而言,在实现前端点位接入并统一管理的基础上,能够实时获取设备在线状态,并当设备异常离线、网络故障时及时报警。
平台通过各类软、硬件模块支持外部报警输入接口,智能交通综合管控平台断电报警接口用户能够通过运维管理功能界面,实时了解系统及其中的各设备当前的运行状况,当系统或设备运行异常时,系统能够将异常的情况反映在信息提示列表中,用户就能够根据异常设备的情况及时采取维护措施。
1・1,1.5外部设备控制应用功能交通综合管控平台作为多功能应用的软件平台,执行常规的业务应用流程,将数据分析、处理的结果以不同形式予以展现。
国家交通物流信息共享平台介绍

国家交通运输物流公共信息共享平台介绍April 2011China communications Logistics LOGINKSystem一、平台必要性二、平台是什么三、平台如何建四、平台的进展目录五、平台的效益一、平台建设的必要性(问题、需求和使命)Necessary of LOGINK(Problem、demands & Mission)问题(Problems)企业信息化程度低,尤其是运输环节;行业数据共享困难,标准不一致,没有统一的平台,难以实现物流链全程跟踪。
出发地道路运输出口海关出口港口船公司进口港口进口海关目的地道路运输货主货代物流企业海关等行政部门出发地道路运输物流系统出口海关系统出口港口系统船公司物流系统进口港口系统进口海关系统目的地道路运输物流系统文件DB文件DB文件DB文件DB文件DB文件DB文件DB物流业务环节众多各服务系统独立、服务分散各方需要采用不同的接口访问各个系统,成本高、效率低服务标准不一、缺乏整合,难以获得全程高效服务需求(Demands)物流信息化对政府的需求推动行业信息化、推进物流信息共享,提供信息交换和共享基础服务网络基础服务网络要构建“全程平台”,解决多种运输方式,多个物流环节的信息交换和共享;要构建“全球平台”,采用国际标准,突破地域限制,行业限制;要构建“公益开放平台”,平台必须是低成本、开放的、安全可控的。
使命(Missions)由交通运输部门牵头,各省,科研单位、物流企业、IT企业等多方步调一致联合推进物流信息化建设,旨在解决物流信息交换,服务共享问题,满足物流行业信息化发展的要求,有效避免重复建设带来的资源浪费和信息孤岛,提升行业的建设和管理水平。
公共平台的任务就是建立这个框架,并负责牵头执行。
交换是核心、标准是基础、应用是关键、综合是方向、建设是要务、创新是生命。
二、共享平台是什么(架构、内容)What is LOGINK(framework、content)是一项物流信息化推动工程•通过行业扶持,改造一批国内主流物流管理软件,免费发给企业使用,以推进行业信息化、信息标准化工作;•企业也可以按照标准自行改造,接入基础交换网络;•改造后的软件都能通过基础交换网络实现单据交换和信息共享。
中德道路交通事故信息采集系统简析

5科技资讯科技资讯S I N &T NOLOGY I NFORM TI ON2008N O .11SC I ENC E &TEC HN OLO GY I NFO RM ATI O N学术论坛据世界道路协会道路安全委员会1999年的统计,全世界每年因道路交通事故而死亡的人数达70万、受伤人数超过500万,道路交通事故累计死亡人数己经超过3000万。
因道路交通事故而死亡的人数已居非自然因素死亡人数之首。
此外,还有统计数据表明,无论与如美国、日本、英国、瑞典等发达国家相比,还是与巴西、印度尼西亚、马来西亚这样的发展中国家相比,目前中国的道路交通事故次数、死亡人数及受伤人数上均居前列。
2005年我国共发生道路交通事故450,254起,死亡9.9万人,伤47万人,直接经济损失18.8亿元人民币。
无论是在世界范围内还是在我国,道路交通事故都已经成为危害人们生命与健康的重要因素之一。
1中德两国交通事故信息采集系统的简介发达国家多年前就已经意识到道路交通事故的危害性,并致力于这方面的研究,其中交通事故信息采集作为基础研究受到了各国的广泛关注,其中德国在这方面就取得了令人瞩目的成功。
与大多数国家一样,德国政府每年都会公布官方的交通事故情况及预报,但是这些公报一般以警方报告为依据。
虽然,这些警方的报告有较高的借鉴价值,但是就连德国专业的交通事故研究机构也认为它还是存在很多的局限性,例如,警方报告很少会涉及到引发事故的技术性原因、事故过程的细节、事故中车辆机械方面的反应等技术性信息,这就限制了对事故进行更加深入的专题性研究。
为了解决这一问题,德国专门组建了道路交通事故信息采集系统,成立专业的团队在事故发生的第一时间到达事故现场进行科学、高效的事故采集。
该系统所采集的内容包括几乎所有与事故有关的所有信息包括事故中人员伤亡、救治的医疗信息。
采集到的事故数据会一定的分类记录到相应的数据库中。
与警方报告相比,他们所掌握的信息面更广、更专业、研究和参考价值更高。
Gis-T信息

一、背景20世纪80年代以来,交通运输部门采用现代技术改善工作效率和质量。
同时,环境保护、经济可持续发展等影响人类生活质量和生存空间等重大问题日趋严重,而由交通所引起的环境污染、交通堵塞等问题也被人们逐渐认识,跨学科多层次的合作研究成为解决交通运输及其相关问题的基本途径。
随着社会的进步,社会经济水平不断提高,人民生活也越来越富裕,由道路、水运、铁路、航空和管道构成交通系统也越来越复杂。
在交通的规划、设计和管理中遇到许多前所未有的难题。
而交通地理信息系统(Geographic Information System for Transportation,GIS-T)的出现给新时期的交通提供了崭新的技术平台和手段。
GIS-T是以现代计算机科学、地理学、信息科学、管理科学和测绘科学为基础,并与传统的交通信息分析和处理技术紧密结合,采用数据库、计算机图形学、多媒体等最新技术,对交通地理信息进行数据处理,能够实时准确地采集、修改和更新地理空间数据和属性信息,为决策者提供可视化的支持。
GIS-T为新时期的交通行业发展提供了新的思维模式。
国务院颁布的《国家中长期科学和技术发展规划纲要(2006━2020年)》中指出,交通运输业发展思路之一是“以提供顺畅、便捷的人性化交通运输服务为核心,加强统筹规划,发展交通系统信息化和智能化技术,安全高速的交通运输技术,提高运网能力和运输效率,实现交通信息共享和各种交通方式的有效衔接,提升交通运营管理的技术水平,发展综合交通运输”。
而智能化和信息化的基础之一就是GIS-T。
交通部颁布的《公路水路交通中长期科技发展规划纲要(2006-2020年)》中给出公路水路交通科技发展目标之一“到2010年,数字交通技术实用化程度和行业管理信息化水平明显提升,集装箱多式联运和一体化运输技术明显突破,交通决策技术明显提高。
到2020年,智能化数字交通管理技术、一体化运输技术、决策支持技术整体达到国际先进水平,交通运输管理技术能够适应交通现代化的要求,全面实现决策的数字化与科学化”。
高速公路伴随式信息服务平台

技术< TECHNOLOGYD O I : 10.13439/ki.itsc.2020.12.013高速公路伴随式信息服务平台陈利红(浙江高速信息工程技术有限公司,浙江杭州310000)摘要:随着国家“新基建”政策及各省市“新基建行动方案”的出台,智慧高速发展迎来热潮,产生了越来越多、越来越精细的交通信息,为了向高速管理部门和车主提供多角度、全方位、精细化的高速信息服务,本文设计了高速公路伴随式信息服务平台平台采用L N M P的网站服 务器技术、M ashup技术和互联网开放平台等建立高效的多源交通流数据糢型,实现多终端的伴随式信息查询服务,提高高速公路服务质量,提 升公众出行服务体验。
关键词:智慧高速;伴随式信息服务;L N M P;多终端近年来,高速公路路网不断发展,高速出行优惠政策不断升 级,人们对高速出行信息服务品质的要求也不断提升。
常见的交 通信息发布系统一般由固定式指示牌、可变情报板、可变限速标 志、无线广播电台、路侧有线广播等构成。
随着智能终端、移动 网络、互联网等迅猛发展,移动互联网开放平台技术的R趋完善 和成熟,互联网思维改变了传统交通出行及高速服务方式,能提 供不受时间、空间限制的在线服务,提高交通管理的效率,改善 出行体验。
为提高信息发布的及时性、准确性、针对性,并实现 平台内信息资源的共享,建立一套高可靠、实时响应快、安全性 好、开放性好的伴随式信息服务系统十分必要,让高速公路的司 乘人员实时、快速、准确获取综合路网服务信息,提升用户出行 服务体验,从而实现为司乘人员提供更精准的服务。
一、高速公路信息服务发展现状随着互联网技术的发展,越来越多的高速司乘人员选择手机 移动端来获取高速信息服务,传统的高速公路信息发布系统,即 可变情报板、可变限速标志,不仅在数量上偏少、功能上单一,而且在布局上也有一些不尽合理之处,手机移动端可满足高速公 路司乘人员实时自主获取想要的信息服务。
中国主要交通运输网络及分布

中国主要交通运输网络及分布中国作为世界上人口最多的国家,拥有庞大的交通运输网络。
在中国,各种交通运输方式都得到了迅速发展,包括公路、铁路、航空、水运和城市轨道交通。
本文将详细介绍中国主要交通运输网络及其分布。
1. 公路网络中国的公路网络是世界上最长的,截至2020年底,全国公路总里程达到了519.81万公里,其中高速公路16.1万公里,普通国道12.5万公里,省道33.1万公里,县道37.5万公里,乡道40.9万公里。
中国的公路网络覆盖全国各地,形成了以国家高速公路网为基础,省际、城际和城乡公路为分支的四级公路体系。
国家高速公路网由“7918”工程组成,即7条放射线、9条纵线和18条横线。
这些高速公路连接了全国各地,促进了地区经济发展和人员往来。
2. 铁路网络中国高速铁路和普通铁路共同构成了世界领先的铁路网络。
截至2020年底,全国铁路营业里程14.6万公里,其中高速铁路3.8万公里。
中国铁路网络覆盖全国所有省会城市和绝大部分地级市,形成了以北京、上海、广州等大城市为中心的放射状格局。
近年来,中国高速铁路建设取得了举世瞩目的成就,如京广高速铁路、沪昆高速铁路、CRH系列高速列车等。
高速铁路的发展大大缩短了长途旅行的时间,提高了运输效率,促进了沿线城市经济的发展。
3. 航空网络中国拥有众多大型机场,形成了覆盖全国和世界各地的航空网络。
截至2020年底,中国共有238个民用运输机场,其中包括北京首都国际机场、上海浦东国际机场、广州白云国际机场等大型国际机场。
中国的航空网络连接了世界各地,每天都有大量的国内和国际航班在运行。
此外,中国还在加大对航空基础设施的投入,新建和改扩建机场,提高航空运输能力。
4. 水运网络中国拥有丰富的内河和沿海水资源,水运网络发达。
内河航道里程超过12万公里,其中长江、珠江、京杭大运河等航线具有重要的航运价值。
沿海港口则承担着国际贸易和国内物流的重要任务。
中国的主要沿海港口有上海港、深圳港、广州港、青岛港等,这些港口的货物吞吐量位居世界前列。
道路运输车辆技术服务网使用说明

道路运输车辆技术服务网使用说明(V1.2版本,发布时间:2018年9月14日)因工作需要,原“道路运输车辆燃料消耗量达标车型公告”、“营运客车安全达标车型公告”已整合为“道路运输车辆达标车型公告”(原第41-47批燃料消耗量达标车型、第5-6批营运客车安全达标车型已整合,与第1批道路运输车辆达标车型公告新增内容合并为《道路运输车辆达标车型表》,“营运客车类型划分及等级评定公告”整合工作正在进行中),全部《道路运输车辆达标车型表》均可在“道路运输车辆技术服务网”的“车型查询”栏进行查询。
现对整合后的道路运输车辆技术服务网部分模块的功能变化及使用方法简介如下*:一、道路运输车辆达标车型公告查询道路运输车辆达标车型公告全部内容可通过“车型查询”栏进行查询。
进入“道路运输车辆技术服务网”首页后,在“车型查询”栏输入拟查询车辆的型号(支持模糊查询),点击“查询”按钮,进入查询结果显示页面。
注:因道路运输车辆技术服务网升级工作正在进行中,相关功能正在完善、修改,如有变化将另行发布通知。
在查询结果页面,点击拟查询车型的任意产品型号即可查看该车型的“道路运输车辆达标车型配置、参数表”(如模糊查询的结果较多,可在上图右上角红框处,点击“箭头”进行翻页查看)。
进入“道路运输车辆达标车型配置、参数表”后,可利用浏览器的查询功能(热键Ctrl+F)根据发动机型号、外形尺寸等参数快速匹配车辆的配置信息。
需注意:1.达标车型编号规则变化为配合“道路运输车辆达标车型公告”整合工作,我中心已调整达标车型编号规则,主要变化内容如下:①达标车型编号及配置编号的对应主体变化因整合后的“道路运输车辆达标车型配置、参数表”已将同一车型的所有达标车型公告内容整合至同一页面内显示,为方便区分不同公告批次的同一型号车辆信息,现达标车型编号更改为该车型在当前批次下的唯一编号,并调整至“外观照片”项下方显示。
以BJ6103U7MHB-2为例,其在第1批的道路运输车辆达标车型表中的达标车型编号为K001616432;若该车型信息因变更、扩展等原因,在第3批道路运输车辆达标车型公告中更新发布,其达标车型编号将变化为K003xxxxxx。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
中国道路交通网络信息查询系统【问题描述】出于不同的目的的旅客对交通工具有不同的要求。
例如,因公出差的旅客希望在旅途中的时间尽可能短,出门旅游的游客则期望旅费尽可能省,而老年旅客则要求中转次数最少。
编制一个全国城市间的交通咨询程序,为旅客提供两种或三种最优决策的交通咨询。
【系统要求】(1)提供对城市信息进行编辑(如:添加或删除)的功能。
(2)城市之间有两种交通工具:火车和飞机。
提供对列车时刻表和飞机航班进行编辑(增设或删除)的功能。
(3)提供两种最优决策:最快到达或最省钱到达。
全程只考虑一种交通工具;(4)旅途中耗费的总时间应该包括中转站的等候时间;(5)咨询以用户和计算机的对话方式进行。
由用户输入起始站、终点站、最优决策原则和交通工具,输出信息:最快需要多长时间才能到达或者最少需要多少旅费才能到达,并详细说明依次于何时乘坐哪一趟列车或哪一次班机到何地。
【程序结构图】【算法分析】1.新建数据void creat_data1() //新建数据{int i;printf("请输入添加火车个数: ");scanf("%d",&t);for(i=1;i<=t;i++){printf("请输入添加火车列次: ");scanf("%s",hc[i].hnum); printf("\n"); printf("\n请输入始站:");scanf("%s",hc[i].kname); printf("\n"); printf("请输入终站:");scanf("%s",hc[i].dname); printf("\n");printf("请输入开车时间:");scanf("%s",hc[i].ktime); printf("\n"); printf("请输入到站时间:");scanf("%s",hc[i].dtime); printf("\n"); printf("请输入经历时间:");scanf("%s",hc[i].ltime); printf("\n"); }print();}2.添加数据void add1() //添加数据{char ch;do{printf("请输入添加火车列次: ");scanf("%s",hc[t+1].hnum); printf("\n"); printf("\n请输入始站:");scanf("%s",hc[t+1].kname); printf("\n"); printf("请输入终站:");scanf("%s",hc[t+1].dname); printf("\n");printf("请输入开车时间:");scanf("%s",hc[t+1].ktime); printf("\n");printf("请输入到站时间:");scanf("%s",hc[t+1].dtime); printf("\n");printf("请输入经历时间:");scanf("%s",hc[t+1].ltime); printf("\n");t++;printf("是否继续添加y/n:");getchar();ch=getchar();printf("\n");}while(ch=='y');print();}3.删除数据void delet1()//删除数据{char num1[10];int i,j,count=0;printf("输入想要删除的火车列次");scanf("%s",num1);for (i=1;i<=t;i++)if(strcmp(num1,hc[i].hnum)==0){for(j=i;j<t+1;j++)hc[j]=hc[j+1];count++;t--;}if(count==0) printf("没有列车信息!");else print();}4.迪杰斯特拉算法void ShortwstPath(int num) /*迪杰斯特拉算法最短路径函数*/ {int v,w,i,t;int final[25];int min;for(v=0;v<25;++v)/*初始化*/{final[v]=0; /*标志数组初始化*/D[v]=G.arcs[num][v].adj;for(w=0;w<25;++w)P[v][w]=0;/*设空路径*/if(D[v]<20000)/*v,v0间有边存在*/{P[v][num]=1;P[v][v]=1;/*到v的最短路径上包含v0及v*/}/*if*/}D[num]=0;final[num]=1;/*初始化,v0顶点属于B集*//*开始主循环,每次求得v0到某个v顶点的最短路径,并加v到B集*/for(i=0;i<25;++i)/*其余G.vexnum-1各顶点*/{min=20000;for(w=0;w<25;++w)if(!final[w])/*w顶点在V-S中*/if(D[w]<min){v=w;min=D[w];}/*w顶点离v0更近*/final[v]=1;/*离v0顶点最近的v加入B*/for(w=0;w<25;++w)/*更新当前最短路径及距离*/if(!final[w]&&((min+G.arcs[v][w].adj)<D[w])){D[w]=min+G.arcs[v][w].adj;/*修改D和P数组*/for(t=0;t<25;t++)P[w][t]=P[v][t];P[w][w]=1;}/*if*/}/*for*/}【程序测试】建立如下图所示的全国交通图:0.哈尔滨 1.长春 2.沈阳 3.大连 4.天津 5.北京 6.徐州7.呼和浩特8.兰州9.乌鲁木齐10.西宁11.西安 12.郑州13.上海14.南昌15.福州16.株洲17.武汉18.广州19.深圳20.柳州21.贵阳22.南宁23.成都24.昆明测试结果截图:【源代码】#include"string.h"#include"stdio.h"struct hcar{char hnum[10];char kname[10];char dname[10];char ktime[10];char dtime[10];char ltime[10];}hc[60]={{"k89", "哈尔滨", "长春", "1:00", "3:00", "2"}, {"k89", "长春", "哈尔滨", "1:00", "3:00", "2"},{"u78", "长春", "沈阳", "3:30", "6:00", "2.5"},{"u78", "沈阳", "长春", "3:30", "6:00", "2.5"},{"j67", "沈阳", "大连", "6:30", "9:00", "2.5"}, {"j67", "大连", "沈阳", "6:30", "9:00", "2.5"},{"v78", "沈阳", "天津", "9:30", "14:00", "4.5"}, {"v78", "天津", "沈阳", "9:30", "14:00", "4.5"},{"g67", "天津", "北京", "14:30", "16:00", "1.5"},{"g67", "北京", "天津", "14:30", "16:00", "1.5"},{"f67", "北京", "呼和浩特", "16:30", "23:00", "6.5"},{"f67", "呼和浩特", "北京", "16:30", "23:00", "6.5"},{"j56", "呼和浩特", "兰州", "1:00", "3:00", "2"},{"j56", "兰州", "呼和浩特", "1:00", "3:00", "2"},{"v67", "兰州", "乌鲁木齐", "1:00", "3:00", "2"},{"v67", "乌鲁木齐", "兰州", "1:00", "3:00", "2"},{"f46", "兰州", "西宁", "1:00", "3:00", "2"},{"f46", "西宁", "兰州", "1:00", "3:00", "2"},{"d49", "天津", "徐州", "1:00", "3:00", "2"},{"d49", "徐州", "天津", "1:00", "3:00", "2"},{"c44", "徐州", "郑州", "1:00", "3:00", "2"},{"c44", "郑州", "徐州", "1:00", "3:00", "2"},{"h47", "郑州", "北京", "1:00", "3:00", "2"},{"h47", "北京", "郑州", "1:00", "3:00", "2"},{"d46", "郑州", "西安", "1:00", "3:00", "2"},{"d46", "西安", "郑州", "1:00", "3:00", "2"},{"v46", "西安", "兰州", "1:00", "3:00", "2"},{"v46", "兰州", "西安", "1:00", "3:00", "2"},{"s45", "徐州", "上海", "1:00", "3:00", "2"},{"s45", "上海", "徐州", "1:00", "3:00", "2"},{"t84", "上海", "南昌", "1:00", "3:00", "2"},{"t84", "南昌", "上海", "1:00", "3:00", "2"},{"f43", "南昌", "株洲", "1:00", "3:00", "2"},{"f43", "株洲", "南昌", "1:00", "3:00", "2"},{"i45", "株洲", "武汉", "1:00", "3:00", "2"},{"i45", "武汉", "株洲", "1:00", "3:00", "2"},{"d53", "武汉", "郑州", "1:00", "3:00", "2"},{"d53", "郑州", "武汉", "1:00", "3:00", "2"},{"f67", "株洲", "广州", "1:00", "3:00", "2"},{"f67", "广州", "株洲", "1:00", "3:00", "2"},{"h76", "广州", "深圳", "1:00", "3:00", "2"},{"h76", "深圳", "广州", "1:00", "3:00", "2"},{"s45", "株洲", "贵阳", "1:00", "3:00", "2"},{"s45", "贵阳", "株洲", "1:00", "3:00", "2"},{"o56", "株洲", "柳州", "1:00", "3:00", "2"},{"o56", "柳州", "株洲", "1:00", "3:00", "2"},{"d65", "贵阳", "柳州", "1:00", "3:00", "2"},{"d65", "柳州", "贵阳", "1:00", "3:00", "2"},{"r44", "南宁", "柳州", "1:00", "3:00", "2"},{"r44", "柳州", "南宁", "1:00", "3:00", "2"},{"f56", "贵阳", "成都", "1:00", "3:00", "2"},{"f56", "成都", "贵阳", "1:00", "3:00", "2"},{"g06", "西安", "成都", "1:00", "3:00", "2"},{"g06", "成都", "西安", "1:00", "3:00", "2"},{"d97", "贵阳", "昆明", "1:00", "3:00", "2"},{"d97", "昆明", "贵阳", "1:00", "3:00", "2"},{"d67", "成都", "昆明", "1:00", "3:00", "2"},{"d67", "昆明", "成都", "1:00", "3:00", "2"}};struct plane{char pnum[10];char kname[10];char dname[10];char ktime[10];char dtime[10];char ltime[10];}pl[60]={{"k89", "哈尔滨", "长春", "1:00", "3:00", "2"}, {"k89", "长春", "哈尔滨", "1:00", "3:00", "2"},{"u78", "长春", "沈阳", "3:30", "6:00", "2.5"},{"u78", "沈阳", "长春", "3:30", "6:00", "2.5"},{"j67", "沈阳", "大连", "6:30", "9:00", "2.5"}, {"j67", "大连", "沈阳", "6:30", "9:00", "2.5"},{"v78", "沈阳", "天津", "9:30", "14:00", "4.5"}, {"v78", "天津", "沈阳", "9:30", "14:00", "4.5"},{"g67", "天津", "北京", "14:30", "16:00", "1.5"},{"g67", "北京", "天津", "14:30", "16:00", "1.5"},{"f67", "北京", "呼和浩特", "16:30", "23:00", "6.5"},{"f67", "呼和浩特", "北京", "16:30", "23:00", "6.5"},{"j56", "呼和浩特", "兰州", "1:00", "3:00", "2"},{"j56", "兰州", "呼和浩特", "1:00", "3:00", "2"},{"v67", "兰州", "乌鲁木齐", "1:00", "3:00", "2"},{"v67", "乌鲁木齐", "兰州", "1:00", "3:00", "2"},{"f46", "兰州", "西宁", "1:00", "3:00", "2"},{"f46", "西宁", "兰州", "1:00", "3:00", "2"},{"d49", "天津", "徐州", "1:00", "3:00", "2"},{"d49", "徐州", "天津", "1:00", "3:00", "2"},{"c44", "徐州", "郑州", "1:00", "3:00", "2"},{"c44", "郑州", "徐州", "1:00", "3:00", "2"},{"h47", "郑州", "北京", "1:00", "3:00", "2"},{"h47", "北京", "郑州", "1:00", "3:00", "2"},{"d46", "郑州", "西安", "1:00", "3:00", "2"},{"d46", "西安", "郑州", "1:00", "3:00", "2"},{"v46", "西安", "兰州", "1:00", "3:00", "2"},{"v46", "兰州", "西安", "1:00", "3:00", "2"},{"s45", "徐州", "上海", "1:00", "3:00", "2"},{"s45", "上海", "徐州", "1:00", "3:00", "2"},{"t84", "上海", "南昌", "1:00", "3:00", "2"},{"t84", "南昌", "上海", "1:00", "3:00", "2"},{"f43", "南昌", "株洲", "1:00", "3:00", "2"},{"f43", "株洲", "南昌", "1:00", "3:00", "2"},{"i45", "株洲", "武汉", "1:00", "3:00", "2"},{"i45", "武汉", "株洲", "1:00", "3:00", "2"},{"d53", "武汉", "郑州", "1:00", "3:00", "2"},{"d53", "郑州", "武汉", "1:00", "3:00", "2"},{"f67", "株洲", "广州", "1:00", "3:00", "2"},{"f67", "广州", "株洲", "1:00", "3:00", "2"},{"h76", "广州", "深圳", "1:00", "3:00", "2"},{"h76", "深圳", "广州", "1:00", "3:00", "2"},{"s45", "株洲", "贵阳", "1:00", "3:00", "2"},{"s45", "贵阳", "株洲", "1:00", "3:00", "2"},{"o56", "株洲", "柳州", "1:00", "3:00", "2"},{"o56", "柳州", "株洲", "1:00", "3:00", "2"},{"d65", "贵阳", "柳州", "1:00", "3:00", "2"},{"d65", "柳州", "贵阳", "1:00", "3:00", "2"},{"r44", "南宁", "柳州", "1:00", "3:00", "2"},{"r44", "柳州", "南宁", "1:00", "3:00", "2"},{"f56", "贵阳", "成都", "1:00", "3:00", "2"},{"f56", "成都", "贵阳", "1:00", "3:00", "2"},{"g06", "西安", "成都", "1:00", "3:00", "2"},{"g06", "成都", "西安", "1:00", "3:00", "2"},{"d97", "贵阳", "昆明", "1:00", "3:00", "2"},{"d97", "昆明", "贵阳", "1:00", "3:00", "2"},{"d67", "成都", "昆明", "1:00", "3:00", "2"},{"d67", "昆明", "成都", "1:00", "3:00", "2"}};; int t;//全局变量typedef struct ArcCell{int adj;char *info;}ArcCell; /*定义边的类型*/typedef struct VertexType{int number;char *place;}VertexType; /*定义顶点的类型*/typedef struct{VertexType vex[25];ArcCell arcs[25][25];int vexnum,arcnum;}MGraph; /*定义图的类型*/MGraph G; /*把图定义为全局变量*/char*sa[30]={"a","a","a","a","a","a","a","a","a","a","a","a","a","a","a","a"," a","a","a","a","a","a","a","a","a","a","a","a","a","a"};int P[25][25];long int D[25];void print(){int n;void printh();void printp();void print1();void print2();do{printf("\t\t\t时刻表\n");printf("\t~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\n"); printf("\t\t\t1.火车时刻表\n") ;printf("\t\t\t2.飞机时刻表\n");printf("\t\t\t3.退出\n");printf("\t~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\n"); printf("请输入序号选择相应操作:");scanf("%d",&n);switch(n){case 1:print1();printh();break;case 2:print2();printp();break;case 3:printf("欢迎使用\n");break;default: printf("输入错误");}}while(n!=3);}void printh(){int n;void creat_data1();void add1();void delet1();do{printf("\t\t\t火车时刻表\n");printf("\t~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\n"); printf("\t\t\t1.新建数据\n") ;printf("\t\t\t2.添加\n");printf("\t\t\t3.删除\n");printf("\t\t\t4.退出\n");printf("\t~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\n"); printf("请输入序号选择相应操作:");scanf("%d",&n);switch(n){case 1:creat_data1();break;case 2:add1();break;case 3:delet1();break;case 4:printf("欢迎使用\n");break;default: printf("输入错误");}}while(n!=4);}void printp(){int n;void creat_data2();void add2();void delet2();do{printf("\t\t\t飞机时刻表\n");printf("\t~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\n");printf("\t\t\t1.新建数据\n") ;printf("\t\t\t2.添加\n");printf("\t\t\t3.删除\n");printf("\t\t\t4.退出\n");printf("\t~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\n");printf("请输入序号选择相应操作:");scanf("%d",&n);switch(n){case 1:creat_data2();break;case 2:add2();break;case 3:delet2();break;case 4:printf("欢迎使用\n");break;default: printf("输入错误");}}while(n!=4);}void print1(){int i;printf("\t\t列次始站终站开车到站历时\n");printf("\t\t---------------------------------------------------\n");for(i=0;i<58;i++)printf("\t\t %s %s %s %s %s %s\n",hc[i].hnum,hc[i].kname,hc[i].dname,hc[i].ktime,hc[i].dtime,hc[i].l time);for(i=58;i<=(58+t);i++)printf("\t\t %s %s %s %s %s %s\n",hc[i].hnum,hc[i].kname,hc[i].dname,hc[i].ktime,hc[i].dtime,hc[i].l time);printf("\t\t---------------------------------------------------\n\n");}void creat_data1() //新建数据{int i;printf("请输入添加火车个数: ");scanf("%d",&t);for(i=1;i<=t;i++){printf("请输入添加火车列次: ");scanf("%s",hc[i].hnum); printf("\n"); printf("\n请输入始站:");scanf("%s",hc[i].kname); printf("\n"); printf("请输入终站:");scanf("%s",hc[i].dname); printf("\n");printf("请输入开车时间:");scanf("%s",hc[i].ktime); printf("\n"); printf("请输入到站时间:");scanf("%s",hc[i].dtime); printf("\n"); printf("请输入经历时间:");scanf("%s",hc[i].ltime); printf("\n"); }//sum_stu();print();}void add1() //添加数据{char ch;do{printf("请输入添加火车列次: ");scanf("%s",hc[t+1].hnum); printf("\n"); printf("\n请输入始站:");scanf("%s",hc[t+1].kname); printf("\n"); printf("请输入终站:");scanf("%s",hc[t+1].dname); printf("\n");printf("请输入开车时间:");scanf("%s",hc[t+1].ktime); printf("\n");printf("请输入到站时间:");scanf("%s",hc[t+1].dtime); printf("\n");printf("请输入经历时间:");scanf("%s",hc[t+1].ltime); printf("\n");t++;printf("是否继续添加y/n:");getchar();ch=getchar();printf("\n");}while(ch=='y');//sum_stu();print();}void delet1()//删除数据{char num1[10];int i,j,count=0;printf("输入想要删除的火车列次");scanf("%s",num1);for (i=1;i<=t;i++)if(strcmp(num1,hc[i].hnum)==0){for(j=i;j<t+1;j++)hc[j]=hc[j+1];count++;t--;}if(count==0) printf("没有列车信息!");else print();}void print2(){int i;printf("\t\t航次始站终站开机到场历时\n");printf("\t\t---------------------------------------------------\n");for(i=0;i<58;i++)printf("\t\t %s %s %s %s %s %s\n",pl[i].pnum,pl[i].kname,pl[i].dname,pl[i].ktime,pl[i].dtime,pl[i].l time);for(i=58;i<=(58+t);i++)printf("\t\t %s %s %s %s %s %s\n",pl[i].pnum,pl[i].kname,pl[i].dname,pl[i].ktime,pl[i].dtime,pl[i].l time);printf("\t\t---------------------------------------------------\n\n"); }void creat_data2() //新建数据{int i;printf("请输入添加飞机个数: ");scanf("%d",&t);for(i=1;i<=t;i++){printf("请输入添加飞机列次: ");scanf("%s",pl[i].pnum); printf("\n");printf("\n请输入始站:");scanf("%s",pl[i].kname); printf("\n");printf("请输入终站:");scanf("%s",pl[i].dname); printf("\n");printf("请输入开车时间:");scanf("%s",pl[i].ktime); printf("\n");printf("请输入到站时间:");scanf("%s",pl[i].dtime); printf("\n");printf("请输入经历时间:");scanf("%s",pl[i].ltime); printf("\n");}//sum_stu();print();}void add2() //添加数据{char ch;do{printf("请输入添加飞机列次: ");scanf("%s",pl[t+1].pnum); printf("\n"); printf("\n请输入始站:");scanf("%s",pl[t+1].kname); printf("\n"); printf("请输入终站:");scanf("%s",pl[t+1].dname); printf("\n");printf("请输入开车时间:");scanf("%s",pl[t+1].ktime); printf("\n"); printf("请输入到站时间:");scanf("%s",pl[t+1].dtime); printf("\n"); printf("请输入经历时间:");scanf("%s",pl[t+1].ltime); printf("\n"); t++;printf("是否继续添加y/n:");getchar();ch=getchar();printf("\n");}while(ch=='y');//sum_stu();print();}void delet2()//删除数据{char num2[10];int i,j,count=0;printf("输入想要删除的飞机列次");scanf("%s",num2);for (i=1;i<=t;i++)if(strcmp(num2,pl[i].pnum)==0){for(j=i;j<t+1;j++)pl[j]=pl[j+1];count++;t--;}if(count==0) printf("没有飞机信息!");else print();}void CreateUDN(int v,int a) /*造图函数*/ { int i,j; G.vexnum=v;G.arcnum=a;for(i=0;i<G.vexnum;++i)G.vex[i].number=i;G.vex[0].place="哈尔滨";G.vex[1].place="长春";G.vex[2].place="沈阳";G.vex[3].place="大连";G.vex[4].place="天津";G.vex[5].place="北京";G.vex[6].place="徐州";G.vex[7].place="呼和浩特";G.vex[8].place="兰州";G.vex[9].place="乌鲁木齐";G.vex[10].place="西宁";G.vex[11].place="西安";G.vex[12].place="郑州";G.vex[13].place="上海";G.vex[14].place="南昌";G.vex[15].place="福州";G.vex[16].place="株洲";G.vex[17].place="武汉";G.vex[18].place="广州";G.vex[19].place="深圳";G.vex[20].place="柳州";G.vex[21].place="贵阳";G.vex[22].place="南宁";G.vex[23].place="成都";G.vex[24].place="昆明";for(i=0;i<G.vexnum;++i)for(j=0;j<G.vexnum;++j)G.arcs[i][j].adj=20000;G.arcs[0][1].adj=G.arcs[1][0].adj=242;G.arcs[1][2].adj=G.arcs[2][1].adj=305;G.arcs[2][3].adj=G.arcs[3][2].adj=397;G.arcs[2][4].adj=G.arcs[4][2].adj=704;G.arcs[4][5].adj=G.arcs[5][4].adj=137;G.arcs[4][6].adj=G.arcs[6][4].adj=674;G.arcs[5][7].adj=G.arcs[7][5].adj=668;G.arcs[7][8].adj=G.arcs[8][7].adj=1145; G.arcs[8][9].adj=G.arcs[9][8].adj=1892;G.arcs[8][10].adj=G.arcs[10][8].adj=216; G.arcs[6][12].adj=G.arcs[12][6].adj=319; G.arcs[5][12].adj=G.arcs[12][5].adj=695; G.arcs[11][12].adj=G.arcs[12][11].adj=511;G.arcs[8][11].adj=G.arcs[11][8].adj=676;G.arcs[6][13].adj=G.arcs[13][6].adj=651; G.arcs[13][14].adj=G.arcs[14][13].adj=325;G.arcs[14][15].adj=G.arcs[15][14].adj=622;G.arcs[14][16].adj=G.arcs[16][14].adj=367;G.arcs[16][17].adj=G.arcs[17][16].adj=409;G.arcs[17][12].adj=G.arcs[12][17].adj=534;G.arcs[16][21].adj=G.arcs[21][16].adj=902;G.arcs[21][23].adj=G.arcs[23][21].adj=967;G.arcs[23][11].adj=G.arcs[11][23].adj=842;G.arcs[21][24].adj=G.arcs[24][21].adj=639;G.arcs[23][24].adj=G.arcs[24][23].adj=1100;G.arcs[18][16].adj=G.arcs[16][18].adj=675;G.arcs[18][19].adj=G.arcs[19][18].adj=140;G.arcs[16][20].adj=G.arcs[20][16].adj=672;G.arcs[20][21].adj=G.arcs[21][20].adj=607;G.arcs[20][22].adj=G.arcs[22][20].adj=255; }void narrate() /*说明函数*/{int i,k=0;printf("\n以下是选项:\n\n");for(i=0;i<25;i++){printf("(%d) %-10s",i,G.vex[i].place);k=k+1;if(k%4==0)printf("\n\n");}}void ShortwstPath(int num) /*弗洛伊德算法最短路径函数*/{int v,w,i,t;int final[25];int min;for(v=0;v<25;++v)/*初始化*/{final[v]=0; /*标志数组初始化*/D[v]=G.arcs[num][v].adj;for(w=0;w<25;++w)P[v][w]=0;/*设空路径*/if(D[v]<20000)/*v,v0间有边存在*/{P[v][num]=1;P[v][v]=1;/*到v的最短路径上包含v0及v*/}/*if*/}D[num]=0;final[num]=1;/*初始化,v0顶点属于B集*//*开始主循环,每次求得v0到某个v顶点的最短路径,并加v到B集*/ for(i=0;i<25;++i)/*其余G.vexnum-1各顶点*/{min=20000;for(w=0;w<25;++w)if(!final[w])/*w顶点在V-S中*/if(D[w]<min){v=w;min=D[w];}/*w顶点离v0更近*/final[v]=1;/*离v0顶点最近的v加入B*/for(w=0;w<25;++w)/*更新当前最短路径及距离*/if(!final[w]&&((min+G.arcs[v][w].adj)<D[w])) {D[w]=min+G.arcs[v][w].adj;/*修改D和P数组*/for(t=0;t<25;t++)P[w][t]=P[v][t];P[w][w]=1;}/*if*/}/*for*/}void output(int place1,int place2) /*输出函数*/{int i=1, a,b,c,d,q=0;a=place2;if(a!=place1){printf("\n最短路径从%s到%s\n",G.vex[place1].place,G.vex[place2].place);printf("\n最短距离%dm.\n",D[a]);printf("%s",G.vex[place1].place);sa[0]=G.vex[place1].place;d=place1;for(c=0;c<30;++c){gate:;P[a][place1]=0;for(b=0;b<25;b++){if(G.arcs[d][b].adj<20000&&P[a][b]) {printf("----->%s",G.vex[b].place);sa[i]=G.vex[b].place;i++;q=q+1;P[a][b]=0;d=b;if(q%4==0) printf("\n"); goto gate;}}}}}void hcaroutput() /*输出函数*/{printf("\n火车时刻表:\n");printf("\t\t列次始站终站开车到站历时\n");printf("\n\t\t---------------------------------------------------\n"); for(int k=0;k<30;k++){for(int i=0;i<58;i++)if(strcmp(sa[k],hc[i].kname)==0 && strcmp(sa[k+1],hc[i].dname)==0) {printf("\t\t %s %s %s %s %s %s\n",hc[i].hnum,hc[i].kname,hc[i].dname,hc[i].ktime,hc[i].dtime,hc[i].l time);}}printf("\n\t\t---------------------------------------------------\n");}void planeoutput() /*输出函数*/{printf("\n飞机时刻表:\n");printf("\t\t航次始站终站开机到场历时\n");printf("\n\t\t---------------------------------------------------\n"); for(int k=0;k<30;k++){for(int i=0;i<58;i++)if(strcmp(sa[k],pl[i].kname)==0 && strcmp(sa[k+1],pl[i].dname)==0) {printf("\t\t %s %s %s %s %s %s\n",pl[i].pnum,pl[i].kname,pl[i].dname,pl[i].ktime,pl[i].dtime,pl[i].l。