公交线路查询系统的开发_第1页
公交线路查询系统的开发_第2页
公交线路查询系统的开发_第3页
公交线路查询系统的开发_第4页
公交线路查询系统的开发_第5页
已阅读5页,还剩25页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、i 公交线路查询系统的开发公交线路查询系统的开发 (姓名) (浙江海洋学院 数理与信息学院,a06 计算机 浙江 舟山 316004) 摘摘 要要 当今世界交通飞速发展,特别是城市的道路交通已积聚饱和,而目前的电 子公交系统在效率和查询方面有很大局限。例如,具有地图显示能力的系统, 几乎全部采非自主产权的gis(geography information system,地理信息系统) 插件,运行速度慢,查询效果差。智能程度较低,比如以显著的建筑来定位查 找周围的公交站点和线路的公交系统几乎没有。模糊查询中单字匹配查询时, 空间数据库支撑小住超大容量数据的输出,比如在当前流行的e都市中用单字模

2、糊查询都会报错。 本文介绍了公交线路查询系统的开发过程,描述了如何运用软件工程知识 进行系统的分析、设计和实现的过程,包括可行性研究、需求分析、总体设计、 详细设计、编码、测试等各个阶段。 应用java结合access数据库编写本软件,对公交线路和公交站点进行了合 理的抽象,建立了用虚拟网络表示的公交网络模型,在此模型的基础上研究了 一种可行的公交网络最短路径查询算法,分析了动态分段的思想和基本要素, 为用户提供空间数据浏览、查询和分析的功能。用户输入要查询的线路,通过 查询得到线路的一些信息及在地图上显示相关线路;用户输入要查询的站点,通 过查询得到站点的一些信急;用户输入起点及终点得到直达

3、和换乘的相关结果。 【关键词关键词】:公交线路查询, java,access ii 目录 摘摘 要要.i 1. 概述概述 .1 1.1 公交线路查询系统产生的背景.1 1.2 公交线路查询系统研究的科学依据.2 1.3 国内外研究与应用现状.3 2. 公交查询系统分析公交查询系统分析 .4 2.1 可行性研究.4 2.1.1 技术可行性.4 2.1.2 经济可行性.6 2.1.3 操作可行性.6 2.2 系统需求分析.6 3. 公交线路查询系统的设计公交线路查询系统的设计 .8 3.1 系统总体设计.8 3.2. 数据库设计.8 3.2.1 e-r 图.8 3.2.2 创建数据库.9 3.3.

4、 系统详细设计.11 3.3.1 系统流程图.11 3.3.2 主要功能流程图设计.11 4. 公交线路查询系统的编码和测试公交线路查询系统的编码和测试 .12 4.1 系统编码.12 4.1.1 公用模块.12 4.1.2 换乘查询模块.13 4.1.3 站点查询模块.17 4.1.4 线路查询模块.20 4.1.5 数据连接模块.22 4.2 系统测试.24 4.2.1 功能测试的内容.24 4.2.2 测试用例的设计和结果分析.24 5. 总结总结 .26 参考文献参考文献 .27 0 1. 概述概述 1.1 公交线路查询系统产生的背景公交线路查询系统产生的背景 随着中国经济的快速发展,

5、城市交通拥堵,交通事故频繁和环境污染的现象在各个大 中城市日益严重,阻碍了城市居民生活水平的提高和整个城市的经济可持续发展。根据国 内外城市交通发展的经验教训,交通界专家学者达成共识:优先发展公共交通是解决城市交 通拥堵问题的根本途径之一。 交通作为国家经济大动脉,是城市人文中的重要组成部分,在国家经济和人们生活中 发挥着重要作用,并与人们的生活息息相关。随着城市人口的快速增长以及城市之间的沟 通的增加,人们对提高道路交通网的通行能力和通行质量的呼声愈来愈高,因此,完善道 路,提高道路施工质量,有效减缓道路交通压力,保证道路网的维护和管理是日前交通管 理部门需要解决和关心的问题。并且,交通又是

6、一个复杂的城市人文要素,并不是孤立存在 的,其发展和建设需与经济、环境、人口等诸多因素有关,只有将这些信息要素与道路设 计以及日常管理和维护工作紧密结合,并利用计算机信息技术才能建设满足需要的道路交 通网。 过去20年,城市交通迅猛发展,促进了社会生产力,提高了人类的生活质量,极大地 推动了社会的前进。但由于车辆的剧增以及土地资源的限制,供需矛盾日益突出,交通问 题已成为各国政府面临的首要问题之一。如何优化交通系统,实现交通高效、快捷、方便、 安全、舒适和环保,是城市交通管理的最终目标。以欧洲、美国、日本为代表的各发达国 家己经逐渐从主要依靠扩大路网规模来解决日益增长的交通需求,转移到用高新技

