公交车查询系统.docx

上传人:b****5 文档编号:7283601 上传时间:2023-01-22 格式:DOCX 页数:29 大小:670.13KB
下载 相关 举报
公交车查询系统.docx_第1页
第1页 / 共29页
公交车查询系统.docx_第2页
第2页 / 共29页
公交车查询系统.docx_第3页
第3页 / 共29页
公交车查询系统.docx_第4页
第4页 / 共29页
公交车查询系统.docx_第5页
第5页 / 共29页
点击查看更多>>
下载资源
资源描述

公交车查询系统.docx

《公交车查询系统.docx》由会员分享,可在线阅读,更多相关《公交车查询系统.docx(29页珍藏版)》请在冰豆网上搜索。

公交车查询系统.docx

公交车查询系统

公交车查询系统

秦金龙

目录

摘要III

1绪论1

2系统分析1

2.1可行性分析1

2.1.1技术可行性分析1

2.1.2经济可行性分析1

2.1.3操作可行性分析2

2.1.4时间可行性分析2

2.2需求分析2

2.2.1功能需求2

2.2.2数据需求2

2.2.3性能需求2

2.3数据流图2

2.4数据字典4

2.5E-R图7

3.总体设计8

3.1系统结构8

3.2功能模块设计8

3.3系统设计方案9

3.4数据库详细设计9

4.详细设计11

4.1数据库连接11

4.2各功能模块设计与实现11

4.2.1用户查询系统模块11

4.2.2管理员管理模块13

4.3人机界面设计15

5调试与测试17

5.1调试17

5.2测试17

6.结论18

结束语18

参考文献19

附录1-用户手册20

附录2-源程序23

 

摘要

我国城市公交乘客信息系统的发展处于一个较落后的水平,广大乘客可以获得信息的方式很少,为了解决这种问题,加快发展城市公交信息化,设计一个城市公交查询系统是具有一定实际应用意义的。

在此背景下,我运用JAVA语言开发了一个城市公交查询系统。

本论文首先考虑了公交运营的实际情况和不同公交乘客的实际要求,分析了此系统应该具有的功能;其次对系统的主要功能模块进行了详细地描述,其中主要包括查询模块(包括按线路查询、按站点查询和按两站点查询)和管理更新模块(包括公交站点管理和公交线路管理),最后结合系统开发阶段和调试阶段发现的问题,提出了系统需要完善的地方,总结了开发此系统所取得经验和体会。

本文从分析课题的题目背景、题目意义、题目要求等出发,分别从需求分析、总体设计、详细设计、测试等各个方面详细介绍了系统的设计与实现过程,最后对系统的完成情况进行了总结。

关键词:

站点;车次;查询;

1绪论

城市公交是专门服务于市民出行的客运企业。

它是城市社会和经济活动的重要组成部分。

伴随着国民经济和城市建设的快速发展,城市经济的繁荣,人口的增加,城市必须解决好人们出行的需求。

城市公交直接关系着城市的经济发展和居民生活,对城市经济具有全局性、先导性的影响,城市公交以其方便、快捷、容量大而成为城市交通的主体。

但是随着公交系统的庞大,人们很难得到准确的公交信息,这样给一些人的出行就带来了不便。

因此,急需一个方便、快捷的公交信息查询方式,本系统通过浏览器查询,实现中心控制、自动更新、更多的查询方式等等更多更强大的功能。

根据课程设计任务书要求,本系统开发主要完成以下功能和性能。

(1)车次查询:

能够查询该城市公交车每一条线路所经过的站点。

(2)站点查询:

根据已知的站点查询出经过该站点的所有公交车线路。

(3)站站查询:

根据你的出发地和想要到达的地点,可以经过一次的车次转化,找到最好的换车路线。

(4)车次调整:

对公交车线路进行调整(新增、删除、修改)。

2系统分析

2.1可行性分析

2.1.1技术可行性分析

