公交查询系统设计研究

2024-10-16

公交查询系统设计研究(精选12篇)

公交查询系统设计研究 篇1

1 数据库设计

数据库设计是系统设计中非常重要的环节, 作为整个系统的基础, 数据表要尽量满足规范化要求, 保证其设计的合理性。根据用户的需求设计数据库, 提高系统的运行效率, 并且有利于系统的维护和扩展, 目前的数据库系统有oracle、sybase、informix、DB2、SQL server等, 根据诸城市公交查询系统对信息数量的要求、以及要求系统的稳定, 本系统采用SQL server。由于SQL server处理数据速度快并且容量比较大, 所以本数据库采用SQL server作为数据库管理系统, 对现行系统进行详细调查的重点是对管理业务的流程进行描述, 通过采用业务流程图中的图形工具来描述管理业务活动可以帮助直观的理解系统业务过程, 找出业务流程中的不合理现象。E-R图为实体关系图, 提供了表示实体型、属性和联系的方法, 用来描述现实世界模型。根据E-R图是在需求分析的基础上进行的, 实体可以是需求分折中抽象出来的名词。

2 公交信息查询模块

该模块的功能主要是对车次进行查询, 可以查询到车次的始发站、终点站、发车时间、末班时间等。对车站的查询及公交换乘的实现, 系统给出所有可能的乘车方案, 并推荐出一条相对最优方案。所谓最优方案是指最少的换乘次数和最少的公交站点, 同时优先考虑最少的换乘次数。本模块通过一个控件将车次查询、车站查询、公交换乘集成在一起, 查询功能的实现是通过构造查询语句对数据库的操作来完成的。本系统设计公交换乘的算法, 以转车时经过的站点数最少来考虑的。车次的查询是在主界面的右上角Tab控件中显示的, 关于控件的使用, 在前面有介绍, 在此不做过多的说明。在控件上有3个标签, 分别为车次查询、车站查询和公交换乘。下面介绍车次的查询, 添加一个对话框资源, 将D改为D, ROADWAY, 在对话框上添加如图所示的控件。通过类向导更改控件的D和为控件添加相应的变量。修改对话框的属性, 用户输入起始站和目的站, 进行查询操作, 系统给出所有可能的乘车方案, 并推荐出最优方案。所谓最优方案是指最少的换乘次数和最少的公交站点, 同时优先考虑最少的换乘次数。对于公交换乘可以分两种情况来考虑, 一种是不需要转车, 另外一种是需要转车。

不需要换乘的算法, 查找起始站和目的站有相同的车次, 实现时可以在站点表中先寻找到起始站和目的站中的一个, 同时记录他的车次并开始记录站点次数, 在查找另一个站点, 如找到则记录他的车次, 然后比较两个车次是否相同, 如果相同, 则找到, 将结果显示出来, 并将所过站点次数记录在一个数组当中, 当整个站点表完成后, 再与存储站点次数的数组进行比较, 找出站点次数最少的方案, 则该方案为最优方案。

根据现在公交车的实际状况, 可以知道一般的公交换乘, 只换乘一次就可以了, 但对于一些偏远的地方, 可能要换成两次, 这里只考虑经过一次换乘的情况, 首先通过表中所有站点得到起始站和目的站的所有车次, 分别将它们存放在两个数组中。可以遍历起始站的车次及它的每一个如乘并的车图站将方案相加。将相则它同该保, 则方存案在输为一出最个乘优数车方组方案案中, 等同算法找时流到将站程两点有。用户输入公交车次号码, 启动交车车次及其属, 用户输入一个站点, 启动查询。用户输入起始点和目的点, 启动查询可获得乘车的最优方案。此方案优先考虑最少的换乘次数, 然后考虑最少的站点数, 从而可以给出最优方案。地图信息查询和操作, 放大、缩小、漫游:这是GIs系统、电子地图、图形处理等软件必备的基本功能, 是用户通过有限的窗口去认识无限的地理空间的必备工具。用户可通过缩放按钮更详细地了解地图信息。点查询:包括查询点对象和线对象, 用户在地图上要查询的目标附近或目标上按下鼠标左键, 属性框中显示该对象的属性, 并将该对象高亮显示。帮助:用户可以通过帮助来获得该系统的使用方法以及可能出现的错误和处理主题查询:用户可以启动该查询来使地图上只显示某一主题的对象。主题为村庄小方法区。商场大厦、旅游景点、教育文化、医疗机构、宾馆酒店、政府部门、交通运输等。

3 公交信息维护模块

公交信息的维护需要管理员登录后才可以进行, 公交信息维护是维护整个系统的保证, 此模块可以确保系统中站点、公交线路的及时更新, 通过该模块用户可实现对公交信息进行一般的管理操作, 包括单个站点和整条线路的维护及系统日志的查询操作。该模块要求用户登录系统后可以进行公交信息的维护, 如果不登录操作都被禁用, 包括单个站点和整条线路的维护操作, 具体实现单个站点的修改庾删除操作, 对整条线路的添加及删除操作, 给选中景点添加属性种图片, 本模块的功能主要是对数据库的一些基本的操作, 其中大部分操作都是通过SQL语句来完成的。此外还涉及菜单的禁用, 当用户登录后, 记录登录信息, 通过实现了各功能菜单的启用, 选中景点属性的添加实现比较容易, 是通过执行语句实现的。管理员的登录几乎是每个系统中必不可少的部分, 这个功能的实现其实并不复杂, 只需要通过用户输入的用户名和密码在数据表中查找匹配的数据。如果查找到则登录成功, 可以进行相关的操作, 否则登录失败。在对话框区域双击, 进入添加类对话框, 为对话框资源创建一个新类, 通过类向导为控件关联相关的变量。用户登录:系统管理员通过用户名和密码登录系统, 只有正确登录后才能进行公交站点的维护操作。删除单个站点:管理员先选择车次, 修改单个站点:管理员先选择车次, 以直接在列表框中修改。然后选择站点进行删除。系统将该车次的站点显示在列表框中, 管理员可添加一条路线:管理员添加路线属性及所有站点。删除一条路线:将所有车次用列表框显示, 管理员可以选择要删除的车次来删除。添加对象属性:管理员通过编辑框来输入对象的名称和属性, 如果是景点还可以加入图片, 加入图片时, 管理员应该现将图片加入到系统文件夹下, 然后输入图片名称。

4 地图信息模块

地图信息模块是系统中重要的模块, 也是本系统的特色所在。该模块主要的功能是电子地图的显示, 可以通过工具栏上的按钮来控制地图的放大和缩小, 也可以通过拖动鼠标来实现地图的漫游, 该模块主要是对电子地图的操作, 这些操作是通过程序主界面上的两个工具栏控制的, 上面的工具栏控制着地图的放大、缩小、漫游、图片的保存、测量两点间的距离等操作。左侧的工具栏主要控制地图信息的显示, 通过工具栏上的按钮来加载不同的图层来显示医疗机构、政府部门、人文部门、村庄和学校等信息。本模块功能一部分是基本控件的使用, 在这个模块中主要应用的是Tab控件和列表控件, 这些都是常用的控件。对数据库的操作通过s QL语句的构造来完成数据库的查询、修改及更新等功能。地图放大、缩小、漫游操作, 是通过使用Mapobjects2.3Map Control控件对应的CMap1类成员函数来实现的。使用setExtent () , 函数可实现地图的放大或缩小操作;而漫游则使用Pan () 函数实现。

参考文献

[1]姚洪勇.工资管理系统在单位中的应用[J].辽宁大学学报 (自然科学版) , 2002, (01) .

[2]杨岭.利用VFP进行公交查询系统程序的开发[J].安装, 2002, (02) .

公交查询系统设计研究 篇2

随着电子商务的突飞猛进和物流行业的信息化,使得人们在足不出户的情况下完成购物和邮寄物品,大大节约了时间和金钱成本。电子商务和物流行业都离不开通信地址(又称为通讯地址,简称为地址)和邮编,这些数据都需要用户提供,当前一些电子商务网站和物流行业的主要的做法如下:

(1)让用户手工输入完整的地址和地址对应的邮编。

(2)通过下拉列表提供省,省下面地级市和地级市下面的区县,这些比较固定的地址让用户选择,余下的地址和邮编由用户手工输入。

(3)保留用户输入的地址和邮编,方便下次再次使用,即如果本次输入的地址和邮编之前已经有了一份,直接选中,就避免了让用户重复输入。

这些做法主要存在的问题如下:

(1)很多情况下用户未必知道自己输入的地址对应的邮编。

(2)由于基于拼音的输入法和汉语本身存在的缺陷(汉字存在多音字,多个汉字拥有相同的读音,多数基于拼音的输入法都是基于统计的语言模型),再加上地址中存在的一些生僻字的原因会导致输入的地址存在错别字。

(3)由于地名存在别名现象,即同一个地名有多种叫法,例如“广东省”的别名有“广东”和“粤”,因此他们识别不了对同一个地名的不同描述。

(4)有些情况下用户无法输入完整的地址,当输入的时候一脸茫然和无助。

(5)由于地址存在变更和搜集不完全的问题,这些网站的数据往往得不到更新。

当前一些其他的网站能够解决第一个问题,即帮助用户得到地址对应的邮编。但是他们往往采用数据库技术来实现的系统,对于低于区县级别的地址,往往采用字串模糊查询(like %XXX%)的方式参与检索,由于性能的原因此种方式对于大数据量的查询效率很差。另外基于数据库实现的查询使得用户的输入格式和内容受到了很大的限制,比如:

用户首先选择省级行政区(包括省、特别行政区、自治区和直辖市)的名字,其次是选择地级行政区(包括地级市、自治州、地区和盟)级别的名字,然后再县级行政区(包括市辖区、县、旗、特区、林区、自治县和自治旗等)级别的名字,最后用户输入乡镇级别及村庄道路等。查询的输入过程非常机械。

另外基于数据库的查询模式,要求地址格式全部满足四级,即省级,地级市级,区县级,然后是其他具体地址。但是并不是所有的地址都满足此种情况,例如直辖市下和省与直辖县或省直辖县级市之间就没有地级市级,一些特殊的地级市没有区县级,如广东省中山市、广东省东莞市、海南省三亚市、海南省三沙市、甘肃省嘉峪关市;他们的解决办法,起个其他的名字代替,例如“直辖区县”,“市辖区”,“省直辖县”等,但是查询的结果中一般也包含这些非真正地址的数据。

本方法尝试解决如下问题:

(1)帮助用户输入,即提供输入提示功能(类似Google Suggestion)。

(2)采用基于搜索引擎技术使得用户输入的查询格式更加自由,并且通过一个比较短的地址片段就可以找到完整的地址。

(3)基于命名实体识别技术能够识别出用户输入地址元数据的级别,从而实现地址的逐级查询(例如已知一个地级市,给出该地级市下所有县级行政区的名字和对应的邮编;已知一个省的名字,给出该省下所有地级行政区的名字和对应的邮编等)。

(4)自动从互联网上抓取地址数据,完成参考数据的更新。

(5)对不用来源的参考数据进行校验,识别出有问题的参考数据,使得参考数据更加准确。