7、术来改 造现有道路交通系统及其管理体系,从而达到大幅度提高交通运输网的通行能力和服务质 量,减少环境污染的目的。具有代表性的有在美国和日本称之为ivhs智能车辆道路系统), 在欧洲称之为rti(道路交通信息系统),又称att(先进的交通信息通信系统)、rtt(道路交 通信息通信系统)的系统研究。目前国际上统称为its (intelligence transport system, 即智能交通系统)。为此,欧洲各国、美国和日本纷纷制定了一系列发展its的计划,与此 同时,欧洲各国、美国与日本在研究开发its的过程中还成立了许多相关智能交通研究机构, 如美国的工ts-america、欧盟的erti

8、-c0,a本的vertis及国际标准化机构iso/tc204等,这 些机构对制定its的研究计划和开发成果的实用化起到了巨大的推动作用。 智能交通系统即是将先进的卫星定位导航技术、计算机技术、地理信息技术、图像图 形处理技术、传感器技术、信息技术、电子控制技术、数据通信技术、运筹学、人工智能 等高新技术有效地综合运用于交通的运输、服务、控制和车辆制造,加强了人、车、路三 者之间的联系,借助系统的智能,使驾驶员对实时的交通状况了如指掌,使管理人员对车 辆的行驶状况一清二楚,系统可以通过对实时数据的分析处理,在通信设施与政策法规的 有力支持下,对整个交通系统进行调整,使整个系统处于最佳状态,并能对

9、突发事件及时 反应,及时解决。这种以智能化来提高运输系统效率,降低成本和改善安全的趋势,是潮 流所趋。对发达国家而言,是非走不可的途径;对发展中国家来说,也是发展的必由之路。 虽然我国 的交通建设和运输取得了巨大的成绩,我们也还是面临着巨大的挑战。我国是一 个经济持续发展的发展中国家,改革开放以来,城市化与汽车化发展十分迅猛。城市化的 迅速推进特别是大城市规模的扩张,带来了城市交通需求特别是机动车数量的迅速增长。 我国城市交通面临如下的挑战:(1)城市化与汽车化发展十分迅猛,城市交通需求与供给的矛 盾日益突出;(2)公路里程少,密度和标准低,路网整体服务水平有待提高:交通量急剧上 1 升,交通

10、事故增加,交通拥堵日益严重:(4)机动车污染已经上升为我国城市大气和噪声的主 要污染源。因此 , 建 立智能交通系统已成为解决我国城市交通问题的有效途径。“九五” 期间我国许多专家开始研究国外在智能交通系统体系框架方面的研究成果,进行了不同层 次的研究,并且纷纷向国家建议开展我国智能交通系统建设,我国己将智能交通系统列为 国家重点建设规划之一。为加快我国智能交通系统建设的步伐,国家科技部专门组织了交 通部、铁道部、公安部、建设部等有关部门组建了中国its政府协调指导小组,总体规划包 括道路、铁路、水运、民航在内的中国its发展战略。目前我国许多大中城市也都纷纷着手 建立智能交通系统。昆明作为云

11、南省省会,是全省政治、文化、科技、教育和交通的中心, 中国首批历史文化名城和优秀旅游城市,也是中国西南地区通向东南亚的一级口岸城市。 近年来,特别是99 世博会以来,昆明市城市建设与交通飞速发展,城市面貌日新月异。但 与此同时,交通问题也日趋突出。交通堵塞已成为市民日常最关心的话题.解决目前交通问 题的有效途径就是建立智能交通系统,即将先进的信息技术,gis技术、通信技术及计算机 技术应用于交通管理,使人车路协调统一,从而建立一个全方位发挥作用的智能、准确、 高效、实时的交通管理系统。 1.2 公交线路查询系统研究的科学依据公交线路查询系统研究的科学依据 世界各大城市在经历了汽车文明所带来的各

12、种灾难后,人们将希望更多的 寄托于高新技术,希望通过各种高新技术手段以变革目前的交通状况。自80年 代后期,国际上提出了智能交通系统(intelligent transport systems)的概念, 其基本出发点便是利用当代高新技术:电子、信息、通信、计算机、gps, gis(地理信息系统)等,提高交通系统中的人(交通参与者:乘客和管理者)、交 通设施(道路等)和交通工具(车辆等)之间的有机联系,从而最佳地利用交通系 统的“时空”资源,降低运输成本,提高运输效率。智能交通系统正在世界尤 其是发达国家和地区中引导着人类迈进交通运输智能化和交通管理现代化,它 是当前国际交通运输和管理科技的前沿