现在有很多程序语言和相应的开发工具都可以适用于本系统的开发,例如VB、VC、C#、ASP、PHP、JAVA等,数据库有DB2、Oracle、Informix、SQLServer、ACCESS等,现在基本所有的软件程序都是用这些工具开发的,并且本人对这些语言和数据库的创建、连接、管理都有过实际的开发经验。

由于JAVA和数据库SQLServer两项技术本人应用较为成熟,所以以本人现有能力可以完成系统设计。

2.1.2经济可行性分析

作为开发系统的一般配置,根据个人情况和资金情况,选择一台性能稳定、效率较高的计算机,现在的费用不会超过3000元。

操作系统采用Windowsxp,数据库采用功能强大并且稳定的SQLServer2000,开发工具选用JAVA,由于应用软件是免费的,且个人开发只需花费开发期间的生活费用300元左右,所以花费成本为3300元,由于所开发系统需求量较大,所以可以收回成本。

由于开发周期不长,自身经济可以允许。

2.1.3操作可行性分析

本系统的操作对象主要是在于广大的人民群众和公交车线路的管理者,所以不需要其他复杂的操作,只需要对其公交车的线路进行操作,所以本系统操作起来较为方便,并且可以顺利应用。

2.1.4时间可行性分析

第一周把数据库建立完成并且将界面设计完成;第二周完成数据库与界面的连接并完成添加、修改、删除基本功能;第三周完成实验全部功能并检查验收,此外,完成课设报告。

总体来说课设时间刚刚好。

2.2需求分析

2.2.1功能需求

本系统主要是对公交线路的线路进行查询的管理的系统。

本系统需要有管理者动态更新公交线路的最新信息,并且能将所有信息从数据库中添加、修改和删除,利用报表功能将数据库中的若干项目的数据显示出来并且利用触发器将数据库中的若干信息的数值计算出来。

数据要求有自动更新功能,显示最新的结果。

还需要对普通用户有简单方便的站点查询、线路查询、换车查询等。

2.2.2数据需求

对于用户信息需要有所选择的查询方式建立不同的表,对于不同的表之间有关联的可以用视图。

对于管理者需要管理者的用户名和密码。

2.2.3性能需求

本系统稳定性比较好、可靠性较高,只要操作正确就可以达到用户操作的目的要求,其次本系统响应速度较快,只要对系统中的数据进行操作,操作后的结果就将在界面中显示出来。

2.3数据流图

数据流图是结构化系统分析的工具。

它既可以表达数据在系统内部的逻辑流向及存储,又可以表达系统的逻辑功能和数据的逻辑变换。

数据流图既能表达现行人工系统的数据流程和逻辑处理功能,也能表达自动化系统的数据流程和逻辑处理功能。

数据流程有五种基本符号:

外部项、数据流、处理逻辑(加工)、数据元素和数据存储。

数据流图如图1、2所示。

图1用户使用数据流图

图2管理者数据流图

2.4数据字典

数据字典(Datadictionary)是一种用户可以访问的记录数据库和应用程序源数据的目录。

主动数据字典是指在对数据库或应用程序结构进行修改时,其内容可以由DBMS自动更新的数据字典。

被动数据字典是指修改时必须手工更新其内容的数据字典。

(1)数据项

名称:

BUSID

别名:

公交车编号

简述:

公交车编号

数据类型:

可变字符型

长度:

50

②名称:

Company

别名:

所属公司

简述:

所属公司

数据类型:

可变字符型

长度:

50

③名称:

Price

别名:

票价

简述:

票价

数据类型:

可变字符型

长度:

50

④名称:

WorkTime

别名:

工作时间

简述:

工作时间

数据类型:

可变字符型

长度:

50

名称:

NearBulid

别名:

临近建筑物

简述:

临近建筑物

数据类型:

可变字符型

长度:

50

名称:

UserID

别名:

管理者名称

简述:

管理者名称

数据类型:

可变字符型

长度:

50

名称:

UserPassword

别名:

管理者密码

简述:

管理者密码

数据类型:

可变字符型

长度:

50

名称:

UpLine

