当前位置:文档之家› 城市公交查询系统的设计与实现

城市公交查询系统的设计与实现

城市公交查询系统的设计与实现
城市公交查询系统的设计与实现

摘要

我国城市公交乘客信息系统的发展处于一个较落后的水平,广大乘客可以获得信息的方式很少,为了解决这种问题,加快发展城市公交信息化,设计一个城市公交查询系统是具有一定实际应用意义的。在此背景下,开发的应用程序---城市公交查询系统。本次设计,首先考虑了公交运营的实际情况和不同公交乘客的实际要求,分析了此系统应该具有的功能;其次对系统的主要功能模块进行了详细地描述,其中主要包括二个模块---查询模块(包括按线路查询、按站点查询和按两站点查询)和管理更新模块(包括公交站点管理和公交线路管理),最后结合系统开发阶段和调试阶段发现的问题,提出了系统需要完善的地方,总结了开发此系统所取得的经验。

关键词:公交,https://www.doczj.com/doc/d78099443.html,,查询,B/S结构,数据库

目录

第一章系统开发环境 (1)

1.1开发工具 (1)

1.2应用环境 (1)

第二章系统需求分析 (2)

2.1需求分析 (2)

2.2可行性分析 (2)

第三章系统总体设计 (3)

3.1系统功能模块的设计 (3)

3.2数据库设计 (3)

第四章系统详细设计与实现 (7)

第五章系统测试 (10)

结论 (14)

参考文献 (15)

第一章系统开发环境

1.1开发工具

硬件环境:CPU的主频在500MHZ以上,内存在128MB以上

操作系统:Windows 7

数据库:SQL SERVER2000

编程工具:ASP

应用系统:Windows 操作系统

服务器:IIS 7.5

1.2应用环境

服务起端的最低配置是由建立站点所需要的软件来决定的,在最底配置的情况下,服务器的性能往往不进人意,现在硬件性能已经相当出色,而且价格也很便宜,因此通常应给服务器端配置高性能硬件。

本机器的配置如下:

处理器:Inter Pentium 41.6Hz或更高。

内存:4G

硬件空间:300GB

第二章系统需求分析

2.1需求分析

本系统采用结构化设计的方法来实现系统总体功能,提高系统的各项指标,即将整个系统合理的划分成各个功能模块,正确地处理模块之间和模块内部的联系以及和数据库的联系,定义各模块的内部结构,通过对模块的设计和模块之间关系的系统来实现整个系统的功能

前台主要有3个模块,线路查询、站点查询、公交换乘模块和后台管理模块

功能名称:线路查询

功能概述:可以获得要查询公交所通过的各个站点。

功能名称:站点查询

功能概述:通过输入的指定站点查询经过该站点的公交。

功能名称:公交换乘查询

功能概述:分为公交直达、公交一次换乘,主要体现那些不可直达需要转车的路线的所有换法。(如果用户输入的起始点和终点,有一条及一条以上的公交线可以直达的,则为公交直达;如果输入的起始点和终点,没有一条公交线可以直接到的,系统将会给出一次换乘的方案,则为公交一次换乘)

功能名称:后台管理

功能概述:用于管理员登陆,添加、修改、删除公交线路,修改信息资料、安全密码,回复留言板等功能。

2.2可行性分析

(1)技术可行性

此次信息系统开发是大学专业知识的一次综合应用与提高。硬件环境:CPU的主频在500MHZ以上,内存在128MB以上软件环境:操作系统:Windows 7 、数据库:SQL SERVER2000、服务器:IIS 7.5、应用系统:Windows 操作系统

(2)用户使用可行性

使用本系统的人员均有一定计算机应用基础,系统维护员由计算机的专业人员担任,所有人员都要经过本系统的使用培训。经过简单培训人员就会熟练使用本软件。

第三章系统总体设计

3.1系统功能模块的设计

查询系统模块

该模块实现公交查询功能。可实现按线路查询、站点查询和起点—终点查询三种查询方式。

录入系统模块

该模块实现数据的新增、修改、删除功能。

系统模块图如图3-1所示:

图3-1:系统模块图

3.2数据库设计