13、,是21世纪现代交通管理体系的模式和 发展方向。its技术在改善交通的同时还会形成巨大的产业。因此,国内外都极 其重视工ts的发展,运用高新技术提高现代城市交通系统的服务水平己成必然 的趋势。目前,日本、欧美己推出诸多的its实用系统。其中,先进的公共交通 系统(advanced public transportation systems,以下简称apts)就是极其重 要的子系统。apts可使交通供给动态地适应交通需求,真正意义上实现提高公 共交通的吸引力:准时、快速与舒适:提供快速、便捷、经济的换乘服务;调度与 运营的效率化、优先管理智能化等目标。 智能交通系统中的所有信息都与地理信息密切相

14、关。因此,新兴的地理信 息系统(g工s)在智能交通系统中扮演着重要的角色。地理信息系统(gis)是一个 收集、存储、分析和显示有关地球表面关联信息的工具,它是由计算机硬件、 软件、数据和管理组织系统所组成的一个复杂的综合体,gis是计算机科学、测 绘遥感学、环境科学、城市科学、空间科学、信息科学、管理科学等综合信息 的新兴边缘科学。把gis应用于交通,能对空间信息和非空间信息,如自然、社 会、经济等属性信息同时进行分析和处理。同时gis的结果大多以图形方式表示, 直观上除反映量的概念,还能反映区域分布的差异性,这显然比以统计报表输 出为主的管理信息系统更便于应用。公交优先发展的各项关键技术(包

15、括:公交 客流分_配技术、公交线网站点优化技术、公交调度优化技术、公交综合评价 技术、公交乘客信息诱导技术以及公交优先通行技术等)都可以在gis技术基础 2 上很好的得以实现。 1.3 国内外研究与应用现状国内外研究与应用现状 国外研究发展现状。发达国家广泛应用gis技术于公共交通管理之中。洛杉 机都市交通委员会研究建立了企业级的公交gis系统,服务于公共交通规划、运 营技术、运营管理以及效益评价。加拿大艾伯塔省的卡尔加里市也在建立企业 级的gis系统。1996年美国联邦公共交通管理局还专门发布了适用于公共交通 的地理信息系统国家规范,通过规范公交gis数据,以推动gis技术在公共交 通中应用

16、。美国、日本、加拿大、英国、法国、韩国等国家都投入了较大的人 力和物力从事智能公共交通系统研究,并己取得了显著的成果,建立了一种在 对公交网络优化的基础上,运用系统工程理论将交通流诱导技术、差分gps定位 技术、gis及地图匹配技术、公交运营优化与评价技术、计算机网络技术、数据 库技术、通信技术、电子技术、智能卡技术等先进技术科学集成,形成集智能 化调度、公交电子收费、信息服务、网络通信于一体的先进的公共交通规划管 理系统。其中的公共交通优化与设计子系统对公交线网布局、线路公交方式配 置、站点布置、发车间隔确定、票价的制定等进行优化和设计,从规划方面提 高公交服务水平。地理信息系统在美国,日本

17、等发达国家的应用较广泛,主要 包括:在交通走廊选择中的应用,地理信息系统可以十分方便地确定车站附件的 社会经济情况,从而可以迅速地确定人口和就业密度的分布,决定是否在某区 域建立公交走廊;在公交项目的方案比较中的应用,地理信息系统可以方便地将 不同方案表示在图上,并且用不同色彩和类型将其重叠,从而有利于比较不同 方案之间的优劣;在公交线路分析中的应用,地理信息系统可以帮助确定乘客的 地理分布以及同公交线路之间的距离,从而可以直接判断处公交线路分布是否 合理,车站选址是否适当;在用户电话询问服务中的应用,只要输入旅客的上下 车地点,地理信息系统就可以迅速地找到最短路径;在其他公交技术分析中的应

18、用,在圣地亚哥,地理信息系统用于公交调查,宣纸分析等。 国内研究发展现状。目前我国各大、中城市的公交管理部门运用先进的科 技手段改造传统的公交信息管理和网络规划模式。目前,部分大中城市如北京, 上海,广州,南京,武汉,杭州,宁波,大连等已经建立了公交网络,但普遍 的做法是公交网络的属性数据存储在数据库中,用抽象的编码和相应数据表示, 将空间数据用纸质地图或者cad图来保存。而大部分中小城市由于各方面原因还 未建立起自己的公交网络。公交网络的数据维护和更新困难,网络的分析过程 缺乏空间分析技术的支持。目前,gis技术在我国公交网络中应用,取得了一系 列的重大进展。近几 年 ,由于科学技术的进步和