别名:

上行线

简述:

上行线

数据类型:

可变字符型

长度:

100

名称:

DownLine

别名:

下行线

简述:

下行线

数据类型:

可变字符型

长度:

100

名称:

TypeLine

别名:

线路类型

简述:

线路类型

数据类型:

可变字符型

长度:

100

名称:

Station

别名:

站点名

简述:

站点名

数据类型:

可变字符型

长度:

50

(2)数据流

数据流名称:

用户查询公交线路记录信息

简述:

记录公交车线路查询的信息

数据流组成:

查询结果=线路+站点

②数据流名称:

管理者修改公交线路信息记录

简述:

公交线路的基本信息

数据流组成:

管理者管理=管理者管理的项目

(3)处理逻辑条目

处理逻辑名称:

车次查询

简述:

根据公交线路查询该线路上的所有站点

输入的数据流:

公交车编号

处理:

根据编号查询

输出的数据流:

查询出该线路上的所有公交站点的记录

②处理逻辑名称:

站站记录

简述:

根据两个站点查询出最佳的坐车路线

输入的数据流:

两个不同的站点

处理:

根据站点查找出最佳的线路

输出的数据流:

输出最佳的乘车路线

③处理逻辑名称:

站点查询

简述:

根据站点查询出经过该站点的所有公交车编号

输入的数据流:

站点名称

处理:

根据站点查询公交车的编号

输出的数据流:

路过该线路的所有公交车编号

处理逻辑名称:

临近查询

简述:

根据站点查询出经过该站点的有名建筑物

输入的数据流:

站点名称

处理:

根据站点查询该站点附近的著名建筑物

输出的数据流:

该站点附近的著名建筑物

(4)数据存储

数据存储器名称:

公交车线路的信息记录

简述:

记录公交车的站点、建筑物、时间等信息

数据存储结构:

公交车编号、公交车站点、票价、工作时间、临近建筑物、管理者用户名、管理者密码。

关键字:

公交车线路

2.5E-R图

公交车管理系统的E-R图包括三个实体:

线路实体,其中线路包括编号、所经路线、票价、营运时间。

站点实体,其中包括站点名称和临近建筑物,管理员实体,其中包括用户名和用户名密码。

线路实体属性图,如图3所示

图3线路实体属性图

站点实体属性图,如图4所示

图4站点实体属性图

管理员实体属性图,如图5所示

图5管理员实体属性图

以下为实体属性ER图:

图6实体属性E-R图

3.总体设计

3.1系统结构

系统开发应用的是C/S结构,C/S结构软件(即客户机/服务器模式)分为客户机和服务器两层,客户机不是毫无运算能力的输入、输出设备,而是具有了一定的数据处理和数据存储能力,通过把应用软件的计算和数据合理地分配在客户机和服务器两端,可以有效地降低网络通信量和服务器运算量。

由于服务器连接个数和数据通信量的限制,这种结构的软件适于在用户数目不多的局域网内使用。

国内目前的大部分ERP(财务)软件产品即属于此类结构。

目前大多数应用软件系统都是Client/Server形式的两层结构,由于现在的软件应用系统正在向分布式的Web应用发展,Web和Client/Server应用都可以进行同样的业务处理,应用不同的模块共享逻辑组件;因此,内部的和外部的用户都可以访问新的和现有的应用系统,通过现有应用系统中的逻辑可以扩展出新的应用系统。

这也就是目前应用系统的发展方向。

传统的C/S体系结构虽然采用的是开放模式,但这只是系统开发一级的开放性,在特定的应用中无论是Client端还是Server端都还需要特定的软件支持。

由于没能提供用户真正期望的开放环境,C/S结构的软件需要针对不同的操作系统系统开发不同版本的软件,加之产品的更新换代十分快,已经很难适应百台电脑以上局域网用户同时使用。

而且代价高,效率低。

3.2功能模块设计

根据分析整个系统主要划分为2个功能模块,用户使用查询模块和管理员管理木块,分别执行要求中的功能。