(6)有时候由于参考数据在乡镇级行政区级别及以下级别上收录得不是很全,本方法可以通过地址补全方式完善查询结果。

(7)实现查询结果地址的切分和级别标注,方便用户灵活使用结果。

(8)将地址和对应的邮编加密到二维码中,方便用户通过二维码扫描软件直接获取完整的地址和邮编。

(9)将用户的检索结果链接到知名的地图厂商(百度,谷歌,搜狗地图等)获取相关地址的经纬度数据。系统设计

2.1 总体架构设计

本系统的总体架构如图1所示。

从图1邮编查询系统的总体架构图可以看出,该系统需要三种数据:

(1)用于通过通信地址查询邮政编码的通信地址和邮政编码对应关系的数据。

(2)用于输入地址提示的标准化的通信地址数据。

(3)用于地址切分,地址标注,命名实体识别和Query语句生成的地址元数据字典数据。

第一种数据:通信地址和邮政编码的对应关系,可以从一些数据比较新而且数据比较标准和完整的邮编查询网站上,利用基于种子的网络爬虫和信息抽取技术抓取相关数据。

第二种数据:标准化的通信地址数据,一种来源是第一种数据去掉邮政编码后的通信地址数据,第二种来源,从维基百科和国家统计局网站上,最新的有关中国行政区划上的网页上利用爬虫技术和信息抽取技术抽取得来。

第三种数据:地址元数据字典数据,源自维基百科和国家统计局有关中国行政区划的地址元数据,以及通过地址切分和识别技术从完整的通信地址中获得。

地址元数据包含的数据主要有:省级行政区名(包括省、自治区、直辖市和特别行政区)、地级行政区名(地级市、自治州、地区、盟)、县级行政区名(包含市辖区、县级市、县、自治县、旗、自治旗、特区和林区)、乡级行政区名(包括乡、镇、街道、苏木、区公所),其他地址数据(包括道路名、村庄名、小区名、建筑物名和广场名)等。

2.2 地址查询编码过程设计

地址查询邮编索引结构如图2所示。

其中地址的最低等级域(Level Field)包含的数据值如下:

(1)省级行政区级(包括省、自治区、直辖市和特别行政区),用province表示。

(2)地级行政区级(包括地级市、自治州、地区、盟、直辖市辖区),用city表示。

(3)县级行政区级(包括市辖区、县、旗、特区、林区、自治县和自治旗等),用district表示。

(4)乡级行政区级(包括乡、镇、街道、苏木、区公所),用town表示。

(5)低于乡级行政区级,用all表示。

一个地址文本,其对应的最低地址等级域的值计算如下:

(1)首先对地址文本做预处理,预处理包括删除多余的空格,全角字符转换成半角字符。

(2)其次是地址切分和地址标注。

(3)接着是地址命名实体识别,获取最终的地名实体标注序列。

(4)然后根据规则计算出此地址文本的最低地址等级的值。

(5)将最低地址等级映射到最低地址等级域的值:1→province;2→city;3→district;4→town;0→all。

2.3 地址解析过程

本系统是基于开源的全文搜索引擎工具包Lucene实现的系统,中文分词模型采用的是二元模型(bigram)。为了提高搜索的精度和排序的质量,需要对输入的文本进行解析,解析的结果是生成相关的Query语句。因此整个流程为首先对用户输入的文本进行预处理,切分,标注和地名实体识别,识别出不同级别的地名,然后对不同级别的地名分别用半角的双引号“””括起来生成PhraseQuery查询语句,并赋以不同的权值,权值的设定应遵循如下原则,已被收录到字典里的地名(即确定被识别的地名)其对应的权值要大于未知的地名。举例如图3所示。

图3中“29号”是不能识别的地址,因此其对应的权值W5设置的值要比其他的权值小。通常情况下W5的值一般设置成1.0,其他确定已被识别的地址对应的权值的值一般大于1.0。

接着用地址的标注等级序列获得地址的最低标注等级,为了能够支持地址的分级查询(仅限四级以上的地址),即:搜索的结果首先是当前地址的标准形式,其次是当前地址等级下的直属行政等级(即子等级)的所有地址,然后才是更下一级的地址。例如:当输入“深圳市”时,排在第一个的应该是“广东省深圳市”,其次是“深圳市”下的直辖区县,然后是区县下的乡镇街道,最后是道路,小区,村庄等。系统在最低标注等级映射到最低等级域上要做分级查询处理,具体做法是:获得当前最低等级及下属的等级域的值,然后按照逐级递减的方向赋上递减的加权值。规则如下:

(1)1→province city;

(2)2→city district town;

(3)3→district town。

当用户提交查询请求后,系统会返回查询的结果,并把与用户输入的地址文本最相似的地址排在第一位。由于参考数据搜集的不是太全,加上每年都有新增的建筑,道路,小区等,还有一些行政区划的变更等等,使得排在第一位置上的地址中区县位置之后的地址和用户输入的地址有出入,本系统采用地址补全技术,对最相似的返回结果进行改造,使得更接近用户的要求。

2.4 地址补全

地址补全是根据用户的输入来完善查询结果的技术,使得结果更贴近用户的需求。地址补全主要用在某一级别的地址很难搜集全,而且新增量比较大,主要集中在四级和五级地址上。地址补全的条件时用户输入的地址文本其地址级别的顺序是正常的,即不存在一二三级地址出现在四级或者五级地址之后。识别出用户输入的地址级别中四级地址及以后的部分,拼接到搜索结果最相似的那条地址中三级地址之后。总结

城市公交查询系统的设计 篇3

关键词:J2EE;最短路径算法;公交查询;车次管理

中图分类号:O244 文献标识码:A文章编号:1007-9599 (2010) 04-0000-01

Design of Urban Public Transport Query System

Ma Yufeng

(Northwest National University,Mathematics &Computer Science College,Lanzhou730030,China)

Abstract:Public Transport Route System is an important part of urban development,is the inevitable outcome of the national life,and the social production and circulation of the key link Firstly,the various query functions,Include the name under places, public transportation vehicle number, the daily site, and any two sites check travel routes.Secondly,the shortest path algorithm adopts two sites for the shortest bus line between.Finally,provides the user message,user management function.

Keywords:J2EE;The shortest path algorithm;Public transport route system;Train management

一、背景及意义

对于公交车,人们希望能够在最短的时间内到达目的地,因此如何能够让人们在最短时间里,得到公交行车路线,并且该路线是最节约时间的,那么这个系统就是人们所需要的。

本设计采用Dijkstra算法,主要是考虑到自己所能研究到的深度,以及实用性上来考虑,Dijkstra算法较适合于本设计。针对实际情况,本研究的公交查询系统的设计,探讨以换乘次数最少为目标的公交查询系统的设计方案。

二、研究内容

对公交查询系统进行系统功能需求分析,并进行系统功能模块设计,并设计其相关的换乘方法。由于该系统的功能模块不仅仅限制于公交车的查询,除此以外,还可以提供一些很实用的功能模块,比如最近的最热的新闻,以及留言系统,这样,能较大限度的满足用户的需要。采用的方法是,使用最短路径算法-迪杰斯特拉算法作为程序的中心算法。

三、公交查询系统总体设计

(一)总体结构及说明

如图1所示,总体来说,系统总共分成6大部分,分别是首页、本站导航、高级搜索、公交新闻、留言板和系统维护。加入了统计客流量的计数器。搜索方式有四种,分别是车次查询、站点查询、精确查询和高级搜索。

(二)数据库设计

数据库用的是微软公司的Access数据库。它提供了表、查询、窗体、报表、页、宏、模块7种用来建立数据库系统的对象;提供了多种向导、生成器、模板,把数据存储、数据查询、界面设计、报表生成等操作规范化。

建立的数据库名为nbos.mdb,有四个功能模块需要用到数据库,首先是公交车信息,接着是管理员信息、留言板信息、新闻,分别对应bus、ManagerMessages和News这四个表。

bus表的意义在于当用户进入到查询系统界面或者管理员进入到车次管理界面的时候,系统将和bus表进行数据的交互。

Manager表的意义在于,管理员进行管理员登陆的时候,需要验证管理员的信息,此时,在验证窗口中,管理员需要输入相关的信息。

这四个表之间是独立的,相互之间没有很大影响,用户一登陆上网站,可以到任意一个模块中。

由于用到的是Access数据库,因此连接数据库用的代码是标准的微软链接代码。首先,建立数据库表格,这一步在之前已经做好了。接下来,在“控制面板”→“管理工具”→“数据源 (ODBC)”中,将数据库nbos.mdb添加到数据源中,这一步是添加到系统DSN中的。

接着在程序中添加如下代码:

Try{

Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");//Microsoft连接Access标准代码

}

catch(ClassNotFoundException e){}//抛出异常

try{

con=DriverManager.getConnection("jdbc:odbc:nbos","","");//连接Access的Url

}

测试连接,如若连接成功,数据库正式建立。在接下来的调用字段名中,用到的代码为:select * from bus ;//bus是表名

(三)算法分析

本设计用的最短路径算法是迪杰斯特拉(Dijkstra)算法,该算法按照路径长度递增的次序来产生最短路径。迪杰斯特拉算法用于求解一个有向图(也可以是无向图,无向图是有向图的一种特例)的一个点(称之为原点)到其余各点(称之为周边点)的最短路径问题。该算法的原理是,引进一个辅助向量D,它的每个分量D表示当前所找到的从始点v到每个终点vi的最短路径的长度。如D[3]=2表示从始点v到终点3的路径相对最小长度为2。这里强调相对就是说在算法过程中D的值是在不断逼近最终结果但在过程中不一定就等于最短路径长度。它的初始状态为:若从v到vi有弧,则D为弧上的权值;否则置D为∞。显然,长度为:D[j]=Min{D | vi∈V}

的路径就是从v出发的长度最短的一条最短路径。下一条最短路径(设其终点为X)或者是弧(v,x),或者是中间只经过S中的顶点而最后到达顶点X的路径。

算法的具体描述为:首先,用arcs表示弧上的权值。若不存在,则置arcs为∞(在本程序中为MAXCOST)。S为已找到从v出发的最短路径的终点的集合,初始状态为空集。那么,从v出发到图上其余各顶点vi可能达到的最短路径长度的初值为

D=arcs[Locate Vex(G,v),i] vi∈V。

接着,选择vj,使得

D[j]=Min{D | vi∈V-S}

最后,修改从v出发到集合V-S上任一顶点vk可达的最短路径长度。

迪杰斯特拉算法中的一个主要循环如下:

//每次求得V0到某个V顶点的最短路径,并加V到S集

