




已阅读5页,还剩56页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
浙江工业大学本科毕业设计说明书 论文 公交换乘系统设计与实现毕业论文公交换乘系统设计与实现毕业论文 目录目录 摘要摘要 I ABSTRACT I 第一章第一章 绪论绪论 1 1 1研究背景及意义 1 1 2国内外研究现状 2 1 3本文的主要工作 3 1 4本文的组织结构 4 1 5本章小结 4 第二章第二章 方法与技术方法与技术 5 2 1STRUTS2 框架简介 5 2 2HIBERNATE框架 6 2 3SPRING框架 7 2 4框架之间的有机整合 8 2 5JQUERY技术 8 2 6百度地图 JAVASCRIPTAPI 9 2 7开发环境 10 2 7 1服务器端环境要求 10 2 7 2客户端环境要求 10 2 8开发原则 10 2 9本章小结 11 第三章第三章 公交换乘系统需求分析公交换乘系统需求分析 12 3 1系统简介 12 3 1 1 系统功能概述 12 3 1 2 公交换乘算法的研究 14 3 1 3 公交数据的分析 17 3 2系统使用对象及用例图 19 3 3系统的总体框架 21 3 4本章小结 22 第四章第四章 公交换乘系统概要设计公交换乘系统概要设计 23 4 1系统功能结构 23 4 2系统架构设计 24 4 3系统数据库设计 25 4 4本章小结 29 第五章第五章 公交换乘系统详细设计公交换乘系统详细设计 30 浙江工业大学本科毕业设计说明书 论文 I 5 1项目开发规范 30 5 2系统功能模块详细设计 32 5 2 1信息查询模块 33 5 2 2换乘查询功能模块 34 5 3算法的具体实现 35 5 4本章小结 38 第六章第六章 公交换乘系统实现公交换乘系统实现 39 6 1系统界面实现 39 6 2系统功能模块的实现 40 6 2 1 系统信息查询主界面的实现 40 6 2 2 站点查询模块的实现 41 6 2 3 线路查询模块的实现 42 6 2 4 换乘方案查询模块的实现 42 6 2 5 公交数据管理模块的实现 44 6 3本章小结 45 第七章第七章 系统测试系统测试 46 7 1系统测试 46 7 1 1公交站点查询 46 7 1 2公交线路查询 47 7 1 3公交换乘方案查询 48 7 2本章小结 49 第八章第八章 总结总结 50 8 1完成的工作 50 8 2存在的问题及下一步工作 51 致谢致谢 54 附录附录 55 附录 1 毕业设计文献综述 55 附件 2 毕业设计开题报告 55 附件 3 毕业设计外文翻译 中文译文与外文原文 55 浙江工业大学本科毕业设计说明书 论文 图目录图目录 图 2 1HIBERNATE核心接口 7 图 2 2 百度地图调用图 10 图 3 1 几种换乘情况 17 图 3 2 完全的双向线路 17 图 3 3 完全的单向线路 18 图 3 4 单 双线结合的线路 18 图 3 5 不同线路上的邻近站点的分布情况 19 图 3 6 管理员管理子系统用例图 20 图 3 7 普通用户查询子系统用例图 20 图 3 8 系统 B S 结构图 21 图 4 1 系统功能结构图 23 图 4 2 STRUTS2 SPRING HIBERNATE架构 24 图 4 3 系统数据表关系结构 26 图 4 4 系统数据表 E R 图 29 图 5 1 系统包的命名规则 31 图 5 2 JAVA文件命名规则 31 图 5 3 系统总体设计结构图 32 图 5 4 算法流程图 37 图 6 1 系统首页 39 图 6 2 管理员登陆主界面 39 图 6 3 管理员登陆主界面 40 图 6 4 公交查询页面 40 图 6 5 站点查询地图显示 41 图 6 6 站点文本信息 41 图 6 7 线路地图信息 42 图 6 8 起点终点模糊查询结果 43 图 6 9 方案文本信息 43 图 6 10 方案地图信息 43 图 6 11 导航栏 44 图 6 12 站点管理页面 44 图 6 13 线路管理页面 1 45 图 6 14 线路管理页面 2 45 图 7 1 站点查询地图显示 46 图 7 2 站点文本信息 47 图 7 3 线路地图信息 47 图 7 4 起点终点模糊查询结果 48 图 7 5 方案文本信息 48 图 7 6 方案地图信息 49 浙江工业大学本科毕业设计说明书 论文 表目录表目录 表 4 1 数据库表清单 25 表 4 2 管理员表 26 表 4 3 线路表 27 表 4 4 站点表 27 表 5 1 系统目录规划表 30 浙江工业大学本科毕业设计说明书 论文 0 第一章第一章 绪论绪论 1 1 研究背景及意义研究背景及意义 随着现代城市化的发展与建设 公交查询系统得到空前的发展 在日常生 活中占有越来越多的地位 随着政府对公交事业的越来越支持 公交事业得到 很大的发展 最明显之处就是公交线路和公交车数量不断增加 市民的出行也 越来越方便 但是公交事业的发展也会带来一些问题 由于公交车数量的庞大 使得更新公交信息也会比较频繁 人们查询公交信息大多停留在问路人 查看 交通图或站牌等常规方法 1 这样就根本无法保障信息的准确性和有效性 也就 更加不能得到合理的乘车方案 另一方面也比较常见 当人们到达另一个陌生 的城市时 出行采用公交车时 需要对该城市的公交线路站点等信息进行了解 但是如何能快速得到自己想要的信息 这时就需要一款基于网络的智能公交查 询系统 2 4 那么人们可以通过网络轻而易举地获取公交信息 随着政府对交通运输业的越来越重视 对智能交通系统的功能要求和需求 也越来越大 必须要有有效的数据管理和分析能力 才能对日常公交运营的高 效率管理 方案规划和车辆调度的科学决策提供有效的保障 也能对公交系统 的管理人员提供安全可靠的系统查询 历史数据分析等服务 同时也为决策者 制定交通政策及规划线路提供了有利的条件 5 对乘客尤其是对外来旅行者提供 友好高质量的信息咨询服务以及信息发布能力 最典型的就是为公众提供各种 公交查询服务 浙江工业大学本科毕业设计说明书 论文 1 1 2 国内外研究现状国内外研究现状 从 1960 年开始 国外公交智能系统逐渐发展 美国 日本以及欧洲的部分 国家在公交智能研究方面日新月盛 伴随着居民私家车的拥有量快速增长 交 通问题也不断地恶化 运输压力沉重 道路车辆拥挤 交通事故频发等 因此 为了发展城市交通业 发展公共交通成为了大部分国家首选的解决方式 为了 能够让老百姓们出行重新选择公交车 政府们也是下了一番苦心 在交通运输 方面制定了相关政策 这些举措不但能提高公交的运营水平 还引进了先进的 技术和设备 公交智能化的研究也因此拉开了序幕 日本在这方面研究起步最 早 在 70 年代初 日本研制出了一种安装在公交车上的公交定位系统 它的工 作原理是 当公交车运行到调度站的前一站时 能通过无线通讯的方式将车辆 信息传回调度站 智能化的雏形因此产生 在 80 年代 日本研制出了一种安装 在公交车上面的乘客自动计数器的设备 每趟运营都可以记录上下车的客流量 非常有利于公交管理部门实时掌握客流情况 并且制定相应的调度决策 到了 90 年代 为了重新赢得乘客对公交的青睐 扭转公交行业竞争力日渐下降的趋 势 东京的交通开发院经过数月的奋斗研制出城市公交车综合运输控制系统 CTCS 不仅使得日本的公交运营面貌得到很大的改善 也使瘫痪很久的公 交行业重新崛起 美国在公交智能化方面的研究是从 80 年代启动的智能公共交 通系统的项目开始的 其中电子收费 出行者信息 以及对车队需求的管理是 美国公交智能化方面的主要研究方面 从 1980 年开始 欧洲部分国家也效仿美 日两国相继开始了智能公交系统的研究 但是与之前两国不同的是 由于欧洲 国家道路狭窄 政府将公交智能化研究重点放在了建设公交专用道和公交信号 上 并且取得了很好的成果 我国从事公交智能化方面的研究相对较晚 所以这方面的研究水平也较国 外比较落后 城市交通的发展一直没有得到政府的重视 政府没有及时意识到 公交车事业的发展对城市交通发展中的巨大推动作用 截止到 2000 年 我国公 交车总量为 23 万辆 而公交车的平均拥有量仅为 0 7 辆每千人 而在发达国家 浙江工业大学本科毕业设计说明书 论文 2 公交车的人均拥有量已经达到 1 25 辆每千人 6 相比国外的公交事业发展 我 国不仅在公交智能研究方面较晚 还在管理水平上与国外存在着差距 但随着 近几年政府对公交事业发展的各种政策颁布以及对公交运营方面的投入力度慢 慢加大 为鼓励公交企业发展 在很多大中小城市发放公交补贴 不仅如此 随着政府对公交事业的大力支持 在理论研究方面 为实现公交查询越来越方 便 国内的学者也开始对公交调度问题进行了大量的算法研究 陈箫枫 蔡树 云等针对解决最短路径方面提出以往的最短路径算法不能实现公交线路的查询 7 并提出了更适合的公交查询的具体方案 高为民 何小虎等建立了用蚁群算法求解 最短路径的具体步骤 并将其算法与公交查询相结合 8 伍雁鹏 彭小奇等人 采用集合算法原理 提出了改进的基于关系数据库技术的公交查询算法 所得 方案保证了换乘次数最少 9 鲍江宏 关毅璋等提出了基于矩阵运算的公交查询 高效算法 10 1 3 本文的主要工作本文的主要工作 本文是借鉴国内外相关方面的研究成果 采用当前最流行的技术作为科学 依据 从以下几个方面论文本文所做的主要工作 1 SSH 框架介绍 主要是对 SSH 的各个子框架功能介绍 包括对 Struts2 Hibernate Spring 三大框架的功能 内部机制等介绍 2 采用 JSP Java 等技术以及 B S 三层架构来实现公交查询系统 将系统的 所有业务逻辑全部由后台服务器处理 减少了前端浏览器的负荷 简化了系 统的开发和维护 3 在分析公交站点 公交线路等公交数据特点基础上 对公交站点和公交线 路等公交数据进行归类 合并等处理 使其更符合算法的要求 4 详述 n 次公交换乘算法 以及其在公交换乘系统中的应用 5 本系统不仅实现了公交查询方案的文本显示 而且也能将方案呈现在电子 浙江工业大学本科毕业设计说明书 论文 3 地图上 给用户更直观的界面 1 4 本文的组织结构本文的组织结构 本文一共分八章 阐述了公交查询系统的设计与开发 分析了研究的意义 和国内外现状 基于发挥公交系统的实用价值 全面分析公交换乘系统的需求 分析 阐述目前用的最多的几种单源最短路径算法不可行性 并且详述适合大 众心理的最小换乘次数算法 最后通过概要设计 详细设计 程序开发和系统 功能测试得到结论等步骤完成系统的高质量实现 具体的工作如下 第一章 绪论 主要对论文所研究的背景 国内外的研究现状以及论文所 做的工作进行叙述 说明设计公交查询系统的必要性和意义 第二章 SSH 技术概要 主要是讨论 SSH 的各个框架和相关概念 第三章 系统的需求分析 研究乘客公交出行的心理和行为 将乘客考虑 的因素作为系统换乘算法完成的目标和功能 第四章 系统的概要设计 主要介绍系统的开发环境和流程 从总体上设 计系统的功能 将系统功能划分为前台和后台两个子模块 并详细设计每个子 模块功能 完成数据库设计 第五章 系统的详细设计 详述对各模块的具体实现和结果 介绍了公交 换乘算法在系统中的应用 以杭州市 15 条线路 130 多个站点为实验数据 给 出了查询的结果分析 第六章 公交查询系统的实现 主要展示公交查询系统实现的功能模块界 面 第七章 对系统进行的测试环节以及对系统的使用说明 第八章 对系统相关方面进行总结以及功能改进上做些展望 论述查询系 统的特点以及一些不足之处 并对系统的改进作了展望 浙江工业大学本科毕业设计说明书 论文 4 1 5 本章小结本章小结 本章主要介绍项目的研究背景 系统的应用现状以及在国内外相关领域的开 发情况 最后 给出了本文的主要工作及本文的组织结构 浙江工业大学本科毕业设计说明书 论文 5 第二章第二章 方法与技术方法与技术 本系统采用了 Struts2 Spring Hibernate 的 Web 应用架构 不但继承了传统 框架的分层思想 而且利用不同开源框架技术的特性实现了高效分层 在系统 的开发过程中 涉及到 JSP Struts2 Spring Hibernate JQuery 等相关理论及 技术 本章将对上述知识进行简要的阐述 2 1 Struts2 框架简介框架简介 Struts 2 是在 Struts 1 和 WebWork 的技术基础上进行了合并的全新的框架 但是两者的体系结构相差特别巨大 Struts 2 为传统的 Struts 1 注入 WebWork 的 先进设计理念 用户的请求是采用拦截器的原理使用的 这样的设计使得业务 逻辑控制器能够与 ServletAPI 完全脱离开 所以将其认为是 WebWork 的更新品 也行 以下介绍其应用流程 首先 Web 容器收到请求 HttpServletRequest 然后 将这个请求传递给一个标准的并且包括很多过滤器的过滤链 首先是经过 ActionContextCleanUp 过滤器 然后是 Other filters SiteMesh etc 接下来是 调用 FilterDispatcher 核心控制器 然后它调用 ActionMapper 确定请求哪个 Action 一旦知道是哪个 Action ActionMapper 就会返回相关 Action 对象信息 接下来 FilterDispatcher 将控制权交给 ActionProxy ActionProxy 调用配置管理器 ConfigurationManager 并从配置文件中读取配置信息 struts xml 然后创建 ActionInvocation 对象 ActionInvocation 在调用 Action 之前会依次的调用所用配 置拦截器 Interceptor N 一旦执行结果返回 结果字符串 ActionInvocation 负 责查找结果字符串对应的 Result 然后执行这个 Result Result 会调用一些模版 JSP 来呈现页面 之后拦截器 Interceptor N 会再被执行 顺序和 Action 执行 之前相反 最后响应 HttpServletResponse 被返回在 web xml 中配置的那些过滤器 和核心控制器 FilterDispatcher 浙江工业大学本科毕业设计说明书 论文 6 2 2 Hibernate 框架框架 Hibernate 是一个开放源代码的对象关系映射框架 它对 JDBC 进行了非常 轻量级的对象封装 使得 Java 程序员可以随心所欲的使用对象编程思维来操纵 数据库 Hibernate 可以应用在任何使用 JDBC 的场合 既可以在 Java 的客户端 程序使用 也可以在 Servlet JSP 的 Web 应用中使用 最具革命意义的是 Hibernate 可以在应用 EJB 的 J2EE 架构中取代 CMP 使得开发人员能够从大量 相同数据持久层相关编程工作中解放出来的 帮助开发人员完成数据持久化的 重任 Hibernate 的核心接口一共有 5 个 分别为 Session SessionFactory Transaction Query 和 Configuration 这 5 个核心接口 在任何开发中都会用到 通过这些接口 不仅可以对持久化对象进行存取 还 能够进行事务控制 11 下面对这五个核心接口分别加以介绍 Session 接口 Session 接口负责与数据库进行交互 即对数据库表进行增删改 查操作 但是 Session 对象是非线程安全的 SessionFactory 接口 SessionFactory 接口负责初始化 Hibernate 它充当数据 存储源的代理 并负责创建 Session 对象 这里用到了工厂模式 需要注意的是 SessionFactory 并不是轻量级的 因为一般情况下 一个项目通常只需要一个 SessionFactory 就够 当需要操作多个数据库时 可以为每个数据库指定一个 SessionFactory 12 Configuration 接口 Configuration 接口负责配置并启动 Hibernate 创建 SessionFactory 对象 在 Hibernate 的启动的过程中 Configuration 类的实例首先 定位映射文档位置 读取配置 然后创建 SessionFactory 对象 Transaction 接口 Transaction 接口负责一些事务的相关的操作 这些事物包 括 JDBC 的事物 JTA 中的 UserTransaction CORBA 事物 开发者能够使用一 个统一事物的操作界面 使得自己的项目可以在不同环境和容器之间进行方便 的移植 浙江工业大学本科毕业设计说明书 论文 7 Configuration 配置Hiberante Query 数据库查询 Criteria 数据库查询 SessionFactory 初始化Hibernate Transaction 管理事务 Session 负责对象操作 创建 创建 Query 和 Criteria 接口 Query 和 Criteria 接口负责执行各种数据库查询 它可 以使用 HQL 语言或 SQL 语句两种表达方式 具体接口间的协作如图 2 1 所示 图 2 1Hibernate 核心接口 2 3 Spring 框架框架 Spring 是一个开源框架 它由 Rod Johnson 专门为解决企业应用开发的复杂 性而创建的 13 分层架构是其主要的优势之一 分层架构允许使用者使用哪种 架构 同时也为 J2EE 应用程序开发提供集成的框架 从简单性 可测试性和松 耦合的角度而言 任何 Java 应用都可以从 Spring 中受益 简单来说 Spring 是一个轻量级的控制反转 IoC 和面向切面 AOP 的容器框 架 轻量 从大小与开销两方面而言 Spring 都是轻量的 完整的 Spring 框架 可以在一个大小只有 1MB 多的 JAR 文件里发布 并且 Spring 所需的处理开销 也是微不足道的 控制反转 Spring 通过一种称作控制反转 IoC 的技术促进了松耦合 当 应用了 IoC 一个对象依赖的其它对象通过被动的方式传递进来 而不是这个对 象自己创建或者查找依赖对象 你可以认为 IoC 与 JNDI 相反 不是对象从容器 浙江工业大学本科毕业设计说明书 论文 8 中查找依赖 而是容器在对象初始化时不等对象请求就主动将依赖传递给它 2 4 框架之间的有机整合框架之间的有机整合 系统的整体基础架构用 Struts2 来实现 Struts2 主要是负责 MVC 的分离工 作 控制业务的跳转工作 利用 Hibernate 框架对数据库持久层提供支持 利用 Spring 管理 Struts 和 Hibernate 降低系统代码的耦合度 Hibernate 与 Spring 的整合 Hibernate 对数据库操作进行了封装 而 Spring 提供了一个简单且稳定的方案 使得各种应用逻辑对象连接在一起 使这些对 象可重用 并尽可能不依赖容器 所有的数据访问技术都能独立使用 但是它 们在 Spring 提供的基于 XML 配置且无须依赖 Spring 的普通 JavaBean 下 会与 Application 整合得更好 由于 Spring 对 Hibernate 的支持 Hibernate cfg xml 中的配置参数可以在 Spring 中以 Bean 属性的方式来定义 在整合的框架中 Hibernate cfg xml 可以完 全不再需要 从而简化了系统的配置 2 5 JQuery 技术技术 服务器端 JQuery 是一个兼容多浏览器的 javascript 库 核心理念是 write less do more 写得更少 做得更多 14 它有很多优势 例如文档说明很全 而且 各种应用也说得很详细 同时还有许多成熟的插件可供选择 用户不用再在 html 里面插入一堆 js 来调用命令 需要定义 id 即可 这样就能保持 html 页面和 代码的分离 jQuery 的语法设计使得开发者操作文档对象 选择 DOM 元素 制 作动画效果 事件处理 使用 Ajax 以及其他功能更加便捷 另外 jQuery 还提 供 API 让开发者编写插件 由于其模块化的使用方式 开发者可以很轻松的开 发出功能强大的静态或动态网页 15 浙江工业大学本科毕业设计说明书 论文 9 2 6 百度地图百度地图 JavaScriptAPI 由于在公交查询过程中需要给用户提供一个可视化的乘车方案 因此本系 统对百度地图进行了二次开发 将方案显示在地图上 以下是对百度地图的接 口一些功能介绍 百度地图 JavaScript API 是一套由 JavaScript 语言编写的应用程序接口 它 能够帮助您在网站中构建功能丰富 交互性强的地图应用程序 百度地图 API 不仅包含构建地图的基本功能接口 还提供了诸如本地搜索 路线规划等数据 服务 适用于 PC 或移动设备端的基于浏览器的开发 16 由于免费对外开放的特 点 使其深受广大服务器端 PC 端 移动设备端地图开发者欢迎 以下是部分 功能 基本地图功能 展示 缩放 平移 拖曳等 地图控件展示功能 可以在地图上添加和删除工具条 地图类 比例尺 等控件 覆盖物功能 支持在地图上添加和删除点 线 面等 定位功能 支持 IP 定位及浏览器 支持 html5 特性浏览器 定位功能 以下介绍百度地图的使用方法 对百度地图的调用主要是通过在 JSP 页面 中嵌入标签来使用 在页面中加入代码 然后在页面中加入 var map new BMap Map allmap 即可创建地图实例 然后 通过代码 map centerAndZoom new BMap Point 116 404 39 915 11 设置地图的 中心点 即可完成地图的初始化 其中 ak 代表用户密钥 用户申请密钥成功后 即可调用百度地图 如图是以杭州市政府为中心的地图实例 浙江工业大学本科毕业设计说明书 论文 10 图 2 2 百度地图调用图 2 7 开发环境开发环境 2 7 1 服务器端环境要求服务器端环境要求 本系统服务器端所采用的操作系统是 Windows 7 操作系统 开发工具采用 MyEclipse 8 5 使用 Apache Tomcat 7 0 作为 Web 服务器 最后数据库是采用 mysql 2 7 2 客户端环境要求客户端环境要求 本系统客户端所采用的操作系统是 Windows 7 操作系统 使用的浏览器为 Internet Explorer 5 0 以上版本 2 8 开发原则开发原则 本系统采用 Struts2 Spring Hibernate 的 Web 应用架构 以及 JQuery 技术进 行开发 并对百度地图进行二次开发以让乘车方案显示在电子地图上 浙江工业大学本科毕业设计说明书 论文 11 2 9 本章小结本章小结 本章以系统开发的相关理论及技术为基础 介绍系统开发过程中需要了解 和掌握的方法和技术 详细阐述了 Struts2 框架 Spring 框架 Hibernate 框架 JQuery 相关技术 百度地图的功能及使用方法 同时明确了系统开发的总体原 则 浙江工业大学本科毕业设计说明书 论文 12 第三章第三章 公交换乘系统需求分析公交换乘系统需求分析 3 1 系统简介系统简介 本章节对基于 Web 的公交查询系统进行需求分析 将从系统的算法分析 系统的公交数据分析 功能模块概述等几方面进行介绍 3 1 1 系统功能概述系统功能概述 系统的功能需求是对系统功能的描述 即由系统的设计目标决定 而系统 的目标又是根据客户的需求决定 在功能实现方面 本系统分为前端功能模块 和后台功能模块 本系统的设计目标使得系统具有以下主要功能 1 前端功能模块 前端功能主要是面向普通游客 普通游客无需注册就可 以使用查询线路 查询站点 站站查询 站点查询功能 模糊查询 用户选择站点查询 用户可能并不清楚站点的全称 系统提供 模糊查询的功能 用户在文本框中输入完成时 点击确定 系统会根据用户输 入的站点去后台搜索所有匹配的数据 并呈现给用户 让用户自行选择 用户 选择具体的站点信息双击 系统就会自动将用户选择的站点信息填充到文本框 中 如果用户不选择 默认选择第一条 查询过程 系统获取用户输入的参数值 就会根据该值 比如说站点编 号 去查数据库中相应的表 找出所有经过该站点的线路信息 将所有线路的 编号存入到一个数组当中 便于在页面中显示出来 本系统是按照线路编号升 序排序 同时也将附近的相关站点信息编号存入到数组当中去 便于在百度地 图上标注出来 结果显示 百度地图上会显示所有相关站点的标注 界面上也会给出每 个站点所经过的线路条数 当用户单击其中一个站点标注或者站点链接时 系 统会给出每条线路的首发站和终点站以及线路编号等详细信息 浙江工业大学本科毕业设计说明书 论文 13 线路查询功能 模糊查询 用户选择线路查询 用户在文本框中输入要查询的路线 系统 提供模糊查询的功能 用户在文本框中输入完成时 点击确定 系统会根据用 户输入的线路去后台搜索所有匹配的数据 并呈现给用户 用户选择具体的线 路信息双击 系统就会自动将用户选择的线路信息填充到文本框中 如果用户 不选择 则默认选择第一条 查询过程 系统获取用户输入的参数值 比如线路编号 就会根据该值去 查数据库中相应的表 将所有线路信息进行存储 同时将该线路的所有站点信 息存放在一个数组当中 以便于将线路详细信息在页面显示 结果显示 系统根据数组中存储的站点信息 去数据库中站点表中查找相 应的站点信息 获得站点信息的经纬度 并在百度地图上以标注的形式显示出 来 每两个站点之间用折线相连 然后标注出起始站点和目的站点 并给出一 条折线路线 用户单击界面的线路链接时 系统会给出线路的文字信息 包括 起始站 终点站 票价 首发 末班时间 发车频率 以及经过的各站点等详 细信息 并且会在百度地图上按照上述方式以折线形式显示出来 换乘查询功能 模糊查询 用户在选择换乘查询功能时 在起点站和终点站输入时系统同 样会给出模糊查询 与站点查询和线路查询功能类似 查询过程 系统获取用户输入的参数值 系统将采用N次换乘算法给出所 有换乘方案 该算法同时考虑到换乘次数 总费用 换乘时间三个因素 系统 会将乘车方案进行存储 显示给用户 用户可根据自己期望值选择乘车方案 当用户点击方案时 系统会根据用户的选择将乘车方案显示在百度地图上 2 后台功能模块 后台功能主要是针对系统管理员而言 主要有线路管理和 站点管理功能 线路管理功能 添加线路 管理员可以点击 添加线路 链接 将新增线路的行进方向 浙江工业大学本科毕业设计说明书 论文 14 首班时间 末班时间 发车频率 运营时间 运营距离 票价信息 以及经过 的站点顺序等详细信息添加到数据库中的线路表中 删除线路 当要删除一条线路时 管理员可点击 删除线路 链接 选择 要删除的线路 单击删除 系统会将该车次的所有信息从数据库中删除 修改线路 当线路的站点发生变动时 管理员可单击 修改线路信息 链 接 可以对线路的详细信息进行修改 然后单击保存 系统会将修改后的信息 保存到数据中 站点管理功能 添加站点 管理员可以点击 添加站点 链接 将新增站点详细信息例如 站点编号 站点名等添加到数据库中的站点表中 修改站点 管理员登陆后 单击 站点管理 链接 系统会返回所有站点 信息 选择要修改的站点 单击 修改 可对站点的详细信息例如站点名 站 点编号等进行修改 然后保存 保存成功后 系统后台数据库站点表将会保存 相应的修改信息 3 1 2 公交换乘算法的研究公交换乘算法的研究 算法实现是公交换乘系统的核心基础 毫无疑问 人们在使用公交查询系 统时 是希望通过系统得到合理而又全面的乘车方案以及相应的换乘站点 人 们往往希望能够根据自己的期望选择最佳的乘车方案 这些期望主要源于换乘 次数 出行时间 费用等因素 所以乘车线路所经过的站点信息非常重要的 因为它将决定出行者的乘车线路和换乘方案 所以很有必要对换乘算法进行一 定的研究 公交网络可以抽象成有向图的形式 所以求解从起点到终点的查询 问题类似于求解图上两点的最优路径问题 其中 Dijkstra 算法和 Floyd 算法最为 经典 Dijkstra 算法是一个求从顶点到其余各顶点最短路径算法 解决的是一个有 向路径的最短路径问题 算法描述如下 设 G V E 是一个带权有向图 把图中顶点集合 V 分成两组 A 和 B 其中 浙江工业大学本科毕业设计说明书 论文 15 A 为已求出最短路径的顶点集合 B 是尚未确定最短路径的顶点集合 1 初始时 A 只包含源点 即 A v B 剩余节点 若 v 与 B 中顶 点 u 有边 则正常有权值 若 u 不是 v 的邻接点 则权值为 2 从 B 中选取一个距离 v 最小的顶点 k 把 k 加入 A 中 该选定的距离 就是 v 到 k 的最短路径长度 3 以 k 为新考虑的中间点 修改 B 中各顶点的距离 若从源点 v 到顶点 u 的距离 经过顶点 k 比原来距离 不经过顶点 k 短 则修改顶点 u 的距离 值 修改后的距离值为顶点 k 的距离加上边上的权 4 重复第 2 步 第 3 步 直到 A 中包含全部节点 Dijkstra 算法虽然稳定并且能够快速适应网络拓扑变化 对系统的内存空间 要求也不大 因而成为计算机网络拓扑路径以及 GIS 应用的首选 但是其复杂 的数据结构和实现方案决定其并不适用与公交线路查询 很有可能会导致搜索 速率下降 其次 Diikstra 算法在运算时需要采用邻接矩阵对图的关系和权值进 行存储 在操作时再对邻接矩阵进行扫描 这在数据量很大的公交网络中计算 时间实在是让人难忍 F I oyd 算法是解决任意两点间的最短路径的一种算法 也是一个求解单源 最短路径问题的算法 算法描述如下 初始时要设置两个矩阵 A 和 Path A 用来记录当前已经求得的任意两个顶点 最短路径的长度 Path 用来记录当前两个顶点间最短路径上要经过的中间点 其中 Path i j 即表示从节点 Vi 到节点 Vj 的距离 若 Vi 和 Vj 不连通 记 Path i j 为 D i j 表示从节点 Vi 到节点 Vj 要经过的点 以顶点 Vk 为中间点 比较插入 Vk 后的距离与原来保存的距离 即比较 Path i j 和 Path i k Path k j 的大小 若 Path i k Path k j Path i j D i j k 重复上述操作 直到所有点插入完毕 由于 F I oyd 算法的时间复杂度为 O n3 而在公交网络中 n 取值是很大的 更不用说是复杂环境下的公交网络 所以无法满足出行者对查询系统时间上快 浙江工业大学本科毕业设计说明书 论文 16 速的要求 这两种算法都不适合与公交查询系统 而且根据调查显示 人们在 出行公交换乘方案的选取上 首先考虑的因素是换乘次数 多数是考虑是否有 直达车 因此基于最短路径的公交换乘算法并不能满足实际的需要 13 所以在 这么多算法中 本系统拟采用一种基于换乘次数最少的换乘算法 N 次公交 换乘算法 在本文系统中 最小换乘算法仅考虑一次换乘 两次换乘 多余三次的不 符合实际 故本文不予讨论所以本系统只需考虑以下几种情况 N 次换乘算法 的具体实现将在系统的详细设计阶段给出 1 直达情况 分别找到经过两个站点的所有线路 看两个线路是否有交集 如果有交集 则说明两个站点有直达方案 给出所有直达方案 如果没有 则进行一次换乘 查询 直达情况如图 a 2 一次换乘 分别找到两个站点所有能直达到的站点集合 比如说 SetA 和 SetB 看两个集 合是否有交集 如果有交集 则说明有一次换乘方案 如果有不止一条方案 则根据换乘次数 乘车时间 乘车总费用三者构造的评价函数筛选出比较优的 方案 如果没有方案 则进行两次换乘查询 一次换乘情况如图 b 3 两次换乘 如果没有直达方案和一次换乘方案则进行两次换乘 则对集合 SetA 和 SetB 进行操作 查看两个集合中的点是否有直达 有直达则说明两次换乘可达到 如果有不止一条方案 则根据换乘次数 乘车时间 乘车总费用三者构造的评 价函数筛选出比较优的方案 两次换乘情况如图 c 浙江工业大学本科毕业设计说明书 论文 17 4 多次换乘 如果两次换乘没有达到 则在实际生活中没什么意义 本系统不予考虑 a 直达情况 b 一次换乘情况 c 两次换乘情况 图 3 3 几种换乘情况 3 1 3 公交数据的分析公交数据的分析 数据是公交换乘系统的重要部分 公交数据组要由公交站点 公交线路数 据组成 15 1 公交线路数据 根据对实际情况的线路分析 一般可分为以下几种 1 完全的双向线路 即上行和下行是两个相反方向的路线 线路上经过的 站点是相同的 且站点序列相同 线路上同名的站点分列在街道两旁 如图 3 2 所示 B A B A C B D C A ABC AB C 浙江工业大学本科毕业设计说明书 论文 18 图 3 4 完全的双向线路 2 完全的单向线路 即线路方向是单向环形的 线路内可以用名字唯一标 示地理位置上的站点 如图 3 3 所示 图 3 5 完全的单向线路 3 单 双线结合的线路 即相反方向的两条线路站点序列不是完全对应的 如图 3 4 所示 图 3 6 单 双线结合的线路 2 公交站点数据 公交站点是地图上显示的非常重要的点状设施 同一条线路上不同方向上 的站点和不同公交线路上的站点分布情况较为复杂需要进行一定的分析 下面 将对一些情况进行分析 1 在同一公交线路上 两个方向上的同名站点被抽象成在同一公交线路上 两个方向上的同名站点的空间位置重合 即在地图上上行下行两个对应的同名 站点抽象为一个节点 2 对于在不同公交线路上的邻近站点的抽象 a 站点名字不同 但是地理位置 经度 纬度 完全重合 b 两个站点仅相距50米左右 c 两条道路交叉口各自道路上但是是邻近状态 CBA A B CD A D C2C1 浙江工业大学本科毕业设计说明书 论文 19 a情况比较简单 多个站点抽象成一个站点即可 b c情况是比较特殊的 它是为了反映人在不同线路换车时的真实情况 以提高乘车方案查询的真实情 况 因为在换乘时 一定的步行是允许的 邻近就相当于一个距离的概念 可 定义一个距离 d w w是系统可设置的值 通过w可确定人们的步行可承受 的距离 周围满足w以内的站点可抽象成为一个站点 a 站点重合 b 同一道路上紧邻站点 c 不同道路上紧邻站点 图 3 7 不同线路上的邻近站点的分布情况 3 2 系统系统使用对象及用例图使用对象及用例图 本系统的使用对象是根据功能模块而定 具体的功能模块将在后面介绍 使用对象分为普通用户和管理员 1 管理员是系统的管理核心 具有很重要的作用 系统的后台数据都是由管 理员进行管理 具体关系如下图3 6 浙江工业大学本科毕业设计说明书 论文 20 图 3 8 管理员管理子系统用例图 系统触发 系统管理员打开公交换乘系统 登陆系统 数据管理模块 选择相关管理功 能 填写相关信息资料 点击提交 更新 删除确定提交信息申请 系统响应 公交换乘系统客户端在接收到Web服务器请求后 对相关数据进行处理 并 返回操作成功 2 信息查询模块是系统的主要功能核心 主要包括站点查询 线路查询 换 乘查询 具体关系如下图3 7 登陆系统 系统管理员 站点管理 线路管理 添加站点 删除站点 修改站点 修改线路 删除线路 添加线路 普通用户 进入系统 换乘方案查询 站点查询 线路查询 浙江工业大学本科毕业设计说明书 论文 21 图 3 9普通用户查询子系统用例图 系统触发 普通用户进入系统 信息查询模块 选择相关查询功能 输入相关查询信息 点击提交 系统响应 公交换乘系统客户端在接收到Web服务器请求后 对相关查询信息进行显示 3 3 系统的总体框架系统的总体框架 系统大致分为前端功能和后台功能 前端功能包括站点查询 线路查询 公交换乘查询功能 后台管理员具有站点管理和线路管理功能 系统在开始时 以百度地图作为可视化平台 因此Web服务器不仅要和数据库服务器交互 也要 和百度地图服务器进行交互 数据库服务器和百度地图服务器接收来自WEb服 务器的请求 对请求进行处理 并且返回结果 最后由Web服务器将业务处理的 逻辑转化为页面返回给客户端 17 系统的示意图3 8如下 浙江工业大学本科毕业设计说明书 论文 22 图 3 10 系统 B S 结构图 3 4 本章小结本章小结 本章对公交查询系统需求进行了充分的分析 明确了系统的使用对象 大 致功能结构及各个子功能系统所需实现的功能等问题 为后续系统设计打下了 基础 浙江工业大学本科毕业设计说明书 论文 23 第四章第四章 公交换乘系统概要设计公交换乘系统概要设计 4 1 系统系统功能结构功能结构 本系统根据需求分析分为前端功能模块和后台功能模块 前端有站点查询 线路查询以及换乘方案查询等功能 后台主要有管理员站点管理 线路管理等 功能 系统的功能结构如图4 1所示 图 4 11 系统功能结构图 公交查询系统 前台用户查询后台管理功能 站点查询 换乘查询 线路查询 站点管理 线路管理 文本 地图显示 文本 地图显示 文本 地图显示 站点列表 增加站点 修改站点 删除站点 线路列表 增加线路 修改线路 删除线路 浙江工业大学本科毕业设计说明书 论文 24 4 2 系统架构设计系统架构设计 图 4 12 Struts2 Spring Hibernate 架构 系统的整体基础架构用Struts2来实现 Struts2主要是负责表示层和MVC的分 离工作 控制业务的跳转工作 利用Hibernate框架对数据库持久层提供支持 利 用Spring管理Struts和Hibernate 降低系统代码的耦合度 系统采用的是三层B S架构 最上层是表示层 中间是业务层 最底端是数 据层 18 其核心就是通过Web服务器处理大部分的事物逻辑 从而减少前端浏 览器的工作量 相比C S结构 B S系统最大的一个好处就是可以达到客户端零 安装 零维护的可能 即可以在任何地方任何电脑上进行工作而不用特意安装 应用界面 表示层 业务层 数据访问 层 业务逻辑 层 数据库 数据库层 层 浙江工业大学本科毕业设计说明书 论文 25 专门的软件 只需要电脑联网就能使用 对于日后的系统升级以及对系统功能 的扩展也方便很多 而C S结构的每一个客户端都必须安装和配置软件 19 20 在 B S结构中 Web服务器是整个系统的核心部分 前端客户机只需与Web服务器 进行交互 后台数据库服务器也只需与Web服务器进行交互 当客户端向Web服 务器提出请求时 Web服务器接收请求 然后处理事务逻辑将其转换为数据库请 求 后台数据库服务器接收请求 返回查询结果 再由Web服务器根据事务逻辑 转化为合适的页面返回给客户机 三层架构大大简化了用户操作 不但共享程度高 可伸缩扩展性强 而且 高度的开放性 灵活性以及高速率和安全性的优点 使其更适用于网上信息的 发布和管理 浏览器端的工作简单 而在服务器端集中解决用户请求实现所需 的功能 这种特点使得开发者能将所有注意力都能够集中在服务器端上 4 3 系统数据库设计系统数据库设计 本系统的数据库采用 MySQL 它是一个关系型数据库管理系统 具有极好 的灵活性 它使用的是最常用标准化语言 SQL 语言 相比较 Oracle SQL Sever 等数据库软件来说 一般中小型软件的开发都选择 MySQL 作为其数据库 由于它速度快 体积小 成本较低等优点 数据库表清单如表 4 1 所示 表 4 1 数据库表清单 表名名称作用 manager管理员表记录管理员信息 busline线路表记录线路信息 point站点表记录站点信息 pointbusline站点线路表记录站点与线路的对应关系 transfersoulation换乘方案表记录换乘方案信息 buslinetransfer线路换乘方案关联表记录方案中线路的使用情况 浙江工业大学本科毕业设计说明书 论文 26 线路表 P PK K线线路路编编号号 线线路路名名称称 线线路路方方向向 站站点点数数量量 首首发发站站 终终点点站站 首首班班发发车车时时间间 末末班班发发车车时时间间 发发车车时时间间间间隔隔 票票价价 运运营营距距离离 运运营营时时间间 经经过过的的站站点点信信息息 站点表 P PK K站站点点编编号号 站站点点名名称称 站站点点经经度度 站站点点纬纬度度 站点线路表 P PK K F FK K2 2站站点点编编号号 P PK K F FK K1 1线线路路编编号号 下下一一站站点点编编号号 标志物站点关系表 P PK K F FK K1 1站站点点编编号号 P PK K标标志志物物编编号号 标标志志物物名名称称 对对应应近近距距离离 换乘方案信息表 P PK K换换乘乘方方案案编编号号 出出发发站站 终终点点站站 乘车方式 运运营营时时间间 总总费费用用 转转车车次次数数 管理员表 P PK K管管理理员员编编号号 用户名 密码 真实姓名 线路换乘方案关联表 P PK K F FK K2 2换换乘乘方方案案编编号号 P PK K F FK K1 1线线路路编编号号 线线路路序序号号 与公交查询系统相关的数据表关系结构如图 4 3 所示 图 4 13 系统数据表关系结构 具体的表设计如下所列 表 4 2 管理员表 字段名数据类型含义 managerIdint管理员编号 usernamevarchar用户名 passwordvarchar密码 realnamevarchar管理员姓名 浙江工业大学本科毕业设计说明书 论文 27 表 4 3 线路表 表 4 4 站点表 字段名数据类型含义 buslineIdint线路编号 buslinenamevarchar线路名称 buslinedirecctionint线路方向 pointnumberint站点数量 startpointvarchar首发站 finishpointvarchar终点站 firsttimevarchar首班发车时间 lasttimevarchar末班发车时间 buslinefrequencevarchar发车频率 priceInt 票价 routemilefloat运营距离 routetimefloat运营时间 rourtelistvarchar经过的站点 字段名数据类型含义 pointIdint站点编号 pointnamevarchar站点名 longitudedouble站点经度 latiudedouble站点纬度 浙江工业大学本科毕业设计说明书 论文 28 表 4 5 站点线路表 表 4 6 换乘方案信息表 表 4 7 线路换乘方案关联表 字段名数据类型含义 pointIdint站点编号 buslineIdvarchar站点名
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 作业班家长合同范本
- 租赁冷藏货车合同范本
- 基于网络文本分析的东坡书院旅游形象感知研究
- 鹿泉区小升初数学试卷
- 丽江到北京中考数学试卷
- 平舆2024年小升初数学试卷
- 污水处理厂员工考试试题(带答案)
- 2025年农业经理人考试题库试题及答案
- 外墙防水补漏施工方案(3篇)
- 滚水坝施工方案(3篇)
- 乳腺超声BIRADS分类解读
- WS/T 422-2013高压氧临床应用技术规范
- GB/T 1626-2008工业用草酸
- 甘肃地质灾害危险性评估规程DB62-2023
- 第6章 经济与产业
- 麻醉与内分泌系统
- 任人处置的作文完整的
- 电线电缆拉丝及连续退火工艺
- 提高内镜中心内镜洗消合格率PDCA
- 《化学教育测量与评价》课程教学大纲
- 《花卉学》教案
评论
0/150
提交评论