数据库技术是在文件系统的基础上发展起来的一种高效的数据管理技术,它能保持系统数据的整体性,完整性和共享性。在数据库系统中提供了对数据的访问机制,能有组织的存储相关的数据,具有合理的存储方式,快速的查询效率和最小的数据冗余等特性。另外数据的存储和应用程序彼此独立,不仅便于数据的管理与控制而且有利于应用程序的编写与调试。数据库类似于一个数据的大仓库,能很好地实现数据共享,能维护数据的一致性。数据库设计是系统设计的一个重要内容,其设计质量的好坏直接影响系统开发的成败,系统的质量,系统效率及可维护性。

在本系统的设计中,充分考虑到了管理系统数据繁杂,重复性很大,数据使用频繁。因此本系统采用了一种能正确反映用户实现环境,能被现行系统接受,易于维护、效率高的数据管理方法--数据库系统。

数据模型是指数据库中记录与记录之间联系的数据结构形成的。不同的数据管理系统有不同的

数据模型,数据库设计的核心问题是设计好的数据模型。在目前的数据库管理系统中有层次模型,网状模型、关系模型三种数据模型。其中,关系模型具有较高的数据独立性,使用也较为方便。本设计采用关系数据库。该数据库实行增、删、编辑、统计。显示和打印都极为方便。其中的排序和索引功能,对数据快速定位,查询提供了有利条件。交流互动对于本系统的数据库设计有以下几点说明:数据库设计兼顾前面设计的数据流程图,管理信息系统的设计并不是以数据库为核心的数据库应用设计,本系统的数据库设计尽量满足3NF(第三范式)的要求,本系统的数据库设计以提高系统运行效率为前提。

本系统的总体E-R图如图3-2所示。

图3-2:系统总体ER图

本系统创建的SQL数据库名称为城市公交查询系统。并将数据文件和日志文件保存在公交查询系统APP_DATA文件夹中。此数据库包含7个表:

①管理员表(LoginT able)

管理员表存放登陆系统所需要的用户名和密码,登录后台时需要访问此表。

表3-1 管理员表

字段名数据类型长度是否为空是否为主键说明

LoginPwd varchar 50 否否登陆密码

Loginname varchar 50 否否登陆姓名②站名表

站名表存放站名等数据,修改站名需要访问此表。

字段名数据类型长度是否为空是否为主键说明

站名编

int 4 否是站名编号站名varchar 50 否否站名

③车辆线路编号表

车辆线路编号表存放线路编号等数据,修改车辆线路编号将要访问此表。

表3-3 车辆线路编号表

字段名数据类型长度是否为空是否为主键说明

车次int 4 否是车次

车线类型varchar 50 否否

车线类

④线路表

线路表存放公交车线路的数据,修改车辆线路需要访问此表。

字段名数据类型长度是否为空是否为主键说明

线路编号int 4 否是

线路编

车次int 4 否是车次

站名varchar 50 否否站名

次序int 4 否否次序⑤车辆表

车辆表存放车辆的相关信息,修改车辆等相关信息需要访问此表。

表3-5 车辆表

字段名数据类型长度是否为空是否为主键说明

车辆编

int 4 否是车辆编号车次int 4 否是车次

车辆类

varchar 50 否否车辆类型服务类

varchar 50 否否服务类型票价varchar 50 否否票价

IC卡类varchar 50 否否IC卡类型

运行区

varchar 50 否否运行区间间

⑥夏季发车时刻表

夏季发车时刻表存放夏季发车的时间,修改夏季发车时间需要访问此表。

表3-6 夏季发车时刻表

字段名数据类型长度是否为空是否为主键说明

编号int 4 否是编号

车次int 4 否否车次

首班时

varchar 50 否否首班时间间

末班时

varchar 50 否否末班时间间

⑦冬季发车时刻表

冬季发车时刻表存放冬季发车的时间,修改冬季发车时间需要访问此表。

表3-7 冬季发车时刻表

字段名数据类型长度是否为空是否为主键说明

编号int 4 否是编号

车次int 4 否否车次

首班时

varchar 50 否否首班时间间

末班时

varchar 50 否否末班时间间

第四章系统详细设计与实现

一、前台功能的实施

1.连接数据库的包含文件