For(i=1;i

Min=INFINITY;//当前所知离V0定点最近的距离

For(w=0;w

If(!final[w])//W顶点在V-S中

If(D[w]

Final[v]=TRUE;//离V0顶点最近的V加入S集

}

For(w=0;w

If(!final[w])&&(min+G.arcs[v][w]

D[w]=min+G.arcs[v][w];

P[w]=p[v];p[w][w]=TRUE; //p[w]=P[v]+[w]

}

}

}

根据带权矩阵,再按照迪杰斯特拉算法,由于除去起点,剩下5-1=4个顶点,故i

参考文献:

[1]刘敏恒,孙涛,陈继努.基于VB.NET的智能公交管理系统软件平台的开发[J].重庆邮电学院学报(自然科学版),2006(增刊):153-155

[2]王庆平,张兴芳,宋颖等.城市公交换乘的数学模型及其算法实现[J].计算机工程与应用,2008,44(7):246-248

[3]李旭华.公交线路网络分析关键技术研究[D].太原:中北大学,2005,35(12);145-150

公交查询系统设计研究 篇4

ASP是Active Server Page的缩写, 意为“活动服务器网页”。ASP是微软公司开发的代替CGI脚本程序的一种应用, 它可以与数据库和其它程序进行交互, 是一种简单、方便的编程工具。ASP的网页文件的格式是.asp, 现在常用于各种动态网站中。ASP是一种服务器端脚本编写环境, 可以用来创建和运行动态网页或web应用程序。ASP网页可以包含HTML标记、普通文本、脚本命令以及COM组件等。利用ASP可以向网页中添加交互式内容 (如在线表单) , 也可以创建使用HTML网页作为用户界面的web应用程序。

(1) 无需编译:

ASP脚本集成于HTML当中, 容易生成, 无需编译或连接即可直接解释执行。

(2) 易于生成:

使用常规文本编辑器 (如Windows下的记事本) , 即可进行编辑。ASP页面的设计还可以使用可视化的集成编辑环境Dreamweaver。

(3) 独立于浏览器:

ASP脚本在服务器端解释执行, 用户端只要使用可解释常规HTML码的浏览器, 即可浏览ASP所设计的主页。

(4) 面向对象:

在ASP脚本中可以方便地引用系统组件和ASP的内置组件, 还能通过定制ActiveX ServerCom-ponent (ActiveX服务器组件) 来扩充功能。

(5) 与任何ActiveX script语言兼容:

除了可使用VB-Script和Jscript语言进行设计外, 还可通过Plug-in的方式, 使用由第三方所提供的其它script语言。

(6) 源程序码不会泄漏:

ASP脚本在服务器上执行, 传到用户浏览器的只是ASP执行结果所生成的常规HTML码, 这样可保证编写出来的程序代码不会被他人盗取。

2 系统功能介绍

(1) 汽车车型, 价格展示。

即在网站可以实时显示出汽车的实物图片, 多角度展示车辆真实图片, 使车主了解车辆外型、内饰的具体细节。同时显示每一种车辆的租赁价格。

(2) 汽车库存数量实时更新。

即在客户租出某一车辆后, 网站可以即时将该车辆信息改为已租出状态, 避免其他客户继续生成订单。

(3) 汽车订单生成。

保证客户订单生成后, 网站客服可以实时根据订单的电话联系客户, 协商租赁手续的具体细节。网站架构介绍:如图所示, 网站分为车辆展示、订单生成、在线询问、客户注册这四个主要的前台模块。还包括网站客服和库存管理这两个后台模块。

3 系统数据库的选择及其安全

目前来讲基于ASP的系统一般使用的数据库有两种:ACCESS和SQL Server。

Access是一种桌面数据库, 只适合数据量少的应用, 在处理少量数据和单机访问的数据库时是很好的, 效率也很高。但是它的同时访问客户端不能多于4个。Access数据库大小有一定的极限, 如果数据达到100M左右, 很容易造成服务器iis假死, 或者消耗掉服务器的内存导致服务器崩溃。

SQL Server是基于服务器端的中型的数据库, 可以适合大容量数据的应用, 在功能上管理上也要比Access要强得多。在处理海量数据的效率, 后台开发的灵活性, 可扩展性等方面强大。因为现在数据库都使用标准的SQL语言对数据库进行管理, 所以如果是标准SQL语言, 两者基本上都可以通用的。SQL Server还有更多的扩展, 可以用存储过程, 数据库大小无极限限制。

由于本车辆查询系统面向整个城市, 因此同时访问客户端较多, 同时存在由于注册用户较多, 查询车辆信息较多造成数据库过大的情况, 因此选用SQL Server为本查询预订系统的数据库。

SQL Server的安全问题主要表现为, 针对SOL INJECTION的攻击测试愈演愈烈, 很多大型的网站和论坛都相继被注入。这些网站一般使用的多为SQL SERVER数据库, 正因为如此, 很多人开始怀疑SQL SERVER的安全性。其实SQL SERVER2000已经通过了美国政府的C2级安全认证-这是该行业所能拥有的最高认证级别。在合理配置后, 安全性较高。

4 数据库连接部分及管理员登录系统部分

查询系统中Conn.asp的功能是实现到数据库的连接, 因为在很多网页中都有连接数据库的操作, 所以把它保存在文件Conn.asp中, 这样可以避免重复编程。Conn.asp的代码如下:

出于安全性考虑本系统中有些功能只有Admin用户才有权限使用, 所以在进入这些网页之前, 需要判断用户是否是Admin。Admin.asp的功能是判断当前用户是否是Admin, 如果不是, 则中断执行;如果是, 则不执行任何操作, 直接进入包含它的网页。

Admin.asp的代码如下:

5 结论

本系统, 通过asp技术结合SQL数据库设计了一套网上租车系统, 客户通过注册页面填写注册信息后, 即可浏览该系统, 实现车辆的查询以及下单预订的功能。网站客户可以实时查看客户的询问信息并解答。同时仓库工作人员可以实时将车辆库存信息更新, 最终显示在客户与客服终端页面上。但页面美工需要完善, 针对客户操作习惯的人性化设计需要进一步加强。

摘要:汽车租赁行业以其全新的消费概念, 日益成为家庭及商务用车的补充方式。以ASP为技术, 针对目前日益流行的汽车租赁行业, 设计了一套基于ASP的车辆查询预订系统, 成功实现了汽车租赁的全面网络化。

关键词:租赁,ASP,汽车

参考文献

[1]彭万波等.ASP开发基础与范例[M].北京:电子工业出版社, 2002.

[2]郭瑞军, 李杰, 初晓路.ASP数据库开发实例精粹[M].北京:电子工业出版社, 2005.

公交查询系统设计研究 篇5

工程技术学院

课程设计报告书

课程名称:

C语言课程设计

级:

物联网一班

小组成员: 范立恒、陈根、聂俊豪、麦灿文、黄文康

长:

范立恒

指导教师:

楚惟善

二○一三 年 六 月

C语言课程设计实验报告 课程题目及要求及要求

题目一:火车售票系统

任务:结合C语言中相关知识,设计出火车售票系统。录入北京西站车次信息; 2 旅客按车次买票; 统计某日火车票销售金额。

程序要求:

 贯彻结构化的程序设计思想。

 用户界面友好,功能明确,操作方便。

 用户界面中的菜单至少应包括“车次信息录入”、“旅客买票”、“统计某

日销售 金额”、“退

出”4项。

 代码应适当缩进,并给出必要的注释,以增强程序的可读性  为了保证所有的数据可以长期被使用,要求程序能将相关数据存储在外部数据文件中,具体数据格式和文件名、路径等自定;

 根据所设计的算法,定义相应函数分别实现系统的各子功能模块,同时由主程序提供友好的用户界面,使用户可通过选择主菜单来调用课程设计中要求完成的各个功能模块,子程序执行完后可返回到主菜单,继续选择其他功能执行。源程序要求书写规范,结构清晰。重点函数的重点变量,重点功能部分均要求给出清晰的程序注释。

 程序编译、链接成功后,自己设计实现程序功能的一组或多组测试数据,并严格按照此测试数据进行测试,然后分析测试结果。如果程序不能正常运行或结果不正确,则需对程序进行单步调试,在调试过程中认真查找算法实现中存在的问题,并加以分析和 程序分设计说明

经过对程序设计题目的分析可知,整个程序的设计实现大致分为八个模块,每一个模块对应一个函数。在这些函数当中,添加车次数据函数,售票函数,查询总额函数的实现严格按照题目的要求,而显示时间函数和显示车次函数属于附加功能。读取文件函数和保存信息函数对其它函数的实现起辅助作用,主函数及菜单函数控制程序的整体运行。1.添加车次函数

主要实现程序最初运行时车次的录入;

C语言课程设计实验报告

(1)添加学生数据函数add 真以追加方式打开E盘student.txt文件成功?假假输出文件打开失败以追加方式打开E盘student.txt文件成功?真输入添加学生数量n循环变量i=1当i<=n时输入学号、姓名和三门成绩学生信息写入文件 i++关闭文件图2 添加学生数据函数

返回

(2)读取学生数据函数reads 真以读方式打开E盘student.txt文件成功?假循环变量i=0当文件未结束时读取学生信息到数组元素stu[i]中i++关闭文件返回学生人数i图3读取学生数据

输出文件打开失败返回

(3)删除学生记录函数del

C语言课程设计实验报告

n=reads(stu)循环变量i=0当i

j++图5按总分排

4.程序清单

本程序主要由九个自定义函数和一个主函数组成,其中主函数以菜单的形式调用其它函数来实现要求的所有功能。在这些函数当中,添加学生数据函数、删除数据函数和排序函数是程序中较为核心的部分,下面分别进行说明。1.录入车次信息函数

录入车次信息,首先由程序创建一个新文件,并将录入的车次信息写入该文件(e:rain.txt)当中。具体的程序段如下:

if((fp=fopen(“e:rain.txt”,“a”))==NULL)//如果文件已经存在,可以追加车次信息

{

if((fp=fopen(“e:rain.txt”,“w”))==NULL)// 文件不存在时,创建新文件,输入车次信息

{

C语言课程设计实验报告

scanf(“%d”,&j);

tra[i].maipiao=tra[i].maipiao+j;

printf(“n购买成功n”);

printf(“n%12d%11d%11s%11s%11d%11.2fn”,tra[i].num,tra[i].date,tra[i].from,tra[i].ter,tra[i].maipiao,tra[i].tickeprice);

save(tra,n);3.查询销售总额

对于也使用比较日期的方法实现的,这部分程序仍然调用了reads函数,整个排序过程在文件中实现,然后用for循环进行运算,把查询这一天的总额算出。

具体程序如下:

if((fp=fopen(“e:rain.txt”,“r”))==NULL)

{ printf(“读取错误,不能打开该文件!n”);

return;} else

for(i=0;i

fscanf(fp,“ %d %d %s %s %d %fn”,&tra[i].num,&tra[i].date,tra[i].from,tra[i].ter,&tra[i].maipiao,&tra[i].tickeprice);

printf(“请输入你要查询的日期:n”);

scanf(“%d”,&temp.date);

for(i=0;i

C语言课程设计实验报告

知识并在此基础上对数据结构的特点和算法有了更深的了解,C语言是计算机程序设计的重要理论技术基础,它不仅是计算机科学的核心课程,而且已经成为其他理工专业的热门选修课。在计算机的研究和应用中已展现出强大的生命力,它兼顾了诸多高级语言的特点,是一种典型的结构化程序设计语言,它处理能力强,使用灵活方便,应用面广,具有良好的可移植性,同时这两周的学习也提高了我适应实际,实践编程的能力.黄文康:首先这一周的学习,使我在巩固了原有的理论知识上,培养了我灵活运用和组合集成所学过知识及技能来分析、解决实际问题的能力,使我体会到自身知识和能力在实际中的应用和发挥。其次,激发了我创新意识,开发创造的能力和培养沟通能力。另外,让我进一步熟悉了数据结构的设计应用。每一处编码都是在反复的熟悉数据结构的结构特性,及其语法、函数和程序设计思想的过程,对我数据结构的学习和提高很有益处,并且使我明白了程序设计过程有如解决一实际问题,从解决实际问题的角度,我们可以这样来看:第一要了解这个问题的基本要求,即输入、输出、完成从输入到输出的要求是什么;第二,从问题的要害入手,从前到后的解决问题的每个方面,即从输入开始入手,着重考虑如何从输入导出输出,在这个过程中,可确定所需的数据结构的基本类型——线性表、栈、队列、串、数组、树和二叉树以及图等,然后确定处理过程——算法,可得最后结论。最后,在这次课程设计过程中,我们深刻的认识到了自己在学习方面的不足之处,我们知道我们还有太多的基本的思想没有真正的理解,当然我们不会灰心,我们会在以后的日子里努力弥补我们的不足。

麦灿文:一个礼拜的课程设计让我们受益匪浅。要学好一门学科,没有刻苦钻研的精神是不行的,只有在不断的尝试中,不断经历失败,然后又不断的尝试才能获得成功。两个多礼拜中,我们有过山穷水尽的困惑;有过柳暗花明的惊喜;有过唇枪舌剑的辩论;有过相互鼓励的安慰。一个礼拜的时间我们经历了很多,也收获了很多。与其说它是体力与脑力的作业,不如说它是合作精神和毅力的考验。经过这次课程设计,我们不仅学到了很多知识和技能,更重要的是我们学会了如何运用所学知识去解决实际问题。

对于我本人来讲这次课程设计的总体表现,我自己还比较满意,每天做到了按时的出勤,上机遵守机房的管理规定,遵循指导老师的安排并能适时地与老师进行沟通,觉得不足的是不能熟练地掌握c语言的设计技巧使编程的结果缺乏效率,不过我相信这只是我的一个开始,我更应该注重的是这次过程,我坚信我会在以后的学习和训练中不断地弥补自己的不足之处,不断的完善自己的编程能力,因为成功需要一点一点积累。

0

C语言课程设计实验报告

} void menu(){ printf(“

************************* 武昌站火车订票系统************************ ”);

printf(“n 显示当前时间”);

printf(“n 车次信息录入”);

printf(“n 显示”);

printf(“n 旅客买票”);printf(“n 统计某日销售金额”);

printf(“n 退出”);} int reads(struct train tra[N])// 读取车次中的内容 {

FILE *fp;

int i=0;

if((fp=fopen(“e:rain.txt”,“r”))==NULL){

printf(“文件打开失败!n”);

return 0;}

else {

for(i=0;!feof(fp);i++)

fscanf(fp,“%d %d %s %s %d %fn”,&tra[i].num,&tra[i].date,tra[i].from,tra[i].ter,&tra[i].maipiao,&tra[i].tickeprice);

}

fclose(fp);

return i;} void save(struct train tra[N],int n)// 车次信息改变后更新文件 { FILE *fp;

int i=0;

if((fp=fopen(“e:rain.txt”,“w”))==NULL){

printf(“文件打开失败!n”);

return;}

else {

for(i=0;i

C语言课程设计实验报告

getch();}

void sell()// 按顾客要求对车次信息卖票 {

struct train tra[N];

int num,n,j;

int i;

n=reads(tra);

printf(“n请输入待查询的车次号,按回车键确认:n”);

scanf(“%d”,&num);

for(i=0;i

if(num==tra[i].num)break;

if(i>=n)

{

printf(“没有找到该车次信息!n”);

return;

}

else

printf(“n请输入所买票数,按回车键确认:n”);

scanf(“%d”,&j);

tra[i].maipiao=tra[i].maipiao+j;

printf(“n购买成功n”);

printf(“n%12d%11d%11s%11s%11d%11.2fn”,tra[i].num,tra[i].date,tra[i].from,tra[i].ter,tra[i].maipiao,tra[i].tickeprice);

save(tra,n);} void all()//统计销售金额 { struct train tra[N],temp;float sum=0;FILE *fp;int i,j=0;if((fp=fopen(“e:rain.txt”,“r”))==NULL)

{ printf(“读取错误,不能打开该文件!n”);

return;} else

for(i=0;i

fscanf(fp,“ %d %d %s %s %d %fn”,&tra[i].num,&tra[i].date,tra[i].from,tra[i].ter,&tra[i].maipiao,&tra[i].tickeprice);

printf(“请输入你要查询的日期:n”);

C语言课程设计实验报告

4、调试与测试:调试方法,测试结果的分析与讨论,测试过程中遇到的主要问题及采取的解决措施

5、源程序清单和执行结果(光盘):清单中应有足够的注释

二、具体安排:

学生以2—6人为一组,共同完成一个题目,选出一个组长负责分工和管理,共同完成总体框架设计,然后每个学生分工独立完成各自的功能模块的编程,最后要能集成并测试通过。

每组要以光盘形式上交C源文件和可执行文件(放在组长文件袋中,其他成员在报告本中写明源程序在哪个同学的文件袋中)

(注:课程设计报告统一使用学院规定的课程设计报告本和文件袋)

三、备注

每个人可自行附加模块设计心得

及所发现的问题及解决方法

《C语言课程设计报告

公交查询系统设计研究 篇6

摘 要:目前大多数学校学生信息的查询是基于纸质和有线互联网络的查询,既不方便,效率又低。针对开放实验的特殊性,设计开发了基于移动网络的信息查询系统,并对其部分功能模块进行了分析、设计与实现。

关键词:移动 移动网络 移动查询 开放实验

中图分类号:TP311.52 文献标识码:B 文章编号:1673-8454(2009)13-0025-03

当前高等院校正逐步实施学分制,学分制是以学分为计量单位,以选课制为核心。选课制打通了各层次各科类的学习,使得学生的上课内容、上课地点、上课时间都没有原来的稳定,有很大的波动性。[1] 对于选课信息的查询,从原来的口头纸质查询到目前的电子查询,都存在一定的不便。因此建立一个公平、快速、高效的,符合学分制学生信息查询的信息查询系统已刻不容缓,基于目前移动网络的强大优势(普及),我们设计了基于移动网络的信息查询系统,方便学生可以在任意地点、任意时间进行随时随地的信息查询,这就大大提高了学生查询信息的效率和质量。

一、目前学校信息查询现状及存在问题

目前学校中学生信息的查询还是基于有线网络的查询,虽说现在有线上网已经很方便,但还没有达到随时随地的地步,还存在一定的局限性,那么基于无线网络的移动信息查询及反馈系统就应运而生了。

本文以湖南大学为例,为了提高学生的动手能力、激发学生的学习兴趣、培养学生的实践能力和创新精神,教学计划规定“开放实验”为全校通识教育平台课程,在文化素质教育系列课程中设置了1学分的“开放实验”综合课程,要求学生自主选择不少于16学时的开放实验项目。[2]开放实验有它的特点:时间开放、内容开放、地点开放、教学模式的开放,这些特点决定了它的随意性、骤变性,在给学习者提供个性化学习环境的同时,也为学习者获取相关信息带来额外的繁琐,为了确保上课时间、地点、内容的准确性,每次上课之前都要登录校园网来查询相应的课程信息,目前学校学生对相关信息的查询主要是通过联网计算机登录http://sjjx.hnu.cn进行查询。虽说现在网络已经无处不在,但对于课程任务较重的本科生来说,要抽出课余时间或者休息时间专门去机房查询,而且,由于学校机房数量有限,大多时候都要排队等待,占用学生大量的时间,另外校园网的网络速度有时也较慢,有待提高。在上实验课的时候,几乎每节课都会有学生因为找不到实验地点而迟到,做“RC电路时间与时间延时”实验的学生会跑到“伯努力原理与飞机升力”实验室去。有些实验比如“离子束磁控溅射镀膜演示实验”,好多学生以为是在大学物理演示实验室做。所以,在预约的实验时间,都到了大学物理演示实验室,到了才发现找错了地方,匆匆忙忙地又去找相应的实验地点。另外对实验成绩的查询也要登录站点才能查到,基于这些不便,利用无线移动网络传递高度个性化信息的巨大优势,我们设计开发了基于无线网络的移动信息查询及反馈系统。

二、信息查询及反馈系统的设计

短信息服务所具有的随时随地性,使得它在某些学习情境下具有比E-mail和Web更为优秀的表现。本系统是为实现学生对个人高度个性化信息的查询而设计的,个性化信息包括学生档案、选修课程、考试成绩等。其中学生档案包括学生姓名、出生年月、学号、院系、班级。课程信息包括学生所选课程名称、上课时间、上课地点。以上这些信息都可以以系统自动回复的形式发送给查询者。另外,教学管理人员也可以通过此系统人工向个别未交实验报告的学生发送催交实验报告的通知。此系统还具备群发功能,可以以群发的形式向学生发送考试通知、调课通知和最新动态等公共信息。在本系统里,我们考虑到教务管理员需随时访问系统以进行系统维护。

经过分析,本系统要实现以下功能:

1.用户认证。本系统用户有教务管理员和学生。系统所含信息包括学生私人信息,为保护学生个人隐私,用户必须通过认证才能向系统发送请求,系统能够自动识别用户的类型,查找相应个人信息。[3]

2.课程管理。教务管理员可以根据实际需求添加、删除和修改课程信息,修改上课时间、上课地点;添加、删除和修改学生记录。

3.查询管理。允许学生在规定的查询期限内查询课程信息;若某个实验成绩不及格,则该生可以在下一学期开课的时候再次选择或者重新选择新的实验项目,以获得课程学分,否则,将不能获得所选修课程的学分。

三、系统主要功能介绍

1.注册模块的实现

本系统对学生和教务管理人员同时开放,为了确保学生信息安全,所以对于注册模块的实现,我们要求用户用真实信息注册,本系统设计要求学生用学号注册,教务管理人员用工号注册,因为在数据库部分,学生数据是和学号绑定在一起的,这样以便查询命令在数据库内准确搜索个人信息。注册模块的实现代码如下:

Private Sub Command2_Click()

Dim opt1, opt2 As Integer

Dim result As Long

Dim pwd As String

Dim pos As Integer

Dim start As Single

Dim rst As Recordset

′Form1.MSComm1.Output = "AT^SCID" + vbCr

start = Timer

Do While Timer < start + 0.5

DoEvents

Loop

′pwd = Form1.MSComm1.Input

If Trim(pwd) <> "" Then

pos = InStr(1, pwd, "SCID:")

pwd = Trim(Mid(pwd, pos + 19, 6))

opt1 = CInt(Left(pwd, 2))

opt2 = CInt(Right(pwd, 4))

result = opt1 * opt2 * 2

pwd = str(result)

pwd = Right(pwd, 6)

If Trim(pwd) = Trim(txtSeries.Text) Then

Set rst=db.OpenRecordset("select*from register")

With rst

.Edit

.Fields("number") = Trim(pwd)

.Update

End With

rst.Close

Set rst = Nothing

MsgBox "注册成功,欢迎您使用朗力群发软件!"

Unload Me

Else

MsgBox "你输入的注册码有错误,请重新注册!"

txtSeries.Text = ""

txtSeries.SetFocus

End If

End If

End Sub

ConvToHex = ConvToHex & str

Next i

End Function

2.短信群发系统

在此查询系统里,公共信息可以以群发的形式发送,通过把发送对象添加到群里,达到群发目的。而且对于那些要求定期或者定时发送的信息,例如“五一”、“十一”、圣诞节、新年等到了,所发的祝福短信,都可以事先编辑或下载一些祝福或问候短信,为其设置发送时间,届时系统将自动予以发送。对于考试通知、调课通知和最新动态等公共信息用群发系统发送会更加方便、快捷、实效。只要学生随身携带手机,随时随地都可以接收到相关的信息。本系统共有五项基本功能:

(1)电话簿管理。对学生信息进行编辑,由于在一个学校里学生学号是唯一的,将学生信息和学生学号进行绑定,方便学生身份的认证以及学生信息的查询。

(2)短消息管理。对一些常用的短信息进行编辑管理,建立常用短消息数据库,以备使用时方便、高效。

(3)发送短消息。将编辑或下载好的短消息通过群发的方式发送到指定用户的手机。

(4)接收短信箱。显示收到的所有短消息。

(5)发送短信箱。显示已发送的所有短消息。

3.自动回复系统

对于学生的个人信息,有很大的个性化,如果还是人工回复的话,工作量会很大且繁琐,在回复的过程中还有可能出现误发的可能性,不仅浪费了教务工作人员的时间、精力,而且还会影响到学生对个人信息的及时获取。所以我们预建立一个智能的回复系统,以弥补人工回复的不足,达到智能高效的信息传递效果。学生信息包括学生档案、课程信息、考试成绩三大项。学生档案包括:学生姓名、出生年月、学号、院系班级。课程信息包括:课程名称、上课时间、上课地点。基于我校分为南北两个校区,距离较远,学生对南校区的实验室分布不大清楚,很多时候迟到或找不到相应的上课地点,影响了教学的正常进行。考试成绩就是学生的实验成绩,实验成绩包括课前预习、课堂纪律、实验操作、实验报告四项,各项在综合成绩中占有不同的权重,以此来实现形成性评价和总结性评价的综合性评价,达到更科学客观的教学评价。

查询者输入查询命令,系统会自动进入数据库搜索相关信息,然后以短信的形式呈现给查询者,这就大大减轻了信息发布人员的工作量,而且有效地提高了工作效率。我们规定学生输入查询的命令必须是学号+相关项目,在这里,相关项目都用简写代替,学生档案用“da”代替,选修课程用“kc”代替,考试成绩用“cj”代替,这样做的目的是方便系统的读取信息,以做出相应的回答。例如:发送短信“s07071009+kc”,就是要查询学号是“s07071009”的同学的课程信息。系统在得到查询命令后,会自动回复查询者,将查询者所需要的信息以短信的形式发送给查询者,例如:课程名称:伯努利原理与飞机升力;上课时间:2008.12.03,3-4节;上课地点:东楼307。如此信息,学生一目了然,既方便又高效。

4.人工回复

对于学生的大多查询命令,系统都可以自动回复,这样大大减轻了教务管理人员的工作量,也提高了工作效率,但对于那些无法自动回复的信息,或者自动回复出错的信息,将由教务管理人员手动回复,以弥补自动回复的不足,进而完善本系统的功能。

四、结束语

移动查询系统应用于教学中,主要是面向学习者,提供一种实时的信息查询,满足学习者需求,提高学习者获取信息的效率。本文设计的移动查询系统主要是想借助手机的移动便捷性和从学习者的角度思考设计各功能模块,运用手机的SMS(短消息业务)功能,使学习者方便地向系统发送请求,经系统对请求处理搜索后回复学习者,通过这样一个系统比较方便地实现移动查询。由于系统模块在调试过程中还有一些问题,所以整个系统的完整实现还有待于在以后的学习中继续完成。

参考文献:

[1]詹英,郭贤海,赵小明.基于ASP.NET的在线选课系统的实现[J].台州学院学报,2003,25(6):23-25.

[2]关于《开放实验》课程有关事项的通知,http://sjjx.hnu.cn/BulletinShow.asp?id=287,2007年03月26日。

[3]赵广辉,钟 珞,夏红霞,宋华珠.基于Web的选课系统的设计与实现[J].武汉理工大学学报,2005,27(2):50-53.

[4]北京大学教育学院教育技术系.移动教育全球化学习的新方式[J].中国远程教育,2003(8).

公交查询系统设计研究 篇7

太原作为发展中城市,近10年来经济发展迅速,使交通量持续增长,交通拥堵现象日益严重,并导致公交车辆运营条件恶化,主要公交走廊上公交时速仅为15.01 km/h。与个体机动客车相比,公交是载客效率最高而占用道路资源最少的方式,因此,本文介绍了太原公交智能信息系统中智能调度的设计,以引导太原城市交通高效率地使用道路资源,使太原的道路交通有序畅通。

1 现状分析

目前,我国的智能公交系统的发展尚处于比较低级的阶段,仅仅局限于少量的引进和使用一些关键技术,还没有形成一套完整的公交管理运营系统,也没有与智能交通系统形成有效的连接。“九五”、“十五”期间,北京、上海、杭州和青岛等城市开始小规模地在公交车上安装GPS 装置,试验有车辆定位功能的调度系统。太原、南京、青岛、杭州、沈阳等相当一批城市在公交车上实施了IC 卡付费系统。但这些技术仅作为独立技术运用,没有对多种技术和信息进行整合,为公交决策和管理提供完整的方案。

本文根据太原市实际情况,对太原公交智能信息系统中智能调度进行设计,以实现营运数据采集、信息传输、信息自动化处理和信息发布等功能。

2 智能信息系统总体设计

太原公交智能信息系统的总体设计以太原公交公司五年发展规划确定的管理改进计划为基础,配合公司体制、机制、管理和技术的持续创新,目的是建立一个覆盖太原公交公司总部、下属公司、车队场站、站台以及移动车辆的整体网络。在公司内部建立数据中心和监控指挥调度中心,并建立和形成满足公司及下属单位协同运转、高效管理和科学决策需要的集团综合信息系统,同时建设一套统一的安全体系、标准体系、运维体系和服务体系,为深度开发信息资源、加速信息流通、实现信息资源共享和提高信息利用能力提供有效手段,促进公司的生产、经营、管理和决策方式的改进和优化,提高公交公司的整体创新能力、市场竞争力和公共服务水平。

要保证太原公交ITS信息化建设的顺利实施,就必须在框架中明确信息化建设过程的各个建设层次,明晰了层次,才能在具体实施中明确各具体项目的前置过程,使建设过程有序高效地进行。图1为太原公交智能信息系统整体框架。主要由基础资源层、应用支撑层、应用系统层、全媒体交互层等组成。

2.1 基础资源层

IT基础设施是计算机软、硬件资源运行的基础,在基础资源层的建设上主要分为5个中心(机房中心、数据中心、灾备中心、监控中心、应用中心),基础资源层的建设围绕这5个中心展开,各中心相辅相成,同时为应用支撑层提供资源保障。

2.2 应用支撑层

应用支撑层是非常关键的一层,是承上启下的层次,是太原公交整个信息化建设的基础。 应用支撑层将整个信息化建设的通用和前置元素抽象出来,通过通用平台技术、统一用户管理技术、资源库、目录和交换技术等形成资源目录和交换平台、主题数据库和基础数据库平台、GIS平台、开发运行管理平台、安全支撑平台、视频监控平台等共6个平台。 这6个平台作为统一的应用支撑层的具体实现,提供各种标准服务功能来构建和实现对系统应用业务的技术支撑。

标准服务主要有:组织服务、权限服务、表单服务、流程服务、展现服务、数据交换服务、资源服务、业务协同、信息服务、日志服务等。6个平台采用SOA架构实现,具有良好的扩展性与易维护性。利用这些服务和统一用户管理系统,结合二次开发,可以构建出太原公交的各项业务过程。 利用平台技术提供的系统接口适配器和开放的系统架构,可以任意与第三方系统进行无缝集成,构建太原公交的信息化集中展示平台。 应用支撑层的实现就是太原公交信息化建设的标准化和平台化实现,这个实现将使太原公交公司的信息化过程始终是一个标准化的、可扩展的、解耦性的过程。 信息化过程将不再受制于某个软件的原始承建商,避免了某个厂商的IT私有化,任何有实力的IT厂商都可以根据统一平台的标准规范接手来进行后续改进和开发,IT厂商还能够随时利用平台的各成熟组件和服务,加速其开发的速度和效率,并大大提高开发质量。

2.3 应用系统层

应用系统层是在应用支撑层上的具体业务实现,是贯彻管理层的管理思想、固化管理流程、执行经营理念、自动化各项业务的实体化过程,各项业务的业务逻辑均在此实现。 通过应用支撑层提供的支撑,根据管理思想和经营理念来确定各阶段的业务实现需求。

2.4 全媒体交互层

全媒体交互层是用户端的各种形式的接口,主要包含内部门户、外部网站、语音短信、移动设备、站台交互、车载交互等。

2.5 其他层次

除以上各层外,该系统的纵向两部分分别为安全保障和相关法律政策法规,在法律政策法规的指导下形成安全保障,成为整个系统的支撑框架。

太原公交的ITS信息化建设应该是基于咨询方法论和实施方法论完成需求、分析、策划、实现、装配、测试、运行等步骤。

3 智能信息系统中的智能调度系统

在整个智能信息系统应用系统层中,我们对智能调度系统应用逻辑分为5层架构设计,包括通信接口层、数据存储层、核心处理层、应用层、功能表现层(也就是应用操作的客户端),5层架构更方便业务管理系统的管理、维护和今后的业务扩展。公交智能调度应用系统层次架构见图2。其具体功能如下:

(1) 功能表现层:包括各种客户端(如实时监控、实时调度、管理维护、质量监督等)及操作界面。该层将系统的操作界面与系统的功能实现分离开来。表现层不存储任何数据,主要负责用户的数据接收与发送接口,并对系统数据结果进行展示。

(2) 应用实现层:它是系统的业务逻辑实现层,是系统比较核心的部分。其主要是利用核心处服务的数据结果,实现数据的重新组合与功能的实现。

(3) 核心处理层:用于系统内数据的融合与处理,特别是公交调度模型的算法执行与中间结果的生成。它是系统的技术核心,与系统数据库紧密联合,针对系统功能的不同需要进行数据的挖掘、分析与处理。

(4) 数据存储层:存放并管理各种定位监控、调度管理等数据信息,封装对数据库的访问,但也是系统访问其他数据源的统一接口。智能管理和数据挖掘、调度智能决策分析等应用也通过这一层来访问数据库。

(5) 通信接口层:用于接收来自外部系统的数据,如车载系统中的GPS数据采集、IC卡乘客信息、上下车乘客数等;同时将系统处理的数据发布到相应的外场设备上,如电子站牌、互联网等。它也负责与外部系统的数据交换,如车上报警处理、车辆应急调度。

4 结论

太原公交智能调度作为公交核心业务系统之一,也是公交智能系统的子系统之一。智能公交最终要实现车辆位置、客流状况等基础数据的实时采集,营运班次、到站时间、出行诱导等服务信息的实时发布等功能,实现这些功能需要很多专门的硬件设备和子系统,如果没有统一接口,这些孤立的子系统往往难以发挥综合效益。 太原公交企业信息化始终要以公交智能系统的总体框架为指导,为各类信息的采集和发布建立统一的接口,并通过太原公交智能系统将其集成在一起,以充分发挥其综合效能。

摘要:分析了太原市公交信息化现状,以太原公交五年发展规划确定的管理改进计划为基础,采用442框架设计了太原市公交智能信息系统整体建设框架,并运用咨询方法论和实施方法论完成公交智能调度设计模型的设计,为整个太原公交智能调度信息系统的开发奠定了理论基础。

关键词:公交智能信息系统,智能调度,技术模块

参考文献

[1]杨兆升,史其信,高世廉.智能运输系统概论[M].第2版.北京:人民交通出版社,2009.

[2]王笑京.中国智能交通系统发展战略[M].北京:人民交通出版社,2006.

公交查询系统设计研究 篇8

因此,我们试图为引电困难的公交站点设计一种低成本、低电力消耗、不用市电的电子站牌。首先,我们为这一款公交电子站牌的设计制定了一个指导思想:经济实用,只保留主要功能,其他性价比低的非必要功能坚决砍掉;并且努力把电子站牌系统的总成本(包括电子站牌的制作成本、建设成本和维护成本)降下来。具体来说,相比较常规电子站牌,我们在研发思路上做了以下三个方面的规划:

(1)砍掉电子站牌的商业广告功能。常规电子站牌有一个LCD液晶显示屏,该屏的功能就是播放商业广告。我们调查了解到:公交电子站牌上的LCD广告显示屏,因广告效果差、商业价值低,多数商家不愿、或只愿出少量钱在这上面打广告,与投入的LCD液晶显示屏+商业广告系统的成本比,产出很低,所以这个亏本买卖应该砍掉、砍掉后电子站牌的制作成本就有了大幅下降。

(2)砍掉电子站牌的摄像功能。常规电子站牌有一个以摄像头为核心的视频摄像传输功能,我们认为这个功能存在的意义不大,事实上试点单位大多不很清楚这摄像头要摄什么、摄录的视频传输给谁看、起什么作用,我们认为交通部门和公安部门已在公交沿线安装了很多高清摄像头,其他部门也基本不需要公交电子站牌来拍摄什么,因此砍掉这个摄像系统(包含摄像头、影像贮存设备、影像传输设备),让电子站牌的制作成本再次大幅下降。

(3)增加太阳能和手摇发电作为这款电子站牌的电力来源。我们了解到,在城乡结合部、或电力紧张地区,要为公交电子站牌引电而建设电力线路的费用是相当的高。为了降低成本又能经济实用,本文研究的这款电子站牌选择太阳能供电作为电子站牌的主要能量来源,同时提供手摇发电作为补充。因为在阴雨天气、夜晚等时段,太阳能供电不足以支持电子站牌的工作,我们设计了手摇转盘发电作为电子站牌的另一电力来源,并选择合适功率的发电机,使广大候车者手摇发电摇得动、摇后略有点累,这样既能让候车者打发无聊候车时间,又能达到健身效果。一般来说,候车者会乐意接受这种手摇发电方式。通过成本分析可以知道,太阳能发电和手摇发电方式增加了电子站牌的制作成本、却省去了为引市电需要建设电力线路的建设成本,二者相抵后总成本仍有一定程度的下降;砍掉电子站牌的商业广告功能和摄像功能后,总成本则有明显的下降。

这一款经济实用型公交电子站牌的整体结构设计如图1所示,其主要部件有:不锈钢框架(含两根立柱和横梁)、转盘和手摇柄、发电机和齿轮组、太阳能电池板、蓄电池、高亮的LED显示屏、电源控制器、GPRS数据传输模块等。

其主要功能是:动态显示经过该站点的所有公交车辆即将到达该站点的时间和距离,并且在不增加硬件设施的前提下,通过软件编程的方法插播当前时间、当日天气、道路拥堵情况、紧急通知、公共重大消息等,方便人们出行。

图2是该电子站牌的功能模块结构图,各功能模块的分析设计如下:

(1)太阳能供电模块的设计:太阳能供电模块由太阳能电池板、电源控制器和蓄电池三部分组成。太阳能电池板把太阳能转换为电能,传输给电子站牌,或传输到蓄电池中储存起来。电源控制器在这一电力输送过程中负责实现平衡负载,协调太阳能电池板、手摇发电机、蓄电池、电子站牌的工作,其工作原理主要是通过驱动电路产生适当的PWM脉冲信号来执行DC/DC转换电路内部开关的通断,实现对转换电路输出电压及电流的控制,达到稳定输出电压至负载的目的。

(2)手摇发电模块的设计:手摇发电模块主要由发电机、齿轮、摇臂三部分组成,考虑到人做功的最大功率一般在0.1到0.2马力之间,也就是约73到150W的功率,所以选择发电机功率在20W左右,使人手摇发电时不至于感到太吃力,强度和骑单车差不多。齿轮组的作用就是变速,把转慢的手摇速度变成了发电机转子的高转速,有利于提高发电效率。此时发电机发出的是电压频率脉动的交流电,需要经过二极管整流桥的整流变为电压脉动的直流电。该直流电再经过电源控制器的控制处理,形成稳定幅值的直流电压后再输送到电子站牌或蓄电池。

(3)蓄电池充放电模块的设计:对于蓄电池的充电来说,马斯定律表明,其最佳充电特性曲线是下降的,但是我们可以阶段性地保持充电电压固定不变,充电一段时间之后采用减少一级的恒定电压再充电。这样在每个较小的恒电压充电阶段,充电电流依据指数规律下降,符合电池充电最佳曲线的要求。通过电源控制器对蓄电池间隔恒充的过程中,实时测量蓄电池的端电压,对蓄电池进行充放电保护,防止蓄电池过充或过放。

(4)电子站牌信息控制模块的设计:该控制模块主要实现车辆到站预报和公交信息的发布,在LED屏上显示公交线路、运行时段、乘客人数、到站信息、换乘信息和公交线路是否正常运行等信息,其中车辆到站预报功能是电子站牌的核心功能,使用历史趋势和多元线性回归等混合算法预测车辆到站时间,通过刷屏分别显示站数预报、里程预报和时间预报,尽可能地提供面向乘客的差别化信息需求,同时电子站牌还可以通过GPRS从公交信息中心获取道路异常信息、车辆线路调整信息等及时显示在LED屏上,避免了候车乘客无效等车。同时在不增加成本的前提下,电子站牌也可穿插显示如地震、火灾、冰雹等重大公共信息,或穿插显示公交系统的紧急通知等内容。

(5)公交信息中心后台服务器软件的设计:获得车辆的实时运行信息,计算出各公交线路、站点的不同车辆的预计到达时间、里程数等数据,并把这些数据经过筛选后通过GPRS发给不同地点的电子站牌。有一个需要注意的地方,这款电子站牌在长期恶劣天气下可能只有手摇发电这一种电力来源了,这时存在着有人摇时有电、无人摇时无电的情况,此时GPRS数据的传输存在着较频繁的断开和重新连接的要求,需要软件设计时循环测试GPRS数据传输的连接是否正常,一旦发现GPRS数据传输通道断开了,后台服务器软件就应及时放弃发送信息、并初始化相关的数据连接变量、等待电子站牌端重新发来连接请求信号。

总的来说,本文研究的公交电子站牌的特点就是:成本较低、适用于引电困难的地区。以太阳能供电、手摇发电和蓄电池充放电三者组合形成了全天候的电力供应方式,不需要为引市电而建设电力线路,降低了建设成本,也提高了建设速度。文中有别于常规公交电子站牌的一些经济实用思想或许能为智能公交系统的建设者们提供一些参考。

参考文献

[1]屈军军.一种高效率20W手摇发电机的设计[J].电源技术应用,2012(7):49-51.

公交查询系统设计研究 篇9

1 系统主要功能

a.搜索楼盘位置、用地、住宅平面等相关信息的查询;b.矢量与栅格地图的载入管理;c.地图的编辑与更新;d.地图属性数据与地图对象的双向查询。

2 特点

a.图形化特点, 本系统用户界面友好, 采用图形化界面, 目标明确, 操作简便, 便于非计算机专业的管理人员和用户使用;b.采用基于SVG规范的WebGIS可实现数据与系统相对独立, 有利于数据的安全与完整性c.网络化特点, 通过互联网及WebGIS技术的应用, 系统实现了各类房地产信息的实时发布, 快速、准确、及时地反映城市房地产分类和产权归属的现状, 为社会公众提供全方位的数字化房地产信息服务, 为城市建设和管理决策提供准确可靠的依据, 提高城市房屋楼盘管理水平, 从而树立良好的政务公开政府示范窗口的形象。

3 系统关键技术及实现方法

基于SVG的系统主要由Web服务、GIS服务和数据存储三部分的关键技术构成, 采用基于B/S方式的三层体系结构, 整个工作流程如下:a.客户端向Web服务器发出服务请求;Web服务器接收到请求后, 分析调用请求。如果只是普通的网页服务就由Web服务器直接处理;如果是GIS服务请求, 则向下连接GIS服务器。b.GIS服务器中, 根据调用请求, 在其中完成空间数据到GML文件的格式转换, 以及GML文件到SVG文件的转换, 并转回Web服务器。c.Web服务器把GIS服务器传回的SVG文件发送给客户端, 在客户端的浏览器中进行显示, 利用JavaScript脚本语言实现地图的操作和交互功能。

整个系统功能的实现主要分为服务器端和客户端的技术实现, 在服务器端主要由Web服务器和GIS服务器组成。其中, Web服务器主要负责与客户端的连接, 并提供普通的Web服务, 当客户端需要GIS服务时才连接GIS服务器;GIS服务器主要负责与空间数据的连接与管理。对于多源异构的空间数据, 在GIS服务器中进行数据格式的转换, 最终生成SVG文件并传回给Web服务器, 由Web服务器再传回到客户端进行显示。本文主要讨论了客户端的SVG图像展示和交互操作的实现。在客户端安装Adobe公司的SVG插件, 在客户端使用SVG技术, 结合JavaScript脚本语言实现基本的Web GIS功能, 包括地图平移、放大、缩小、图层的管理、地图的交互性显示以及对图层属性的查询等。整个系统基于矢量图形, 在放大和缩小的情况下, 图形显示质量好;能无级放大和缩小, 实现了对测线属性和测线二维反演图的查询;能分别管理各个图层的显示与隐藏, 并实现了对工作区的交互显示。

3.1 查询功能的实现。

这里假设对测线编号进行查询, 查询测线的属性字段主要根据测线的ID号, 利用getElementById () 函数进行查询;利用getAttribute () 函数得到测线的属性字段内容。

3.2 图层的人机交互。

SVG采用基于XML的DOM文档管理结构可以很方便地实现层次管理。〈g〉〈/g〉代表一个组, GIS中的一个专题图层存储在一个组中, 每个组都有一个唯一标志ID属性。根据这个ID属性就可以通过JavaScri pt控制不同图层的显示和隐藏, 并且SVG图形支持事件编程, 可以很容易地实现对onclick () 或onmouseover () 等事件的编程。图层的隐藏和显示功能主要是利用setAttribute函数对visibility参数赋予hidden属性或visible属性。

SVG技术不仅用于地图的展示, 任何矢量图形都可以使用该技术。基于该技术的图像具有图形美观、文件标准统一、可读性强、灵活易用等特点。SVG技术在WebGIS及互联网上的矢量图形发布中将具有广阔的应用前景。

摘要:本文在分析基于SVG规范的WebGIS设计思想的基础上, 以基于SVG开发的WebGIS住宅楼盘查询系统关键技术的实现方法着重论述了SVG的实现原理和技术特点。

关键词:SVG,WebGIS,楼盘查询,GIS服务器,JavaScript

参考文献

[1]苗放, 叶成名等.新一代数字地球平台与“数字中国”技术体系架构探讨[J].测绘科学, 2007.

[2]黎夏, 刘凯.GIS与空间分析——原理与方法[M].北京:科学出版社, 2006.

[3]修文群等.地理信息系统GIS数字化城市建设指南[M].北京:北京希望电子出版社, 2001.

公交查询系统设计研究 篇10

关键词:U盘,FAT16,AT89C51SND1C

1 公交车自动报站系统概述

公交车自动报站系统是采用全球定位系统(GPS)进行数据采集,实时解算车辆当时的经度、纬度等信息,获得公交车的实时坐标,将其与站台坐标相比较,公交车驶入站台一定距离范围内时,不用人工干预,系统自动进行报站、温磬提示等服务。如果公交车需要临时改变运营线路或更换一些语音广告信息,公交管理人员可以通过USB口,方便、快捷地下载更新语音信息。

2 硬件设计

图1为公交车自动报站系统的总体结构,整个自动报站系统分为语音信息存储和自动播报两大部分。语音信息存储将预播放的语音信息(如报站、广告、温馨提示等)通过USB接口,存储在Nand Flash存储器中。

系统的主控制器采用ATMEL公司的AT89C51SND1C,它具有C51内核,64 KB的Flash程序空间和4k字节引导闪存以及2 304 B的RAM存储器,允许通过嵌入的4 KBFlash引导区进行在系统编程,片上集成了多种外设(MP3硬件解码器;可编程音频输出接口DAC;USB1.1控制器;内建锁相环 PLL;两路10位ADC;44个通用I/O;两个16位定时器/计数器;硬件看门狗定时器;标准全双工UART),这样就大大简化了外围电路的设计。

存储器选用三星公司的K9F1208U0B芯片,该芯片存储区域分为4 096个Block,每Block大小为32个Page,每Page有512kB+16字节。

3 U盘软件设计

软件设计主要包括Mass Storage类协议和FAT16文件系统。

3.1 Mass Storage类协议的实现

主机和海量存储设备的Mass Storage类协议需要实现下面3个部分:①在设备的枚举阶段,提供 Mass Storage类协议描述符;②在数据传输阶段,实现Bulk-Only批量传输协议;③实现 SCSI命令集。

3.1.1 枚举过程的实现

USB总线包括控制传输、中断传输、批量传输和实时传输4种传输类型[1]。每一个设备端点0的默认管道都支持控制传输,除了端点0,还有端点1和端点2。在枚举过程阶段,主机与设备之间采用控制传输类型,即利用端点0完成枚举过程。在枚举过程中,至少需响应读取设备的描述符(GET DESCRIPTOR)、配置端口(SETCONFIGRATION)和配置地址(SET AD-DRESS)3个请求。程序流程实现如下:

3.1.2 Bulk-Only批量传输协议的实现

端点0用于控制传输方式,则端点1和端点2用于Bulk-Only传输方式,配置端点1为Bulk-In,端点2为Bulk-Out。当主机对设备枚举成功之后,主机与设备之间就可以通过端点1、端点2进行通信了。

主机和设备之间通过传送CBW指令和CSW状态字,以及Dade来完成数据的存储和读取。海量存储设备接收到CBW命令字后,分解出CBW命令中包含的指令信息,并对指令信息进行处理,同时向主机返回状态字CSW。Bulk-Only传输的流程图如图2所示。

3.1.3 SCSI命令集的实现

在U盘的接口描述符中,当bInterfaceSubclass取值为0x06时,主机与U盘之间就会按照SCSI指令进行命令的传送。U盘收到CBW命令字后,对CBW中的命令块按照SCSI的命令格式进行解码,解析出SCSI命令中包含的命令信息。Windows环境下支持12位的SCSI指令格式,如图3所示。

SCSI指令中的命令码表示对存储设备不同的操作,对U盘而言,并不是所有的命令码都要进行答复和处理。程序流程实现如下:

3.2 FAT16文件系统设计

U盘插入USB总线并枚举成功后,主机会依次发出Inquiry、Read_Capacity、Mode_Sense等请求,如果上述请求的返回结果都正确,主机则会发出Read10命令,读取文件系统0簇0扇区的MBR数据,进入文件识别阶段。如果文件系统设计的不正确,USB总线将会复位,终止主机与U盘之间的通信,丧失U盘功能。

自动报站系统中的U盘大小设计为64 MB,采用FAT16文件系统,定义32个扇区构成一个簇。FAT分配空间的时候,是按簇来分配的,但是其给出的地址却是LBA(Logical Block Address),即它只给出一个扇区号,比如对此 Flash 而言,若给出 LBA为0x40,实际代表簇1的扇区1。因此需要将LBA转换为实际物理地址,这样,才可以对数据进行正确地存取操作。转换公式为

Flash的 Block=Logical Block Address/0x20

Flash 的Page=Logical Block Address %0x20

FAT16文件系统[2]的磁盘分为:MBR区、DBR区、FAT区、FDT区和DATA区。MBR区又称主引导记录,其后为64 Byte的磁盘分区表;DBR区为操作系统引导记录区,通常占用分区的第32扇区,共512 Byte,由跳转指令、BPB和结束标志几部分组成;FAT区用来存放文件分配表,文件分配表是一一对应于数据区簇号的列表,反映了所有簇的使用情况,每个表项单元的位长决定了FAT的类型,比如FAT16的表项单元为16位。FAT表一般都有一个备份;FDT区用来存放着文件目录表,位于备份FAT表之后,FDT由多个32字节目录项构成,记录着根目录下每个文件的起始簇号和属性等,FDT大小为32个扇区,最多可以保存512个目录项;DATA区是真正意义上数据存储的地方,位于FDT之后,占据磁盘上的大部分数据空间。

4 结 语

基于AT89C51SND1C主控制器的公交车自动报站系统中,实现了完整的U盘功能。

参考文献

[1]马伟.计算机USB系统原理及其主/从机设计[M].北京:北京航空航天大学出版社,2004.

[2]戴士剑,涂彦晖.数据恢复技术.2版.[M].北京:电子工业出版社,2005.

公交查询系统设计研究 篇11

【关键字】射频识别 计程计费 智能扣费 返充值

随着社会的不断向前推进,城市地域的逐渐扩大,城乡一体化的逐次深入,原有的公共交通收费系统不断暴露出新的问题,如一票制定价固定不变、乘客需要多次换乘才往返工作地点与居住地点,由于这种不便促进了私家车的兴起接着便进一步导致了交通的拥堵,形成一个恶性循环。这一切的根源在于公共交通行业,基于此原因公共交通行业的收费方式需要一个革命性的转变。智能公交计程收费系统就是基于此种原因给与的一个解决方案。

一、背景及意义

随着射频识别技术技术理论的不断成熟与发展,由于射频识别技术的安全保密,体积小巧和廉价,基于射频识别的各种产品已渗入各行各业,尤其在基于射频身份识别的门禁系统和基于射频技术的电子收费系统中广泛使用,射频收费方式以其快速、保密的优势已被大众所认同,在公交收费系统中逐渐取代传统的投票方式,然而目前公交收费标准是按人次一票制收费,由于大中型城市中的公交运行路线长,统一收费定价对乘客和公交公司都是一个难题。由于公交路线的有待完善,乘客需要多次转乘,采用按人次收费方式显然很不合理,不利于公共交通行业的发展。于是就需要一种全新的收费方式来减小城市发展对公共交通行业的影响,基于此种原因设计了本解决方案。

二、智能公交收费系统的现状

随着射频识别技术的推广,射频识别技术以其安全、不接触、快速、使用简单等特点在电子收费系统中风靡而开。射频收费方式已被大众所认可,成为一种文化。在公交收费系统中采用的非接触IC卡具有使用简单、快速的特点正在逐步取代传统的人工收费方式。

目前的公交收费系统虽然采用非接触IC卡,但是依旧采用原有的一票制按人次统一收费。仅仅是解决了收费人工收费慢的问题。在城市建设城区面积不断扩大,居住工作地点远,城乡一体化的影响下,部分公交路线运行路线被延长,部分公交路线调整给乘客、公交公司带来新的问题和不便。公交运行路线被延长后一方面增加了司机的工作负荷,容易疲劳驾驶,埋下安全隐患;另一方面运行成本的增加必定使得乘客和公交公司关于票价标准上产生矛盾。路线调整虽然可以增加公交路线的覆盖面积,但是无法解决乘客多次换乘票价高的问题。

由于在长途公交路线在票价问题上难于统一,分段式收费方式逐渐兴起,长途公交路线的部分路线已恢复用人工收费。有提出采用射频远距识别的,即采用远距离射频读写器或射频卡与无线绑定,上下车自动识别射频卡读写,与无线绑定需要供电源,体积也较大,使用不方便。同时远距射频无法定向,不能有效判别上下车状态站台乘客卡误操作,而且成本较高,难以推广。

三、智能公交计程收费系统

1.系统方案

智能公交计程收费系统硬件采用原使有的非接触IC卡和协议标准,因此无需换卡。对原有的刷卡收费系统进行升级,类比地铁收费方式,根据地面公交的特殊环境综合考虑提出本设计方案。与原有公交收费系统相比将刷卡机分为两处。一处车载,一处设在站台(站台可以复用)。站台所有读卡机均为充值机,每个站台都有自己唯一的一个地址编号。车载读卡机均为扣费机,内有这个条路线站点编号,每到一站车载读卡器通过无线接收来自站台的下一个编号,保证编号地址与所到站台同步。收费方式采用返充值方式实现计程收费。乘客在使用时在车载读卡机计算出本站到终点的站点个数按比例扣除全程价,写入余额同时将站点编号(乘车起始点)、本车收费标准(如不同路线站点间距不同,空调车与普通车收费也不同)一起写入乘客的IC卡内,由于通信速率可达106KBPS,对乘客而言瞬间即可完成。乘客下车后在站台读卡处刷卡查看本次乘车消费,在刷卡同时站台读卡器根据读到的乘车起始点、收费标准与本地时间、站点编号进行比较,将多扣金额返充值回乘客卡内,并显示给乘客。乘客转乘时在乘下辆车的时候刷卡两次,第一次刷卡时车载读卡机读卡后先清算上次乘车费用,语音进行提示后刷第二次卡完成本次乘车数据写入。实现让乘客多次转乘不多花冤枉钱,智能化计程收费使得收费更合理,更公平。

2.可行性分析

智能公交计程收费方式硬件电路与原有系统电路大致相同,射频卡内有8Kbit的数据存储空间,对于本设计方案数据存储完全够使用。工作原理相同,都是采用射频识别技术,此处不再赘述。本方案主要是解决软件扣费、返充值的问题。由于智能公交计程收费系统类比地铁收费系统,且在此基础上进行了完善,因此本方案也可以用于地铁收费系统。

3.与原有系统相比的优势

原有系统只是进行简单的读卡、扣费、写入余额、记录交易。扣费固定不可变,不能实现转乘。智能公交计程收费系统实现按程收费,智能扣费,智能返充值,操作简单。对乘客而言只需下车多刷一次卡,收费方式更加多样化,既保证了公交公司的运营收入,也给大部分乘客剩下了不少乘车费用,实现真正便民利民。

四、结束语

城市交通的拥堵原因表面在于私家车的用量居高不下,分析內在原因其源头在城市公共交通的不完善与公交系统的不合理,于是很多人选择乘坐地铁,地铁成本高,建设周期长。只要地上公交系统能更加的便民利民,多数人还是愿意改乘坐公交上下班,从源头上改善工作日公路的拥堵问题。因此智能公交计程收费系统具有极大意义,由于智能公交计程收费系统的使用需要改变原有的系统,普及推广还需要时间,但是智能公交计程收费系统在未来解决城市公交收费不合理,减少私家车上路,节能减排等问题上一定会大放异彩。

参考文献

[1] 游战清.无线射频识别技术(RFID)理论与应用.北京:电子工业出版社,2004 .

公交查询系统设计研究 篇12

公交运维系统网络结构图如图1所示,目前公交运维系统通常利用城市已有的公共无线GPRS网络资源进行通信。集成了TCP/IP协议栈的具有GPRS功能的公交嵌入式OBU终端和有公网IP的运维中心之间同普通的以太网通信一样,通过透明的GPRS网络进行通信。

本文的公交OBU终端选择广州公交最新的嵌入式控制终端———ZTM2001,其功能图如图2。OBU终端除了基本嵌入式系统应该具有的功能外,还集成了有TCP/IP协议栈的GPRS模块,以完成同服务器端的无线通信;集成GPS模块,以使其具有实时位置信息,便于服务器端实时跟踪了解。有数字电视接口,完成同数字电视通信;RFID读卡器接口完成同羊城通读卡器通信。而喇叭、LED、LCD和键盘等分别用于公交站点的报站、显示和控制OBU工作等功能。

1 SNMP介绍

SNMP基于管理工作站/代理模式,提供了一种从网络上的设备中收集网络管理信息的方法。在ZTM2001嵌入式OBU终端/SNMP Agent端收集设备的各种信息和统计数据并不断把这些数据记录到MIB库中;服务器/管理端,通过SNMP协议向OBU发出SNMP报文,OBU收到报文后向服务器端发送响应应答包。SNMP包含五种基本操作:GetRequest、GetNextRequest、SetRequest、GetResponse、Trap,其中GetRe-quest、GetNextRequest用来向SNMP Agent查询MIB库数据,如可以查询OBU各种状态信息等;SetRequest报文用来向SNMP Agen设置变量,如设置时间等;另外SNMP Agent收集系统的事件,并以SNMP Trap的方式向SNMP管理端通告事件。

2 嵌入式智能终端上的实现

2.1 开发环境说明

不同的开发环境其SNMP的移植和MIB库的扩展不尽相同。本文系统开发主机操作系统是内核版本2.6.9-42的Red Hat Enterprise Linux 4;目标机是内核版本2.6.14的uCLinux操作系统;arm-elf-gcc编译工具链是gcc 2.95.3 20010315(release);SNMP是net-snmp-5.4.2.1。

2.2 总体设计流程

项目的总设计流程如图3所示,包括SNMP软件的选择、移植,MIB库的扩展和变量获取等。

2.3 分析目标平台并移植SNMP-AGENT到目标系统

SNMP的软件包括SNMP++、AGENT++、NET-SNMP等。这里根据目标机操作系统是uCLinux的特点,而选则了NET-SNMP。其安装移植步骤如下:

(1)在http://nchc.dl.sourceforge.net/project/net-snmp/net-snmp/5.4.2.1/net-snmp-5.4.2.1.tar.gz上下载net-snmp软件包后在主机的相应目录下解开net-snmp软件包,解压后进入相应的源文件目录,执行下面的配置命令,配置在ZTM2001上运行的net-snmp软件包,部分关键配置项说明见表1。

(2)net-snmp配置成功,执行make编译net-snmp;编译成功后生成snmpd.conf文件,部分关键内容及注释如下;其中agent端UDP监听端口是161,112.96.166.132是服务器端公网IP地址。

(3)OBU终端上测试snmpd。通过服务器端和OBU端测试连接,并能获得变量的值即可。复制snmpd和snmpd.conf到目标机,在目标机上执行命令下面命令运行snmpd。

(4)服务器端测试。用MG-Soft MIB Browser软件的contact指令连接到OBU系统的snmp-agent,使用get、getnext等命令获取节点数据。该项测试是以OBU端和服务器端能通过GPRS网络进行通信为前提的,即首先要保证通信链路是通的。

至此,基本SNMP-AGENT移植到ZTM2001终端已经完成。

2.4 分析需要从目标平台获取哪些数据

从目标平台即ZTM2001上获取的信息分为3大类:OBU终端、OBU外围设备和告警信息。其中,(1)OBU终端信息包括系统部分和扩展模块部分,前者包括系统信息(如操作系统类型、内核版本等)、系统运行情况(如cpu占用率、内存占用率等)、主板信息(如主板序列号、cpu型号等)、程序信息(如主程序版本、进程列表等)、日志信息(如日志文件路径、日志文件大小等)、网络信息OBU外围设备(如ip地址、子网掩码地址等)等;后者包括键盘信息(如软件版本、键盘工作状态等)、GPS信息(如gps模块序列号、gps软件版本等)、GPRS信息(如gprs是否上线、何时上下线等)等;(2)OBU外围设备包括羊城通信息(如羊城通硬件版本、羊城通主CPU版本等)、键盘信息(如键盘硬件版本信息等)、LCD信息(如LCD硬件版本信息等)等;(3)告警信息包括系统自检异常(包括cpu占用率和内存占用率达到预先设置的界限等)、GPS和GPRS工作异常等。

2.5 编写MIB库

根据ZTM2001公交调度终端的运维需要,MIB库分为两大部分:公交终端节点和公交终端外围设备节点。

公交终端节点包含各具体的公交终端节点,具体的公交终端节点包含以下节点:系统信息节点、主板信息节点、模块和扩展设备节点、系统程序节点、日志信息节点、终端告警节点等。公交终端外围设备节点包含以下节点:羊城通节点和数字电视节点。由于节点和子节点较多,这里简单列出代表性的1-2个,其节点树形图示如图4所示,上层节点采用1.3.6.1.4.1,其中enterprises是专门为企业设置的节点,在其下申请节点号为310的gzjw节点,后根据系统开发的需要向下扩展不同类型的节点。

根据设计的节点图或者节点分配表定义MIB库,其部分代码如下所示。MIB库以BEGIN开始,以END结束;采用先逐级声明后逐级定义的形式。具体的语法意义可参考文献[2,3]。

2.6 MIB库变量获取

获取MIB变量是开发的关键性问题之一,在Linux系统中采用Linux C编程实现。不同变量获取的代码编写方法和怎样获取均不相同,本文以CPU信息变量获取为例说明。通过/proc/cpuinfo文件获取CPU信息代码如下所示:

测试时,可先通过在系统下执行cat/proc/cpuinfo命令获得的信息同服务器端获得的信息进行比对的方法,检查该变量的获取是否成功。

2.7 把MIB库扩展到基本的SNMP-AGENT

完成MIB库扩展到基本的SNMP-AGENT和编写MIB库变量的具体获取代码后,下面把新的MIB库集成到SNMP-AGENT里。具体操纵步骤是:

(1)把编写好的代码复制到agent/mibgroup/gzjw目录下,在init_gzjw_modules.c文件包含了定义的MIB库的所有节点的初始化函数。

(2)修改NET-SNMP的Makefile,在agent/Makefile的mibgroup_list_lo以下添加相应的init_gzjw_modules.lo等lo文件,在mibgroup_list_o以下添加相应的init_gzjw_modules.o文件。

在agent/mibgroup/Makefile的mibgroup_list_o以下添加:init_gzjw_modules.o等o文件,在mibgroup_list_lo以下添加init_gzjw_modules.lo等lo文件。

(3)修改NET-SNMP的主文件snmpd.c,添加mib库的所有初始化函数,使扩展的mib模块在SNMP-AGNET启动时自动加载。编辑snmpd.c命令,在init_mib_modules()后添加下列语句。

init_gzjw_modules();

(4)重新编译NET-SNMP,进入agent端的SNMP目录,执行make命令即可。

2.8 测试与分析

服务器端用Mibbrowser9.0,对ZTM2001公交终端的运维管理系统的测试结果如图5所示。从SNMP Trap Ringer Console窗口可以看到,运维系统在预定时间内定时向管理站发送心跳包,还可以看出gps的运行状态和定位状态均为异常,表示当前测试环境下没有接收到GPS信息。

3 结束语

系统能对OBU和外围接口的各种状态信息进行采集和发布,实现终端自检信息上传,故障告警上传,服务器端监控系统发送指令能够获取终端运行信息等功能,使用SNMP网管系统更利于对公交终端的调度、运行与维护。怎样在Linux嵌入式终端实现SNMP和运维系统终端应该完成哪些工作等方面的成果可直接应用在相应平台和系统上。

参考文献

[1]J.Case,M.Fedor,etc.A Simple Network Management Protocol(SNMP).RFC1157.May1990.

[2]K.McCloghrie,M.Rose,Management Information Base for Network Management of TCP/IP-based internets:MIB-II.RFC1213.March1991.

[3]刘雪飞.基于SNMP++的MIB浏览器研究.计算机工程与应用.2009,45(3).

[4]王楠,昂志敏,丁晓静.WiMAX/802.16网管模块中SNMP代理的研究[J].合肥工业大学学报:自然科学版,2009(3).

[5]区海平,寿国础.基于MIB定义的SNMP分析系统及实现[J].计算机应用,2009(1).

上一篇:直驱式波浪发电下一篇:艺术家的读与写