数据管理中实现对公交车的线路进行站点查询、站站查询、线路查询和临近查询和管理者对公交车的线路进行修改、删除、新增功能。

功能模块图如图6所示。

图6功能模块图

(1)管理员管理子模块

实现对公交线路的路线进行增加、修改和删除功能。

(2)用户查询子模块

实现对公交线路中的线路查询、站点查询、站站查询和临近查询。

3.3系统设计方案

公交车管理系统是一个小型的数据库系统。

所以这里我们选择SQLServer数据库和JAVA技术进行开发。

MicrosoftSQLServer是一种关系型数据库管理系统。

首先建立SQLServer数据库中的线路表其中包括车次编号、上行线、下行线和线路类型4中属性列,车次信息表其中包括车次编号、所属公司、票价和运营时间4种属性,站点信息表包括站点名和临近建筑物2种属性,管理员信息表包括用户名和密码两种属性。

实现用户的使用和管理员的管理设计。

然后对应填入数据并且通过触发器实现剩余时间等于计划时间减完成时间的功能。

最后,在JAVA中编入程序实现要求。

3.4数据库详细设计

本节主要介绍后台数据库的结构设计。

结构设计是重要阶段,是数据库设计的重要组成部分。

下面给出下列表基本的数据结构。

管理员信息表

主要记载管理员的用户名和密码图7所示:

列名

数据类型

NULL

约束

说明

UserID

Varchar(50)

Notnull

Primarykey

用户名

UserPassword

Varchar(50)

Notnull

密码

图7管理员信息表图

线路表

主要记载车次编号、上行线、下行线和线路类型。

图8所示:

列名

数据类型

NULL

约束

说明

BusID

Varchar(50)

Notnull

Primarykey

车次编号

UpLine

Varchar(100)

Notnull

上行线

DownLine

Varchar(100)

Notnull

下行线

LineType

Varchar(100)

Notnull

线路类型

图8线路表表图

车次信息表

主要记载这次编号、所属公司、票价和运营时间。

图9所示:

列名

数据类型

NULL

约束

说明

BusID

Varchar(50)

Notnull

Primarykey

车次编号

Company

Varchar(50)

所属公司

Price

Varchar(50)

票价

WorkTime

Varchar(50)

运营时间

图9车次信息表表图

站点信息表

主要记载站点名和临近建筑物。

图10所示:

列名

数据类型

NULL

约束

说明

Station

Varchar(50)

Notnull

Primarykey

站点名

NearBuild

Varchar(50)

临近建筑物

图10站点信息表表图

4.详细设计

4.1数据库连接

数据库连接首先创建MicrosoftSQLServer数据源,然后安装server数据库驱动,接着输入所建数据库名字和选择服务器local,之后一直点下一步,直到最后一步测试数据库连接是否成功,如成功点击确定,否则检验一下自己导入的数据库是否正确,再按如上操作进行连接。

4.2各功能模块设计与实现

4.2.1用户查询系统模块

用户查询管理模块主要是对数据库中的公交线路基本信息进行线路查询、站点、站站查询和临近查询。

建立用户查询管理模块时,首先建立一个新窗体,根据添加的数据库内容字段建立相应的文字,在文字下面建立相对应的文本框与字段一一对应,文本框内不与数据库进行连接。

(1)车次查询,在用户查询理界面中输入你想要查询的公交车线路次过程要判断是否存在改线路,存在就显示在对应的界面种,如果不存在就提示你查询的线路不存在。

如图11所示:

图11线路查询流程图

(2)站点查询,首先判断输入站点是否存在,如存在就输出经过该站点的所有公交车编号,如果不存在则输出你查询的站点不存在,请重新输入。

如图12所示:

图12站点查询流程图

(3)站站查询,首先判断输入的两个站点是否存在,如果都存在则根据线路和两个表所形成的视图来查询出最佳的换成路线,如果不存在则输出你输入的站点有有错误,请重新输入。

如图13所示:

图13站站查询流程图

