欢迎添加微信互相交流学习哦!

项目源码:https://gitee.com/oklongmm/biye2

摘要:公交查询系统是城市道路交通的重要组成部分,是城市发展的必然产物,是联系国民生活、社会生产和流通领域的关键环节。安阳城市公交查询系统的发展处于一个较落后的水平,人们可以获得信息的方式较少,为了解决这种问题,提出了基于JAVA的城市公交查询系统。
本文首先对公交查询系统的需求进行了分析,包括功能需求和非功能需求;接着介绍了系统总体设计思路、方案选择和数据库设计;随后详细阐述了系统主要功能模块的实现过程;最后给出系统的测试方案。本公交查询系统主要具有公交查询、用户留言、用户管理和后台车次管理功能。公交查询包括车次、站点、换乘等方案的查询;用户留言主要是收集用户的留言信息,以方便根据用户提供的留言信息或是提出的建议对系统进行修改和完善;用户管理功能主要是删除用户信息和修改用户注册的基本信息;后台车次管理功能主要是添加车次和站点功能、更新车次和站点功能、删除车次和站点功能。本系统基于B/S模式开发,采用JSP技术,SQL Server 2000构建后台数据库。
本系统的使用在方便广大市民,提高市民乘车效率的同时,也为信息化技术在城市现代化建设中,提供了有益的探索。
关键词:JSP;SQL;JDBC;公交查询
The Public Transport Inquiry System Based on JAVA
Abstract:Public transport inquiry system is an important part in traffic and transportation domain, and its also the inevitable result of social economys development in urban areas. As an important part of urban transportation system, urban public transportation system is acting a key role in human living, in social production and in transportation domain .But the inquiry system of public transportation developments in Anyang is in a comparatively backward level. The general passengers have less way to obtain the information. In order to solve this kind of problem, an inquiry system of public transport based on JAVA is designed.
This paper firstly analyzed the requirements of public transport inquiry system, including functional requirements and non-functional requirements. Then introduces the comprehensive design of the system, system scheme selection and design of database. Then expounded the implementation process of the main functional modules of the system. Finally offers the test plan of the system. The public transport inquiry system includes bus enquiries, the functions of consumer message, the bus number managing on the backstage and the consumer managing. The bus enquiries has included the inquiry of trips, sites, transfer and so on. The function of consumer message mainly collects suggestions from consumer to modify and perfect the system functions. The function of user managing is to delete user information mainly and revises the fundamental user information. The functions of bus number managing are mainly to add, update and delete the bus number and the station on the backstage. The system is based on B / S model development, using the standard JSP language and built by SQL Server 2000 database.
Using the system is not just convenient for the general pubilc, improving work efficiency, but also provides beneficial exploration for the information technology modernization in the city.
Key words: JSP; SQL; JDBC; public transport inquiry
目 录
TOC 1-3 引 言 1
第1章 开发环境及技术简介 2
1.1 JSP基础知识 2
1.2 JDBC 3
1.3 JSP Servlet 3
1.4 开发环境 3
1.5 本文主要工作 4
1.6 本章小结 4
第2章 系统需求分析 5
2.1系统调研 5
2.2系统目标 5
2.3 系统的功能需求 5
2.3.1 系统需求描述 5
2.3.2 系统数据流图 6
2.3.3 系统的功能 6
2.4 系统非功能需求 8
2.5 本章小结 8
第3章 系统设计 9
3.1 系统总体设计 9
3.2 系统方案选择 10
3.3 系统数据库设计 13
3.3.1数据库设计 13
3.3.2 系统E-R图 13
3.3.3 数据库表结构 15
3.4 本章小结 16
第4章 系统实现 17
4.1 用户登录模块 17
4.2 用户个人信息管理模块 18
4.3 公交系统查询模块 19
4.3.1 车次信息查询 19
4.3.2 站点信息查询 20
4.3.3 公交换乘方案查询 21
4.4 站点信息管理模块 22
4.4.1 删除站点 22
4.4.2 添加站点 22
4.5 车次信息管理模块 23
4.5.1 删除车次 23
4.5.2 添加车次 24
4.6 留言板模块 25
4.6.1 发表留言 25
4.6.2 查看留言 26
4.6.3 删除留言 26
4.7 本章小结 27
第5章 系统测试 28
5.1 测试概述 28
5.1.1 测试目的 28
5.1.2 测试原则 28
5.1.3 测试方法 28
5.2 测试用例 28
5.3 测试结果 29
5.4 本章小结 31
结 论 32
致 谢 33
参考文献 34
引 言
随着安阳市城市经济发展,城市规模越来越大,相应的城市公交系统也越来越庞大。许多新建小区大量出现,公交线路也日渐增多,给人们的出行带来了极大便利,但是由于城市规模的不断发展,给人们选择出行乘车线路造成了一定的困难,所以需要提供一个高效的查询系统,才是问题根本所在。基于JAVA的城市公交查询系统,是基于B/S模式的查询系统。它不仅可以用于公交公司管理系统中,也可以单独作为公交管理系统的一个模块存在,并可以制作成公交信息系统查询网,放置于城市的主要场所。这样不仅可以体现出一个城市的智能公交系统的水平,更显示出城市的数字化,信息化水平。
本项目研究的基于JAVA的城市公交查询系统,包括公交查询系统的大部分功能,并提供了用户留言的功能,以方便根据用户提供的留言信息或是提出的建议对系统进行修改和完善,并提供了管理员用户后台维护公交信息的功能,做到能够实时添加和删除公交车次站点。为用户查询提供更会准确的信息。
第1章 开发环境及技术简介
1.1 JSP基础知识
JSP是Java Server Pages”的缩写,可以解释为基于Java的服务端动态页面技术”,。因为Java是编译解释执行的,所以JSP也就摆脱了VBScript、Perl等脚本语言纯粹的解释执行带来的低效率问题。因为Java是平台无关的,所以JSP是跨平台的。基于Java是JSP区别包含ASP(Active Server Pages)在内的其它服务端动态页面技术的重要特征。JSP是服务端技术,所以JSP文档要先经服务端翻译、解释、执行,才能得到客户端浏览器能识别的HTML文档。这是当前Web技术的潮流,是解决客户端浏览器兼容性问题的客观需要。服务端技术是JSP区别于JavaScript、VBScript等客户端动态页面技术的重要牲。JSP是一种页面技术,而现在JSP只实现了HTTP(Hypertext Transfer Protocol)协议,只能应用于Web页面。这是JSP区别于Servlet的重要牲。JSP是一种动态技术,这是JSP基于Java的自然延伸。在页面中引入程序设计语言的目的是正是为了实现动态交互。因此,JSP就是基于Java的服务端动态页面技术。
JSP技术让动态网面更易编写,功能更强,可移植性更好。概括起来,JSP的设计目标主要有以下几点:
(1)一次编写,到处运行
(2)加强组件能力
(3)作为Java企业平台的门户
(4)更容易建立动态页面
JSP2.0是对JSP1.2版本的升级,其中增加了一些新特性。JSP2.0的设计目标是使动态网页的设计、开发和维护更加容易,网页编写者不必懂得Java编程语言,也可以编写JSP网页。JSP2.0增加了一种称为SimpleTag的扩展机制来简化标签API(Tag API)。JSP2.0引入的最主要的新特性包括:
(1)引入简单表达式语言(EL,Expression Language),它用于JSP页面中的数据访问。这种表达式语言简化了JSP中数据访问的代码,不需要使用Java Script或者Java表达式。
(2)引入创建自定义标签的新语法,该语法使用.tag和.tagx文件,这类文件可由开发人员或者网页作者编写。
(3)对XML语法做了实质性的改进,增加了新的标准文件扩展名(.tagx用于标签文件,.jspx用于JSP文件)。
1.2 JDBC
JDBC是执行SQL语句的Java API。其实,JDBC本身是一个产品的商标名。相对与ODBC(Open Database Connectivity开放数据库连接),也可以把JDBC看作Java Database Connectivity(Java数据库连接)”。它由一组用Java语言编写的类与接口组成。JDBC已成为一种供工具/数据库开发者使用的标准API,用户可以用纯Java API来编写数据库应用。
使用JDBC可以很容易地把SQL语句传送到任何关系型数据库中。用户不需要为每一个关系数据库单独写一个程序。用JDBC API写出唯一的程序,能够将SQL语句发送到相应的任何一种数据库。Java与JDBC的结合,使程序员可以只写一次数据库应用软件后,就能在各种数据库系统上运行。由于Java语言具有健壮性、安全、易使用、易理解和自动下载到网络等优点,因此,它是数据库应用的一个极好的基础语言。现在需要找到一种能使Java应用与各种不同数据库对话的方式,而JDBC正是实现这种对话的一种机制。
JDBC扩充了Java的应用范围。随着学习Java程序设计的人越来越多,对Java的数据库的访问需求越来越迫切。MIS管理员希望Java与JDBC结合,因为这有助于更容易、更经济地发布企业信息。而各个公司可以不断地使用已安装的数据库,方便地存取信息,不必顾及这些数据库是在何种DBMS系统下存储的。有助于缩短新应用的开发时间,并可大大简化数据库的安装与版本控制。另外,在商业销售信息服务领域,Java与JDBC则可以更好地向外界客户提供最新信息。
1.3 JSP Servlet
Java Servlet使用的是一种请求/响应机制,也就是说通过特定的Java程序设计技术,由该Servlet动态产生的响应向某一特定的请求做出响应。Servlet所能应用的请求/响应场合很多,但常用的还是在Web应用程序中用于产生超文本传输协议响应(HTTP)。据此,Servlet可能取代其他类型的HTTP请求/响应机制,譬如通用网关接口(CGI)脚本。
1.4 开发环境
本系统的开发采用JSP、Servlet、JavaBean、JavaScript、JDBC等技术。本系统使用MyEclipse作为开发环境,JDK釆用1.5版本,Tomcat 6.0作为Web服务器。数据库采用SQL Server 2000。
1.5 本文主要工作
本文主要综合介绍了基于Java的城市公交查询系统。全文共五章,分别为开发环境和技术简介,系统需求分析,系统设计,系统实现和系统测试,其中每章的主要内容如下:
第一章为开发环境和技术简介,主要对项目的开发环境、开发技术进行介绍;
第二章为系统需求分析,主要描述系统的调研情况,以及系统功能需求和系统非功能需求,简单的介绍了系统的主要功能模块,包括用户登录、公交查询、留言管理和管理员维护等模块;
第三章为系统设计,主要解释了系统结构设计、方案的选择和系统数据库的设计;
第四章为系统功能模块的实现,描述了各个功能模块的实现,并给出关键模块的实现代码以及运行的效果截图;
第五章对系统做了整体测试,给出系统功能测试用例表,列出了系统测试模块样例,并做了简单分析。
1.6 本章小结
本章主要介绍了本系统所需要的开发环境和技术的简介,可以对系统环境有一个初步的了解,最后是对论文的结构进行了介绍。
第2章 系统需求分析
2.1系统调研
在安阳市公交信息化发展中已有公交查询系统,查询城市公交换乘方案等。有很多系统没有后台的维护管理功能,公交信息不能实时的更新,本系统提供了管理员进行添加、删除车次站点等功能,并提供了用户留言的功能,更加具有实时性和人性化,使公交管理公司能够对用户提供的留言信息和提出的建议对系统进行修改和完善。
2.2系统目标
本项目设定的目标如下:
(1)方便市民更好地掌握公交有关信息,辅助公交管理。
(2)适应成都未来公共交通及社会交通模式快速变化的要求,适应公交运输体制改革的要求、适应成都公交服务向更高层次发展的要求。
(3)为未来智能公交系统查询系统以及开发基于更广大用户的开放式的网络查询系统打下基础。
(4)提高开发人员的软件开发能力,包括对软件工程思想的理解和运用、编程思想和动手能力的结合以及对项目开发进程的管理能力。
2.3 系统的功能需求
2.3.1 系统需求描述
系统需求:
安阳市公交查询系统需要满足来自两方面的需求,分别是查询公交系统的普通用户,后台维护管理人员。
查询公交系统的普通用户的需求是查询成都市公交线路、站点和换乘方案等信息。后台维护管理人员对后台数据库的备份和恢复,添加公交线路站点和更改已有公交线路站点。
在安阳市公交查询系统开发时应该满足以下具体的系统需求:
(1)满足用户查询公交信息的基本要求。
(2)满足后台管理人员方便更改城市公交线路站点等信息的基本要求。
(3)对使用该系统的用户技能要求比较低,操作方便。
(4)能够使用人机互交,界面大方得体,实用。
(5)能够保障城市公交信息数据的安全,准确。
2.3.2 系统数据流图
系统的实体数据包括了管理员,车次,站点,线路,用户和留言。
系统数据流图如图2.1所示。
图2.1 系统数据流图
如图所示,管理员登录系统后,可进行车次管理、站点管理、线路管理、删除用户等操作。普通用户注册登录后,可进行公交信息查询、留言版留言。
2.3.3 系统的功能
系统的功能模块包括用户登录模块,公交系统查询模块,留言板模块,用户个人信息管理模块,站点信息维护模块和车次信息维护模块,系统功能模块图如图2.2所示。
图2.2系统功能模块图
基于系统需求分析,以下为该系统的详细基本功能:
1.用户登录模块
管理员和普通用户分别拥有自己的用户名和密码。对于普通用户注册后如果登录成功,则直接进入到用户个人主界面并选择各种操作,否则会返回到登录界面重新进行登录。管理员登录成功进去管理员住界面选择各种操作。
2.公交系统查询模块
普通用户登录成功后可根据自己需要进行公交查询。有包括车次查询、站点查询和查询公交换乘方案等。车次查询即为根据车次号查询车次经过的站点,该车次开收车时间,票价等基本信息;站点查询为经过该站点的车次信息;公交换乘方案查询即分别输入起始站点和目的站点并查询公交乘车方案。
3.留言板模块
普通用户登录系统后,进入留言版模块,用户可以提出自己的一些看法意见和对本公交系统的建议,以供公交管理人员根据用户建议更加完善本系统,并能查看以前的留言。
4.用户个人信息管理模块
用户登录成功后即可进入到用户的个人主界面,在个人主界面中,用户可以查看个人详细信息,包括用户名账号,保护邮箱等信息,并可以自行修改密码等个人信息,最后注销登录返回到系统登录界面。
5.站点信息管理模块
管理员登录系统后进入相应管理员主界面,在管理员主界面中,可对公交站点信息进行添加和删除,实时更新公交变动信息。
6.车次信息管理模块
管理员登录系统后进入相应管理员主界面,在管理员主界面中,可对公交车次信息进行添加和删除,实时更新公交变动信息。
2.4 系统非功能需求
1.精度
本系统所需的数据类型主要包括用户名、密码等。相关精度要求如下:
(1)用户名:英文加数字组合,并以英文开头。例如:dd123”
(2)密码:5到12位密码。例如yx123”
在登录时,必须注意所选择的身份跟用户名和密码要保持一致。
2.安全性要求
本系统的用户分为管理员和普通用户两类,用户登录时需要根据权限选择不同的功能,每个用户都有自己固定的用户名和密码。
3.时间特性要求
响应时间:基本的信息查询响应时间最长为5秒。对于维护或者批量修改更新数据库的内容响应时间则根据具体软件和硬件情况而定。
4.灵活性
对设备的要求较低,且具有良好的可移植性,用户无论何时何地都可以方便、快捷地使用该系统,具有较强的灵活性和方便性。
2.5 本章小结
本章主要针对城市公交查询系统做出了需求分析,包括整体需求和各个模块的需求,最后列举了几种非功能需求。
第3章 系统设计
3.1 系统总体设计
本系统设计使用了面向对象技术和模块化技术。面向对象技术是一种软件开发和程序设计技术,其所开发的程序是面向对象程序,直接描述客观世界的对象及其相互关系。对象是封装了数据和操作的程序块。所谓封装是为这个程序块建立显示的界面,其它对象只能向这个界面发消息,不能访问内部的私有数据和操作。因此,内部的数据和实现操作的算法若有改动,对其它程序对象没有任何影响。封装使程序局部化、易修改、好维护,但许多对象有相同的功能时免不了重复,所以面向对象技术有继承的机制。此外,由于对象自己操作自己的数据,对同一消息不同的对象均以自己的方式响应,使得一种消息可有多种响应方式,这就是多态性。封装、继承、多态是面向对象程序的主要特征。正是这些特征使程序安全、可靠、可重用、易维护。因而面向对象技术也成为当今计算机的新兴技术。
基于面向对象设计的诸多有点,结合本设计的各项需求设计除了系统的总体流程,流程中包括用户登陆,用户名和密码验证,用户主界面,用户操作和退出几个模块,系统总体流程如图3.1所示。
图3.1 系统流程图
图3.1详细阐述了该系统的整体操作流程。首先用户进行登录,选择登录身份是普通用户或者管理员,如果用户名和密码正确则进入到相应的用户个人主界面,否则返回登录界面重新进行登录。在用户个人主界面,用户可以进行各自需要的操作。若用户为普通用户,则可以进行查询公交信息,留言,注销和更改个人信息等操作;若用户为管理员,则可添加删除公交信息。最后,用户操作完毕,即可退出本系统,整个系统操作流程到此结束。
3.2 系统方案选择
目前比较流行的系统软件开发技术有ASP.NET或JSP(Java Server Pages)与WEB数据库相结合两种,分别由微软和SUN公司开发的一种动态网页语言。都是非常完备的开发技术。目前网络上和各大文献也对两者进行了比较,其中各有优缺点。
首先,JSP与微软的ASP技术非常相似。两者都提供在HTML代码中混合某种程序代码、由语言引擎解释执行程序代码。
在ASP或JSP环境下,HTML代码主要负责描述信息的显示样式,而程序代码则用来描述处理逻辑。普通的HTML页面只依赖于WEB服务器,而ASP和JSP页面需要附加的语言引擎分析和执行程序代码。程序代码的执行结果被重新嵌入到HTML代码中,然后一起发送给浏览器。ASP和JSP都是面向WEB服务器的技术,客户端浏览器不需要任何附加的软件支持。
ASP的编写语言是基于VB的脚本语言,JSP使用的是JAVA,这是两者最明显的区别。
ASP与JSP还有一个更为本质的区别:两种语言引擎用完全不通的方式处理页面中嵌入的程序代码。在ASP下,基于VB的脚本代码被ASP引擎解释执行;在JSP下,代码被编译成Servlet并由JAVA虚拟机执行,这种编译操作仅在对JSP页面第一次请求是发生。
动态语言JSP和ASP在性能上的比较如表3.1所示。
表3.1 JSP与ASP性能对比表
性能 JSP ASP
运行速度 快 较快
运行损耗 较小 较大
难易程度 容易掌握 简单
运行平台 绝大部分平台 Windws平台
扩展性 好 较好
安全性 好 较差
函数支持 多 较少
数据库支持 多 多
厂商支持 多 较少
对XML的支持 支持 不支持
对组件的支持 支持 支持
对分布式处理的支持 支持 支持
应用程度 较广 较广
由上表我们可以很清楚的发现JSP具有运行速度快,运行耗损小,跨平台性,通用性好,良好的结构,强大的数据库等都更比ASP.NET更具优越性。两者中, JSP 应该是未来发展的趋势。基于JSP的众多技术优点和当前发展的趋势,在参考了大量文献资料后,我决定选取JSP作为开发本公交查询系统的主要技术。
而数据库选用SQL Server 2000 因其有以下优点:
(1)SQL Server 2000数据库应用于中小型企业。SQL Server 2000的分布式、复制、全文检索、DTS都可以满足中型的应用。
(2)SQL Server 2000的数据存储在它本身的文件内,在安装目录下的DATA目录下,有和数据库同名的数据文件和日志文件组成。
(3)SQL Server 2000支持存储器、触发器、自定义函数等操作;安全性、并发控制能力、数据挖掘、联机操作等方面都是ACCESS无法超越的。
当前,主流的抽象WEB应用体系结构主要有两种:即C/S 客户机/服务器结构以及B/S 浏览器/服务器结构。
C/S(Client/Server)结构,即大家熟知的客户机和服务器结构。它是软件系统体系结构,通过它可以充分利用两端硬件环境的优势,将任务合理分配到Client端和Server端来实现,降低了系统的通讯开销。目前大多数应用软件系统都是Client/Server形式的两层结构,由于现在的软件应用系统正在向分布式的Web应用发展,Web和Client/Server应用都可以进行同样的业务处理,应用不同的模块共享逻辑组件;因此,内部的和外部的用户都可以访问新的和现有的应用系统,通过现有应用系统中的逻辑可以扩展出新的应用系统。这也就是目前应用系统的发展方向。
B/S(Browser/Server)结构即浏览器和服务器结构。它是随着Internet技术的兴起,对C/S结构的一种变化或者改进的结构。在这种结构下,用户工作界面是通过WWW浏览器来实现,极少部分事务逻辑在前端(Browser)实现,但是主要事务逻辑在服务器端(Server)实现,形成所谓三层3-tier结构。这样就大大简化了客户端电脑载荷,减轻了系统维护与升级的成本和工作量,降低了用户的总体成本。以目前的技术看,局域网建立B/S结构的网络应用,并通过Internet/Intranet模式下数据库应用,相对易于把握、成本也是较低的。它是一次性到位的开发,能实现不同的人员,从不同的地点,以不同的接入方式(比如LAN、WAN、Internet/Intranet等)访问和操作共同的数据库;它能有效地保护数据平台和管理访问权限,服务器数据库也很安全。
比较C/S和B/S优缺点发现,B/S模式具有分布性特点,可以随时随地进行业务处理。业务扩展简单方便,通过增加网页即可增加服务功能。维护简单方便,只需改变网页,即可实现所有用户的同步更新;开发简单,共享性强等。
结合本系统实际情况,我选择采用B/S模式。
因此,本系统开发选用JSP+SQL Server方案,基于B/S模式开发。
3.3 系统数据库设计
3.3.1数据库设计
数据库是信息系统的核心和基础,把信息系统中大量的数据按一定的模型组织起来,提供存储、维护、检索数据的功能,使信息系统可以方便、及时、准确地从数据库中获得所需的信息。数据库是信息系统的各个部分能否紧密地结合在一起以及如何结合的关键所在。因此,数据库设计是信息系统开发和建设的重要组成部分。
本系统数据库表有administrator表、BusInfo表、BusSt表、message表、StInfo表、userInfo表等共6张表。其中administrator表为管理员表,保存有管理员名和密码信息;message表为留言信息表;userInfo表为用户表,保存有用户注册信息;BusInfo表为车次信息表,存有起点站和终点站信息;StInfo表为站点表,存有本系统所有的站点,为系统站点库;BusSt表为每个车次中间站点与车次线路的关联表。
3.3.2 系统E-R图
(1) 用户注册是需要提供的分别有证件号码,提示问题,提示答案,用户名,密码,年龄,地址,邮箱等才能完成注册。用户实体及属性如图3.2所示。
图3.2 用户实体及属性
(2) 管理员是运行数据库时内部添加的,不能在程序中直接添加管理员。管理员实体及属性如图3.3所示。
图3.3 管理员实体及属性
(3) 留言板需要用户登录以后方能留言,内容包括用户名,邮箱地址,留言时间,留言标题,留言内容,和留言ID。留言板实体及属性如图3.4所示。
图3.4 留言板实体及属性
(4) 首先设置站点信息,包括站点号和站点名称,而后设置车次信息,包括车子档次,起点站,终点站,票价,车号和票价档次,如果站点经过某车次则需要站点次序,车号和站点号一致。车次与站点之间关系如图3.5所示。
图3.5 车次与站点之间关系
3.3.3 数据库表结构
(1)用户表userInfo如表3.2所示。
表3.2 用户表信息
列名 中文名称 数据类型 长度 允许空
username 用户名 varchar 50 Not null
userpassword 用户密码 varchar 50 Not null
userage 用户年龄 int 4 null
address 地址 varchar 50 null
email 邮箱 varchar 50 null
question 问题 varchar 50 null
answer 答案 varchar 50 null
idnum 证件号 varchar 50 null
(2)管理员表administrator如表3.3所示。
表3.3 管理员信息
列名 中文名称 数据类型 长度 允许空
adminiID 管理员名 varchar 50 Not null
adminipassword 密码 varchar 50 Not null
(3)车次信息表BusInfo如表3.4所示。
表3.4 车次信息表
列名 中文名称 数据类型 长度 允许空
BusNum 车号 int 4 Not null
beginStid 起始站号 int 4 null
BeginSt 起点站 varchar 50 Not null
endStid 终点站号 int 4 null
EndSt 终点站 varchar 50 Not null
TicketNote 票价 varchar 50 null
BusLevel 车子档次 Varchar 50 null
Note 票档次 varchar 50 null
(4)站点信息表StInfo如表3.5所示。
表3.5 站点信息表
列名 中文名称 数据类型 长度 允许空
StID 站点号 Int 4 Not null
AtName 站点名称 Varchar 50 Not null
(5)中间站点关联表BusSt如表3.6所示。
表3.6 站点信息表
列名 中文名称 数据类型 长度 允许空
id 编号 int 4 Not null
BusNum 车号 int 4 Not null
StID 站点号 int 4 Not null
StOrder 站点序号 int 4 null
(6)留言信息表message如表3.7所示。
表3.7 留言信息表
列名 中文名称 数据类型 长度 允许空
username 用户名 varchar 50 Not null
messagedate 留言日期 datetime 8 Not null
topic 留言主题 varchar 50 Not null
email 邮箱 varchar 50 null
messagetext 留言内容 varchar 250 Not null
id 留言序号 int 4 Not null
3.4 本章小结
本章主要是针对所需系统进行了总体设计、设计方案选择和数据库选择三部分的介绍,通过此章可以对系统有整体的了解。
第4章 系统实现
4.1 用户登录模块
1.模块功能描述
该系统的用户应为普通用户或管理员,他们分别有自己的用户名和密码,用户选择身份后,进入到各自的登录界面,输入相应的用户名和密码,如果登录成功后,即可进入到相应的个人主界面,否则将给予出错提示,并返回登录界面重新登录。
2.模块流程
用户登录模块流程如图4.1所示。
图4.1 用户登陆流程图
3.相应代码实现
conn = db.getConnection();
stmt = conn.createStatement();
sql = select * from administrator where adminiID = +adminname+ and adminipassword = +password+;
rs = stmt.executeQuery(sql);
if (rs.next() && rs != null) {
n++;
}
4.模块运行
用户登录运行界面如图4.2所示。
图4.2 用户登陆界面
图4.2为用户登录界面,用户需要输入用户名和密码,如果输入正确,则直接进入到用户主界面,否则返回登录界面重新登录。
4.2 用户个人信息管理模块
1.模块功能描述
用户登录成功后即可进入到用户的个人主界面,在个人主界面中,用户可以查看个人详细信息,包括用户名账号,保护邮箱等信息,并可以自行修改密码等个人信息,最后注销登录返回到系统登录界面。
2.模块流程
用户个人信息模块流程图如图4.3所示。
图4.3 用户个人信息流程图
4.3 公交系统查询模块
4.3.1 车次信息查询
1.模块功能描述
用户登录成功后即可进入到用户的个人主界面,在个人主界面,用户首先可以进行车次信息查询。车次信息查询是为用户提供一个按公交车的车号(如:1路)查询,并显示该公交车的相关信息(如:公交车的起点站、终点站、票价和车子的档次等信息)。而查询功能的实现是由系统的业务逻辑层中的QueryData类来实现的。
2.模块运行
车次信息查询运行界面如图4-4所示。
图4.4 车次信息查询
3.相应代码实现
HashMap hashMap = new HashMap();
hashMap.put(BusNum,+rs.getInt(busnum));
hashMap.put(BeginSt,rs.getString(beginst));
hashMap.put(EndSt,rs.getString(endst));
hashMap.put(TicketNote,rs.getString(ticketnote));
hashMap.put(BusLevel,rs.getString(buslevel));
hashMap.put(Note,rs.getString(note));
arrayList.add(hashMap);
调用此方法时,在页面中先引用包com.busSystem.util,再创建QueryData类的对象,通过对象调用statisticsByBusInfo()这个方法。
4.3.2 站点信息查询
1.模块功能描述
用户登录成功后即可进入到用户的个人主界面,在个人主界面,用户首先可以进行站点信息查询。站点信息查询是为用户提供按公交车某一个站点查询到该站点需要乘坐公交车的车号。该查询功能的实现也是由系统的业务逻辑层中的QueryData类来实现的。
2.模块运行
站点信息查询运行界面如图4.5所示。
图4.5 站点信息查询
3.相应代码实现
HashMap hashMap = new HashMap();
hashMap.put(BusNum,+rs.getInt(busnum));
hashMap.put(BeginSt,rs.getString(BeginSt));
hashMap.put(EndSt,rs.getString(EndSt));
hashMap.put(TicketNote,rs.getString(TicketNote));
hashMap.put(StName,rs.getString(stname));
arrayList.add(hashMap); //将所有的hashmap放入arrayList
调用此方法时,在页面中先引用包com.busSystem.util,再创建QueryData类的对象,通过对象调用queryStInfo()这个方法。
4 .模块流程
公交系统查询模块流程图如图4-6所示。
图4-6 系统查询流程图
4.3.3 公交换乘方案查询
1.模块功能描述
用户登录成功后即可进入到用户的个人主界面,在个人主界面,用户首先可以进行公交换乘方案的查询。公交换乘方案查询即为用户输入起始站点和目的站点,然后点击查询搜索乘车路线确定换乘的方案。
2.模块运行
公交换乘方案查询模块运行界面如图4.7所示。
图4.7 公交换乘方案查询
3.相应代码实现
rs = stmt.executeQuery(sql);
while (rs.next() && rs != null) {
HashMap hashMap = new HashMap();
hashMap.put(stid, +rs.getInt(stid));
hashMap.put(stname, rs.getString(stname));
arrayList.add(hashMap);
}
4.4 站点信息管理模块
4.4.1 删除站点
1.模块功能描述
删除站点功能:通过车次的下拉选择框选择车次,进行查询列出该车次的所有站点信息,然后点击删除操作就可以删除该站点。需要注意:因为在车次中从起点站到终点站计算,其所有的站点是一个有次序的排列,所以删除一个站点,则它的下个站点次序号依次减少一位。
2.模块运行
删除站点模块运行界面如图4.8所示。
图4.8 删除站点
4.4.2 添加站点
1.模块功能描述
添加站点功能:
(1)在添加站点的文本框中输入要添加的站点名称。
(2)提供了一个站点重名的查找功能,该功能可以对你输入添加的站点名称进行名称查重,通过查询站点编码表,显示这个站点是否已经存在。如果不存在,则将此新增站点名称插入到站点编码表中,如果存在,则不需将此站点名称插入到站点编码表中。
(3)通过下拉选择框选择新增站点所对应的车次号。
(4)如果查询站点总数在文本框中显示为0”,则需要将起点站和终点站同新增的站点一起插入车次和站点的关系表中。如果查询站点总数在文本框中显示不为0”,则只需将新增的站点插入车次和站点关系表中即可。
2.模块运行
添加站点模块运行界面如图4.9所示。
图4.9 添加站点
3.模块流程
公交系统站点信息维护模块流程图如图4.10所示。
图4.10 车次信息维护模块流程图
4.5 车次信息管理模块
4.5.1 删除车次
1.模块功能描述
删除车次功能:分页列出车次信息表中所有的车次信息,选择操作中的删除,就可以将对应的车次信息删除,但是在删除车次信息的时候需要先删除车次与站点关系表中所有对应该车次的信息。如果不先删除就会出现违反数据库完整性。
2.模块运行
删除车次模块运行界面如图4.11所示。
图4.11 删除车次
4.5.2 添加车次
1.模块功能描述
添加车次功能主要是增加一个车次详细信息,其中包括:车次号,起点站,终点站,票价,汽车档次,票价类型。需要注意,在添加起点站和终点站的时候,数据都是从站点库获得然后添加到起点站和终点站中去。因为添加车次它只涉及到车次的详细信息,如果要想添加站点,则需要在添加站点功能页面中进行相应的操作。
2.模块运行
添加车次模块运行界面如图4.12所示。
图4.12 添加车次
3.模块流程
公交系统车次信息维护模块流程图如图4.13所示。
图4-13车次信息维护模块
4.6 留言板模块
4.6.1 发表留言
1.模块功能描述
发表留言是公交查询系统的一个新增的功能,主要是收集用户的留言信息,可以根据用户提供的留言信息或是提出的建议,对系统进行修改和完善。使得系统更加趋于成熟完整。注册的用户登录到发表留言的板块当中,系统会自动提取用户名称,用户只需添上自己的邮箱,发表的主题和内容即可。
2.模块运行
发表留言模块运行界面如图4.14所示。
图4.14 发表留言
4.6.2 查看留言
1.模块功能描述
查看留言很简单为用户提供了一个查看自己的发表的留言,而其它用户是不能看见的。因为系统是一个管理方面的功能较多,所以不会将用户留言信息提供其它的用户查看。
2.模块运行
查看留言模块运行界面如图4.15所示。
图4.15 查看留言
4.6.3 删除留言
1.模块功能描述
删除留言功能只有管理员才能查看并操作,在删除的显示页面中会将所有的用户留言信息及用户名显示出来。这样也为管理员提供查看哪些用户是非法的发布留言内容。针对这种情况删除该用户。
2.模块运行
删除留言模块运行界面如图4.16所示。
图4.16 删除留言
3.模块流程
系统留言板模块流程图如图4.17所示。
图4.17系统留言板流程图
4.7 本章小结
本章主要是对系统各个模块的进行了功能介绍,并罗列了各模块的流程图,运行界面等,是系统实现的细节介绍。
第5章 系统测试
5.1 测试概述
5.1.1 测试目的
软件测试的目标是以最少的时间和人力,系统地找出软件中潜在的各种错误和缺陷,因此软件测试的目的是:
(1)测试是为了发现程序中的错误而执行程序的过程。
(2)一个好的测试用例在于能够发现至今尚未发现的错误。
(3)一次成功的测试时发现了至今尚未发现的错误测试。
5.1.2 测试原则
在软件测试中,应遵循以下测试原则:
(1)在设计测试用例时,要给出测试的预期结果,便于对照。
(2)在设计测试用例时,不仅要设计合理的输入条件,还要设计不合理的输入条件。
(3)除了检查程序是否做了应该做的工作,还要检查程序是否做了不应该做的工作。
(4)应制定测试计划并严格执行,排除随意性。
(5)长期保持测试用例。
(6)充分注意测试中的群集现象。
5.1.3 测试方法
程序测试有静态测试方法和动态测试方法两类。一般意义上的测试是指动态测试,主要有两种方法,一种是测试产品的功能,称为黑盒测试法;另一种是测试程序内部结构及处理过程称为白盒测试法。
5.2 测试用例
系统的服务对象是普通用户,因此测试时可以针对用户进行测试,测试模块主要是用户登录模块,用户留言模块和公交查询模块。
以下为具体功能的测试用例如表5.1所示。
5.1 测试用例
测试模块 用例编号 输入操作 输出结果
用户登录 1 用户没有输入用户名或密码 提示输入用户名和密码
2 用户输入用户名和密码,但用户名不存在 提示用户登录失败
3 用户输入用户名和密码。密码不正确 提示用户登录失败
4 用户正确输入用户名和密码 登录成功进入个人主界面
用户留言 1 添加用户留言 成功添加
2 查询用户留言 如果用户没有留言,则显示无留言;有留言则显示
公交查询 1 查询公交线路 成功显示公交线路信息
2 查询公交站点 成功显示公交站点
3 查询换乘信息 成功显示换乘信息
5.3 测试结果
根据测试用例依次对程序进行测试,测试过程中所有操作和功能均能够正常完成,说明本程序已经达到了预期目的。
1.首先对用户登录模块进行测试,用户的四种情况的操作都能正常处理,用户成功登录后进入个人主界面,测试结果如图5.1所示:
图5.1 用户个人主界面
2.然后对用户留言模块进行测试,用户可以正常添加留言和查看留言,测试结果如图5.2所示:
图5.2 用户查看留言
3.最后对公交查询模块进行测试,用户可以通过车次查询、站点查询和两站之间的换乘查询,经测试,三种功能均已实现,车次查询测试结果如图5.3:
图5.3 车次查询
站点查询测试结果如图5.4:
图5.4 站点查询
两站之间的换乘查询测试结果图5.5:
图5.5 站站查询
5.4 本章小结
本系统主要实现了公交查询功能,并附有用户留言的功能,同时具有管理员后台维护公交信息等功能。但由于本人能力不足以及所学知识的缺乏,再加上时间有限,该系统还不够健全。
结 论
本公交查询系统是在充分了解需求的基础上开发出来的,功能基本都已达到用户的要求,且操作简单,具有较高的数据安全性。该软件主要是针对广大出行人士查询城市公交信息而开发的基于J2EE应用端软件,该系统具有查询公交线路和公交站点功能,另外还增加了用户登录为公交系统提供建议的留言等功能。并能通过管理员登录维护系统公交信息。
在完成这次毕业设计的过程中,自己查阅了大量的书籍,并且通过互联网也查阅了许多相关资料,开发出具有B/S结构模式的公交系统,从而使我的编程能力和自学能力得到了很大程度的提高,对网站设计有了更深地了解。
但是,由于整个系统完全都是由个人设计的,有关J2EE许多知识都要靠自己去摸索,加之自己水平有限,未能完全地理解J2EE的强大功能,因此,系统还存在着许多不足之处,比如不能够有效率地实现公交换乘方案。该系统虽然基本实现了所要求的功能,但是还存在很多不足,有很多功能也过于简单,需要进一步完善和改进。
致 谢
本设计的完成是在我们的导师李源老师的细心指导下进行的。在每次设计遇到问题时老师不辞辛苦的讲解才使得我的设计顺利的进行。从设计的选题到资料的搜集直至最后设计的修改的整个过程中,花费了李老师很多的宝贵时间和精力,在此向李老师表示衷心地感谢!李老师严谨的治学态度,开拓进取的精神和高度的责任心都将使学生受益终生!
还要感谢本专业的几位同学,是你们在我平时设计中和我一起探讨问题,并指出我设计上的误区,使我能及时的发现问题把设计顺利的进行下去,没有你们的帮助我不可能这样顺利地结稿,在此表示深深的谢意。
参考文献
[1] 郑莉,王行言,马素霞.java语言程序设计[M].北京:清华大学出版社,2006.
[2] 王珊,萨师煊.数据库系统概论[M].北京:高等教育出版社,2006.
[3] 赵池龙,杨林,孙伟.实用软件工程[M].北京:电子工业出版社,2006.
[4] 邓子云. JSP应用开发[M].北京:电子工业出版社,2007.
[5] 张黎伟.JSP从入门到精通[M].上海:上海科学普及出版社,2007.
[6] 高铁杠,顾巧论.智能公交查询系统[J].新技术应用,2005,(7):31-32.
[7] 王宏.SQL Server 2000 数据库管理[M].北京:人民邮电出版社,2001.
[8] 王路群.Java高级程序设计[J].北京:中国水利水电出版社,2006.
[9] 冯玉琳,赵宝华.软件工程:方法·工具和实践方法[M].合肥:中国科学技术大学出版社,1988.12.
[10] 张海藩.软件工程导论.第三版[M].北京:清华大学出版社,1998.1.
[11] 柳西玲,许斌.Java语言应用开发基础[M].北京:清华大学出版社,2006.
[12] 宛延闿等.实用Java程序设计教程[M].北京:机械工业出版社,2006.
[13] [美]Y.Daniel Liang.Java语言程序设计[M].北京:机械工业出版社,2008.6.
[14] Borland International,Inc.数据库应用程序开发指南[M].北京:石油工业出版社,1996.5.
[15] [美]Herbert Schidt.Java参考大全[M].北京:清华大学出版社,2006.

