1、 学号:2015 届本科生毕业论文(设计)城市公交查询系统设计与实现学院(系):专业班级:学生姓名:指导教师:合作指导教师:完成日期:城市公交查询系统设计与实现摘 要公交作为城市的主要交通手段之一,随着人们的生活水平的提高和出门次数的增多,占着越来越重要的地位。随之而来也带来了查询公交路线的问题。成千上万的公交纵横整个城市,对于一个初来咋到的游客或者求学者来说,坐上正确的、快速的、便利的、优惠的公交去到正确的目的地尤其重要。在此背景下,公交查询系统应运而生,该系统致力于为乘客提供最新的公交公告信息、最适合乘客的公交路线以及提供方便乘客们讨论路线的留言板功能,让乘客们出行无忧,一帆风顺。其中主要
2、功能包括:路线查询(最少换乘、最少时间、最少费用)、站点查询、车次查询、公告信息查看、留言板及管理员对这些信息的管理模块。关键词:公交查询系统;JAVA+STRUTS2+JSP;MySqlDesign and Implementation of Bus Circuit Search SystemAbstractBus, as one of the most important transportation means of the city, with the improvement of peoples living standards and the increase number of
3、out home, occupying an increasingly important role. However, its also brought the problem of querying bus routes. Thousands of buses aspect the whole city, its especially important for those who is the first time here for traveling or attending school to ride the right, the fastest, the convenient,
4、and the cheapest bus reach the right destinations. For this purpose, the bus circuit search system appeared. This system was designed for passengers to get the latest bus announcements and the most suitable bus routes and provide message board for passengers to discuss routes or some other things. L
5、et passengers travel with no worries and all things goes well. The main functions include: routes inquiry (least transfer, least time, and least fee), stations inquiry, cars inquiry, announcements view, message board, and the module of administrators management of theses information. Keywords: bus c
6、ircuit search system; JAVA+STRUTS2+JSP; MySql目 录第1章 绪论- 1 -1.1课题背景及意义- 1 -1.1.1选题背景- 1 -1.1.2 选题意义- 1 -1.2 系统目标- 2 -第2章 系统开发工具及环境简介- 3 -2.1 系统开发工具- 3 -2.1.1 JAVA简介- 3 -2.1.2 Struts 2简介- 3 -2.1.3 JSP简介- 3 -2.1.4 MySql简介- 4 -2.1.5 JDBC简介- 4 -2.2运行环境- 4 -2.2.1 Myeclipse简介- 4 -2.2.2 Tomcat7.0简介- 5 -第3章
7、需求分析- 6 -3.1 系统需求分析- 6 -3.1.1 系统用户功能- 6 -3.1.2 系统管理员功能- 6 -3.2 数据库需求分析- 7 -3.2.1 信息要求- 7 -3.2.2 处理要求- 7 -3.3 性能需求分析- 8 -3.3.1 系统的及时性- 8 -3.3.2 系统的准确性- 8 -3.3.3 系统的易用性- 8 -第4章 系统概要设计- 9 -4.1 概述- 9 -4.2 功能模块- 9 -4.2.1 前台用户- 9 -4.2.2 后台管理员- 10 -4.3 数据库设计- 11 -4.3.1 数据库概念结构设计- 11 -4.3.2 数据库逻辑结构设计- 12 -第
8、5章 详细设计与实现- 17 -5.1 前台功能- 17 -5.1.1用户登录注册- 17 -5.1.2 查询- 19 -5.1.3 留言板- 21 -5.2 后台功能- 22 -5.2.1 管理员登录- 22 -5.2.2 信息管理- 23 -第6章 系统测试- 26 -6.1 前台功能测试- 26 -6.1.1 查询路线- 26 -6.1.2 车次查询- 29 -6.1.3 站点查询- 30 -6.2 后台功能测试- 31 -6.2.1 路线查询- 31 -6.2.2 路线添加- 31 -6.2.3 路线删除- 32 -6.2.4 路线修改- 33 -总结- 35 -致谢- 36 -参考文
9、献- 37 -I第1章 绪论第1章 绪论在这一章节中将主要介绍课题的选题背景和意义,以及在设计与实现该城市公交查询系统过程中使用到的开发技术与运行环境。1.1课题背景及意义对于为什么选择这个课题及选择这个课题的意义何在的问题,下文将从城市公交查询系统的现状等方面详细介绍。 1.1.1选题背景 公交作为城市的主要交通手段之一,随着人民生活水平的不断提高,出门旅行的次数和人数不断的增多,占据着越来越重要的地位。然而,在这些纵横交错的公交路线中,要找到那条便利、便宜、正确以及所需时间最少的公交路线并不容易,而且对于出门在外的旅客或者求学者来说,因为是初次到达某城市,对该城市的公交路线或者公交信息知道
10、的不多,这会大大的影响旅行进程及心情。目前我国的城市公交查询系统现状来看已经有百度地图这样的大型完善的公交查询系统,乘客可以方便的知道自己的位置、需要乘坐的公交、到达公交站所需不行时间等等,也有一些如西安城市公交查询系统这样的小型系统,而我所设计的是基于B/S模式的更加完善的公交查询系统,虽然不能像百度地图那样定位,但是增加了车次的大略位置定位、公交公告信息、天气信息、留言板等功能,其中还增加了各路线到达目的地所需的时间及费用信息,以更加方便乘客的出行。在此背景下,我所设计与实现的城市公交查询系统就具有实际的意义。1.1.2 选题意义 随着经济的快速发展,人们的生活节奏也加快了脚步,时间对于大
11、家来说是分秒必争的,尤其是对于假期本来就不多的工作族来说,如果旅行的时间大部分都花在了路线上那就太不值了,而城市公交车以其遍布范围广、费用低、方便、安全的特性作为大多数旅行、出差等等的人首选的交通方式,所以我们急需一个简洁方便的公交路线查询系统指引我们的行程。以前对于大多数人来说在一个我们并不熟悉的城市坐公交的路线信息等都是通过询问熟人或者询问路人,这不方便、信息不全是一回事,更重要的是还可能不安全。而现在有了城市公交查询系统我们也可以像当地居民一样知道该在哪儿上公交、在哪一站下车,也不用担心会被骗,城市公交查询系统带给了人们巨大的方便。鉴于现在已经存在如百度地图这样比较完善的查询系统,所以我
12、设计的城市公交查询系统将在路线查询、车次查询、站点查询的基础上,增加留言板、天气信息查询和公交公告信息查询功能模块以更加贴近实际需求,方便人们生活,达到其利用价值。1.2 系统目标 城市公交查询系统以更加方便人们的生活为目标,前台主要实现以下功能: 1、公交路线查询:包括公交直达、一次换乘和二次换乘,查询结果按照最少时间、最少换乘和最少费用排序,用户可以选择最适合自己要求的路线。在所查路线页面也可以查看该路线的车次和站点所对应的详细信息。说明:按照最少时间排序时,若时间一样则再按照换乘次数排序,若换乘次数也一样,则再按照所需费用排序;按照最少换乘排序时,若换乘次数一样,则再按所需时间排序,若所
13、需时间也一样,则再按照费用排序;按照最少费用排序时,若所需费用一样,则再按照所需时间排序,若所需时间也一样,则再按照换乘次数排序。2、公交车次查询:若用户想要查询某车次的详细信息时可以使用车次查询功能,系统会显示出所查询车次的详细信息以及车次大略定位情况。3、公交站点查询:若用户想要查询某站点的详细信息时可以使用站点查询功能,系统会显示出经过该站点的所有车次,用户还可以查看这些车次的详细信息。4、公交公告信息查询:管理员可以将公交的一些调整信息等发布在网站上以告知广大用户,让广大乘客即时了解公交系统信息。5、天气信息:我所设计的城市公交系统还增加了天气信息的查询功能以方便出门用户尽早知道当天或
14、者近日天气信息而进行调整自己的行程。6、留言板功能:乘客可以免费注册公交系统账号,拥有账号的乘客可以在留言板页面进行回复或者发表留言操作,广大乘客可以在留言板页面上尽情讨论大家的经历和好的路线建议,管理员也可以给乘客回复更为详细准确的信息。功能可能还不能满足所有乘客的要求,但是希望该城市公交查询系统可以为人们提供更为方便的生活。- 1 -第2章 系统开发工具及环境简介第2章 系统开发工具及环境简介本次开发工程中我用到的开发工具有JAVA、Struts2、JSP,数据库用的是MySql,使用的数据库连接技术是JDBC,运行环境是Myeclipse和Tomcat7.0。后台开发时还用到了DWZ框架
15、,后面参考文献会具体介绍。2.1 系统开发工具在本次设计与实现城市公交查询系统过程中,用到的开发工具(技术)主要有JAVA语言、Struts 2、JSP、MySql数据库和JDBC数据库连接技术,下面将分别简要对这些语言和技术进行介绍。2.1.1 JAVA简介我在设计与实现城市公交查询系统过程中使用的主要是JAVA语言,所以在此我将简单的介绍一下JAVA。JAVA作为计算机编程语言之一,是Sun公司推出的可以撰写跨平台应用软件的面向对象的程序设计语言,是一个简单的、面向对象的、安全的、与平台无关的、可移植的、多线程、高性能的语言,目前广泛的应用于电脑、数据中心、游戏控制台、科学超级计算机、移动
16、电话和互联网,拥有最大的开发群。JAVA分为三个体系:Java SE(标准版)、JavaEE(企业版)和Java ME(微型版),它提供许多框架服务,比如Spring、Struts、Hibernate等,开发工具也是多种多样,如Myeclipse、Eclipse、NetBeans。在该系统中我所使用的是运行在Myeclipse10.0上的JAVA+Struts2+JSP框架,数据库使用的是MySql,下面简单介绍Struts 2、JSP和MySql。2.1.2 Struts 2简介 Struts 2是Struts的下一代产品,是以WebWork为核心采用拦截器的机制来处理用户的请求,是在Str
17、uts 1和WebWork的基础上进行合并的全新产品。Struts 2中的一个Action处理一个实例,在使用Struts 2时要先在Web.xml中配置Servlet为struts,然后在Struts.xml中定义Action来处理页面请求。关于Struts 2的详细信息大家可以在网上或者图书馆查看。2.1.3 JSP简介JSP的全名是Java Server Pages(Java服务器页面),是由Sun公司倡导、众多公司参与一起建立的动态网页技术标准,是在传统HTML文件中插入Java程序段和JSP标记的文件,是跨平台的,既能在Linux上运行,也能在其他操作系统上运行。JSP以的形式实现了
18、HTML语法的Java扩展,是一种动态网页技术,主要目的是将逻辑表现从Servlet中分离出来。JSP的优点:1):一次编写,到处运行;用JSP开发的Web应用是跨平台的,除了系统之外,代码不用作任何改变;2):多平台支持,基本上可以在所有平台上的任意环境中开发,在任意环境中进行系统部署,与系统无关;3):Java开发工具支持,Java拥有许多开发工具,在这些开发工具中几乎都支持JSP技术;4):执行速度快,JSP第一次执行的时候需要通过JSP引擎转换成Servlet文件,然后再通过JVM编译和执行程序,其后一直驻留于服务器内存中,所以,JSP程序的第一次执行速度都会比较慢,到第二次以后就会很
19、快。若不考虑JSP页面第一次编译所花的时间,则JSP的响应速度要比ASP快的多。2.1.4 MySql简介 此次连接数据库使用的是JDBC技术,数据库使用的是MySql。 MySql是一个关系型数据库管理系统,在Web应用方面是最好的关系数据库管理系统软件之一,是由MySql AB公司开发,目前属于Oracle公司。与其他大型数据库如Oracle、SQL Server等相比虽然有不足之处,但是其体积小、速度快、总体拥有成本低和开放源码的特点在中小型网站开发中大受欢迎。在使用MySql数据库时还有许多用户界面操作软件,可以大大方便开发人员使用MySql数据库,而我们学生大多使用的是SQLyog,
20、我们叫它“小海豚”,在SQLyog用户界面化操作软件中我们可以很方便的创建数据库、数据表、视图等,插入数据或者修改表结构都很简单,不用直接写SQL语句,大大的减少了开发时间。2.1.5 JDBC简介JDBC,全称Java Data Base Connectivity(Java数据库连接),是一种用于执行SQL语句的Java API(应用程序编程接口),由一组用Java语言编写的类和接口组成,可以为许多关系数据库提供统一访问。有了JDBC,向各种关系数据库发送SQL语句就很容易了。然而JDBC也有不足之处,尽管JDBC在Java语言层面实现了统一,但对不同的数据库仍旧有许多不同,所以为了更好的实
21、现跨数据库操作,最近“大势”的Hibernate诞生了,Hibernate是对JDBC的再封装,实现了对数据库操作更宽泛的统一和更好的可移植性,在各企业和单位项目中很受欢迎。2.2运行环境本次设计的城市公交查询系统是一个基于B/S(浏览器/服务器)的网站系统,开发时用的软件是Myeclipse,服务器是Tomcat7.0,详细介绍如下:2.2.1 Myeclipse简介Myeclipse是在eclipse 基础上加上自己的插件开发而成的功能强大的企业级集成开发环境,主要用于Java、Java EE以及移动应用的开发。因为有Myeclipse,开发一个网站更加容易,因为它的功能非常强大,支持也十
22、分广泛,尤其是对各种开源产品的支持,支持Java Servlet,AJAX,JSP, Struts,Spring,Hibernate, JDBC数据库链接工具等多项功能,可以说是几乎囊括了目前所有主流开源产品的专属eclipse开发工具。Myeclipse的版本特别多,目前已经有十几个版本,最新版本是2015正式版。我使用的是Myeclipse10.0版本也很好用。2.2.2 Tomcat7.0简介Tomcat是一个免费的Web应用服务器,由Apache、Sun及其他一些公司共同开发的轻量级应用服务器,适用于中小型系统和并发访问用户不是很多的场合,是JSP开发和调试的首选。将Web工程部署到T
23、omcat服务器上后就可以在浏览器上查看页面的设计效果。它的版本也很多,目前最新版本是Tomcat 8.0,我使用的是Tomcat 7.0。- 7 -第3章 需求分析第3章 需求分析需求分析就是站在系统用户的角度思考该系统所应该具备的功能要求、数据要求以及性能要求。本身平时也会作为一名乘客,我就以自己作为一名乘客出发确定系统边界、功能和性能等要求,下面就从系统需求分析、数据库需求分析和性能需求分析三个方面对城市公交查询系统进行需求分析。3.1 系统需求分析为了更加方便乘客查询公交信息以及管理员对公交信息进行管理,下面分为用户功能和管理员功能进行阐述:3.1.1 系统用户功能系统用户功能包括:公
24、交查询、站点查询、路线查询(公交直达、一次换乘、二次换乘)和留言板(登录用户可留言、回复留言)、用户注册、登录、修改密码、修改个人信息、查看公交公告信息和天气信息。3.1.2 系统管理员功能管理员功能主要包括:添加车次、站点;修改车次、站点;删除车次、站点;查询车次、站点;登录、修改资料信息;回复留言板;添加、删除和修改天气信息;添加、删除和修改公告信息、查看所有用户的部分信息。综上所述,系统功能流程图如下:图3-1 系统功能模块图3.2 数据库需求分析数据库在一个网站、系统中占据着绝对重要的角色,数据库设计的好坏将直接影响着该网站或系统的顺利运行,因此要做好一个网站或系统,首选要设计好数据库
25、。数据库设计时主要分为需求分析、概念结构设计、逻辑结构设计、物理结构设计、验证设计和运行与维护设计,最终得到一个完整的数据库。数据库需求分析将从用户和管理员两个角度分析该系统需要哪些表、表之间有哪些联系、表中有哪些数据及其数据类型、需要哪些视图,即获得用户和管理员对信息的要求、处理要求及安全性与完整性要求。信息要求:指系统用户需要从数据库中获得信息的内容和性质,由信息要求可以导出数据要求,即在数据库中需要存储哪些数据;处理要求:指系统用户要完成什么处理功能,对处理的响应时间又什么要求,处理方式是批处理还是联机处理。3.2.1 信息要求1、用户(前台):用户需要从数据库读取或存入的数据包括路线信
26、息数据、车次信息数据、站点信息数据、公告信息数据、天气信息数据、留言信息数据、个人信息数据等。路线信息数据:用户所查询站到站的所有路线按所需时间、换乘次数或所需费用排序的路线号、车次、经过的站点、所需总时间、所需总费用、中转站等。车次信息数据:用户所查询车次的首班时间、末班时间、目前运行状态、运行区间、经过的站点、次序、时间、票价、发车间隔时间等。站点信息数据:包含用户所输入数据的所有站点的信息,经过这些站点的车次的信息。公告信息数据:公告的标题、时间、内容等。天气信息数据:日期、星期、气候、风况、最高气温、最低气温、空气质量等。留言信息数据:留言人、留言标题、留言内容、留言时间、回复人、回复
27、内容、回复时间等;个人信息数据:个人ID、用户名、登录密码等。2、管理员(后台):路线、车次、站点、公告、留言、天气、所有用户及个人信息等数据。3.2.2 处理要求1、用户(前台):对路线、车次、站点的查询操作处理,其中对路线进行按时间、换乘次数或者费用排序的处理;登录、免费注册、修改个人用户名、修改密码操作处理;查看所有留言、查看与某人相关留言、查看与自己相关留言、发表留言操作处理;查看公告信息及天气信息操作处理。2、管理员(后台):对路线、车次、站点、公告、天气信息的增删改查操作处理;登录、查看个人信息、修改密码操作处理;查看所有留言、回复留言操作处理;查看所有用户的部分信息操作处理。3.
28、3 性能需求分析 为了保证系统能够安全、长久、顺利、高效的运行,城市公交查询系统应该满足以下的性能需求:3.3.1 系统的及时性 系统对于公交车次、路线、站点、公告等信息应及时反应,首先是管理员对数据库中的数据及时进行添加、删除和修改操作,其次是系统从数据库获取更新数据的及时性,只有这样,才能保证用户得到及时的、正确的信息以及时调整自己的行程。3.3.2 系统的准确性 城市公交查询系统是一个正规的、城市公交公司管理的、被乘客信任的系统,若系统中有不正确、过期的信息将会影响乘客的行程、甚至是直接利益,所以,城市公交查询系统一定得保证其数据的正确性。要保证系统数据的正确性,首选管理员一定得及时有效
29、的更新数据库信息,保证数据的正确性,其次是系统必须要及时获取数据库中的更新数据,所以系统的响应速度要求要快。3.3.3 系统的易用性 决定一个系统的优劣,功能的完整性是一个要素,另一个要素是系统的易用性。城市公交查询系统作为一个实用性的系统,其易用性非常重要。对于使用某系统的用户来说,能简单的在该系统找到想要的信息、想要操作的功能才是一个实用的系统,当然系统的外观也会增加用户使用欲望。第4章 系统概要设计第4章 系统概要设计概要设计是指将用户需求转化为数据结构和软件的系统结构,数据结构设计即数据库设计,将用户的信息需求转化为数据库中的表结构设计;软件的系统结构即功能模块设计,将用户的处理需求转
30、化为对系统的功能模块设计。下面就系统功能模块设计和数据库设计详细介绍。4.1 概述系统概要设计是将系统需求分析阶段所分析的用户的信息要求和处理要求抽象化为对系统数据库的设计和对系统的功能设计。功能模块设计是将一个复杂的系统按功能进行模块划分,建立模块的层次结构及调用关系,确定模块间的接口及人机交互界面等。数据库设计包括设计数据库中的表及表结构,系统要用到的用户子模式(即视图)等。在系统概要设计阶段中,最终要确定系统的功能和数据库的表及表结构。4.2 功能模块我将系统功能分为两块:前台用户功能和后台管理员功能。4.2.1 前台用户前台功能是用户可以实现的功能,主要包括登录注册、修改密码、修改个人
31、信息、路线查询、车次查询、站点查询、公告信息查看、天气信息查看和留言板;详细描述:1、路线查询:用户输入始发站和终点站,可以直达的为公交直达,给出时间;不能直达的可分为换乘最少、费用最少和时间最少,以供用户选择;换乘最少:按换乘次数排序,若换乘次数相等,则按所需时间排序;若所需时间也相等,则再按所需费用排序;费用最少:按所需总费用排序,若所需总费用相等,则按所需时间排序;若所需总时间也相等,则再按所需换乘次数排序;时间最少:按所需总时间拍排序,若时间相等,则按所需换乘次数排序,若换乘次数也相等,则再按所需费用排序。2、车次查询:用户输入要查询的车次,系统给出用户查询的公交所经过的站点及始发站到
32、各站点所需时间、费用及公交的大略定位,用户也可以通过链接查到所经过的各站点的详细信息;3、站点查询:用户输入要查询的站点,系统给出经过该用户所查询的站点及含有该站名的车次,用户也可以通过链接查到这些车次的详细信息;4、用户登录、注册、修改信息:若用户拥有系统账号就可以在留言板上发表和回复留言;系统为用户提供登录、免费注册、修改密码、修改个人信息功能;说明:未登录用户可以查看所有留言,但是不能回复和发表留言;5、留言板:用户有疑问或不知道的可以在留言板上留言;6、公交公告信息:用户可以查看所有公告信息;7、天气信息:用户可以在首页查看当天及未来一周的天气信息,包括日期、星期、气候、风况、最高气温
33、、最低气温和空气质量。综上所述,系统用户的功能模块图如下:图4-1 用户功能模块图4.2.2 后台管理员介绍再详细一点综上所述,管理员的功能模块图如下:图4-2 管理员功能模块图4.3 数据库设计数据库设计是根据用户的需求,在数据库管理系统(在此我用的是MySql)上设计数据库的结构和数据库的过程。由于设计数据库是一个非常复杂的过程,不可能一蹴而就,在设计过程中会不断的、反复的修改、求精,所以下面将从数据库的概念结构设计、逻辑结构设计和物理结构设计三个阶段详述数据库设计。4.3.1 数据库概念结构设计在设计数据库的初始阶段要用数据模型来表现数据库的结构与语义以实现对现实世界进行抽象。目前广泛使
34、用的数据模型分为两种:独立于计算机系统的“概念数据模型”和“结构数据模型”,在本次系统设计与实现中我将采用概念数据模型中的“实体联系模型(ER模型)”来描述数据库的结构和含义以对现实世界进行抽象。ER模型是用ER图来表示数据模型的方法,它直接从现实世界抽象出实体类型及实体间联系,它的优点有:接近人的思维,容易理解;与计算机无关,用户容易接受。 实体和属性的定义如下:管理员表:登录ID、用户名和密码;站点表:编号和站名;车次表:编号、车次、服务类型、车辆类型、运行区间、首班发车时间、末班发车时间、发车间隔时间;线路表:编号、车次、站点、次序、时间、票价、方向。用户表:用户账号、用户名、登录密码、
35、用户头像。留言表:留言编号、用户名、标题、留言人、留言内容、留言时间、状态。回复表:回复编号、留言编号、回复人、回复内容、回复时间。天气信息表:日期、气候、风况、最高气温、最低气温和空气质量。公告信息表:公告ID、公告标题、公告内容、公告时间。系统总E-R图如下:图4-3 系统总E-R图4.3.2 数据库逻辑结构设计逻辑结构设计的任务就是把概念结构设计阶段设计好的基本E-R图转换为与选用DBMS(Database Management System,数据库管理系统)产品所支持的数据模型相符合的逻辑结构。逻辑结构设计一般分为三个步骤进行:1、将概念结构转换为一般的关系、网状、层次模型;2、将转换
36、来的关系、网状、层次模型向特定的DBMS支持下的数据模型转换;3、对数据模型进行优化。将概念结构设计中得到的E-R图转换为关系模型,如下文所示(下划线表示主码):管理员(登录ID,用户名,密码);列名数据类型长度约束条件是否为主键loginIDvarchar50非空是managerNamevarchar50唯一否loginPasswordvarchar50非空否表 4-1 管理员信息表站点(编号,站名);列名数据类型长度约束条件是否为主键station_IDint20非空是station_namevarchar50非空、唯一否表 4-2 站点信息表车次(编号,车次,服务类型,车辆类型,运行区间
37、,首班发车时间,末班发车时间,发车间隔时间);列名类型长度约束条件是否为主键car_IDint20非空是car_namevarchar50唯一、非空否serviceTypevarchar50自动or人工否carTypevarchar20K、G or S否drivingRangevarchar50无否firstTimetime无否lastTimetime无否jiange_timeint20无否表 4-3 车次信息表线路(编号,车次,站点,次序,时间,票价,方向);列名类型长度约束条件是否为主键route_IDint20非空是car_namevarchar50非空否station_namevarc
38、har50非空否route_orderint20非空否drivingTimetime非空否priceint20非空否directionvarchar20非空否表 4-4 路线信息表用户(用户账号,用户名,登录密码,用户头像);列名类型长度约束条件是否为主键users_IDvarchar20非空是users_namevarchar100唯一否user_passwordvarchar50非空否users_photoint200无否apply_timedatetime无否表4-5 用户信息表留言(留言编号,用户名,标题,留言人,留言内容,留言时间,状态);列名类型长度约束条件是否为主键comment
39、_IDint20非空是users_namevarchar100非空否comment_titlevarchar100无否comment_contentvarchar200非空否comment_statevarchar50未回复or 已回复否comment_timedatetime非空否表 4-6 留言信息表回复(回复编号,留言编号,回复人,回复内容,回复时间);列名类型长度约束条件是否为主键reply_IDint20非空是comment_IDint20非空否reply_namevarchar50非空否reply_contentvarchar200非空否reply_timedatetime非空否表
40、 4-7 回复信息表天气(日期,气候,风况,最高气温,最低气温,空气质量);列名类型长度约束条件是否为主键daydate非空是weathervarchar20否windvarchar20否ceshiduLint20否ceshiduUint20否kongqiint20否表 4-8 天气信息表公告(公告ID,公告标题,公告内容,公告时间)。列名类型长度约束条件是否为主键announcement_IDint20非空是announcement_contentlongtext50否timedate50否announcement_titlevarchar60否表 4-9 公告信息表转换为关系模型后还应该根
41、据局部应用需求,结合具体DBMS的特点,设计用户子模式(即视图),本系统一共设计了两个视图:1、car_route视图:车次_路线视图,是通过车次表中的car_name属性和路线表中的car_name属性创建,为了方便将路线与该路线中车次的详细信息查询出来而创建的;车次_路线视图(路线编号,车次编号,车次,服务类型,车辆类型,运行区间,首班发车时间,末班发车时间,发车间隔时间,站点,次序,时间,票价,方向)。2、comment_reply视图:留言_回复视图,是通过留言表中的comment_ID和回复表中的comment_ID创建的,因为一条留言会有多条回复,所以将留言板中的留言信息和回复信息
42、分开放在两个表中,通过该视图就可以方便将与该留言相关的留言信息及回复信息都查询出来;留言_回复视图(回复编号,留言编号,用户名,标题,留言人,留言内容,留言时间,状态,回复人,回复内容,回复时间)。- 15 -第5章 详细设计与实现第5章 详细设计与实现在详细设计与实现阶段我将从前台功能的具体设计与实现、后台功能的具体设计与实现以及类的设计与实现三个方面进行详细介绍。5.1 前台功能前台提供用户希望实现的功能,包括用户的登录注册、对个人信息的查看修改、修改登录密码、查询路线、车次、站点、公告、天气信息及在留言板上发表留言和查看与自己相关或者与某人相关的留言信息。下面将对这些功能详细介绍:5.1
43、.1用户登录注册用户是一个系统的必要构成部分,而系统的用户可以是用户主动注册的,这类系统一般是用于商业、服务的系统;也可以是系统事先确定的,这类系统多是一个单位、公司、学校等用于管理的系统。城市公交系统作为为人们服务的系统,是一个开放的、所有人都可以参与登录注册拥有自己账户的系统。1、用户登录:拥有系统账号的用户可以直接登录城市公交查询系统,登录时可以用注册时使用的邮箱或者手机号等登录,也可以使用用户自己设置的用户名登录;用户登录后可以查看个人信息、修改用户名及修改登录密码,也可以发表留言及回复留言、查看与自己相关的留言,未登录的用户则不可以执行发表留言、回复留言等操作。用户登录后的登录名和密
44、码将存放在一个session以供页面判断该用户是否登录,能否执行某些操作。用户登录时需要输入用户名或者用户ID(即注册时使用的邮箱或者手机号)、密码和验证码,这三样中只要有一项未输入或者不正确都将需要重新输入。用户自己设置的用户名不能是已经被其他用户设置过的用户名,有相同的用户名时系统会给出提示。2、用户注册:没有系统账号的用户可以实现除发表留言、回复留言的其他功能,对于需要发表留言、回复留言的用户可以免费注册系统账号,用户注册时不能注册已经被其他用户注册过的邮箱或者手机号,用户名也不能设置成被其他用户设置过的用户名。设置密码时需要输入两次以保证用户输入的是否为自己想要输入的密码,若第二次输入
45、的密码与第一次输入的不相符合,则需要重新输入密码。除了账号、用户名和两次输入密码外,还要输入验证码以保证该操作非机器执行。这五项中只要有一项未输入或者输入的不正确就要重新输入。3、查看、修改个人信息:主要是查看和修改用户名,为了方便用户重新设置自己的用户名方便记住,系统提供修改个人信息的功能。修改用户名后要重新登录,因为用户登录的时候可能是用用户名登录的,用户名修改以后session中的内容未变,会影响整个系统的正常运行。4、修改登录密码:为了保证用户账号的安全性和适用性,系统提供修改密码的功能,长时间使用同一个密码虽然方便记住,但是容易被别人知道,所以每过一段时间就修改一次密码可以保证用户账
46、号的安全性;其次是用户可能需要将密码修改成自己容易记住的密码。修改登录密码时要先输入原密码,若输入的原密码不正确则无法修改密码;输入的新密码要重复输入一次以保证用户输入的是自己想要设置的密码;最后还要输入验证码以预防机器攻击。这四项中只要有一项输入不正确或者未输入都将无法修改密码。综上所述,用户的登录注册功能处理流程图如下:图 5-1 用户登录注册功能处理流程图经过详细设计,用户登录和注册界面如下图所示:图5-2 用户登录界面设计图图 5-3 用户注册界面图5.1.2 查询城市公交查询系统的主要功能是查询,用户可以对站点信息、车次信息、路线信息、公告信息、天气信息进行查询,具体描述如下:1、路线查