19、政府对公交投入力度的加大, 我国的智能公共交通系统己初现端倪。杭州、上海、北京、大连等几座大城市 己在部分公交线路上建成了公共交通网络系统和公交车辆跟踪调度系统,并实 现了计算机辅助规划管理,提高了公共交通的服务水平,吸引了大量客流。我 国的智能公共交通系统虽然使得中国迈入了公交信息管理和网络规划的智能化 时代,但由于缺乏对许多基础理论的深入研究,而且某些系统的开发和研制又 缺乏交通领域专家的直接参与,目前的系统普遍存在以下缺陷:不是以公交线网 优化为基础,致使调度效果欠佳;大多数系统线路与线路间缺乏联系;缺少信息 服务系统,使系统智能化程度大大降低。此外,国内许多公交网络查询系统都 是基于文

20、件形式进行查询的,乘客只能在列出的路线以及站点中进行选择,这 3 样并没有真正把gis应用到系统中。 4 2. 公交查询系统分析公交查询系统分析 2.1 可行性可行性研究研究 可行性研究也称为可行性分析,是在系统调查的基础上,针对新系统的开发是否具备 必要性和可能性,对新系统的开发从技术、经济、社会的方面进行分析和研究,以避免投 资失误,保证新系统的开发成功。可行性研究的目的就是用最小的代价在尽可能短的时间 内确定问题是否能够解决。该系统的可行性分析包括以下几个方面的内容。 2.1.1 技术可行性技术可行性 java 是由 sun microsystems 公司于 1995 年 5 月推出的

21、java 程序设计语言(以下简 称 java 语言)和 java 平台的总称。用 java 实现的 hot java 浏览器(支持 java applet)显示了 java 的魅力:跨平台、动态的 web、internet 计算。从此,java 被广泛 接受并推动了 web 的迅速发展,常用的浏览器现在均支持 java applet。另一方面,java 技术也不断更新。 java 平台由 java 虚拟机(java virtual machine)和 java 应用编程接口 (application programming interface、简称 api)构成。java 应用编程接口为 ja

22、va 应用提供了一个独立于操作系统的标准接口,可分为基本部分和扩展部分。在硬件或操作 系统平台上安装一个 java 平台之后,java 应用程序就可运行。现在 java 平台已经嵌入了 几乎所有的操作系统。这样 java 程序可以只编译一次,就可以在各种系统中运行。 java 具有一下特点: 1、java 语言是简单的。java 语言的语法与 c 语言和 c+语言很接近,使得大多数 程序员很容易学习和使用 java。另一方面,java 丢弃了 c+ 中很少使用的、很难理解 的、令人迷惑的那些特性,如操作符重载、多继承、自动的强制类型转换。特别地,java 语言不使用指针,并提供了自动的废料收集

23、,使得程序员不必为内存管理而担忧。 2、java 语言是一个面向对象的。java 语言提供类、接口和继承等原语,为了简单起 见,只支持类之间的单继承,但支持接口之间的多继承,并支持类与接口之间的实现机制 (关键字为 implements)。java 语言全面支持动态绑定,而 c+ 语言只对虚函数使用 动态绑定。总之,java 语言是一个纯的面向对象程序设计语言。 3、java 语言是分布式的。java 语言支持 internet 应用的开发,在基本的 java 应用 编程接口中有一个网络应用编程接口(),它提供了用于网络应用编程的类库, 包括 url、url connection、socket

24、、 server socket 等。java 的 rmi(远程方法激 活)机制也是开发分布式应用的重要手段。 4、java 语言是健壮的。java 的强类型机制、异常处理、废料的自动收集等是 java 程序健壮性的重要保证。对指针的丢弃是 java 的明智选择。java 的安全检查机制使得 java 更具健壮性。 5 5、java 语言是安全的。java 通常被用在网络环境中,为此,java 提供了一个安全 机制以防恶意代码的攻击。除了 java 语言具有的许多安全特性以外,java 对通过网络下 载的类具有一个安全防范机制(类 class loader),如分配不同的名字空间以防替代本地 的