基于JAVA的城市公交查询系统毕业论文相关推荐

  1. 基于JAVA的城市公交查询系统毕业论文(含源文件)

    获取项目源文件,学习交流联系Q:1225467431 摘要:公交查询系统是城市道路交通的重要组成部分,是城市发展的必然产物,是联系国民生活.社会生产和流通领域的关键环节.安阳城市公交查询系统的发展处于 ...

  2. 计算机毕业设计ssm基于Java的城市公交查询系统ac5p2系统+程序+源码+lw+远程部署

    计算机毕业设计ssm基于Java的城市公交查询系统ac5p2系统+程序+源码+lw+远程部署 计算机毕业设计ssm基于Java的城市公交查询系统ac5p2系统+程序+源码+lw+远程部署 本源码技术栈 ...

  3. java 城市公交查询系统源码_基于Java的城市公交查询系统的毕业设计参考源码

    资料介绍 一.实现多种查询功能,包括根据商厦名称.公交车号.日常站点.和任意两个站点查询乘车路线.其次,采用最短路径算法查找任意两个站点之间的最短乘车路线.最后,提供了用户留言的功能.用户管理功能和后 ...

  4. 基于java的城市公交查询系统

    本系统采用了JSP编程语言,数据库使用Mysql.计算机技术不断发展,逐渐适应用于各领域,给人们的学习工作生活带来了便利,在公交查询系统也是这样.纸质的公交指南或繁杂的网络版公交指南,都在不同程度上限 ...

  5. java毕业设计城市公交查询系统Mybatis+系统+数据库+调试部署

    java毕业设计城市公交查询系统Mybatis+系统+数据库+调试部署 java毕业设计城市公交查询系统Mybatis+系统+数据库+调试部署 本源码技术栈: 项目架构:B/S架构 开发语言:Java ...

  6. Java项目——城市公交查询系统

    今天继续为大家带来一个Java毕设项目--城市公交查询系统,可以用来做毕业设计,也可以用来做实战演练,下面就来学习叭~ 需要的私我 Java的技术应用 1.Android应用 许多的 Android应 ...

  7. 【毕设】ASP.NET基于.NET的城市公交查询系统的设计与实现(源代码+论文)

    文章目录 目录 系统设计 系统实现 源文件 目录 系统设计 近十几年来,我国汽车工业蓬勃发展,特别是家用轿车的增长.发展中国家用轿车市场,其规模与速度必须与城市基础建设同步,如果一味追求发展速度,势必 ...

  8. JAVA JSP城市公交查询系统 jsp公交线路查询系统Java公交查询系统Java公交线路查询

    JSP城市公交查询系统 jsp公交线路查询系统Java公交查询系统Java公交线路查询

  9. 基于html5的城市公交查询系统,基于WEB的智能公交查询系统的研究与设计

    摘要: 我国城市公交查询系统的发展处于一个较落后的水平,广大乘客可以获得信息的方式很少,为了解决这种问题,加快发展城市公交信息化,设计了这个城市公交出行线路查询系统.公交换乘查询系统是MAS技术和We ...