在动态网站中,调用数据库中的数据是十分频繁的,为了避免编写重复的代码。编写一个数据

库连接文件是非常重要的。DB.cs文件中包含了本系统中的数据库的连接代码。本系统的数库的连

接代码如下:

public static SqlConnection createConnection()

{

SqlConnection con=new SqlConnection("server=.;database=城市公交查询系统;uid=sa;pwd=;");

return con;

}

2.按站点查询

站点查询模块:用户进入系统后,在站点查询模块中有二种选择,第一个是按站点的确切信息也就是完全匹配查询,此时用户要给出站点的全称,当点击查询按钮后,系统会在数据库中检测该站点是否存在,如果存在,系统显示这个站点的相关信息。比如:经过这个站点共有哪些线路,这些线路又各经过哪些站点,第二个选择是站点的模糊查询,也就是不完全匹配,用户只需输入站点名称和部分字符信息,系统便会给出与此相关的所有站点信息。当输入确切站点后,进入的界面如图4-2所示:

图4-2 站点查询

二、后台管理功能实现

1.新增车次线路

此模块为管理员操作,如当地出现新的公交线路,或原有公交车线路有新的站点加入,管理员可以登陆此表,及时添加线路和站点的信息,以保证车次线路的及时更新,方便用户查询。添加的界面

如图4-5,4-6所示:

图4-5 新增车次

图4-6新增线路站名

2.删除车次以及无效站点

此模块同样为管理员操作,如当地哪个公交线路已经被废除,或原有公交车线路有哪个站点被删除,管理员可以登陆此表,及时删除线路和站点的信息,以保证车次线路的及时更新,方便用户查询。删除的界面如图4-7,4-8所示:

图4-7 删除车次

图4-8 删除无效站点

3.修改车辆参数

本系统设计了一个管理员和大众用户能共用的主界面。但管理员需登陆才能进入相应的界面进行操作和修改,而大众用户无需登陆可直接进入相应的界面进行查询。

两者实现的功能基本一样,但系统只对用户提供信息查询功能,并不对用户开放所有数据信息的编辑权限。而管理员比大众用户增加了对数据信息编辑功能(包括:删除站点、删除线路、修改站点、添加线路等功能等),管理员实现对数据信息的编辑并对系统进行定期的维护,保证其运行的稳定性,为大众用户提供尽可能完善的服务。

用户进入主页面后不但可以得到公交相关信息,而且可以对公交进行查询。

在线路查询中主要实现所属线路具体的信息,获得该线路会经过的站点,起末班时间、价格等等。管理员通过后台进入系统,按照提示完成,车次、站点的添加、修改和删除。下图为修改车辆参数界面,如图4-9所示:

图4-9 修改车辆参数

第五章系统测试

一、创建和测试应用程序

为了确保本系统能够正常运行,需要在发布之后做一次较全面的测试。现将具体操作及过程举例说明如下:

创建和测试应用程序应是交替进行的,既要注意开发的效率也要注意它的稳定性。每编写一个模块,就要对这个模块进行测试,看它能否根据特定的要求工作。及早发现问题,及早解决,否则到最后再来测试的话,难度会大大增加。

二、测试项目

在MIS开发过程中采用了多种措施保证软件质量,但是实际开发过程中还是不可避免地会产生差错,系统中通常可能隐藏着错误和缺陷,不经周密测试的系统投入运行,将会造成难以想象的后果,因此系统测试是MIS开发过程中为保证软件质量必须进行的工作。大量统计资料表明,系统测试的工作量往往占MIS开发总工作量的40%以上。因此,我们必须重视测试工作。

由于程序中隐藏的缺陷只在特定的环境下才有可靠显露,系统缺陷通常是由于对某些特定情况考虑不周造成的。因此测试不是为了表明程序正确;成功的测试也不是没有发现错误的测试。有意义的软件测试应该是从“破坏”软件系统的角度出发,精心设计最有可以暴露程序系统缺陷的测试方案。因此软件测试的目标应该是以尽可能少的代价和时间找出软件系统中潜在的错误和缺陷。