25、同名类、字节代码检查,并提供安全管理机制(类 security manager)让 java 应用设 置安全哨兵。 6、java 语言是体系结构中立的。java 程序(后缀为 java 的文件)在 java 平台上被 编译为体系结构中立的字节码格式(后缀为 class 的文件), 然后可以在实现这个 java 平 台的任何系统中运行。这种途径适合于异构的网络环境和软件的分发。 7、java 语言是可移植的。这种可移植性来源于体系结构中立性,另外,java 还严格 规定了各个基本数据类型的长度。java 系统本身也具有很强的可移植性,java 编译器是 用 java 实现的,java 的运行环境

26、是用 ansi c 实现的。 8、java 语言是解释型的。如前所述,java 程序在 java 平台上被编译为字节码格式, 然后可以在实现这个 java 平台的任何系统中运行。在运行时,java 平台中的 java 解释 器对这些字节码进行解释执行,执行过程中需要的类在联接阶段被载入到运行环境中。 9、java 是高性能的。与那些解释型的高级脚本语言相比,java 的确是高性能的。事 实上,java 的运行速度随着 jit(just-in-time)编译器技术的发展越来越接近于 c+。 10、java 语言是多线程的。在 java 语言中,线程是一种特殊的对象,它必须由 thread 类或其

27、子(孙)类来创建。通常有两种方法来创建线程:其一,使用型构为 thread(runnable) 的构造子将一个实现了 runnable 接口的对象包装成一个线程,其二, 从 thread 类派生出子类并重写 run 方法,使用该子类创建的对象即为线程。值得注意的 是 thread 类已经实现了 runnable 接口,因此,任何一个线程均有它的 run 方法,而 run 方法中包含了线程所要运行的代码。线程的活动由一组方法来控制。 java 语言支持 多个线程的同时执行,并提供多线程之间的同步机制(关键字为 synchronized)。 11、java 语言是动态的。java 语言的设计目标之

28、一是适应于动态变化的环境。java 程序需要的类能够动态地被载入到运行环境,也可以通过网络来载入所需要的类。这也有 利于软件的升级。另外,java 中的类有一个运行时刻的表示,能进行运行时刻的类型检查。 java 语言的优良特性使得 java 应用具有无比的健壮性和可靠性,这也减少了应用系 统的维护费用。java 对对象技术的全面支持和 java 平台内嵌的 api 能缩短应用系统的开 发时间并降低成本。java 的编译一次,到处可运行的特性使得它能够提供一个随处可用的 开放结构和在多平台之间传递信息的低成本方式。特别是 java 企业应用编程接口(java enterprise apis)为

29、企业计算及电子商务应用系统提供了有关技术和丰富的类库。 access 是微软公司推出的基于 windows 的桌面关系数据库管理系统(rdbms) ,是 office 系列应用软件之一。它提供了表、查询、窗体、报表、页、宏、模块 7 种用来建立 数据库系统的对象;提供了多种向导、生成器、模板,把数据存储、数据查询、界面设计、 报表生成等操作规范化;为建立功能完善的数据库管理系统提供了方便,也使得普通用户 不必编写代码,就可以完成大部分数据管理的任务。 microsoft access 在很多地方得到广泛使用,例如小型企业,大公司的部门,和喜爱 编程的开发人员专门利用它来制作处理数据的桌面系统。

30、它也常被用来开发简单的 web 应用程序这些应用程序都利用 asp 技术在 internet information services 运行比较复 6 杂的 web 应用程序则使用 php/mysql 或者 asp/microsoft sql server 它的使用方便程度和强大的设计工具为初级程序员提供许多功能。不过,这种便于使 用可能使人误解。这类开发者都是没有在应用或者数据设计方面训练的办公室从业人员。 因此许多人以为这样的开发者能够创造可用的系统,但也有很多人认为工具本身的局限性 产生了这样的误导。一些专业的应用程序开发人员使用 access 用作 快速应用开发,特 别是给街道上的推销

31、员制作一个初型或独立应用程序的工具。可是如果是透个网络存取数 据的话,access 的可扩放性并不高因此当程序被较多使用者使用时,他们的选择多会 是倾向于一些客户端-服务器为本的方案,例如 oracle、db2、microsoft sql server、windows sharepoint services、postgresql、mysql、alpha five、maxdb, 或者 filemaker。无论如何,不少 access 的功能(表单,报告,序列和 vb 代码)可以 用作其他数据库的后期应用,包括 jet(档案为主的数据库引擎,access 缺省使用)、 microsoft sql

