毕业设计(论文)-南京市地铁线路查询系统的设计与实现.doc_第1页
毕业设计(论文)-南京市地铁线路查询系统的设计与实现.doc_第2页
毕业设计(论文)-南京市地铁线路查询系统的设计与实现.doc_第3页
毕业设计(论文)-南京市地铁线路查询系统的设计与实现.doc_第4页
毕业设计(论文)-南京市地铁线路查询系统的设计与实现.doc_第5页
已阅读5页,还剩35页未读 继续免费阅读

下载本文档

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

文档简介

太原理工大学毕业设计(论文)用纸南京市地铁线路查询系统的设计与实现摘 要南京市地铁线路查询系统是城市道路交通的重要组成部分,是城市发展的必然产物,是联系国民生活、社会生产和流通领域的关键环节。南京市地铁线路查询系统的发展一直处于一个较落后的水平,人们可以获得信息的方式较少,为了解决这种问题,提出了南京市地铁线路查询系统。本文首先对南京市地铁线路查询系统的需求进行了分析,包括功能需求和非功能需求;接着介绍了系统总体设计思路、方案选择和数据库设计;随后详细阐述了系统主要功能模块的实现过程;最后给出系统的测试方案。本南京市地铁线路查询系统主要具有地铁查询、用户留言、用户管理和后台车次管理功能。地铁查询包括车次、站点、换乘等方案的查询;用户留言主要是收集用户的留言信息,以方便根据用户提供的留言信息或是提出的建议对系统进行修改和完善;用户管理功能主要是删除用户信息和修改用户注册的基本信息;后台车次管理功能主要是添加车次和站点功能、更新车次和站点功能、删除车次和站点功能。本系统基于B/S模式开发,采用JSP技术,SQL Server 2005构建后台数据库。本系统的使用在方便广大市民,提高市民乘车效率的同时,也为信息化技术在城市现代化建设中,提供了有益的探索。关键词:JSP;SQL;JDBC;地铁查询全套设计加扣 3012250582iiThe Public Transport Inquiry System of Chengdu Based on J2EEAbstractPublic 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 Chengdu 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 Chengdu based on J2EE 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 inquiryiii目 录摘 要iAbstractii1. 绪论11.1 选题背景11.2 开发环境及技术简介11.2.1 JSP基础知识11.2.2 JDBC21.2.3 JSP Servlet41.2.4 开发环境41.2.5 Web开发轻平台Tomcat(简介)41.2.6 B/S结构介绍51.2.7 本文主要工作62. 系统需求分析72.1 系统调研72.2 系统目标72.3 系统的功能需求72.3.1 系统需求描述72.3.2 系统数据流图72.3.3 系统的功能82.4 系统非功能需求92.4.1 精度92.4.2 安全性要求92.4.3 时间特性要求92.4.4 灵活性93. 系统设计103.1 系统总体设计103.2 系统方案选择123.3 系统数据库设计133.3.1 数据库设计133.3.2 系统E-R图143.3.3 数据库表结构153.4 系统用户权限的界定174. 系统实现184.1 用户登录模块184.2 用户个人信息管理模块194.3 地铁系统查询模块204.3.1 车次信息查询204.3.2 站点信息查询214.3.3 地铁换乘方案查询234.4 站点信息管理模块244.4.1 删除站点244.4.2 添加站点254.5 车次信息管理模块264.5.1 删除车次264.5.2 添加车次264.6 留言板模块274.6.1 发表留言274.6.2 查看留言284.6.3 删除留言285. 系统测试与分析305.1 测试概述305.1.1 测试目的305.1.2 测试原则305.1.3 测试方法305.2 测试用例315.3 测试分析31结 论32参考文献33致 谢34外文原文35中文翻译431. 绪论1.1 选题背景随着城市经济发展,城市规模越来越大,相应的城市地铁系统也越来越庞大。许多新建小区大量出现,地铁线路也日渐增多,给人们的出行带来了极大便利,但是由于城市规模的不断发展,给人们选择出行乘车线路造成了一定的困难,所以需要提供一个高效的查询系统,才是问题根本所在。 南京市地铁线路查询系统,是基于B/S模式的查询系统。它不仅可以用于地铁公司管理系统中,也可以单独作为地铁管理系统的一个模块存在,并可以制作成地铁信息系统查询网,放置于城市的主要场所。这样不仅可以体现出一个城市的智能地铁系统的水平,更显示出城市的数字化,信息化水平。本项目研究的南京市地铁线路查询系统,包括南京市地铁线路查询系统的大部分功能,并提供了用户留言的功能,以方便根据用户提供的留言信息或是提出的建议对系统进行修改和完善,并提供了管理员用户后台维护地铁信息的功能,做到能够实时添加和删除地铁车次站点。为用户查询提供更会准确的信息。1.2 开发环境及技术简介1.2.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的服务端动态页面技术。在传统的网页HTML文件(*.htm,*.html)中加入Java程序片段(Scriptlet)和JSP标签,就构成了JSP网页。Java程序片段可以操纵数据库、重新定向网页以及发送E-mail等,实现建立动态网站所需要的功能。所有程序操作都在服务器端执行,网络上传送给客户端的仅是得到的结果,这样大 大降低了对客户浏览器的要求,即使客户浏览器端不支持Java,也可以访问JSP网页。JSP全名为Java Server Pages,其根本是一个简化的Servlet设计,他实现了Html语法中的java扩张(以 形式)。JSP与Servlet一样,是在服务器端执行的。通常返回给客户端的就是一个HTML文本,因此客户端只要有浏览器就能浏览。Web服务器在遇到访问JSP网页的请求时,首先执行其中的程序段,然后将执行结果连同JSP文件中的HTML代码一起返回给客户端。插入的Java程序段可以操作数据库、重新定向网页等,以实现建立动态网页所需要的功能。通常JSP页面很少进行数据处理,只是用来实现网页的静态化页面,只是用来提取数据,不会进行业务处理。JSP技术使用Java编程语言编写类XML的tags和scriptlets,来封装产生动态网页的处理逻辑。网页还能通过tags和scriptlets访问存在于服务端的资源的应用逻辑。JSP将网页逻辑与网页设计的显示分离,支持可重用的基于组件的设计,使基于Web的应用程序的开发变得迅速和容易。 JSP(JavaServer Pages)是一种动态页面技术,它的主要目的是将表示逻辑从Servlet中分离出来。JSP页面由HTML代码和嵌入其中的Java代码所组成。服务器在页面被客户端请求以后对这些Java代码进行处理,然后将生成的HTML页面返回给客户端的浏览器。Java Servlet是JSP的技术基础,而且大型的Web应用程序的开发需要Java Servlet和JSP配合才能完成。JSP具备了Java技术的简单易用,完全的面向对象,具有平台无关性且安全可靠,主要面向因特网的所有特点。JSP技术让动态网面更易编写,功能更强,可移植性更好。概括起来,JSP的设计目标主要有以下几点:(1)一次编写,到处运行,除了系统之外,代码不用做任何更改。(2)加强组件能力。(3)作为Java企业平台的门户。(4)更容易建立动态页面。(5)系统的多平台支持。基本上可以在所有平台上的任意环境中开发,在任意环境中进行系统部署,在任意环境中扩展。相比ASP的局限性JSP的优势是显而易见的。(6)强大的可伸缩性。从只有一个小的Jar文件就可以运行Servlet/JSP,到由多台服务器进行集群和负载均衡,到多台Application进行事务处理,消息处理,一台服务器到无数台服务器,Java显示了一个巨大的生命力。(7)多样化和功能强大的开发工具支持。这一点与ASP很像,Java已经有了许多非常优秀的开发工具,而且许多可以免费得到,并且其中许多已经可以顺利的运行于多种平台之下。(8)支持服务器端组件。web应用需要强大的服务器端组件来支持,开发人员需要利用其他工具设计实现复杂功能的组件供web页面调用,以增强系统性能。JSP可以使用成熟的JAVA BEANS 组件来实现复杂商务功能。JSP2.0是对JSP1.2版本的升级,其中增加了一些新特性。JSP 2.0的一个主要特点是它支持表达语言(expression language)。JSTL表达式语言可以使用标记格式方便地访问JSP的隐含对象和JavaBeans组件,JSTL的核心标记提供了流程和循环控制功能。自制标记也有自定义函数的功能,因此基本上所有scriptlet能实现的功能都可以由JSP替代。在JSP 2.0中,建议尽量使用EL而使JSP的格式更一致。JSP2.0的设计目标是使动态网页的设计、开发和维护更加容易,网页编写者不必懂得Java编程语言,也可以编写JSP网页。JSP2.0增加了一种称为SimpleTag的扩展机制来简化标签API(Tag API)。JSP2.0引入的最主要的新特性包括2:(1)引入简单表达式语言(EL,Expression Language),它用于JSP页面中的数据访问。这种表达式语言简化了JSP中数据访问的代码,不需要使用Java Script或者Java表达式。(2)引入创建自定义标签的新语法,该语法使用.tag和.tagx文件,这类文件可由开发人员或者网页作者编写。(3)对XML语法做了实质性的改进,增加了新的标准文件扩展名(.tagx用于标签文件,.jspx用于JSP文件)。1.2.2 JDBCJDBC是执行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则可以更好地向外界客户提供最新信息。有了JDBC,向各种关系数据发送SQL语句就是一件很容易的事。换言之,有了JDBC API,就不必为访问Sybase数据库专门写一个程序,为访问Oracle数据库又专门写一个程序,或为访问Informix数据库又编写另一个程序等等,程序员只需用JDBC API写一个程序就够了,它可向相应数据库发送SQL调用。同时,将Java语言和JDBC结合起来使程序员不必为不同的平台编写不同的应用程序,只须写一遍程序就可以让它在任何平台上运行,这也是Java语言“编写一次,处处运行”的优势。Java数据库连接体系结构是用于Java应用程序连接数据库的标准方法。JDBC对Java程序员而言是API,对实现与数据库连接的服务提供商而言是接口模型。作为API,JDBC为程序开发提供标准的接口,并为数据库厂商及第三方中间件厂商实现与数据库的连接提供了标准方法。JDBC使用已有的SQL标准并支持与其它数据库连接标准,如ODBC之间的桥接。JDBC实现了所有这些面向标准的目标并且具有简单、严格类型定义且高性能实现的接口。Java 具有坚固、安全、易于使用、易于理解和可从网络上自动下载等特性,是编写数据库应用程序的杰出语言。所需要的只是 Java应用程序与各种不同数据库之间进行对话的方法。而 JDBC 正是作为此种用途的机制。JDBC 扩展了 Java 的功能。例如,用 Java 和 JDBC API 可以发布含有 applet 的网页,而该 applet 使用的信息可能来自远程数据库。企业也可以用 JDBC 通过Intranet将所有职员连到一个或多个内部数据库中(即使这些职员所用的计算机有 Windows、 Macintosh 和UNIX 等各种不同的操作系统)。随着越来越多的程序员开始使用Java 编程语言,对从 Java 中便捷地访问数据库的要求也在日益增加。MIS管理员们都喜欢 Java和JDBC的结合,因为它使信息传播变得容易和经济。企业可继续使用它们安装好的数据库,并能便捷地存取信息,即使这些信息是储存在不同数据库管理系统上。新程序的开发期很短。安装和版本控制将大为简化。程序员可只编写一遍应用程序或只更新一次,然后将它放到服务器上,随后任何人就都可得到最新版本的应用程序。对于商务上的销售信息服务,Java 和JDBC可为外部客户提供获取信息更新的更好方法。1.2.3 JSP ServletJava Servlet使用的是一种请求/响应机制,也就是说通过特定的Java程序设计技术,由该Servlet动态产生的响应向某一特定的请求做出响应。Servlet所能应用的请求/响应场合很多,但常用的还是在Web应用程序中用于产生超文本传输协议响应(HTTP)。据此,Servlet可能取代其他类型的HTTP请求/响应机制,譬如通用网关接口(CGI)脚本。一个servlet就是Java编程语言中的一个类,它被用来扩展服务器的性能,服务器上驻留着可以通过“请求-响应”编程模型来访问的应用程序。虽然servlet可以对任何类型的请求产生响应,但通常只用来扩展Web服务器的应用程序。Java Servlet技术为这些应用程序定义了一个特定于HTTP的 servlet类。javax.servlet和javax.servlet.http包为编写servlet提供了接口和类。所有的Servlet都必须实现Servlet接口,该接口定义了生命周期方法。当实现一个通用的服务时,您可以使用或扩展由Java Servlet API提供的GenericServlet类。HttpServlet类提供了一些方法,诸如doGet和doPost,以用于处理特定于HTTP的服务。Servlet的生命周期一个servlet的生命周期由部署servlet的容器来控制。当一个请求映射到一个servlet时,该容器执行下列步骤。1.如果一个servlet的实例并不存在,Web容器a.加载servlet类。b.创建一个servlet类的实例。c.调用init初始化servlet实例。该初始化过程将在初始化servlet中讲述。2.调用service方法,传递一个请求和响应对象。服务方法将在编写服务方法中讲述。如果该容器要移除这个servlet,可调用servlet的destroy方法来结束该servlet。结束过程将在结束Serlvet中讨论。处理Servlet生命周期事件。在servlet的生命周期中,用户可以通过定义监听器对象对事件进行检测和产生反应。当生命周期事件发生时,调用该对象的方法。要使用这些监听器对象,用户必须定义监听器类,并且指定相应的监听器类。定义监听器类 您可以将监听器类定义为一个listener接口的实现。Servlet生命周期事件列出了可以检测的事件和相应的必须实现的接口。当调用一个监听器方法时,需向该方法传递一个包含事件适当信息的事件。例如,向HttpSessionListener接口中的方法传递的是一个HttpSessionEvent事件,这个事件包含了一个HttpSession。1.2.4 开发环境本系统的开发采用JSP、Servlet、JavaBean、JavaScript、JDBC等技术。本系统使用MyEclipse作为开发环境,JDK釆用1.5版本,Tomcat 6.0作为Web服务器。数据库采用SQL Server 2005。1.2.5 Web开发轻平台Tomcat(简介)Tomcat是一个免费的开源的Serlvet容器,它是Apache基金会的Jakarta项目中的一个核心项目,由Apache,Sun和其它一些公司及个人共同开发而成。由于有了Sun的参与和支持,最新的Servlet和Jsp规范总能在Tomcat中得到体现。Tomcat被JavaWorld杂志的编辑选为2001年度最具创新的java产品,可见其在业界的地位。 Tomcat 最新版本是4.0x。4.0x与3.x的架构不同,而是重新设计的。Tomcat4.0x中采用了新的Servlet容器:Catalina,完整的实现了Servlet2.3和Jsp1.2规范。Tomcat提供了各种平台的版本供下载,可以从上下载其源代码版或者二进制版。由于Java的跨平台特性,基于Java的Tomcat也具有跨平台性。 在Tomcat中,应用程序的部署很简单,你只需将你的WAR放到Tomcat的webapp目录下,Tomcat会自动检测到这个文件,并将其解压。你在浏览器中访问这个应用的Jsp时,通常第一次会很慢,因为Tomcat要将Jsp转化为Servlet文件,然后编译。编译以后,访问将会很快。另外Tomcat也提供了一个应用:manager,访问这个应用需要用户名和密码,用户名和密码存储在一个xml文件中。通过这个应用,辅助于Ftp,你可以在远程通过Web部署和撤销应用。当然本地也可以。 Tomcat不仅仅是一个Servlet容器,它也具有传统的Web服务器的功能:处理Html页面。但是与Apache相比,它的处理静态Html的能力就不如Apache。我们可以将Tomcat和Apache集成到一块,让Apache处理静态Html,而Tomcat处理Jsp和Servlet。这种集成只需要修改一下Apache和Tomcat的配置文件即可。 另外,Tomcat提供Realm支持。Realm类似于Unix里面的group。在Unix中,一个group对应着系统的一定资源,某个group不能访问不属于它的资源。Tomcat用Realm来对不同的应用(类似系统资源)赋给不同的用户(类似group)。没有权限的用户则不能访问这个应用。Tomcat提供三种Realm,1:JDBCRealm,这个Realm将用户信息存在数据库里,通过JDBC获得用户信息来进行验证。2:JNDIRealm,用户信息存在基于LDAP的服务器里,通过JNDI获取用户信息。3:MemoryRealm,用户信息存在一个xml文件里面,上面讲的manager应用验证用户时即使用此种Realm。通过Realm我们可以方便地对访问某个应用的客户进行验证。 基于Tomcat的开发其实主要是Jsp和Servlet的开发,开发Jsp和Servlet非常简单,你可以用普通的文本编辑器或者IDE,然后将其打包成WAR即可。我们这里要提到另外一个工具Ant,Ant也是Jakarta中的一个子项目,它所实现的功能类似于Unix中的make。你需要写一个build。xml文件,然后运行Ant就可以完成xml文件中定义的工作,这个工具对于一个大的应用来说非常好,我们只需在xml中写很少的东西就可以将其编译并打包成WAR。事实上,在很多应用服务器的发布中都包含了Ant。另外,在Jsp1。2中,可以利用标签库实现Java代码与Html文件的分离,使Jsp的维护更方便Tomcat也可以与其它一些软件集成起来实现更多的功能。如与上面提到的JBoss集成起来开发EJB,与Cocoon(Apache的另外一个项目)集成起来开发基于Xml的应用,与OpenJMS 集成起来开发JMS应用,除了我们提到的这几种,可以与Tomcat集成的软件还有很多。Tomcat确实是一个很好的工具,不仅仅因为其免费,功能强大,更因为其开放性。如今,开源软件越来越收到人们的重视,Linux就是一个成功的典型。人们不再限于只使用软件,而且已经关心起软件的具体实现。我们有理由相信Tomcat会走得更远。 1.2.6 B/S结构介绍B/S(Browser/Server)结构即浏览器和服务器结构。它是随着Internet技术的兴起而对C/S结构的一种变化或者改进的结构。在这种结构下,用户工作界面通过WWW浏览器来实现,极少部分事务逻辑在前端(Browser)实现,主要事务逻辑在服务器端(Server)实现。大大简化了客户端电脑载荷,减少了系统维护与升级的成本和工作量,降低了用户的总体成本。B/S方式可以形成所谓三层以上的结构。B/S结构是一次到位开发,能实现不同人员,从不同地点,以不同的接入方式访问和操作共同的数据库;它能有效地保护数据平台和管理访问权限,服务器数据库也很安全。特别是在JAVA这样的跨平台语言出现之后,B/S架构管理软件更为方便、快捷、高效。传统的C/S架构(客户机/服务器,Client/Server)方式中,业务逻辑位于客户端,每完成一项事务,都要频繁地访问数据库,使得网络上数据流量非常大,对于慢速连接的用户,甚至无法使用。B/S架构具备极大的优越性 1.面向电子商务时代的技术将来所有的应用系统几乎都在互联网或企业内部广域网上运行,发展电子商务成为企业不可避免的信息化道路。B/S架构的软件正是电子商务的基石,正是这类软件使得移动办公和分布式协同工作真正成为现实。无论在世界的那个角落,只需要一台可以联网的设备(计算机、PDA甚至手机)都可以方便地与客户联系和与他人协同工作。 2.软件操作、维护和升级方式的革命软件系统的改进和升级越来越频繁,B/S架构的产品在维护和升级方面具备显著的优势。无论用户的规模有多大,有多少分支机构都不会增加任何维护升级的工作量,所有的操作只对服务器进行,通过远程连接服务器,异地的运维人员甚至于可以做到远程维护和升级,这对人力、时间、费用的节省是相当惊人的。所有的客户端只是浏览器,所有的操作都和上网浏览网页类似,使用者接受的培训也仅限于业务逻辑而无需将大量精力浪费学习软件操作上。3.系统整合无论是办公自动化(OA)系统,人力资源(HR)系统,客户关系管理(CRM)系统,ERP等等,发展的趋势是不断融合。而采用统一的B/S结构开发的产品无论是现在还是将来都是最好的选择,它提供了真正意义上无缝地与其它系统进行整合的方案。1.2.7 J2EE技术简介 J2EE是纯粹基于Java的解决方案。1998年,Sun发布了EJB 1.0标准。EJB为企业级应用中必不可少的数据封装、事务处理、交易控制等功能提供了良好的技术基础。至此,J2EE平台的三大核心技术Servlet、JSP和EJB都已先后问世。1999年,Sun正式发布了J2EE的第一个版本。紧接着,遵循J2EE标准,为企业级应用提供支撑平台的各类应用服务软件争先恐后地涌现了出来。IBM的WebSphere、BEA的WebLogic都是这一领域里最为成功的商业软件平台。随着开源运动的兴起,JBoss等开源世界里的应用服务新秀也吸引了许多用户的注意力。到2003年时,Sun的J2EE版本已经升级到了1.4版,其中三个关键组件的版本也演进到了Servlet 2.4、JSP 2.0和EJB 2.1。至此,J2EE体系及相关的软件产品已经成为了Web服务端开发的一个强有力的支撑环境。1.2.7 本文主要工作本文主要综合介绍整个系统。第一部分为引言,主要对项目开发的北京意义和项目的开发环境、开发技术进行介绍;第二部分为系统需求分析,主要描述系统的调研情况,以及系统功能需求和系统非功能需求,简单的介绍了系统的主要功能模块,包括用户登录、地铁查询、留言管理和管理员维护等模块;第三部分为系统设计,主要解释了系统结构设计、方案的选择和系统数据库的设计;第四部分为系统功能模块的实现,描述了各个功能模块的实现,并给出关键模块的实现代码以及运行的效果截图;最后部分对系统做了整体测试,给出系统功能测试用例表。 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 系统非功能需求2.4.1 精度本系统所需的数据类型主要包括用户名、密码等。相关精度要求如下:用户名:英文加数字组合,并以英文开头。例如:“dd123”密码:5到12位密码。例如“yx123”在登录时,必须注意所选择的身份跟用户名和密码要保持一致。2.4.2 安全性要求本系统的用户分为管理员和普通用户两类,用户登录时需要根据权限选择不同的功能,每个用户都有自己固定的用户名和密码。2.4.3 时间特性要求响应时间:基本的信息查询响应时间最长为5秒。对于维护或者批量修改更新数据库的内容响应时间则根据具体软件和硬件情况而定。2.4.4 灵活性对设备的要求较低,且具有良好的可移植性,用户无论何时何地都可以方便、快捷地使用该系统,具有较强的灵活性和方便性。3. 系统设计3.1 系统总体设计本系统设计使用了面向对象技术和模块化技术。面向对象技术是一种软件开发和程序设计技术,其所开发的程序是面向对象程序,直接描述客观世界的对象及其相互关系。对象是封装了数据和操作的程序块。所谓封装是为这个程序块建立显示的界面,其它对象只能向这个界面发消息,不能访问内部的私有数据和操作。因此,内部的数据和实现操作的算法若有改动,对其它程序对象没有任何影响。封装使程序局部化、易修改、好维护,但许多对象有相同的功能时免不了重复,所以面向对象技术有继承的机制。此外,由于对象自己操作自己的数据,对同一消息不同的对象均以自己的方式响应,使得一种消息可有多种响应方式,这就是多态性。封装、继承、多态是面向对象程序的主要特征。正是这些特征使程序安全、可靠、可重用、易维护。面向对象技术是一种以对象为基础,以事件或消息来驱动对象执行处理的程序设计技术。它以数据为中心而不是以功能为中心来描述系统,数据相对于功能而言具有更强的稳定性。它将数据和对数据的操作封装在一起,作为一个整体来处理,采用数据抽象和信息隐蔽技术,将这个整体抽象成一种新的数据类型类,并且考虑不同类之间的联系和类的重用性。类的集成度越高,就越适合大型应用程序的开发。另一方面,面向对象程序的控制流程由运行时各种事件的实际发生来触发,而不再由预定顺序来决定,更符合实际。事件驱动程序的执行围绕消息的产生与处理,靠消息循环机制来实现。在实际编程时可以采用搭积木的方式来组织程序,站在“巨人”的肩上实现自己的目标。面向对象程序的设计方法使得程序结构清晰、简单,提高了代码的重用性,有效减少了程序的维护量,提高了软件的开发效率。面向对象其实是现实世界模型的自然延伸。现实世界中任何实体都可以看作是对象。对象之间通过消息相互作用。另外,现实世界中任何实体都可归属于某类事物,任何对象都是某一类事物的实例。如果说传统的过程式编程语言是以过程为中心以算法为驱动的话,面向对象的编程语言则是以对象为中心以消息为驱动。 所有面向对象编程语言都支持三个概念:封装、多态性和继承,Java也不例外。现实世界中的对象均有属性和行为,映射到计算机程序上,属性则表示对象的数据,行为表示对象的方法(其作用是处理数据或同外界交互)。所谓封装,就是用一个自主式框架把对象的数据和方法联在一起形成一个整体。可以说,对象是支持封装的手段,是封装的基本单位。Java语言的封装性较强,因为Java无全程变量,无主函数,在Java中绝大部分成员是对象,只有简单的数字类型、字符类型和布尔类型除外。而对于这些类型,Java也提供了相应的对象类型以便与其他对象交互操作。 多态性就是多种表现形式,具体来说,可以用“一个对外接口,多个内在实现方法”表示。举一个例子,计算机中的堆栈可以存储各种格式的数据,包括整型,浮点或字符。不管存储的是何种数据,堆栈的算法实现是一样的。针对不同的数据类型,编程人员不必手工选择,只需使用统一接口名,系统可自动选择。运算符重载(operator overload)一直被认为是一种优秀的多态机制体现,但由于考虑到它会使程序变得难以理解,所以Java最后还是把它取消了。 继承是指一个对象直接使用另一对象的属性和方法。事实上,我们遇到的很多实体都有继承的含义。例如,若把汽车看成一个实体,它可以分成多个子实体,如:卡车、公共汽车等。这些子实体都具有汽车的特性,因此,汽车是它们的“父亲”,而这些子实体则是汽车的“孩子”。Java提供给用户一系列类(class),Java的类有层次结构,子类可以继承父类的属性和方法。与另外一些面向对象编程语言不同,Java只支持单一继承。因而面向对象技术也成为当今计算机的新兴技术。系统总体流程如图3-1所示。用户登陆普通用户或者管理员开始NY用户名和密码是否正确普通用户进入普通用户主界面查询留言等操作管理员进入管理员主界面进行添加删除查询等操作退出系统结束Y用户名和密码是否正确N图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性能对比表性能JSPASP运行速度快较快运行损耗较小较大难易程度容易掌握简单运行平台绝大部分平台Windws平台扩展性好较好安全性好较差函数支持多较少数据库支持多多厂商支持多较少对XML的支持支持不支持对组件的支持支持支持对分布式处理的支持支持支持应用程度较广较广由上表我们可以很清楚的发现JSP具有运行速度快,运行耗损小,跨平台性,通用性好,良好的结构,强大的数据库等都更比ASP.NET更具优越性。两者中, JSP 应该是未来发展的趋势。基于JSP的众多技术优点和当前发展的趋势,在参考了大量文献资料后,我决定选取JSP作为开发本南京市地铁线路查询系统的主要技术。而数据库选用SQL Server 2000 因其有以下优点: (1)SQL Server 2000数据库应用于中小型企业。SQL Server 2000的分布式、复制、全文检索、DTS都可

温馨提示

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

评论

0/150

提交评论