版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
公交线路查询系统的开发概括随着当今世界交通的快速发展,特别是城市道路交通的积累和饱和,目前的电子公交系统在效率和查询方面存在很大的局限性。例如,几乎所有具有地图显示能力的系统都采用非自有产权的GIS(地理信息系统)插件,运行速度慢,查询效果差。智能水平低,例如,几乎没有公交系统来定位和寻找周围的公交车站和具有显眼建筑物的路线。在模糊查询中进行单词匹配查询时,空间数据库支持小容量和大容量数据的输出。比如现在流行的E市,单字模糊查询就会报错。本文介绍了公交线路查询系统的开发过程,并介绍了如何利用软件工程知识对系统进行分析、设计和实现,包括可行性研究、需求分析、总体设计、详细设计、编码、测试等阶段。.本软件采用JAVA结合Access数据库编写,合理抽象公交线路和公交站点,建立以虚拟网络为代表的公交网络模型。在该模型的基础上,研究了一种可行的公交网络最短路径查询算法。,分析动态分割的思想和基本要素,为用户提供空间数据浏览、查询、分析等功能。用户输入要查询的线路,通过查询获取线路的一些信息,并在地图上显示相关线路;用户进入要查询的车站,通过查询获得车站的一些紧急信息;用户输入起点和终点,即可得到直达和传递相关信息的结果。[关键词]:公交线路查询、JAVA、Access目录摘要
一、概述11.1公交线路查询系统背景11.2公交线路查询系统研究的科学依据21.3国外研究与应用现状32.公交线路查询系统分析42.1可行性研究42.1.1技术可行性42.1.2经济可行性62.1.3运营可行性62.2系统需求分析6三、公交线路查询系统的设计83.1整体系统设计83.2.数据库设计83.2.1ER图83.2.2创建数据库93.3.详细的系统设计113.3.1系统流程图113.3.2主要功能流程图设计114.公交线路查询系统的编码与测试124.1系统代码124.1.1常用模块124.1.2转账查询模块134.1.3站点查询模块174.1.4线路查询模块204.1.5数据连接模块224.2系统测试244.2.1功能测试的内容244.2.2测试用例设计与结果分析24五、总结26参考文献271概述1.1公交线路查询系统的背景随着我国经济的快速发展,各个大中城市的城市交通拥堵、交通事故频发、环境污染日益严重,阻碍了城市居民生活水平的提高和整个城市经济的可持续发展。根据国外城市交通发展的经验和教训,交通领域的专家学者达成共识,优先发展公共交通是解决城市交通拥堵问题的根本途径之一。交通作为国民经济的大动脉,是城市人文的重要组成部分。它在国民经济和人民生活中发挥着重要作用,与人民生活息息相关。随着城市人口的快速增长和与城市交往的增多,人们对提高道路交通网络的通行能力和交通质量的呼声越来越高。因此,改善道路,提高道路建设质量,可以有效减缓道路交通。确保路网维护和管理的压力是交通管理部门需要解决和关心的问题。此外,交通是一个复杂的城市人文元素,它不是孤立存在的。其开发建设需要与经济、环境、人口等诸多因素相关联。只有将这些信息要素与道路设计和日常管理维护工作紧密结合。结合使用计算机信息技术,可以构建满足需要的道路交通网络。近20年来,城市交通的快速发展促进了社会生产力,提高了人类生活质量,极大地推动了社会进步。然而,由于车辆的快速增长和土地资源的限制,供需矛盾日益突出,交通问题已成为各国政府面临的首要问题之一。如何优化交通系统,实现高效、快捷、便捷、安全、舒适、环保的交通,是城市交通管理的最终目标。以欧、美、日为代表的发达国家逐渐从主要依靠扩大路网规模来解决日益增长的交通需求转向以高科技改造现有的道路交通体系及其管理体系,实现大规模。目的是提高交通网络的通行能力和服务质量,减少环境污染。代表性的在美国和日本称为IVHS智能车辆道路系统,在欧洲称为RTI(道路交通信息系统),也称为ATT(高级交通信息通信系统),RTT(道路交通信息通信系统)系统)系统研究.目前国际上统称为ITS(IntelligenceTransportSystem,即智能交通系统)。为此,欧洲国家、美国和日本制定了一系列发展ITS的计划。与此同时,欧洲国家、美国和日本也在研发智能交通系统的过程中建立了许多相关的智能交通研究机构。TS-America、欧盟的ERTI-C0、A-book的VERTIS和国际标准化组织ISO/TC204在ITS研究计划的制定和开发成果的实际应用中发挥了巨大的作用。智能交通系统是将先进的卫星定位导航技术、计算机技术、地理信息技术、图像图形处理技术、传感器技术、信息技术、电子控制技术、数据通信技术、运筹学、人工智能等高技术、技术。它用于交通、服务、控制和车辆制造,以加强人、车辆和道路之间的联系。借助系统的智能化,驾驶员可以很好地了解实时的交通情况,管理人员可以了解车辆的行驶情况。很明显,该系统可以通过对实时数据的分析处理,在通讯设施和政策法规的大力支持下,对整个交通系统进行调整,使整个系统处于最佳状态,并能够应对及时处理突发事件。及时解决。这种利用智能化来提高运输系统效率、降低成本和提高安全性的趋势是趋势。对于发达国家来说,这是唯一的出路;对于发展中国家来说,这也是发展的必由之路。我国交通建设和交通事业虽然取得了巨大成就,但仍面临巨大挑战。我国是一个经济可持续发展的发展中国家。改革开放以来,城镇化、汽车化发展迅速。城市化的快速推进,特别是大城市规模的扩大,带来了城市交通需求,尤其是机动车保有量的快速增长。我国城市交通面临以下挑战:(1)城市化和汽车化快速发展,城市交通供需矛盾日益突出;(2)道路里程小,密度和标准低,路网整体服务水平有待提高:③交通量急剧上升,交通事故增多,交通拥堵日益严重:(4)机动车污染已上升为我国城市空气和噪声污染的主要来源。因此,建立智能交通系统已成为解决我国城市交通问题的有效途径。“九五”期间,我国很多专家开始在智能交通系统的框架下研究国外的研究成果,进行不同层次的研究,向国家提出发展我国智能交通的建议。交通系统。我国已将智能交通系统列为国家重点建设规划之一。为加快我国智能交通体系建设,科技部专门组织交通部、铁道部、公安部、建设部等有关部门成立中国ITS政府协调和指导小组。总体规划包括公路、铁路、水运和民航。中国ITS发展战略。目前,我国许多大中城市也开始建设智能交通系统。作为省会,它是全省政治、文化、科技、教育和交通的中心。是中国首批历史文化名城和优秀旅游城市之一,也是中国西南通往东南亚的一流港口城市。近年来,特别是1999年世博会以来,全市城市建设和交通发展迅速,城市日新月异。但与此同时,交通问题也越来越突出。交通拥堵成为市民最关心的话题。解决当前交通问题的有效途径是建立智能交通系统,即将先进的信息技术、GIS技术、通信技术和计算机技术应用于交通管理,使人、车、路协调统一。为建立起全方位、智能化、精准化、高效化、实时化的交通管理体系。公交线路查询系统研究的科学依据世界各大城市在经历了汽车文明带来的各种灾难后,人们将更多的希望寄托在了高科技上,希望通过各种高科技手段来改变目前的交通状况。自1980年代后期以来,国际上提出了智能交通系统(IntelligentTransportSystems)的概念。系统中的人(交通参与者:乘客和管理者)、交通设施(道路等)和车辆(车辆等)之间的有机联系,从而优化利用交通系统的“时空”资源。运输系统,降低运输成本,提高运输效率。智能交通系统正引领着世界特别是发达国家和地区人类向交通智能化和交通管理现代化迈进。ITS技术将在改善交通的同时形成一个巨大的产业。因此,国外高度重视产业交通运输的发展,利用高新技术提高现代城市交通系统的服务水平已成为必然趋势。目前,日本、欧美已经推出了很多ITS实用系统。其中,先进公共交通系统(AdvancedPublicTransportationSystems,以下简称APTS)是一个极其重要的子系统。APTS可以使交通供给动态适应交通需求,真正提高公共交通的吸引力:准时、快捷、舒适:提供快捷、方便、经济的换乘服务;优化调度和运营,优先实现智能化管理等目标。智能交通系统中的所有信息都与地理信息密切相关。因此,新兴的地理信息系统(GIS)在智能交通系统中发挥着重要作用。地理信息系统(GIS)是用于收集、存储、分析和显示地球表面相关信息的工具。它是一个由计算机硬件、软件、数据和管理组织系统组成的复杂综合体。地理信息学是计算机科学,是测绘遥感、环境科学、城市科学、空间科学、信息科学、管理科学等综合信息的新兴边缘科学。将GIS应用于交通,既可以分析处理空间信息,也可以分析处理自然、社会、经济等属性信息等非空间信息。同时,地理信息系统的大部分结果都以图形方式表示,既直观地体现了数量的概念,也体现了区域分布的差异,明显比以输出为主的管理信息系统更方便应用。统计报告。公交优先发展的关键技术(包括:公交客流分配技术、公交线路点优化技术、公交调度优化技术、公交综合评价技术、公交乘客信息感应技术和公交优先通过技术等)地理信息系统技术是在良好实施的基础上。国外研究与应用现状国外研发现状。发达国家在公共交通管理中广泛使用GIS技术。洛杉矶大都会交通委员会研究建立了企业级公共交通地理信息系统,服务于公共交通规划、运营技术、运营管理和效益评估。加拿大阿尔伯塔省卡尔加里市也在建设企业级地理标志系统。1996年,美国联邦公共交通管理局还颁布了《公共交通地理信息系统国家规定》,通过规范公共交通地理信息数据,促进地理信息技术在公共交通中的应用。美国、日本、加拿大、英国、法国、中国等国家在智能公交系统的研究上投入了大量人力物力,并取得了显著成果。运用系统工程理论,科学整合交通流量感应技术、差分GPS定位技术、GIS与地图匹配技术、公交运行优化与评价技术、计算机网络技术、数据库技术、通信技术、电子技术、智能卡等先进技术技术。它是集智能调度、电子公交收费、信息服务、网络通信于一体的先进公共交通规划管理系统。其中,公交优化设计子系统对公交线路网络布局、线路公交模式配置、车站布局、发车间隔确定、票价制定等进行优化设计,从而实现从规划层面提升公交服务水平。GIS在美国、日本等发达国家得到广泛应用,主要包括:在交通走廊选择中的应用,GIS可以很方便的判断车站附楼的社会经济状况,从而可以方便地了解人口和就业密度。快速确定地图的分布决定是否在某个区域建立公交走廊;在公交项目方案比对应用中,地理信息系统可以很方便地在地图上表示不同的方案,并用不同的颜色和类型将它们重叠起来,有利于对比。不同方案的优缺点;在公交线路分析的应用中,地理信息系统可以帮助确定乘客的地理分布以及同一公交线路之间的距离,从而可以直接判断公交线路分布是否合理,以及车站的位置.适当的;用户查询服务中的应用,只要输入乘客的上下车地点,GIS就可以快速找到最短路线;在其他公交技术分析中的应用,在圣地亚哥,GIS用于公交调查、宣纸分析等。中国研发现状.目前,我国大中城市公共交通管理部门利用先进的科技手段,对传统的公共交通信息化管理和网络规划模式进行改造。目前,一些大中城市如、、、、、、等已经建立了公共交通网络,但普遍的做法是将公共交通网络的属性数据存储在数据库中,用抽象代码表示和相应的数据,空间数据用纸表示。质量地图或CAD图纸保存。然而,由于种种原因,大多数中小城市还没有建立起自己的公共交通网络。公共交通网络的数据难以维护和更新,网络的分析过程缺乏空间分析技术的支持。目前,GIS技术在我国公共交通网络中的应用取得了一系列重大进展。近年来,由于科技进步和政府加大对公共交通的投入,我国的智能公共交通系统开始崭露头角。,,,等几个大城市在部分公交线路上建设了公交网络系统和公交车辆跟踪调度系统,实现了计算机辅助规划和管理,提高了公交服务水平,吸引了大量公交出行。的客流量。尽管中国的智能公交系统已经将中国带入了公交信息管理和网络规划的智能化时代,但由于许多基础理论缺乏深入研究,缺乏交通领域专家的直接参与在一些系统的开发开发中,目前的系统普遍存在以下缺陷:没有基于公交线路网络的优化,导致调度效果差;大多数系统线路缺乏线路之间的连接;信息服务系统的缺失,大大降低了系统的智能化程度。此外,国内很多公交网络查询系统都是基于文档的,乘客只能从列出的路线和站点中选择,并没有真正将GIS应用到系统中。2、公交线路查询系统分析2.1可行性研究可行性研究又称可行性分析,是在系统调查的基础上,从技术、经济、社会等方面分析研究开发新系统是否必要和可能,避免投资失误,确保新系统开发成功。.可行性研究的目的是确定问题是否可以在最短的时间内以最低的成本解决。该系统的可行性分析包括以下几个方面。2.1.1技术可行性Java是SunMicrosystems于1995年5月推出的Java编程语言(以下简称Java语言)和Java平台的总称。用Java实现的HotJava浏览器(支持Java小程序)展现了Java的魅力:平台、动态Web、互联网计算。此后,Java被广泛接受并推动了Web的快速发展,现在常用的浏览器都支持Java小程序。另一方面,Java技术也在不断更新。Java平台由Java虚拟机(JavaVirtualMachine)和Java应用程序编程接口(简称API)组成。Java应用程序编程接口为Java应用程序提供了一个独立于操作系统的标准接口,可以分为基本部分和扩展部分。在硬件或操作系统平台上安装Java平台后,Java应用程序就可以运行了。Java平台现在嵌入几乎所有的操作系统中。这样,Java程序可以只编译一次并在各种系统上运行。Java具有以下特点:1、Java语言简单。Java语言的语法非常接近C和C++语言,使大多数程序员学习和使用Java变得容易。另一方面,Java放弃了C++中很少使用、难以理解和令人困惑的特性,例如运算符重载、多重继承和自动转换。特别是Java语言不使用指针,并且提供了自动垃圾回收,让程序员不用担心存储管理。2、Java语言是面向对象的。Java语言提供了类、接口和继承等原语。为了简单起见,它只支持类之间的单继承,但支持接口之间的多继承,并且支持类和接口之间的实现机制(关键字是implements)。Java语言完全支持动态绑定,而C++语言只对虚函数使用动态绑定。简而言之,Java语言是一种纯面向对象的编程语言。3、Java语言是分布式的。Java语言支持Internet应用程序的开发。在基本的Java应用程序编程接口中有一个网络应用程序编程接口(),它为网络应用程序编程提供了一个类库,包括URL、URLConnection、Socket、ServerSocket等。Java的RMI(RemoteMethodActivation)机制也是开发分布式应用程序的重要手段。4.Java语言是健壮的。Java的强类型机制、异常处理和自动垃圾回收是Java程序健壮性的重要保证。丢弃指针是Java的明智选择。Java的安全检查机制使Java更加健壮。5、Java语言是安全的。Java通常用于网络环境,为此,Java提供了防止恶意代码攻击的安全机制。除了Java语言的很多安全特性之外,Java对于通过网络下载的类有一个安全机制(ClassLoader类),比如分配不同的命名空间防止本地同名类被替换,字节码检查,提供安全管理机制(SecurityManager类)让Java应用程序设置安全哨兵。6.Java语言是架构中立的。Java程序(后缀为java的文件)在Java平台上被编译成体系结构中立的字节码格式(后缀为class的文件),然后可以在任何实现Java平台的系统上运行。这种方法适用于异构网络环境和软件分发。7.Java语言是可移植的。这种可移植性来自于架构中立性,此外,Java还严格规定了每种基本数据类型的长度。Java系统本身也具有很强的可移植性。Java编译器用Java实现,Java运行环境用ANSIC实现。8.Java语言被解释。如前所述,Java程序在Java平台上被编译成字节码格式,然后可以在任何实现该Java平台的系统上运行。在运行时,Java平台中的Java解释器对这些字节码进行解释和执行,在链接阶段将执行过程中需要的类加载到运行环境中。9.Java是高性能的。与那些解释型的高级脚本语言相比,Java确实是高性能的。事实上,随着JIT(Just-In-Time)编译器技术的发展,Java的运行速度越来越接近C++。10.Java语言是多线程的。在Java语言中,线程是必须由Thread类或其sub()类创建的特殊对象。创建线程通常有两种方式:一是使用Thread(Runnable)类型的构造函数将一个实现Runnable接口的对象包装到一个线程中,二是从Thread类派生一个子类并覆盖run方法,一个对象使用这个子类创建的是一个线程。值得注意的是,Thread类实现了Runnable接口,所以任何线程都有它的run方法,而run方法包含了线程要运行的代码。线程的活动由一组方法控制。Java语言支持多线程同时执行,并提供了多线程之间的同步机制(关键字是synchronized)。11.Java语言是动态的。Java语言的设计目标之一是适应动态变化的环境。Java程序所需的类可以动态加载到运行环境中,也可以通过网络加载所需的类。这也有利于软件升级。此外,Java中的类有一个运行时表示,可以进行运行时类型检查。Java语言的优良特性使Java应用程序具有无与伦比的健壮性和可靠性,这也降低了应用程序系统的维护成本。Java对对象技术的全面支持以及嵌入Java平台的API可以缩短应用开发时间,降低成本。Java的一次编译随处运行的特性使其能够提供一种随处可用的开放式架构,以及一种在多个平台之间传递信息的低成本方式。特别是Java企业应用程序编程接口(JavaEnterpriseAPIs)为企业计算和电子商务应用系统提供了相关技术和丰富的类库。Access是微软推出的基于Windows的桌面关系数据库管理系统(RDBMS),是Office系列应用软件之一。提供表格、查询、表格、报表、页面、宏、模块7种对象用于构建数据库系统;提供多种向导、生成器、模板、数据存储、数据查询、界面设计、报表生成为建立功能齐全的数据库管理系统提供便利,也使普通用户无需编写代码。MicrosoftAccess广泛用于许多地方,例如小型企业、大公司的部门以及喜欢专门编程以制作处理数据的桌面系统的开发人员。它也常用于开发简单的WEB应用程序。这些应用程序使用ASP技术在Internet信息服务中运行。更复杂的WEB应用程序使用PHP/MySQL或ASP/MicrosoftSQLServer。它的易用性和强大的设计工具为新手程序员提供了许多功能。然而,这种易用性可能会产生误导。这些开发人员是没有接受过应用程序或数据设计培训的办公室工作人员。很多人认为这样的开发人员可以创建可用的系统,但也有很多人认为工具本身的局限性具有误导性。一些专业的应用程序开发人员使用Access作为快速应用程序开发的工具,特别是为街头推销员制作原型或独立应用程序。但是,如果通过网络访问数据,Access的可扩展性并不高。因此,当程序被更多用户使用时,他们的选择会倾向于一些面向客户端-服务器的解决方案,例如Oracle、DB2、MicrosoftSQLServer、WindowsSharePointServices、PostgreSQL、MySQL、AlphaFive、MaxDB或Filemaker。但是,许多Access功能(表单、报表、序列和VB代码)可以用作其他数据库的后应用程序,包括JET(基于存档的数据库引擎,Access默认使用)、MicrosoftSQLServer、Oracle和任何其他与ODBC兼容的产品。这种方法允许开发人员将成熟应用程序的数据移动到功能更强大的服务器上,而不会牺牲已经进行的开发。从技术上讲,java是本学期的主要课程,虽然不精通,但还是可以写小型软件的。在硬件方面,随着计算机软硬件技术的飞速发展,计算机系统开发人员无处不在,开发知识密集型信息系统的技术条件已经非常成熟。本系统采用java语言和Access开发,根据以上描述,该技术是可行的。2.1.2经济可行性公交线路查询应用方向虽然是单向的,但只要有车流就需要系统,而且系统需要长时间运行,收益巨大且长期。它没有可比性,因此开发该系统在经济上是可行的。2.1.3运营可行性操作很简单,只要进入界面,然后就可以根据自己的需要选择相应的界面进行增、改、删、查询相关操作,操作非常方便。从法律上讲,该系统是完全可行的。2.2系统需求分析需求分析是软件工程的一项重要任务,是系统级软件配置和软件设计之间的桥梁。需求分析可以表征软件的功能和性能,确定软件与其他系统元素的接口,建立软件必须满足的约束。需求分析为软件设计提供可用的数据、系统结构、接口和过程设计模型。以下是需求规范的文本,其中列出了一些更关键的部分:(1)功能需求,起点和终点均由用户输入,快速得到最优公交路线,方便乘客出行!需要保证可靠性和可用性,并在用户输入错误信息时给予信息反馈。(2)软件还支持用户查询站点信息,为外地用户提供全市详细信息。(3)软件提供各公交线路中转站的查询,丰富了乘客的查询。(4)软件还可以自检,当终端查询机出现问题时,可以反馈给总控中心(5)系统应具备数据库维护功能。(6)系统运行在Windows平台上。该系统还应具有良好的图形用户界面。(7)系统应具有良好的可扩展性。根据上述需求规范文件,公交线路查询系统主要包括以下模块:(1)换乘查询模块:既是用户输入的起点和终点,快速得到最优公交路线,方便乘客出行;(2)车站查询模块:用户可输入车站,获取经过车站的公交线路信息;(3)路线查询模块:用户输入公交路线,可以查询到该路线的所有站点;3、公交线路查询系统设计3.1整体系统设计总线系统的主要模块如图3-1所示。公交线路查询模块换乘查询模块站点查询模块公交线路查询模块换乘查询模块站点查询模块线路查询模块图3-1公交路线查询系统结构图3.2.数据库设计开发公交线路查询系统时,可以先进行ER图分析,再分析表和字段,最后进行数据库建模。3.2.1ER图在公交线路查询系统中,现有的实体包括查询系统信息实体、公交线路信息实体、车站信息实体和乘客信息实体。公交线路查询系统的实体关系图如图3-3所示。图3-3公交线路查询系统实体关系图图3-4公交路线查询系统用例图3.2.2创建数据库通过以上部分的分析,我们对系统所需的数据库结构有了初步的了解,并建立了数据库结构框架。接下来,需要将上述数据库的概念结构转化为SQLServer2000数据库系统能够支持的实际数据模型,即数据库的逻辑结构。查询信息表,如表3-5所示。表3-5查询基本信息表字段名称数据类型阐明线塑料公交线路号第一的文本起始点第二文本第二站第三个文本第三站第四文本第四站第五文本第五站第六文本第六站第七文本第七站第八文本第八站结尾文本终端让我们初始化数据表:公共汽车线第一的第二第三天__第四个_第五第六第七第八结尾1墩头客运站皮靴厂普陀汽车站普陀交通局家酒店美国广播公司海外永兴菜市场国际水城3河东港口首都海外龙眼红色酒店富湖路海力士扬帆集团船钓公司6半孔河东港口城市海外龙眼东河海中洲大酒店家酒店普陀三中7勾山健康福利院汕头黄村泉水敖新华村沟山电厂鹅山勾山中学平阳坡海外9猫巴士公司车厂普陀三中海洋生物产业区工业公司中沙头茶湾码头皮靴厂半孔27鸭蛋山环城南路海边桥东山隧道329国道嘉门食品厂路滨港路东河市场台商商城31东门站长果桥定海一中建设银行第三医院楼亭宾馆南中央停车场海军司令部鸭蛋山32虹桥庆陵路盐仓山茂陵墩打电话给中学焊机厂边境检查站西园大酒店职业技术学校33金湖塑料机械B工业区东山隧道东出口东山隧道西口机场路海边桥民俗码头钻石屋四一三医院34旅客中心珠山站边境检查站西园大酒店西关新村区办事处南镇菜市场城市建设银行橘子园37行政楼庄家寺惠民桥发电厂十六永东永庆红庙建材市场3.3.系统详细设计3.3.1系统流程图公交线路查询系统流程图如下:NNNYY开始选择查询方式是否选择?输入要查询的内容存在?显示内容3.3.2主要功能流程图设计以下是用箱形图设计的转账查询模块的流程图。由于公交线路查询系统中换乘查询模块、车站查询模块和线路查询模块的设计方法类似,其他模块的流程图不再赘述。输入查询内容输入查询内容F是否空T退出查询输出结果进入查询界面4、公交线路查询系统的编码与测试4.1系统代码4.1.1通用模块为了更高效地执行数据库操作,提高代码的可维护性和可读性,增加了一个通用模块来存储这些函数。操作代码如下。包总线搜索;导入java.awt.*;导入java.awt.event.ActionEvent;导入java.awt.event.ActionListener;导入java.sql.Connection;导入java.sql.DriverManager;导入java.sql.ResultSet;导入java.sql.SQLException;导入java.sql.Statement;导入javax.swing.*;公共类Bus扩展JFrame实现ActionListener{uttonb[]=新utton[4];JTextField文本1;总线(字符串s){超级(S);流布局流=新流布局();设置布局(流);text1=newJTextField("公交线路查询系统");text1.setBounds(20,20,200,200);text1.setEditable(false);text1.setHorizontalAlignment(JTextField.CENTER);添加(文本1); b[1]=newutton("公交换乘查询"); b[1].setBounds(20,40,100,20); b[2]=newutton("公交站牌查询"); b[2].setBounds(20,60,100,20); b[3]=newutton("公交线路查询"); b[3].setBounds(20,80,100,20); 添加(b[1]); 添加(b[2]); 添加(b[3]);b[1].addActionListener(this);b[2].addActionListener(this);b[3].addActionListener(this);设置边界(550,325,200,200);设置可见(真);证实();setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE);}公共无效actionPerformed(ActionEvente){ if(e.getSource()==b[1]){ ButtonOnewin1=newButtonOne("转账查询窗口"); } if(e.getSource()==b[2]){ ButtonTwowin2=newButtonTwo("站点查询窗口"); } if(e.getSource()==b[3]){ ButtonThreewin3=newButtonThree("线路查询窗口"); }} publicstaticvoidmain(String[]args)抛出ClassNotFoundException,SQLException{ Buswin=newBus("公交线路查询"); }}4.1.2转账查询模块系统的传输模块主要实现如下:操作界面如图4-1所示,代码如下。图4-1转账查询模块操作界面包总线搜索;导入java.awt.*;导入java.awt.event.*;导入java.sql.Connection;导入java.sql.DriverManager;导入java.sql.PreparedStatement;导入java.sql.ResultSet;导入java.sql.SQLData;导入java.sql.SQLException;导入java.sql.Statement;导入javax.swing.*;类ButtonOne扩展JFrame实现ActionListener{私有静态字符串jieguo="";int结果1=0,结果2=0;盒子baseBox,boxV1,boxV2;JTextField文本1,文本2;乌顿搜索; ButtonOne(字符串s){ 超级(S); text1=新的JTextField(16); text2=新的JTextField(16); boxV1=Box.createVerticalBox(); boxV1.add(newJLabel("起点")); boxV1.add(Box.createVerticalStrut(8)); boxV1.add(text1); boxV2=Box.createVerticalBox(); boxV2.add(newJLabel("终端")); boxV2.add(Box.createVerticalStrut(8)); boxV2.add(text2); baseBox=Box.createVerticalBox(); baseBox.add(boxV1); baseBox.add(Box.createVerticalStrut(10)); baseBox.add(boxV2); seach=newutton("查询"); baseBox.add(seach); seach.addActionListener(this); setLayout(newFlowLayout()); 添加(基础框); 设置边界(420,425,400,400); 设置可见(真); 证实(); setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE); } 公共无效actionPerformed(ActionEventf){ if(f.getSource()==seach){ 字符串qidian=null,中甸=null; qidian=text1.getText(); 中点=text2.getText(); 连接con=null; 语句st=null; 结果集rs=null; if(qidian==null||qidian.trim().equals("")){组件框架=null; JOptionPane.showMessageDialog(frame,"起点不能为空!","Inanewarning",JOptionPane.WARNING_MESSAGE); System.exit(0); } if(zhongdian==null||zhongdian.trim).equals(")){Componentframe=null;JOptionPshowMessageDialog(frame(不能为空!","Inanewarning",JOptionPane.WARNING_MESSAGE); System.exit(0); } 尝试{ Class.forName("sun.jdbc.odbc.JdbcOdbcDriver"); con=DriverManager.getConnection("jdbc:odbc:driver={MicrosoftAccessDriver(*.mdb)};DBQ=dbbus.mdb"); PreparedStatementps=con.prepareStatement("select*fromBUSwherefirst=?orsecond=?orthrid=?orfouth=?orFifth=?orSixth=?orSeventh=?orEight=?orend=?"); 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(); 而(rs.next()){ jieguo1=rs.getInt("行"); System.out.println(jieguo1+"ggh"); } //PreparedStatementps=con.prepareStatement("select*fromBUSwherefirst=?orsecond=?orthrid=?orfouth=?orFifth=?orSixth=?orSeventh=?or第八=?orend=?"); ps.setString(1,中点); ps.setString(2,zhongdian); ps.setString(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=jieguo1+"Theroadcarpassesthroughtwostations"; } else{ jieguo="Thereisnobusbetweenthetwostops!"; } }捕捉(ClassNotFoundExceptione){ e.printStackTrace(); }捕捉(异常e){ }最后{ 尝试{ 如果(rs!=null){ rs.close(); rs=null; } 如果(st!=null){ st.close(); st=null; } 如果(con!=null){ con.close(); 康=空; } }捕捉(SQLExceptione){ e.printStackTrace(); } } seachxlwin4=newseachxl("结果",jieguo); } }4.1.3站点查询模块站点查询模块主要实现如下:界面如下,后面是代码:包总线搜索;导入java.awt.*;导入java.awt.event.*;导入java.sql.Connection;导入java.sql.DriverManager;导入java.sql.PreparedStatement;导入java.sql.ResultSet;导入java.sql.SQLException;导入java.sql.Statement;导入javax.swing.*;类ButtonTwo扩展JFrame实现ActionListener{BoxbaseBox,boxV1;uttonseach;字符串结果=null;JTextField文本1; ButtonTwo(字符串){ 超级(S); text1=新的JTextField(16); boxV1=Box.createVerticalBox(); boxV1.add(newJLabel("站点")); boxV1.add(Box.createVerticalStrut(8)); boxV1.add(text1); baseBox=Box.createVerticalBox(); baseBox.add(boxV1); baseBox.add(Box.createVerticalStrut(10)); seach=newutton("查询"); seach.addActionListener(this); baseBox.add(seach); setLayout(newFlowLayout()); 添加(基础框); 设置边界(120,125,200,200); 设置可见(真); 证实(); setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE); } 公共无效actionPerformed(ActionEvente){ if(e.getSource()==seach){ 串起点; qidian=text1.getText(); 连接con=null; 语句st=null; 结果集rs=null; if(qidian==null||qidian.trim().equals("")){组件框架=null; JOptionPane.showMessageDialog(frame,"起点不能为空!","Inanewarning",JOptionPane.WARNING_MESSAGE); System.exit(0); } 尝试{ Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");con=DriverManager.getConnection("jdbc:odbc:driver={MicrosoftAccessDriver(*.mdb)};DBQ=dbbus.mdb"); PreparedStatementps=con.prepareStatement("select*fromBUSwherefirst=?orsecond=?orthrid=?orfouth=?orFifth=?orSixth=?orSeventh=?orEight=?orend=?"); 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(); 而(rs.next()){ jieguo=rs.getString("line")+"可以通过本站!"; } if(jieguo==null||jieguo.trim().equals("")){jieguo="站不存在,没有数据库!";} }捕捉(ClassNotFoundExceptionee){ ee.printStackTrace(); }捕捉(异常ee){ }最后{ 尝试{ 如果(rs!=null){ rs.close(); rs=null; } 如果(st!=null){ st.close(); st=null; } 如果(con!=null){ con.close(); 康=空; } }捕捉(SQLExceptionee){ ee.printStackTrace(); } } seachxlwin4=newseachxl("结果",jieguo);}}}4.1.4线路查询模块线路查询模块的实现如下:下图是实现接口,后面是代码:包总线搜索;导入java.awt.*;导入java.awt.event.*;导入java.sql.Connection;导入java.sql.DriverManager;导入java.sql.PreparedStatement;导入java.sql.ResultSet;导入java.sql.SQLException;导入java.sql.Statement;导入javax.swing.*;类ButtonThree扩展JFrame实现ActionListener{BoxbaseBox,boxV1;uttonseach;字符串结果="";JTextField文本1; ButtonThree(字符串s){ 超级(S); text1=新的JTextField(16); boxV1=Box.createVerticalBox(); boxV1.add(newJLabel("线路")); boxV1.add(Box.createVerticalStrut(8)); boxV1.add(text1); baseBox=Box.createVerticalBox(); baseBox.add(boxV1); baseBox.add(Box.createVerticalStrut(10)); seach=newutton("搜索"); 搜索。addActionListener(这个); 基础框。添加(搜索); setLayout(新FlowLayout()); 添加(基础框); setBounds(120,125,200,200); 设置可见(真); 证实(); setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE); }} 公共无效actionPerformed(ActionEvente){ if(e.getSource()==搜索){ 串起点; 起点=text1.获取文本(); intshu=Integer.parseInt(qidian); 与=null的连接; 语句st=null; 结果集rs=null; if(qidian==null||qidian.trim().equals("")){组件框架=null; JOptionPane.showMessageDialog(frame,"起点不能为空!","Inanewarning",JOptionPane.WARNING_MESSAGE); System.exit(0); } 尝试{ Class.forName("sun.jdbc.odbc.JdbcOdbcDriver"); con=DriverManager.getConnection("jdbc:odbc:driver={MicrosoftAccessDriver(*.mdb)};DBQ=dbbus.mdb"); PreparedStatementps=con.prepareStatement("select*fromBUSwhereline=?"); ps.setInt(1,shu); //ps.setString(2,"桔园"); rs=ps.executeQuery(); 而(rs.next()){ jieguo=rs.getString("line")+"公交车经过"+rs.getString("first")+","+rs.getString("second")+","+rs.getString("thrid")+","+rs.getString("fouth")+","+rs.getString("fifth")+","+rs.getString("sixth")+","+rs.getString("第七")+","+rs.getString("第八")+","+rs.getString("end"); } if(jieguo==null||jieguo.trim().equals("")){jieguo="该行不存在,不在数据库中!";} }捕捉(ClassNotFoundExceptionee){ ee.printStackTrace(); }捕捉(异常ee){ }最后{ 尝试{ 如果(rs!=null){ rs.close(); rs=null; } 如果(st!=null){ st.close(); st=null; } 如果(con!=null){ con.close(); 康=空; } }捕捉(SQLExceptionee){ ee.printStackTrace(); } } seachxlwin4=newseachxl("结果",jieguo); } }}4.1.5数据连接模块包总线搜索;导入java.sql.Connection;导入java.sql.DriverManager;导入java.sql.ResultSet;导入java.sql.SQLException;导入java.sql.Statement;公共类condb{ 公共连接骗局; 公共condb() { 尝试 { Class.forName("sun.jdbc.odbc.JdbcOdbcDriver"); }catch(ClassNotFoundExceptione){} 尝试 { //con=DriverManager.getConnection("jdbc:odbc:mastersystem"); con=Dr
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 大连河南中考数学试卷
- 二零二五年度农业综合开发贷款合同与土地承包经营权担保书3篇
- 容器苗起苗施工方案
- 2025版智慧园区建设项目工程总承包合作协议2篇
- 二零二五年信息技术合同认定登记办法解读3篇
- 2025版农业科技产品使用权许可合同
- 2025版跨境电商货物堆放场地租赁及清关合同3篇
- 二零二五年度企业向个人借款融资协议2篇
- 委托售后协议书
- 二零二五年度医疗机构多媒体医疗设备采购合同2篇
- 新产品试制流程管理办法
- 王牌电话交换机说明书
- 列管式换热器-换热面积计算
- 10个地基基础工程质量通病及防治措施
- 25m预应力混凝土简支T梁桥设计(共30页)
- 篮球校本课程教案
- 高一学生文理分班意向表
- 高等传热学部分答案
- 地球物理学进展投稿须知
- 机床精度检验标准 VDI3441 a ISO230-2
- 解析电力施工项目的信息化管理
评论
0/150
提交评论