32、server、oracle 和任何其他跟 odbc 兼容的产品。这种方法允许开发者把 一个成熟的应用的数据移动到一台更大功率的服务器而没有已经在适当的位置牺牲发展。 在技术上,java 是本学期的主要课程,虽说不能精通,但还是可以编写小规模的软件。 硬件方面,如今电脑软硬件技术飞速发展,计算机系统开发人员也比比皆是,开发知识密 集型的信息系统的技术条件也已经很成熟了。 本系统采用 java 语言和 access 进行开发,根据上面叙述,技术是可行的。 2.1.2 经济可行性经济可行性 虽说公交线路查询应用方向单向,但只要有交通的地方需要本系统,而且本系统是需 要长久营运的,带来的效益是巨大而长

33、久的,费用的支出和带来的巨大收益相比自是不能 相提并论了,所以开发本系统在经济上是可行的。 2.1.3 操作可行性操作可行性 操作非常简单,只要进入界面,然后可以按照自己的需要选择相应的界面进行添加、 修改、删除以及查询等相关操作,操作非常方便。 从法律方面来说该系统完全可行。 2.2 系统需求分析系统需求分析 需求分析是软件工程的一项重要的任务,它是系统层软件配置与软件设计之间的桥梁。 需求分析能够刻画软件的功能和性能,确定软件与其他系统元素的接口,并建立软件必须 满足的约束。需求分析为软件设计提供了可用的数据、系统结构、界面和过程设计模型。 下面是一份需求说明文本,这里列出了一些比较关键的

34、部分: (1) 功能需求,既是用户输入的起始地点和终点,迅速得到最优公交路线,方便旅客 出行!可靠性和可用性需要保障,并且能应对用户输入错误的信息时给以相应的信息回馈。 (2) 软件还支持用户查询站点信息,给外地用户整个城市的详细信息。 7 (3) 软件提供每条公交线路的途经站点查询,丰富乘客的查询方式。 (4) 软件还能自我检查,终端查询机上当出现问题,能反馈给总控制中心 (5) 系统应该具有数据库维护的功能。 (6) 系统运行在 windows 平台上。系统还应该有一个较好的图形用户界面。 (7) 系统应该有很好的可扩展性。 根据以上的需求说明文档,公交线路查询系统主要包括以下几个模块:

35、(1) 换乘查询模块:既是用户输入的起始地点和终点,迅速得到最优公交路线,方便 旅客出行; (2) 站点查询模块:用户输入站点,可以得到途经该站点的公交车线路信息; (3) 线路查询模块:用户输入公交线路,可以得到该线路的所有站点; 8 3. 公交线路查询系统的设计公交线路查询系统的设计 3.1 系统总体设计系统总体设计 公交线路系统的主要模块如图 3-1。 图 3-1 公交线路查询系统结构简图 3.2. 数据库设计数据库设计 在开发公交线路查询系统时,可以先进行 e-r 图分析,然后对表和字段进行分析,最 后进行数据库建模。 3.2.1 e-r 图图 在公交线路查询系统中,存在的实体有查询体

36、统信息实体、公交线路信息实体、站点 信息实体、乘客信息实体。 公交线路查询系统的实体关系简图如图 3-3 所示。 图 3-3 公交线路查询系统的实体关系简图 公交线路查询模块 换乘查询模 块 站点查询模 块 线路查询模 块 9 图 3-4 公交线路查询系统用例图 3.2.2 创建数据库创建数据库 通过上面一节的分析,已经对本系统所要求的数据库结构有了一个初步的了解,并建 立了一个数据库结构的框架。下面就需要将上面的数据库概念结构转化为 sql server 2000 数据库系统所能够支持的实际数据模型,也就是数据库的逻辑结构。 查询信息表,如表 3-5 所示。 表 3-5 查询基本信息表 字段

37、名称数据类型说明 line整形公交线路编号 first文本起始站点 second文本第二站 third文本第三站 fourth文本第四站 fifth文本第五站 sixth文本第六站 seventh文本第七站 eighth文本第八站 end文本终点站 下面给数据表初始化: busbus linelinefirstfirstsecondsecondthirdthirdfourthfourthfifthfifthsixthsixthseventhseventheightheighthendend 1墩头客运 站 皮靴工厂普陀汽车 站 普陀交通局沈家门饭 店 农业银行荷外永兴菜场 国际水 产城 3荷东

38、 港都荷外龙眼东方红旅 社 伏虎路海力生公 司 扬帆集团 舟渔公 司 6半升洞 荷东港都荷外龙眼东河海中洲饭 沈家门饭 普陀三 10 busbus linelinefirstfirstsecondsecondthirdthirdfourthfourthfifthfifthsixthsixthseventhseventheightheighthendend 店店中 7勾山康福 院 山头黄村泉水岙新花村勾山电厂 勾山勾山中学 平阳浦荷外 9蒲西 公交公司车 场 普陀三中海洋生物工 业区 兴业公司 中沙头茶湾墩头 皮靴工厂 半升洞 27鸭蛋山 环城南路海滨桥东山隧道329 国道 沈家门食品 厂路 滨