最新文章

  1. TypePerf收集服务器性能
  2. 袁隆平院士在湖南农业大学新生典礼上的致辞
  3. distcc源码研究三
  4. 新手必看 | RVB2601开发板快速上手指南
  5. 如何使用PHP自动备份数据库
  6. 拼图游戏和它的AI算法
  7. 360云计算|2019年度精选文章
  8. 微软:Excel 正成为开发者的终极武器!
  9. 【指针】C++中指针的使用艺术[转]
  10. 小米5s升级Android8,小米5s、小米5s Plus升级8.0提前,好消息!
  11. 亿阳信通面试题2006.12.15
  12. css3实现加载进度条的效果(二)
  13. Latex角标(subscript/superscript)
  14. 如何在阿里云免费 SSL 证书到期后更新证书操作步骤
  15. 带你认识六种设计原则(开闭原则、里氏代换原则、依赖倒转原则....)
  16. 完成领导交代的任务并及时反馈,才叫真的完成任务
  17. 键盘+moveit+rviz 控制六轴机械臂(仿真)
  18. python中从键盘输入五个单词输出以元音字母开头的单词_Python程序设计入门——第五周作业...
  19. 【互联网寒冬】经历裁员,拿20W被迫去大厂
  20. 【Python网络爬虫】百度贴吧/豆瓣小组

热门文章

  1. 前端常用 60 余种工具方法
  2. Web安全-泛微相关系统-历史漏洞
  3. xp锁定计算机快捷方式,XP系统怎么锁定界面快捷方式到任务栏
  4. 如何用 CSS + HTML + JS 创建桌面应用
  5. Angular 4 Http
  6. C语言经典代码(考试自用)
  7. HDMI转MIPI DSI芯片TC358870XBG
  8. 七种常见软件开发模型
  9. dx12 龙书第十八章学习笔记 -- 立方体贴图
  10. 演化算法(一) 基本概念