临近查询,首先判断输入站点是否存在,如存在就输出经过该站点的临近建筑物,如果不存在则输出你查询的站点不存在,请重新输入。

如图13所示:

图14临近查询流程图

4.2.2管理员管理模块

管理员管理模块主要是对数据库中的公交车线路的基本信心进行添加、修改和删除。

建立管理员管理理模块时,首先在VC中建立一个新窗体,根据添加的数据库内容字段建立相应的文字,在文字下面建立相对应的文本框与字段一一对应,文本框内不与数据库进行连接。

(1)添加操作,在管理员管理管理界面中公交车线路的信息,其中包括每一条公交车的编号和所经过的所有站点和该站点的临近建筑物,如图15所示:

图15添加公交车信息流程图

(2)修改操作,首先输入公交车编号判断该编号是否存在,如存在就输入对应想要改的属性后,单击确定键,所改信息就添加到数据库表中,同时在界面中显示出来;否者弹出该编号不存在,如图16所示:

图16修改公交车线路流程图

(3)删除操作,首先找到要删除的编号或者站点,然后判断该编号或者站点是否存在,若存在就直接删除,否则弹出该编号或站点不存在,如图17所示:

图17删除站点和线路流程图

4.3人机界面设计

界面的设计原则是让用户使用方便、快捷、高效,人机交互的模式人通过键盘输入信息,计算机显示信息。

系统总界面包括用户的应用界面个管理者管理界面。

用户应用界面包括站点查询、车次查询、站站查询和临近建筑物查询,而管理者界面包括管理者的登陆界面个管理者的管理管理界面,管理界面又包括添加、修改和删除。

图18用户应用界面

图19管理员登陆界面

图20管理员管理界面

5调试与测试

5.1调试

调试是软件开发过程中的一个重要环节,也是最复杂,对软件开发者者来说也是最艰巨的任务。

调试的任务是及时改正测试过程中发现的软件错误。

具体地说,调试过程由两个步骤组成,它从表示程序中存在错误的某迹象开始,首先确定错误的准确位置,也就是找出哪个模块或哪个语句引起的错误。

然后仔细研究推断代码以确定问题的原因,并设法改正。

调试过程主要是运行编制好的程序,然后遇到错误后根据系统的提示,找到相关的问题所在。

本系统调试过程中遇到问题、原因和解决方法如下面介绍。

(1)程序不能运行

编译正确,但程序不能运行,这是个逻辑错误,错误在于JAVA界面中涉及的变量类型与数据库相对应数据变量类型不一致,把它们改成一致的程序就能正确运行了。

(2)数据库中要删除的属性列不能删除

原因是该属性的约束条件没有删除。

(3)数据库连接测试失败

原因是连接数据库所要用到的服务器选择错误。

5.2测试

软件测试是软件生存期中的一个重要阶段,是软件质量保证的关键步骤从用户的角度来看,普遍希望通过软件测试暴露软件中隐藏的错误和缺陷,所以软件测试应该是“为了发现错误而执行程序的过程”。

或者说,软件测试应该根据软件开发各阶段的规格说明和程序的内部结构而精心设计一批测试用例(即输入数据及其预期的输出结果),并利用这些测试用例去运行程序,以发现程序错误或缺陷。

过度测试则会浪费许多宝贵的资源。

到测试后期,即使找到了错误,然而付出了过高的代价。

测试数据过程如下。

(1)可在用户应用模块中的进行车次查询,进入用户的界面,点击车次查询按钮,进入车次查询的界面,之后手动输入要查询的车次,就会显示出你所要查询的车次和经过的站点。

(2)可在用户应用模块中进行临近查询,进入用户的界面,点击临近查询的按钮,进入临近建筑物查询的界面,之后任意输入一个在公交车信息表中存在的站点,就会显示出该站点附近的建筑物。

(3)可在管理员模块中进行删除线路操作,首先进入管理员登录界面,进入并获取管理员的权限,之后点击删除按钮,输入所要删除的公交车编号,点击确定,就会把该编号的公交车所经过的站点都删除掉。