39、港路东河市场 台贸商 城 31东门站 昌国桥定海一中建设银行第三医院 露亭宾馆环南停车 场 海军司令 部 鸭蛋山 32虹桥 青岭路盐仓山茅岭墩凯灵中学 电焊机厂边检站西园饭店 职业技 校 33金湖塑机 工业 b 区 东山遂道 东口 东山遂道西 口 机场路海滨桥民间码头 钻石楼四一三 医院 34客运中心 竹山站 边检站西园饭店西关新村 区府南珍菜场 市建行桔园 37行政大楼 庄家庙 惠民桥舟山电厂十六门甬东甬庆虹庙建材市 场 3.3. 系统详细设计系统详细设计 3.3.1 系统流程图系统流程图 公交线路查询系统流程图如下: n n y y 开始 选择查询方式 是否选择? 输入要查询的内容 存在?

40、 显示内容 11 3.3.2 主要功能流程图设计主要功能流程图设计 下面是用盒图设计的换乘查询模块的流程图。因为公交线路查询系统中换乘查询模块, 站点查询模块和线路查询模块的设计方法相似,所以就省略了其它模块的流程图。 输入查询内容 f 是否空 t 退出 查询 输出结果 进入查询界面 12 4. 公交线路查询系统的编码和测试公交线路查询系统的编码和测试 4.1 系统系统编码编码 4.1.1 公用模块公用模块 为了能更有效地进行数据库操作,提高代码的易维护性和可读性,添加了一个公共模 块来存储这些函数。操作代码如下。 package bussearch; import java.awt.*; i

41、mport java.awt.event.actionevent; import java.awt.event.actionlistener; import java.sql.connection; import java.sql.drivermanager; import java.sql.resultset; import java.sql.sqlexception; import java.sql.statement; import javax.swing.*; public class bus extends jframe implements actionlistener jbutt

42、on b=new jbutton4; jtextfield text1; bus(string s) super(s); flowlayout flow=new flowlayout(); setlayout(flow); text1=new jtextfield(公交线路查询系统); text1.setbounds(20,20,200,200); text1.seteditable(false); text1.sethorizontalalignment(jtextfield.center); add(text1); b1=new jbutton(公交换乘查询); b1.setbounds(

43、20,40,100,20); b2=new jbutton(公交站点查询); b2.setbounds(20,60,100,20); b3=new jbutton(公交线路查询); b3.setbounds(20,80,100,20); 13 add(b1); add(b2); add(b3); b1.addactionlistener(this); b2.addactionlistener(this); b3.addactionlistener(this); setbounds(550,325,200,200); setvisible(true); validate(); setdefaul

44、tcloseoperation(jframe.dispose_on_close); public void actionperformed(actionevent e) if(e.getsource()=b1) buttonone win1=new buttonone(换乘查询窗口); if(e.getsource()=b2) buttontwo win2=new buttontwo(站点查询窗口); if(e.getsource()=b3) buttonthree win3=new buttonthree(线路查询窗口); public static void main(string arg

45、s) throws classnotfoundexception, sqlexception bus win=new bus(公交线路查询); 4.1.2 换乘查询模块换乘查询模块 系统的换乘模块主要实现如下: 操作界面如图 4-1 所示,代码如下。 14 图 4-1 换乘查询模块操作界面 package bussearch; import java.awt.*; import java.awt.event.*; import java.sql.connection; import java.sql.drivermanager; import java.sql.preparedstatemen

46、t; import java.sql.resultset; import java.sql.sqldata; import java.sql.sqlexception; import java.sql.statement; import javax.swing.*; class buttonone extends jframe implements actionlistener private static string jieguo =; int jieguo1=0,jieguo2=0; box basebox,boxv1,boxv2; jtextfield text1,text2; jbu

