龙源期刊网 http://www.qikan.com.cn
公交查询系统的设计与实现
作者:张蕊 李冬芬
来源:《硅谷》2011年第21期
摘要: 介绍公交查询系统前台的信息查询和后台的数据库管理两个模块,前台通过输入或者选择车次提供车次查询功能,后台管理可以对车次或站点进行添加、修改和删除,系统采用ASP.NET来开发,后台数据库则采用SQL Server 2005,并通过ADO这种新型的数据访问对象模型来对后台的数据库进行各种操作,整个系统采用B/S结构实现浏览器端和服务器端的访问。
关键词: 信息;查询;数据库;管理;B/S
中图分类号:TP311.132 文献标识码:A 文章编号:1671-7597(2011)1110074-01 0 引言
鉴于城市繁杂的公交路线,如何选择一条最佳的出行路线来到达目的地,这就需要了解城市内公交路线相关的车次和站点信息,而现有获取公交信息的方式还局限于地图和问询,因此开发一个基于Web的网上城市公交查询系统,能够为广大出行者提供实时、准确、直观的公交信息。
本系统采用结构化设计的方法来实现系统总体功能,提高系统的各项指标,即将整个系统合理的划分成各个功能模块,正确地处理模块之间和模块内部的联系以及和数据库的联系,定义各模块的内部结构,通过对模块的设计和模块之间关系的系统来实现整个系统的功能。 1 系统功能设计
系统主要有前台的信息查询和后台的数据库管理两个功能模块,前台的查询能够提供车次查询功能,输入或者选择车次,即可查出本车次的停靠站;换乘查询,输入起点站和目的站,就可以查询出经过这两站的直达公交车或者换乘建议。后台数据库管理需要管理员登录以后才能对数据进行操作,主要分为车次管理和公交信息管理,前者描述了每路车所经过的站点,可以对车次或站点进行添加、修改和删除;后者描述了每路车的详细信息包括起点站和终点站,车的类型及其他信息。系统功能模块如图1所示。
图1系统模块图 2 数据库设计
龙源期刊网 http://www.qikan.com.cn
本系统采用“实体联系模型”(ER模型)来描述数据库的结构与语义,以对现实世界进行第一次抽象。ER模型直接从现实世界抽象出实体类型及实体间联系,然后用ER图来表示数据模型。它有两个明显的优点:接近于人的思维,容易理解;与计算机无关,用户容易接受。 实体和属性的定义如下:
管理员表(登陆ID,登录姓名,登录密码);站名表(站名编号,站名);车辆线路编号表(车次,车线类型);线路表(线路编号,车次,站名,次序);车辆表(车辆编号,车次,车辆类型,服务类型,票价,IC卡类型,运行区间);冬季发车时间表(车次,编号,首班时间,末班时间);夏季发车时间表(车次,编号,首班时间,末班时间)。 3 功能的实现
3.1 连接数据库的包含文件
在动态网站中,调用数据库中的数据是十分频繁的,为了避免编写重复的代码。编写一个数据库连接文件是非常重要的。DB.cs文件中包含了本系统中的数据库的连接代码。本系统的数库的连接代码如下:
public static SqlConnection createConnection() {
SqlConnection con=new SqlConnection(\ Database=城市公交查询系统;User id=sa;PWD=123456\ return con; }
3.2 前台查询功能的实现
线路查询模块:用户进入系统后,在线路查询模块的输入框中输入要查询的线路,点击查询按钮,系统首先检查用户所查询的线路是否存在,如果不存在给出出错提示,如果存在给出这条线路的相关信息,如:双向早晚车的工作时间,票价,经过的站点。如线路存在,进入线路界面。
站点查询模块:用户进入系统后,在站点查询模块中有二种选择,第一个是按站点的确切信息也就是完全匹配查询,此时用户要给出站点的全称,当点击查询按钮后,系统会在数据库中检测该站点是否存在,如果存在,系统显示这个站点的相关信息。比如:经过这个站点共有哪些线路,这些线路又各经过哪些站点,第二个选择是站点的模糊查询,也就是不完全匹配,
龙源期刊网 http://www.qikan.com.cn
用户只需输入站点名称和部分字符信息,系统便会给出与此相关的所有站点信息。当输入确切站点后,进入的界面。
两站点查询模块:用户进入系统后,在主页面的换乘查询模块中有两种选择,第一是直达,第二个是一次换乘。用户可以在起点站输入框中输入自已的出发点,然后在终点站输入框输入出行的终点,如果存在直达,系统便会检测这两个站点间的直达车,如果没有直达车,系统会给出相关提示,那么用户便可以选择一次换乘,系统会检测是否有一次换乘方案,如果有系统会给出所换乘方案。 站点查询主要实现代码如下:
SqlCommand cmd=new SqlCommand(\站名表where 站名=\
int count=Convert.ToInt32(cmd.ExecuteScalar()); con.Close();
if(StationName==\ { Response.Redirect(\ else { if(count>0)
{Response.Redirect(\ else
{ Response.Redirect(\ 3.3 后台管理功能的实现
新增车次线路:此模块为管理员操作,如当地出现新的公交线路,或原有公交车线路有新的站点加入,管理员可以登陆此表,及时添加线路和站点的信息,以保证车次线路的及时更新,方便用户查询。
删除车次以及无效站点:此模块同样为管理员操作,如当地哪个公交线路已经被废除,或原有公交车线路有哪个站点被删除,管理员可以登陆此表,及时删除线路和站点的信息,以保证车次线路的及时更新,方便用户查询。 删除车次:主要实现代码如下: