南昌市公家线路查询系统的设计与实现论文样本_第1页
南昌市公家线路查询系统的设计与实现论文样本_第2页
南昌市公家线路查询系统的设计与实现论文样本_第3页
南昌市公家线路查询系统的设计与实现论文样本_第4页
南昌市公家线路查询系统的设计与实现论文样本_第5页
已阅读5页,还剩57页未读 继续免费阅读

下载本文档

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

文档简介

资料内容仅供您学习参考,如有不当或者侵权,请联系改正或者删除。公交线路查询系统摘要:随着经济的发展和旅游事业的发展,人们出入和游览其它城市的机会也随之增多,可是到达一个城市所面临的首要问题就是交通问题,为了让人们全面、及时、准确、迅速地掌握公交线路。运用我们学的知识做了个公交线路查询系统。就是为了方便于社会和服务于社会。本文首先分析了公交查询系统设计的必要性,我们设计的公交查询系统要与触摸屏相结合。本文还介绍了在开发系统中需要用到的知识,比如JAVA和SQLServer等。开发的公交查询系统实现了站点查询,站站查询,建筑物查询,换乘查询。整个系统的后台管理实现对系统中所有的数据的控制与管理。整个系统的实现中,对数据的添加与修改是最重要的操作,实现对所有数据的控制。数据的显示由JAVA语言结合JDBC实现。关键词:公交查询系统;JAVA;SQLServer;Abstract:Withdevelopmentofeconomicandtourism,peopleaccessandtheopportunitytovisitothercitiesalsowillbeincreased,butthearrivalofacityfacingthemostimportantissueisthetrafficproblem,inordertoallowpeopletocomprehensive,timely,accurateandrapidcontrolofTACline.Weusetheknowledgeacquiredtobeabuslinesenquirysystem.Istofacilitatethesocialandservicetosociety.Thispaperanalyzedthepublictransportsystemdesignforthenecessity,wehavedesignedforthepublictransportsystemwithtouch-screencombination.Thispaperdescribesthedevelopmentofsystemsneedtousetheknowledge,forexample,suchasJAVAandSQLServer.目录TOC\o"1-2"\h\z\u\t"标题3,3"前言 IV1系统开发原理及开发方案 11.1数据库应用系统的开发方法 11.2J2SE技术 21.3系统的开发方案 52系统需求分析 102.1系统运行环境需求分析 102.2功能需求分析 102.3系统总体结构设计与系统功能模块设计 112.4数据库设计 143公交查询系统的设计流程 163.1系统实现 163.2后台数据库管理模块 173.3查询模块 38结论 46前言中国城市公交乘客信息系统的发展处于一个落后的水平,广大乘客能够获得信息的方式很少,公交信息的完整性和准确性得不到保证,而且还没有专门的机构负责信息的发布和管理。中国公交乘客信息系统的现状特点如下:(1)中国乘客一般获得公交信息的方式局限于电话,交通图,向熟人问讯等常规方式。乘客能够获得的公交信息较少.(2)乘客出行中获得信息困难,基本上没有实时信息。除了几个少数城市,乘客能够经过分布于城市中的若干电子站牌获得一些公交车辆的运营信息以外,在其它城市”出行中”的乘客无法获得任何实时信息。由上所述,中国公交乘客信息系统总体上处于较低水平。较低的发展水平既是发展的困难,也是发展的机遇。我们应将发展公交乘客信息系统作为一个提高公交效率,增强公交吸引力的重要手段。这里指的公交查询系统就是网络上的公交查询网站,它的出现解决了现代公交乘客信息系统中的很多不足的地方,它的主要优势体现在省时、经济、准确,这三个方面。从省时这个角度讲,根据公交查询系统人们能够选择从出发地到目的地的所有乘坐路线,在所有的的乘车路线中按自己的路线选择。能够选择直达的,这样节省的是车上时间。车下时间的节省更是很明显的,不用再在路边或者打电话询问熟人了,由于现代网络的普及使得普通公民上网的时间和机会越来越多,因此人们能够很容易的从公交查询网站捕获到自己需要的信息,这节省的是车下时间。经济这方面也得到很好的体现,由于现代公交乘客信息系统存在的消息捕获得不到保证,在这个时间就是金钱的时代人们可不愿意乘错车而错失自己的金钱。准确性是整个公交系统中的一个重点也是人们最希望得到保证的,公交查询系统根据公交线路的调整及时更新数据库使得人们不必为自己的错误记忆或是不熟悉线路而付出时间和金钱的代价,目的才是最终想要的,因此准确性才是最重要的.1系统开发原理及开发方案1.1数据库应用系统的开发方法1.1.1数据库系统设计步骤数据库系统设计过程能够分为六个阶段:(1)需求分析。进行数据库设计首先必须准确了解与分析用户需要(包括数据与处理)。需求分析是整个设计过程的基础,是最困难、最耗费时间的一步。作为地基的需求分析是否做得充分与准确,决定了在其上构建数据库大厦的速度与质量。需求分析做得不好,甚至会导致整个数据库设计返工重做。(2)概念结构设计。概念结构设计是整个数据库设计的关键,它经过对用户需求进行综合、归纳与抽象,形成一个独立于具体DBMS(DatabaseManagementSystem,数据库管理系统)的概念模型。(3)逻辑结构设计。逻辑结构设计是将概念结构转换为某个DBMS所支持的数据模型,并对其进行优化。(4)数据库物理结构设计。数据库物理结构设计是为逻辑数据模型选取一个最适合应用环境的物理结构(包括存储结构和存取方法)。(5)数据库实施。在数据库实施阶段,设计人员运用DBMS提供的数据语言及其宿主语言,根据逻辑设计和物理设计的结果建立数据库,编制与调试应用程序,组织数据入库,并进行试运行。(6)数据库运行和维护。数据库应用系统经过试运行后即能够投入正式运行。在数据库系统运行过程中必须不断地对其进行评价、调整和修改。设计一个完善的数据库应用系统是不可能一蹴而就的,它往往是上述六个阶段的不断重复。这个设计步骤既是数据库设计的过程,也包括了数据库应用系统的设计过程。在设计过程中数据处理的设计紧密结合起来,将这两个方面的需求分析、抽象、设计、实现在各个阶段同时进行,相互参照,相互补充,以完善两方面的设计。事实上,如果不了解应用环境对数据的处理要求,或没有考虑如何去实现这些处理要求,是不可能设计一个良好的数据库结构的。1.1.2概念设计的方法与步骤设计概念结构一般有四类方法:(1)自顶向下。即首先定义全局概念结构的框架,然后逐步细化。(2)自底向上。即首先定义各局部应用的概念结构,然后将它们集成起来,得到全局概念结构。(3)逐步扩张。首先定义最重要的核心概念结构,然后向外扩张,以滚雪球的方式逐步生成其它概念结构,直至总体概念结构。(4)混合策略。即将自顶向下和自底向上相结合,用自顶向下策略设计一个全局概念结构的框架,以它为骨架集成由自底向上策略中设计的各局部概念结构。1.2J2SE技术Java2标准版是一种开发和部署平台,提供了编写桌面、工作站应用程序所有必须的功能。J2SE软件是快速开发、部署关键任务和企业应用程序的首选解决方案。J2SE1.4版本是基于Java跨平台技术和强有力的安全模块而开发的,其最新的特征和功能极大地提高了Java语言的伸缩性、灵活性、适用性,以及可靠性。J2SE1.4特点:1.良好的计算性能和缩放能力。J2SE1.4版是一个快速开发和配置跨平台的企业级应用与服务的综合性平台。它提升了Java计算的性能与缩放能力,代表了Java技术的大跨步进展。有了J2SE1.4版,企业就能够经过更简易的步骤、花费更少的时间,采用Java技术开发与配置要求更高的应用了。J2SE1.4版在Java客户机应用方面得到了重大性能提升。基于Swing的Java小程序和应用程序在图形用户界面(GUI)的响应速度上也大有提高。2.跨平台。J2SE1.4版是一个具有综合性能的平台,能使一个完整的、可缩放的高性能应用配置在任何种类的平台上。3.支持Web服务。J2SE1.4版与以前各J2SE版全面兼容。J2SE1.4版对SSL、LDAP和CORBA等业界标准技术也给予支持,因此保证了在不同平台、系统和环境间的互操作能力。J2SE1.4版支持XML技术和一整套安全服务,因此为基于各类标准的可互操作应用与服务的创立奠定了重要基础。有了J2SE1.4版与JavaWebServicesDeveloperPack的结合,开发商就能创立、测试和配置Web服务了。4.完整性J2SE1.4版还是一个完整的开发环境。开发商可基于这一环境创立功能丰富的交互式应用。这些应用能够配置在任何平台上。J2SE1.4具有新的GUI控制功能、快速的Java2DT图形功能、支持国际化与本地化扩展和新的配置选项,并对WindowsXP提供扩展支持。总之,J2SE1.4版是多种不同风格软件的开发基础,包括客户端Java小程序和应用程序,以及独立的服务器应用程序等。J2SE1.4版还是J2ME的基础,是J2EE执行程序的推动力。Java之因此能够发展得很快,是因为互联网的发展非常快。Java能够和浏览器结合在一起,因而很自然地在桌面系统得到广泛应用。从计算的结构来看,Java主要分三大类:第一是服务器端,这里就有了J2EE企业版;第二是桌面PC,这一类用的是J2SE标准版;第三就是掌上电脑、移动设备,用的都是J2ME。可是,大部分非企业级软件还是在J2SE上开发的比较多。首先,这是因为很多的应用软件都是在J2SE上开发的;其次,J2SE是和J2EE兼容的,企业版是在标准版上的扩充,在J2SE的版本上开发的软件,拿到企业的平台上是一样能够运行的;再次,一般开发还是在J2SE的环境上,只是说J2ME提供微型版的一个环境。在J2SE上虚拟出一个环境,开发出来的应用软件是能够拿到微型版上运行的。为了使我们的程序在具有安全性、完整性、健壮性的同时,同时有能够方便的移植,因此我们能够采用JDBC连接数据库。JDBC是一种可用于执行SQL语句的JavaAPI。它由一些Java语言写的类、界面组成,使开发人员能够用纯Java语言编写完整的数据库应用程序。用JDBC写的程序能够自动地将SQL语句传送给相应的数据库管理系统。在本地数据库程序使用Microsoft的Access等数据库时,我们能够使用Sun公司开发的JDBC-ODBCBridge,用此技术JSP程序就能够访问带有ODBC驱动程序的数据库。这样即保证了JDBC的优点而且保证了纯JSP程序的安全性、完整性、健壮性和可移植性,又能够使用Microsoft提供的ODBC数据源与Access连接。不论对方是何种数据库,只要有ODBC接口就能够直接使用JDBC-ODBCBridge与数据库连接,而无需因为后端数据库的改变而改动相应的程序代码,实现了应用层与数据库层的完美分离。如果我们需要变后端数据库为MySQL,只需要在ODBC数据源中安装了MySQL的驱动程序之后,就能够直接使用MySQL数据库了。1.3系统的开发方案1.3.1JAVA开发环境要编写Java的程序,至少需要具备以下3个条件。(1)需要具备一台PC机,从而能够提供开发的硬件(2)需要在计算机上安装java的JDK,并进行环境变量的设置。(3)需要在计算机上安装Myeclipse软件,有利于开发效率的提高。要进行Java的公交线路查询系统的开发还必须具备下面的条件需要一个数据库产品的支持,比如SQLServer安装和配置JDK能够到下载JDK并完成安装。,完成安装后,需要设置环境变量,如果操作系统是Windows7,则用鼠标右键单击”我的电脑”,选择”属性高级系统设置高级环境变量”,如下图1-1图1-1进入环境变量的设置图1-2环境变量在”用户变量”下面的”新建”按钮,依次建”classpath”,以及”path”环境变量。其内容如下所示:CLASSPATH=.;%JAVA_HOME%\lib\dt.jar;%JAVA_HOME%\lib\tools.jar;path=C:\jdk1.6.0_10\bin完成以上设置后,能够新打开一个DOS窗口,分别键入java和javac命令测试一下,如果一切正常,就表明JDK安装成功,从而能够进行下面的工作了。图1-3测试JDK是否配置好1.3.2SQLServer简介SQLServer是Micrcoft公司在原来和Sybase公司合作的基础上打包出的一款面向高端的数据库系统。自它推出后,迅速占领了的数据库应用市场。经过不断的更新换代,它已发展到了SQLServer,它具有高性能、功能强、安全性好、易操作、易维护等优点,我们选择SQLServer作为我们的数据库,因为它提供了一款完善的数据管理和数据分析解决方案。SQLServer包括4个常见版本。企业版(EnterpriseEdition)支持所有的SQLServer特性,可作为大型Web站点、企业OLTP(联机事务处理)以及数据仓库系统等的产品数据库服务器。标准版(StandardEdition)用于小型的工作组或部门。个人版(PersonalEdition)用于单机系统或客户机。开发者版(DeveloperEdition)用于程序员开发应用程序,这些程序需要SQLServer作为数据存储设备。我们设计的南昌市公交交线路查询系统用的是开发版SQLServer。SQLServer的运行。先打开服务如图所示:状态为正在运行表示服务已经启动成功。然后就能够启动服务管理器了。图1-4启动SQLServer服务启动服务管理器,输入用户名和密码就能够在里面进行数据库的设计了,如图所示图1-5登录服务管理器2系统需求分析2.1系统运行环境需求分析操作系统:Win9x/XP//Win7软件配置:系统必须安装有JDK,MicrosoftSQLServer数据库配置:MicrosoftSQLServer在PC机中新建数据库,建立各个数据表、关系图。2.2功能需求分析南昌市公交查询系统系统的主要开发包括,客户端应用程序主要是指前台的开发和后台控制。服务器端数据库的初始化,数据表,关系图的建立,删除。站站查询——只要在我们设计的首页中相应的地方输入起站点和要到达的目的地站点,点击”查询”按钮,就能够查到你要到达目的地的所有乘车方式,这里所有的乘车方式包括了直接到达目的地的和所有需要倒车才能到达的路线。这样节省了一些想直接到达目的地乘客的时间也方便了一些想再中途办事的人。站点查选——输入你知道的站点的名字就能够列出经过该站点的公交线路,然后你能够根据线路选择你需要的线路来到达你的目的地。临近查询——你可能不知道站点名字,但你可能知道挨近哪个地方,这样你能够输入这个地点,列出靠近这个地点的公交线路。线路查询——根据你知道的线路号来进行查选,直截了当,给你最快的信息。后台管理——这个后台管理系统体现了人性化的设计。能够根据公交实际的线路的增添、线路的修改、站点的增添、站点的删除进行改进。只要在管理员登陆后,就能够增加新线路、增加新站点、增加新建筑物、修改线路、修改线路属性、线路删除、建筑物删除、站点删除等来完成与实际相符合的路线。这一功能更加的体现了公交线路的灵活性。2.3系统总体结构设计与系统功能模块设计2.3.1系统总体结构设计公交查询系统公交查询系统公交查询模块数据后台管理模块图2-2系统总体结构图整个系统数据库用户2.3.2系统功能结构设计公交查询子系统是这个系统的一个重要的模块,它快捷、方便、准确的提供了乘客所需要的乘车路线。查询模块(一)首先给出查询的条件比如是站点查询,线路查询等(二)根据查询条件进入相关界面(三)进入见面后,根据用户输入的关键字进行查询,检查用户是否录入了相关数据,如果没有录入,则提示:请将查询条件填写完整! (四)如果出发站点和目标站点都填写了,则进入系统服务类根据给定的条件进行查找。后台管理模块是很重要的一个模块,为了不让普通乘客随意的添加路线、修改路线、删除路线等,我们给后台设计了专用的帐号和密码,只供专业人员进入,进行整个系统数据的修改工作。后台管理模块 (一)增加新线路:首先选择市区路线和郊区路线,然后输入线路名称,追个输入站点名字后点确定后即添加成功。 (二)修改线路:选择线路或者直接输入线路号。然后选择你需要修改的站点名称点击确定即修改成功。 (三)线路删除:选择线路或者直接输入线路号。然后点击确定后即删除成功。(四)站点、建筑物添加、修改、刪除跟上述增加新线路、修改线路、线路删除操作大同小异就不一一介绍了。 (五)查询操作:根据查询条件进行查询,这里以便管理员对线路的维护。后台管理模块增加后台管理模块增加新线路修改路线增加新站点登陆模块增加新建筑物建筑物删除站点删除修改线路属性查询模块图2-2后台管理模块图整个系统的设计仿佛是分了模块,可是很多模块之间的设计都在相互的影响着,做某个模块的时候可能需要调整其它的模块,因此这些模块都是在相互作用的同时相互改进,最后达到统一和谐的一个整体。2.3.3系统用户权限的界定为保证系统数据的安全性,防止非法访问数据和出现数据丢失、数据随意改变现象,需要对数据库实施保护。主要保护措施是:防止非法访问,对使用权限做出划分,不同身份的人员进入系统后操作的权限进行界定;防止故障的产生必定进行定期的备份。具体说明如下:在用户管理与权限设置方面,根据系统的实际情况和从简化系统出发,对于前台所有乘客都是开放的,但后台数据库做严格的权限控制,只能管理员才能进入。使用整个系统的人员,能够划分为2类:(一)系统管理员:系统管理人员对系统拥有最高权限,能够对后台控制模块进行操作,由于后台控制模块能够控制整个系统的所有数据的增,删,改操作,因此我们在前台就设计了一个访问后台的登陆器来直接设定系统管理员,前台设定系统管理员的界面。她除了对系统一般数据的控制权,还能够直接删除其它用户。因此她是最高的权限者。这一角色由系统设计人员直接设定。(二)普通乘客:普通乘客指不需注册的用户,她的权限最低,在公交查询系统她能够进行所有的线路查询的权利,可是没有增加个修改路线的权限,她是两种用户中权限最低的用户。2.4数据库设计数据库设计是建立数据库及其应用系统的技术,是信息系统开发和建设中的核心技术。数据库设计是指对于一个给定的应用环境,结构最优的数据库模式,建立数据库及其应用系统,使之能够有效地存储数据,满足各种用户的应用的需要(信息要求和处理要求)。2.4.1数据库需求分析由于本系统面向的对象有2个,即普通乘客和系统管理员,因此在数据库分析中就要考虑二方面的因素。(1)对于普通乘客来说,就她们关心和能够使用的功能总结出如下需求信息。用户查询:对于任何用户,只要浏览本本系统的首页,就能够根据自己的需求进行线路的查询。(2)对于系统管理员来说,她的权限最大,除了以上的功能,她还具有的功能主要体现在后台管理,归纳如下。线路管理:根据系统的需要和公交线路的调整,能够实现线路添加和删除等操作。站台管理:根据系统的需要和公交线路的调整,能够实现站台添加和删除等操作。3公交查询系统的设计流程下面来看整个公交查询系统的设计流程,从后台数据管理模块到站站查询模块,把每个功能的设计流程描叙如下:3.1系统实现前台功能分为公交查询模块和后台数据管理模块这二个部分组成。先来看看整个网站的首页效果图,因为我们要用实现查询,因此我们需要让这个界面处于简单话,这样既节省了乘客查找的时间时间,又能很直接的显示出乘客所需要查询的路线。图3-1系统首页3.2后台数据库管理模块后台管理模块要实现增加新线路、增加新站点、增加新建筑物、修改线路、修改线路属性、线路删除、建筑物删除、站点删除。(1)首先,显示数据输入的界面,由于后台是一个支持前台正常工作的一个系统,因此我们需要给后台设计一个登陆帐户和密码。来保障系统能够正常运行。(2)当管理员输入了数据,单击”保存”按钮后,根据输入的数据到后台检查是否有不符合的输入,如果有则弹出相关提示的界面。如果没有则对后台数据操作,比如添加、修改等。(3)根据数据库的后台操作成功与否返回提示。这里我们给出了后台登陆、线路添加和删除的代码与相应的图片。这里介绍的就是后台登陆模块,而且给出代码。我们需要填写用户名和密码单击”确定”按钮才能顺利的进入后台管理区。后台登陆界面如下图3-2后台登陆界面后台登陆的代码如下packagebus;importjava.sql.*;publicclassCheckUser{ Connectionconnection=Get_Exit_Connection.getConnection(); privateStringmuserid; privateStringmpwd; publicCheckUser(Stringuserid,Stringpwd) { muserid=userid; mpwd=pwd; } publicVoUsersgetUser() { Stringstrsql="select*fromUserswhereUserId=?"; VoUsersvu=newVoUsers(); try { PreparedStatementps=connection.prepareStatement(strsql); ps.setString(1,muserid); java.sql.ResultSetrs=ps.executeQuery(); if(rs.next()) { vu.setUserid(rs.getString(1)); vu.setUserpassword(rs.getString(2)); } else { vu.setUserid(""); vu.setUserpassword(""); } rs.close(); ps.close(); } catch(SQLExceptionsqle) { sqle.printStackTrace(); } returnvu; }}如果你的用户名或者密码填写错误的话就会弹出一个对话框告诉你,你的用户名或者密码错误。后台用户名密码登陆错误的代码如下: publicvoidactionPerformed(ActionEventae) { if(ae.getSource().equals(btnre)) { this.cjb.setSelectedItem(""); this.txtpwd.setText(""); cjb.requestFocus(); } if(ae.getSource().equals(btnok)) { Stringname=(String)cjb.getSelectedItem(); if(name.length()<1) { JOptionPane.showMessageDialog(this,"登陆名不能为空!","提示",JOptionPane.INFORMATION_MESSAGE); this.cjb.requestFocus(); return; } Stringpwd=txtpwd.getText(); if(pwd.length()<1) { JOptionPane.showMessageDialog(this,"登陆密码不能为空!","提示",JOptionPane.INFORMATION_MESSAGE); this.txtpwd.requestFocus(); return; } CheckUsercu=newCheckUser(name,pwd); VoUsersvs=(VoUsers)cu.getUser(); if(!(vs.getUserid().equals((String)cjb.getSelectedItem()))) { JOptionPane.showMessageDialog(this,"登陆名或密码错误!","提示",JOptionPane.INFORMATION_MESSAGE); cjb.setSelectedItem(""); this.txtpwd.setText(""); this.cjb.requestFocus(); return; } if(!vs.getUserpassword().equals(txtpwd.getText())) { JOptionPane.showMessageDialog(this,"登陆名或密码错误!","提示",JOptionPane.INFORMATION_MESSAGE); cjb.setSelectedItem(""); this.txtpwd.setText(""); this.cjb.requestFocus(); return; } } }登陆信息错误提示如图3-2图3-3登陆信息错误添加线路模块随着城市的发展,公交线路也在增加,因此我们有必要设置一个线路添加模块来完善整个线路查询系统,使系统能够查询这个城市公交路线分布。下图就是线路查询系统的一个添加模块,只要我们点击添加,就能够添加线路的名称和站点了。在添加线路之前会在数据库中的线路表中查找有没有和你所要添加线路相同的线路,如果有会弹出线路已经存在的对话框。如果没有我们能够进行正常的线路添加了。下图就是线路查询系统的一个线路添加截图,只要我们点击添加新线路,就能够在相应的地方添加线路的名称和站点了。图3-4新增线路—选择路线类型图3-5新增线路—输入线路名称图3-6新增线路—输入站点名图3-7新增线路—结果界面生成的代码如下:packagebus;importjava.awt.BorderLayout;importjava.awt.Dimension;importjavax.swing.JFrame;importjavax.swing.JPanel;importjavax.swing.JLabel;importjava.awt.*;importjavax.swing.JTextField;importjavax.swing.JButton;importjavax.swing.*;importjava.util.*;importjava.awt.event.*;publicclassStationTypeFrameextendsJDialogimplementsActionListener{ privateJPanelcontentPane;privateJComboBoxjcbtype;privateJLabellbltitle;privateJButtonbtnok;privateJButtonbtnclose; publicStationTypeFrame() { jcbtype=newJComboBox(); lbltitle=newJLabel(); btnok=newJButton(); btnclose=newJButton(); contentPane=(JPanel)getContentPane();contentPane.setLayout(null);setSize(newDimension(318,190));setTitle("请选择线路类型");jcbtype.setBounds(newRectangle(54,50,190,35));lbltitle.setFont(newjava.awt.Font("Dialog",Font.BOLD,15));lbltitle.setText("请选择线路类型:");lbltitle.setBounds(newRectangle(53,0,228,52));jcbtype.addItem("市区线路");jcbtype.addItem("郊区线路");btnok.setBounds(newRectangle(50,107,76,31));btnok.setText("确定");btnclose.setBounds(newRectangle(173,107,76,31));btnclose.setText("取消");contentPane.add(btnclose);contentPane.add(lbltitle);contentPane.add(jcbtype);contentPane.add(btnok); btnclose.addActionListener(this);btnok.addActionListener(this); /*将窗体设置为居中显示*/DimensionscreenSize=Toolkit.getDefaultToolkit().getScreenSize();DimensionframeSize=this.getSize();if(frameSize.height>screenSize.height){frameSize.height=screenSize.height;}if(frameSize.width>screenSize.width){frameSize.width=screenSize.width;}this.setLocation((screenSize.width-frameSize.width)/2,(screenSize.height-frameSize.height)/2); } publicvoidactionPerformed(ActionEventae){ if(ae.getSource().equals(btnclose)) { this.dispose(); } if(ae.getSource().equals(btnok)) { Stringtype=(String)jcbtype.getSelectedItem(); System.out.println(type); VoBusLinevb=newVoBusLine(); vb.settype(type); this.dispose(); newInsertBusidFrame(vb).setVisible(true); }}}实现插入线路的代码如下packagebus;importjava.sql.*;importjava.util.*;importjavax.swing.*;publicclassInsertLine{ privateStringmUpline; privateStringmDownline; privateStringmBusid; privateStringmType; Connectionconnection=Get_Exit_Connection.getConnection(); publicInsertLine(Stringupline,Stringdownline,Stringbusid,Stringtype) { mUpline=upline; mDownline=downline; mBusid=busid; mType=type; } publicbooleancheckinsert() { Stringstrsql="insertintobuslinevalues(?,?,?,?)"; try { PreparedStatementps=connection.prepareStatement(strsql); ps.setString(1,mBusid); ps.setString(2,mUpline); ps.setString(3,mDownline); ps.setString(4,mType); intcount=ps.executeUpdate();ps.close(); returncount>0?true:false; } catch(SQLExceptionsqle) { sqle.printStackTrace(); returnfalse; } }}在添加完毕以后,就能够在数据库里运行了。线路删除和修改模块其实我们这个删除模块和修改模块是同一个模块。这个系统设立了线路删除和修改模块,是根据公交线路的更改而设置的,有了删除和修改这一模块,我们就不用在为了一个站点的更换,而删除整个线路了,就能够从站点列表中更改所需要的站点了,这也是这个系统更加灵活了。能够随着条件的改变而做出相应的变化。如果是删除,选择你要删除或输入你要的线路名称就能够达到删除的目的。界面如下:图3-6图3-8删除线路线路删除的代码如下packagebus;importjava.sql.*;importjava.util.*;publicclassDeleteByLine{ Connectionconnection=Get_Exit_Connection.getConnection(); publicDeleteByLine() { } publicbooleanDeleteLine_BusLine(Stringbusid) { Stringstrsql="deleteBusLinewhereBusId=?"; try { PreparedStatementps=connection.prepareStatement(strsql); ps.setString(1,busid); intcount=ps.executeUpdate(); ps.close(); returncount>0?true:false; } catch(SQLExceptionsqle) { sqle.printStackTrace(); returnfalse; } } publicbooleanDeleteLine_Attribute(Stringbusid) { Stringstrsql="deleteAttributewhereBusId=?"; try { PreparedStatementps=connection.prepareStatement(strsql); ps.setString(1,busid); intcount=ps.executeUpdate(); ps.close(); returncount>0?true:false; } catch(SQLExceptionsqle) { sqle.printStackTrace(); returnfalse; } } publicbooleanDeleteStation(Stringstation) { Vectorall=newVector(); try { StringstrUp="SELECTBUSID,UPLINEFROMBUSLINEWHEREUPLINELIKE'%"+station+"%'"; StringstrDown="SELECTBUSID,DOWNLINEFROMBUSLINEWHEREDOWNLINELIKE'%"+station+"%'"; Stringstrsql="deleteStationwherestation=?"; StatementstaUp=connection.createStatement(); ResultSetrsUp=staUp.executeQuery(strUp); while(rsUp.next()) { Stringid=rsUp.getString(1); Stringstr=rsUp.getString(2); Line_Disposeline=newLine_Dispose(str); line.remove(station); str=line.get_All(); Vectorvec=newVector(); vec.add(id); vec.add(str); all.add(vec); } rsUp.close(); staUp.close(); StringupdateUp="updatebuslinesetupline=?wherebusid=?"; for(inti=0;i<all.size();i++) { PreparedStatementpsUp=connection.prepareStatement(updateUp); Vectorvec=(Vector)all.get(i); psUp.setString(1,(String)vec.get(1)); psUp.setString(2,(String)vec.get(0)); psUp.executeUpdate(); psUp.close(); } all=newVector(); StatementstaDown=connection.createStatement(); ResultSetrsDown=staDown.executeQuery(strDown); while(rsDown.next()) { Stringid=rsDown.getString(1); Stringstr=rsDown.getString(2); Line_Disposeline=newLine_Dispose(str); line.remove(station); str=line.get_All(); Vectorvec=newVector(); vec.add(id); vec.add(str); all.add(vec); } rsDown.close(); staDown.close(); StringupdateDown="updatebuslinesetdownline=?wherebusid=?"; for(inti=0;i<all.size();i++) { PreparedStatementpsDown=connection.prepareStatement(updateDown); Vectorvec=(Vector)all.get(i); psDown.setString(1,(String)vec.get(1)); psDown.setString(2,(String)vec.get(0)); psDown.executeUpdate(); psDown.close(); } PreparedStatementps=connection.prepareStatement(strsql); ps.setString(1,station); intcount=ps.executeUpdate(); ps.close(); returncount>0?true:false; } catch(SQLExceptionsqle) { sqle.printStackTrace(); returnfalse; } } publicbooleanDeleteBuild(Stringbulid) { Stringstrsql="updateStationsetnearbuild=nullwherenearbuild=?"; try { PreparedStatementps=connection.prepareStatement(strsql); ps.setString(1,bulid); intcount=ps.executeUpdate(); ps.close(); returncount>0?true:false; } catch(SQLExceptionsqle) { sqle.printStackTrace(); returnfalse; } } publicbooleaninsertBuild(Stringstation,Stringnearbulid) { Stringstrsql="insertintostationvalues(?,?)"; try { PreparedStatementps=connection.prepareStatement(strsql); ps.setString(1,station); ps.setString(2,nearbulid); intcount=ps.executeUpdate(); ps.close(); returncount>0?true:false; } catch(SQLExceptionsqle) { sqle.printStackTrace(); returnfalse; } } publicbooleaninsertStation(Stringstation) { Stringstrsql="insertintostationvalues(?,null)"; try { PreparedStatementps=connection.prepareStatement(strsql); ps.setString(1,station); intcount=ps.executeUpdate(); ps.close(); returncount>0?true:false; } catch(SQLExceptionsqle) { sqle.printStackTrace(); returnfalse; } } }如需要把10线路中的”南昌大学”站点换成”天虹商场”站点,我们就能够经过后台修改模块来做出相应修改。修改实图如下:图3-9修改线路—修改站点名3.3查询模块这是我们设计的主要目的,就是为了让乘客能到达最终所需要去的地方。1.站站查询——在我们设计的界面中相应的地方输入起站点和要到达的目的地站点,点击”查询”按钮,就能够查到你要到达目的地的所有乘车方式。2.站点查选——输入你知道的站点的名字或根据站点的首字母来查询,然后点击”查询”按钮。3.临近查询——输入建筑物名或根据建筑物的首字母来查询,然后点击”查询”按钮。4.线路查询——输入线路名称,或直截根据界面上的数字来查询,然后点击”查询”按钮。3.3.1图3-10站站查询实现站站查选的代码如下packagedemo;importjava.sql.*;importjava.util.*;importjavax.swing.*;importjavax.swing.table.*;/*双站点查询查询类*/publicclassSelectTwoStation{ privateConnectionconnection=Get_Exit_Connection.getConnection(); privateVectorvecAll; privateVectorvecTitle; privateDefaultTableModeldtm; publicSelectTwoStation(Stringstation_one,Stringstation_two) { vecAll=newVector(); vecTitle=newVector(); vecTitle.add("车次"); vecTitle.add("起点站"); vecTitle.add("终点站"); StringstrUp="SELECTBUSID,UPLINEFROMBUSLINEWHEREUPLINELIKE'%"+station_one+"%"+station_two+"%'"; StringstrDown="SELECTBUSID,DOWNLINEFROMBUSLINEWHEREDOWNLINELIKE'%"+station_one+"%"+station_two+"%'"; try { StatementstaUp=connection.createStatement(); ResultSetrsUp=staUp.executeQuery(strUp); while(rsUp.next()) { Vectorvec=newVector(); Stringid=rsUp.getString(1)+"(上行)"; Stringupline=rsUp.getString(2); Line_Disposeline=newLine_Dispose(upline); Stringstart=line.get_First_Station(); Stringend=line.get_End_Station(); vec.add(id); vec.add(start); vec.add(end); vecAll.add(vec); } rsUp.close(); staUp.close(); } catch(SQLExceptionsqle) { sqle.printStackTrace(); } try { StatementstaDown=connection.createStatement(); ResultSetrsDown=staDown.executeQuery(strDown); while(rsDown.next()) { Vectorvec=

温馨提示

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

评论

0/150

提交评论