从产品角度看,测试计划中的测试项目包括软件结构中的分系统层、子系统层、功能模块层、程序模块层中的各类模块,从测试本身看,分为单元测试,组合测试,确认测试等。测试对象是随不同阶段而异的,最基本、最初的测试是单元测试,后面的组合测试、确认测试都是以被测过的模块作为测试对象的。

单元测试。单元测试也称模块测试或程序测试,单元测试是对每个模块单独进行的,验证模块接口与设计说明书是否一致,对模块的所有主要处理路径进行测试且与预期的结构进行对照,还要对所有错误处理路径进行测试。对源码进行审查,对照设计说明书,表态地检查源程序是否符合功能的逻辑要求,是进行单元测试前的重要工作工。单元测试一般是由程序员完成,也称程序调试。

组合测试。组合测试也称集成测试或子系统测试,通常采用自顶向下测试和自底向上测试两种测试方法。组合测试的对象是指已经通过单元测试的模块,不是对零散模块进行单个测试,而是用系统化的方法装配和测试软件系统,是一个严格的过程,必须认真地进行,其计划的产生和单元模块测试的完成日期要协调起来,这种测试应在系统目标机上进行,造成系统应用的环境条件,除了开发部分项目负责人参加以外,还应该有相应系统的用户参加,给评审员进行演示。

确认测试。确认测试是对通过组合测试的软件进行的,这些软件已经存于系统目标设备的介质上,确认测试的目的是表明软件是可以工作的,并且符合“软件需求说明书”中规定的全部功能和性能要求。确认测试是按照这些要求定出的“确认测试计划”进行的。测试工作是由一个独立的组织进行,而且测试要从用户的角度出发。

系统测试。系统测试是对整体性能的测试,主要解决各子系统之间的数据通信和数据共享问题

以及检测系统是否达到用户的实际要求,系统测试的依据是系统分析报告。系统测试应在系统的整个范围内进行,这种测试不只对软件进行,而是对构成系统的硬、软件一起进行。系统测试与建构同时进行或略慢。系统测试需要确认从头到尾的功能正常才算完成,应当尽量避免系统测试延到项目末尾进行。

用户验收测试。在系统测试完成后,进行用户的验收测试,它是用户在实际应用环境中所进行的真实数据测试。

在具体的测试中,一般应遵循以下原则:由程序设计者之外的人进行测试;测试用例应由两部分组成:输入数据和预期输出结果;应选用不合理的输入数据与非法输入测试;不仅要检验程序是否实现预期功能,还应检查程序是否做了不应该做的工作;集中测试容易出错的程序模块;对程序修改以后,必须重新进行测试。

三、程序改进

本系统设计时没有统计每两个站点之间的距离,只统计了从起点到终点的站数,这样就不能得出最短路径,站数多的不一定距离就远,同样站点少的距离不一定近。

在乘客查询到自己想要的线路信息后,系统没有提供打印功能,这是本系统以后要着重改的地方。

四、测试方法

一般来说,对程序测试有两种测试方法:如果已经知道了软件系统应具有的功能,可通过测试来对每个功能是否都能正常使用;如果知道程序的内部工作过程,可以通过测试来检测程序内部是否按照规格说明书的规定正常进行。前一种方法称为黑盒测试,后一种方法称为白盒子测试。黑盒测试又称为功能测试,白盒子测试又称为结构测试。

本系统采用黑盒测试,以下以管理员登陆为例子。

五、测试内容

1. 登录成功后,显示页面,如图5-1所示:

图5-1 登录成功显示页面

2. 登录失败,则显示如下界面,如图5-2所示:

图5-2 登录失败界面

3. 如果登录未输入用户名和密码,则显示如下界面,如图5-3所示:

图5-3 用户名和密码为空提示

六、软件维护

软件维护是指在软件运行或维护阶段对软件产品所进行的修改。软件维护是软件生命周期中耗费最多、延续时间最长的活动。

根据软件维护的不同原因,软件维护可以分成三种类型:改正性维护,适应性维护,完善性维护。

除了上述三种维护之外,还有一类维护活动,称为预防性维护。通常,人们将预防性维护定义为:“把今天的方法学用于昨天的系统以满足明天的需要”。也就是说,采用先进的软件工程方法,对需要维护的软件或软件中的某一部分重新进行设计、编制和测试,提高软件的可维护性和可靠性等,为以后进一步改进软件打下良好基础。