6.结论

在本次软件综合课程设计我学到了一些以前所不会的知识点,ado控件和dba数据源是实现sql数据库与vc界面进行连接必要因素。

通过对dba数据源操作我们可以实现sql数据库与vc界面的连接,此外,我们通过ado控件可实现由于在vc界面中操作而改变的数据在sql数据库表中的数据可以随时随地相应改变。

本次我课程设计顺利完成,题目所要求的功能也都一一实现,可以对数据库进行添加修改,删除以及其他查询结果。

不过这个程序还有些不够完善,例如查询功能只能按学号查询而不能是按其它条件查询,此外还有就是只能对每个学生对某一门学科所进行的学习计划进行管理。

结束语

为期三个礼拜的软件综合课程设计实习终于顺利完成,在这期间我又愁苦又有快乐,同时我受益匪浅。

我的快乐多于愁苦。

因为每个功能的实现都是我撒播汗水的收获,在这期中我感受到了成功的喜悦。

每个子功能实现都是在铺垫成功的基石。

在整个设计过程中,通过各种渠道获取资料。

利用周末去大的书店查资料,把重要的东西记录下来,也去图书馆借了一些相关的参考资料,同时还充分利用网上资源查一些资料,最后再综合这些资料,结合VC、SQL进行具体的操作,使得我成功的完成了本次课设要求。

我最大的收获是学会了体验自己独立完成事情的喜悦之情。

与此同时我提高了自己编成的能力,学会了较多的编成技巧,并且融合了VC++和数据库知识,虽不是全部,但对我来说是质的飞跃。

路漫漫其修远兮,吾将上下而求索。

学习编程的路还很长,我将会更加努力的学习专业编程语言语言,以便于我攀登编程的高峰。

参考文献

[1]萨师煊,王珊.数据库系统概论(第四版).北京:

高等教育出版社,2006

[2]孔凡航.Oracle9i中文版基础教程(第二版).北京:

清华大学出版社,2007

[3]孔鹏.VisualC++完全自学手册.北京:

机械工业出版社,2007

[4]杨继平,吴华.SQLServer2000自学教程.北京:

清华大学出版社,2000

[5]张海藩.软件工程导论[M].北京:

清华大学出版社,2003

 

附录1-用户手册

点击运行用户使用的运行程序就会出现用户公交车线路查询系统初始界面。

如图21所:

图21用户公交车查询系统初始界面

点击任意带有查询的按钮,就将进入用户选择的界面,如点击站站查询,就会出现站点到站点的界面,如图22所示:

图22站站查询的界面

点击运行管理员管理的的运行程序首先会出现管理员登陆的首界面,如图23所:

图23管理员登陆的界面

输入正确的用户名和密码,点击“登陆”按钮,就会进入管理员管理的界面。

如图24所示:

图24管理员管理的界面

选择上面不同的按钮,就会对该公交系统经行操作,如点击“删除”按钮。

就会删除站点或者临近的建筑物,如图25所示:

图25管理员删除的界面

附录2-源程序

BOOLCDialogSTU:

:

OnInitDialog()

{

CDialog:

:

OnInitDialog();

//TODO:

Addextrainitializationhere

//设置列表视图控件扩展风格

m_grid.SetExtendedStyle(LVS_EX_FLATSB

|LVS_EX_FULLROWSELECT

|LVS_EX_HEADERDRAGDROP

|LVS_EX_ONECLICKACTIVATE

|LVS_EX_GRIDLINES);

m_grid.InsertColumn(0,"学号",LVCFMT_LEFT,100,0);

m_grid.InsertColumn(1,"姓名",LVCFMT_LEFT,100,0);

m_grid.InsertColumn(2,"性别",LVCFMT_LEFT,100,0);

m_grid.InsertColumn(3,"年龄",LVCFMT_LEFT,100,0);

m_grid.InsertColumn(4,"班号",LVCFMT_LEFT,100,0);

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 农林牧渔 > 林学

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1