47、tton seach; buttonone(string s) 15 super(s); text1=new jtextfield(16); text2=new jtextfield(16); boxv1=box.createverticalbox(); boxv1.add(new jlabel(起点); boxv1.add(box.createverticalstrut(8); boxv1.add(text1); boxv2=box.createverticalbox(); boxv2.add(new jlabel(终点); boxv2.add(box.createverticalstrut

48、(8); boxv2.add(text2); basebox=box.createverticalbox(); basebox.add(boxv1); basebox.add(box.createverticalstrut(10); basebox.add(boxv2); seach=new jbutton(查询); basebox.add(seach); seach.addactionlistener(this); setlayout(new flowlayout(); add(basebox); setbounds(420,425,400,400); setvisible(true); v

49、alidate(); setdefaultcloseoperation(jframe.dispose_on_close); public void actionperformed(actionevent f) if (f.getsource()=seach) string qidian=null,zhongdian=null; qidian=text1.gettext(); zhongdian=text2.gettext(); connection con = null; statement st = null; resultset rs = null; if(qidian=null | qi

50、dian.trim().equals()component frame = null; joptionpane.showmessagedialog(frame,起点不能为空!,inane warning,joptionpane.warning_message); system.exit(0); if(zhongdian=null | zhongdian.trim().equals()component frame = null;joptionpane.showmessagedialog(frame,终点不能为空!,inane warning,joptionpane.warning_messag

51、e); system.exit(0); 16 try class.forname(sun.jdbc.odbc.jdbcodbcdriver); con = drivermanager.getconnection(jdbc:odbc:driver=microsoft access driver (*.mdb);dbq=dbbus.mdb); preparedstatement ps=con.preparestatement(select * from bus where first =? or second =? or thrid =? or fouth =? or fifth =? or si

52、xth =? or seventh =? or eighth =? or end =?); ps.setstring(1,qidian); ps.setstring(2,qidian); ps.setstring(3,qidian); ps.setstring(4,qidian); ps.setstring(5,qidian); ps.setstring(6,qidian); ps.setstring(7,qidian); ps.setstring(8,qidian); ps.setstring(9,qidian); rs=ps.executequery(); while (rs.next()

53、 jieguo1=rs.getint(line); system.out.println(jieguo1+ggh); /preparedstatement ps=con.preparestatement(select * from bus where first =? or second =? or thrid =? or fouth =? or fifth =? or sixth =? or seventh =? or eighth =? or end =?); ps.setstring(1,zhongdian); ps.setstring(2,zhongdian); ps.setstrin

54、g(3,zhongdian); ps.setstring(4,zhongdian); ps.setstring(5,zhongdian); ps.setstring(6,zhongdian); ps.setstring(7,zhongdian); ps.setstring(8,zhongdian); ps.setstring(9,zhongdian); rs=ps.executequery(); while (rs.next() jieguo2=rs.getint(line); system.out.println(jieguo2); if (jieguo1 = jieguo2) jieguo

55、=jieguo1+路车经过两个车站; else jieguo=没有两个站点之间的公交!; catch (classnotfoundexception e) 17 e.printstacktrace(); catch (exception e) finally try if(rs != null) rs.close(); rs = null; if(st != null) st.close(); st = null; if(con != null) con.close(); con = null; catch (sqlexception e) e.printstacktrace(); seach

56、xl win4=new seachxl(结果,jieguo); 4.1.3 站点查询模块站点查询模块 站点查询模块主要要实现如下: 界面如下图,接着是代码: package bussearch; import java.awt.*; import java.awt.event.*; 18 import java.sql.connection; import java.sql.drivermanager; import java.sql.preparedstatement; import java.sql.resultset; import java.sql.sqlexception; impo

57、rt java.sql.statement; import javax.swing.*; class buttontwo extends jframe implements actionlistener box basebox,boxv1;jbutton seach; string jieguo =null; jtextfield text1; buttontwo(string s) super(s); text1=new jtextfield(16); boxv1=box.createverticalbox(); boxv1.add(new jlabel(站点); boxv1.add(box

58、.createverticalstrut(8); boxv1.add(text1); basebox=box.createverticalbox(); basebox.add(boxv1); basebox.add(box.createverticalstrut(10); seach=new jbutton(查询); seach.addactionlistener(this); basebox.add(seach); setlayout(new flowlayout(); add(basebox); setbounds(120,125,200,200); setvisible(true); v

59、alidate(); setdefaultcloseoperation(jframe.dispose_on_close); public void actionperformed(actionevent e) if (e.getsource()=seach) string qidian; qidian=text1.gettext(); connection con = null; statement st = null; resultset rs = null; if(qidian=null | qidian.trim().equals()component frame = null; 19

60、joptionpane.showmessagedialog(frame,起点不能为空!,inane warning,joptionpane.warning_message); system.exit(0); try class.forname(sun.jdbc.odbc.jdbcodbcdriver); con = drivermanager.getconnection(jdbc:odbc:driver=microsoft access driver (*.mdb);dbq=dbbus.mdb); preparedstatement ps=con.preparestatement(select

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论