1.软件维护的影响因素

在软件维护中,影响软件维护工作量的因素主要有以下6种。

(1)系统的大小。

(2)程序设计语言。

(3)系统年龄。

(4)数据库技术的应用。

(5)先进的软件开发技术。

(6)其他一些因素,如应用的类型、数学模型、任务的难度等。

2.软件的可维护性

软件的可维护性是指软件能够被理解、纠正、适应和完善以适应新环境的难易程度。软件的可维护性受许多因素的影响,在设计、编码和测试过程中稍有疏忽就会降低软件的可维护性,软件配置的好坏对此也有同样的影响[10]。

3.提高软件维护性的方法

(1)建立明确的软件质量目标和优先级。

(2)使用提高软件质量的技术和工具。

(3)进行明确的质量保证审查。为了保证软件的可维护性,有四种类型的软件审查。

(4)选择可维护的程序设计语言。

(5)改进程序文档。

另外,在软件维护阶段利用历史文档,可以大大简化维护工作。

结论

本系统的特色是方便、快速。

系统的不足与改进方案:

在数据库设计方面,还有待改进,数据库设计也可采用别的形式,比如:可以用一个字段作为站点字段,另一个字段作为经过该站点的车次字段,只要找到经过某个站点最多的车次,就可以设计该字段的类型以及长度。那么就可以避免因数据过长而被截断的问题了。

系统的智能化程度不高,改进方案是根据起点站、终点站来确定那条路线,给出几种乘车方案。这需要算法的设计。

历经几周的软件课程实践将近尾声,在这几周内,体会颇深。从资料查找到课题的设计、分析、数据库的设计、界面的设计、代码的编写、程序的调试等让我们深感编写出一个令人满意的系统是那么不容易!也深感我们的知识还很欠缺。应当继续努力,多动手动脑,把https://www.doczj.com/doc/d78099443.html,弄通。系统在调试过程中经过了无数次的修改,才最终定型。经过我们小组三人的共同努力和默契配合完成了课程实践,我们都有一种成功的喜悦。在整个课程设计过程中我们感觉到解决困难的同时也是一种收获。

大连交通大学软件实践报告

参考文献

[1] 曹祖圣.吴明哲.Visual C#.NET 程序设计经典[M].北京:科学出版社,2004

[2] 宣小平https://www.doczj.com/doc/d78099443.html,数据库系统开发实例导航[M].上海:人民邮电出版

[3] 金银秋.数据库原理与设计[M].北京:科学出版社,2003

[4] 张海藩. 软件工程[M].北京:人民邮电出版社,2002

[5] 沃尔森. https://www.doczj.com/doc/d78099443.html,2.0揭秘(卷1)[M]. 谭振林.北京:人民邮电出版社. 2007

[6] 朱晔. https://www.doczj.com/doc/d78099443.html, 第一步——基于C#和https://www.doczj.com/doc/d78099443.html,2.0[M].北京:清华大学出版社.2007

[7] 谭振林. 道不远人深入解析https://www.doczj.com/doc/d78099443.html, 2.0 控件开发[M].北京:电子工业出版社.

[8] 哈特. https://www.doczj.com/doc/d78099443.html, 2.0经典教程——C#篇[M]. 孟宪瑞,易磊.北京:人民邮电出版社.

[9] 朱印宏,熊利荣. Dreamweaver 8完美网页设计——ASP动态网页设计篇[M].北京. 中国电力出版社. 2006

[10] 郝刚. https://www.doczj.com/doc/d78099443.html, 2.0开发指南[M].北京:人民邮电出版社. 2006-5-1.P.53-55.

[11] 蒋培,王笑梅. https://www.doczj.com/doc/d78099443.html, Web程序设计[M].北京:清华大学出版社. 2007

[12] lvar Jacobson..Object-Oriented Software Engineering.第1版[M].北京:人民邮电出版社,2005

[13] Addison Wesley.A First Look at https://www.doczj.com/doc/d78099443.html, and System.Xml[M].清华大学出版社,2006

相关主题
文本预览
相关文档 最新文档