公交线路查询的课程设计.docx
- 文档编号:4833966
- 上传时间:2022-12-10
- 格式:DOCX
- 页数:30
- 大小:2.50MB
公交线路查询的课程设计.docx
《公交线路查询的课程设计.docx》由会员分享,可在线阅读,更多相关《公交线路查询的课程设计.docx(30页珍藏版)》请在冰豆网上搜索。
公交线路查询的课程设计
公交线路查询的课程设计
《交通信息科技》
课程设计
姓名zhuzhiwianh
学号
年级2007
专业交通工程
(1)班
成绩
指导教师唐晓腾、黄明芳
完成日期2010-6-3
4系统实现原理…………………………………………………...3
1课程设计目的与背景
交通信息科技课程设计是交通工程专业设计内容之一,它是对交通信息技术课程的实际应用。
通过该课程设计,使学生加深对课堂教学内容的理解,掌握信息化技术在城市交通中的应用和开发,增强学生分析和解决实际交通问题的能力,为在交通智能系统开发中应用相关知识解决实际问题打下基础。
当前,我国城市公交乘客信息系统的发展处于一个较落后的水平,广大乘客可以获得信息的方式很少,需要大力发展我国的城市公交乘客信息系统。
本设计以某城市公交系统为开发对象,基于数据库查询技术,完成一个城市公交系统的出行线路查询软件。
2课程设计基本要求
(1)要求了解和掌握基于数据库应用的软件开发基本流程和基本方法。
(2)能初步应用编程语言开发基于数据库的实时查询系统。
(3)按照学生分组情况,每组针对指定的城市公交系统进行开发。
通过查阅相关资料,分析、计算、比较、论证,制订出合理的设计方案,为今后从事相关工作打下基础。
(4)能应用VisualBasic编程软件,结合Access数据库实现基于数据库的应用软件开发。
(5)排版需按规定要求进行。
3系统设计分析
系统开发环境:
系统开发环境包括硬件平台和软件平台两种。
硬件平台是指开发与运行所需要的硬件环境,主要包括计算机机型及硬件配置。
由于本系统是一个小型的信息查询系统,因此对计算机硬件的要求不高,比较经济,只要配备有PII300处理器(或以上)、64M内存(或以上)、20G硬(或以上)的普通微机即可顺利运行。
软件平台是指系统开发与运行的软件环境。
本系统在开发时选用了稳定性较强的WindowsXP中文专业版和VisualBasic作为开发语言,所以开发出的应用系统稳定性较高。
VisualBasic是一种新型的现代语言。
与传统的语言相比,它在许多方面有重要的改革和突破。
下面介绍VisualBasic的主要特点:
(1)易学易用的集成开发环境:
VisualBasic为用户设计界面、编写代码、调试程序、编译程序、制作应用程序安装盘等提供了友好的集成开发环境。
(2)可视化的设计平台:
在VisualBasic中,采用面向对象程序设计方法(Object-OrientedProgramming),把程序和数据封装起来作为一个对象,每个对象都是可视的。
(3)事件驱动的编程机制:
VisualBasic事件驱动的编程是针对用户触发某个对象的相关事件进行编码,每个事件都可以驱动一段程序的运行。
开发人员只要编写响应用户动作的代码。
这样的应用程序代码精简,比较容易编写与维护。
(4)结构化的程序设计语言:
VisualBasic具有丰富的数据类型和众多的内部函数。
其采用模块化和结构化程序设计语言,结构清晰,语法简单,容易学习。
(5)强大的数据库功能:
VisualBasic利用数据控件可以访问Access、FoxPro等多种数据库系统,也可以访问Excel、Lotus等多种电子表格。
(6)网络功能:
VisualBasic提供的DHTML(动态HTML)设计工具可以使开发者动态地创建和编辑Web页面,使用户能开发出多功能的网络应用软件。
系统开发工具:
确定操作系统后,选择开发工具,经过综合比较选择可视化程序语言VisualBasic。
VisualBasic(简称VB)是Microsoft公司于1191年推出的Windows应用程序开发工具,采用可视化、面向对象以及事件驱动的程序设计模式,具有强大的数据库编程能力,利用VB的数据控件和数据库管理器等工具,可直接建立或处理MicrosoftAccess格式的数据库,还可直接编辑和访问其他外部数据库,同时还提供开放式数据库访问(ODBC)功能,可通过直接访问或者建立连接的方式使用并操作远程服务器上的关系型数据库,如SQLServer、Oracle等。
因此,VB成为目前最便捷、最有效率的开发工具之一。
数据库选用Microsoft公司的Access产品作为数据库应用程序。
是Office系列应用软件之一。
它提供了表、查询、窗体、报表、页、宏、模块7种用来建立数据库系统的对象;提供了多种向导、生成器、模板,把数据存储、数据查询、界面设计、报表生成等操作规范化;为建立功能完善的数据库管理系统提供了方便,也使得普通用户不必编写代码,就可以完成大部分数据管理的任务。
它是一种关系型数据库管理系统,具有存储方式单一、面向对象、界面友好、易操作、集成环境、处理多种数据信息的特点,Access还支持ODBC(开发数据库互连,OpenDataBaseonnectivity),利用Access强大的DDE(动态数据交换)和OLE(对象的联接和嵌入)特性,可以在一个数据表中嵌入位图、声音、Excel表格、Word文档,还可以建立动态的数据库报表和窗体等。
Access还可以将程序应用于网络,并与网络上的动态数据相联接。
利用数据库访问页对象生成HTML文件,轻松构建Internet/Intranet的应用。
系统功能模块:
公交查询系统的应用背景为:
方便市民搭乘公交车出行;实时查询公交信息、及时更新查询数据。
因此,该系统主要功能划分模块如下:
(1)查询系统模块。
该模块实现公交查询功能。
可实现按线路和站点两种查询方式。
(2)数据录入、更新模块。
更新:
系统允许管理员级别的用户对数据进行录入、修改且存盘操作;
编辑:
系统允许管理员级别的用户对数据进行编辑、删除的操作,保证现库的真实性与实时性。
(3)打印输出。
系统可以将用户查询到的内容动态地生成报表,并打印输出。
4系统实现原理
(1)Access数据库的数据格式?
Access数据表中数据格式为文本类型因为表中的数据为各个线路的站点,保存的数据库类型为.mdb格式,本过程应在Access2003环境下下进行操作,因为在中数据库是Access2003的,所引用的MicrosoftJet引擎只能识别Access2003或之前版本格式的文件。
(2)VB如何与Access数据库文件实现联结?
VB连接ACCESS数据库可以通过控件,也可以通过引用来连接数据库。
如果是控件的话有Data、Adodc控件等。
如果是引用的话在“工程”“引用”中MicrosoftActiveDataObjectsLibrary。
现在一般都是使用引用来连接数据库。
MicrosoftJetandReplicationObjectsLibrary
MicrosoftActiveDataObjectsLibrary
‘通用
DimcnAs'定义一个数据库连接对象
DimrsAs'声明数据集
DimstrAsString'定义str为字符串型
'建立与数据库的连接
str="Provider=SecurityInfo=false;
DataSource="&&"\"'str;‘函数引
来调用46数据表
Setcn=New'创建一个cn作为数据库连接
str'数据库连接对象cn执行str函数的语句
(3)数据库查询的思路
(1)首先确定使用何种数据库,如选ACCESS数据库。
(2)新建ACCESS数据库。
(3)新建各数据表。
确定每个数据表的字段及数据类型。
各数据表应有关键字段。
(4)在VB中使用ADO数据对象或控件连接数据库,构思VB的运行界面。
(5)灵活使用SQL结构化查询语句操纵数据库。
5系统实现
青岛市公交数据库建立:
青岛古称胶澳,位于山东半岛的南部,濒临黄海,是我国重要的海滨城市之一,也是我国著名的风景旅游胜地和国家历史文化名城。
青岛的公交非常方便,四通八达、无人售票。
崭新的公交车内车外都很干净。
普通公交车单一票价1元,空调车单一票价2元。
公交26、201、202路车是沿着海边走,途径栈桥、八大关等很多景点,起点是轮渡或火车站。
这里需要特别注意的是26路公交车能到达青岛的大多数景点,比如:
中山公园、海军博物馆、青岛海底世界、康有为故居、花石楼、湛山寺、迎宾馆等。
到青岛旅游最方便、舒适的方法莫过于乘空调旅游专线。
三条旅游专线所配车辆均为高级豪华空调旅游中巴(28座厦门金龙)。
全程配备专业导游服务。
去崂山(太清景区)可乘304路,从轮渡、火车站(栈桥)一直到崂山,全程都贴着海边走。
当然你也可以参加崂山一日游,各宾馆均有代办,大多数旅游团都只去太清景区。
由于青岛市是一个交通发达,设施齐全的旅游城市,所以赋予了青岛市公交路线是四纵八达的,而在这里我就随便在其众多的公交路线选取20条公交路线来建立该市公交线路数据,见图1所示。
图1青岛市公交线路表
程序主界面模块:
系统登录界面:
本着界面友好、易操作等元素及具有青岛市公交车的代表性,还有本界面设有在等待一会儿后会自动跳到查询系统模块和设有“欢迎您进入青岛市公交线路查询系统”的滚动字幕等特点。
因此本系统登陆界面如图2所示。
图2系统登录界面
查询系统模块:
为了方便市民搭乘公交车出行,本模块本着服务于市民,该查询系统为青岛市民提供更方便、更快捷的服务原则。
因此本查询系统模块如图3所示,该模块分为五部分:
(1)全部线路查询,点击显示按钮可以显示全部的公交线路,见图4所示;
(2)线路查询,在下拉菜单中选择要查询的公交线路名称点击查询就可以查询该线路经过的所有公交站点,见图5所示;(3)经过公交站点名称查询,在下拉菜单中选择要经过的公交站点名称,点击查询就可以查询经过该站点的所有公交线路,见图6所示;(4)起点、终点查询,选择起点、终点站名称点击确定就会跳出经过这两个站点的所有公交线路,如果没有直达线路,则会提示“没有直达线路”,见图7所示;(5)生成报表功能,点击此按钮就会自动输出所有公交线路的excel表格,见图8所示。
总而言之,本查询系统操作简单,适合广大群众使用。
图3查询系统界面
(1)点击显示全部线路查询,可显示查询结果,如图4所示:
图4查询结果显示界面
(2)在线路查询中,在下拉菜单中选择要查询的公交线路名称点击查询,经过所有公交站点结果如图5所示。
图5显示线路查询结果界面
(3)在站点查询中,在下拉菜单中选择要经过的公交站点名称,点击查询就可以查询经过该站点的所有公交线路,结果如图6所示。
图6显示站点查询结果界面
(4)在起点、终点查询中,选择起点、终点站名称点击确定就会跳出经过这两个站点的所有公交线路,如果没有直达线路,则会提示“没有直达线路”,其结果如图7所示。
图7显示起点、终点结果界面
(5)生成报表功能,点击此按钮就会自动输出所有公交线路的Excel表格,最后会提醒“恭喜!
Excel生成完毕”,如图8所示。
图8显示Excel结果界面
数据录入、更新:
设计窗体及程序,完成数据输入、显示、保存和删除公交数据表中的记录数据。
各功能界面如下:
因为没有设计数据输入、保存和删除公交数据表中记录数据的程序,所以没办法显示它们各功能界面;还有显示公交数据表中的记录数据功能界面和上面查询系统模块中的各功能界面一样,在这里就不在重复了。
打印输出:
设计窗体及相应程序,完成报表显示(要求调用Excel报表)和打印功能。
用Excel报表显示界面如图9、图10所示。
图9Excel报表显示界面
图10显示Excel结果界面
程序代码:
系统登陆界面代码
系统登录界面程序(包括滚动字幕、登陆界面进入查询界面等):
‘通用
DimcnAs
DimrsAs
DimsSqlAsString
Dimaa()AsString
PrivateSubForm_Load()
delaytime=0
=True
EndSub
PrivateSubLabel1_Click()
=0
=True
EndSub
PrivateSubTimer1_Timer()
If =-25 Else =0 EndIf EndSub PrivateSubTimer2_Timer() Ifdelaytime>=25Then =False UnloadForm2 LoadForm1 Else delaytime=delaytime+1 EndIf EndSub Form_Load代码 进入查询界面后用于显示所有栅格的表头和所有Combo下拉菜单的值,程序如下: PrivateSubForm_Load() DimjAsInteger DimstrAsString '对MSFGrid进行设置 WithMSFlexGrid2 .TextMatrix(0,0)="编号" .TextMatrix(0,1)="线路名称" Forj=2To50 .TextMatrix(0,j)="站点"&CStr(j-1) Next EndWith '建立与数据库的连接 str="Provider=Info=false;DataSource="&&"\46_朱智强.mdb" Setcn=New str '赋值 sSql="selectnumberfrom46_朱智强orderbynumber" Setrs=New sSql,cn,adOpenKeyset,adLockReadOnly =Trim("number").Value) WhileNot (Trim("number").Value)) Wend '赋值--从aa数组中读取相应站名 sSql="select*from46_朱智强" Setrs=New sSql,cn,adOpenKeyset,adLockReadOnly IfThen MsgBox"没有找到数据",12,"系统提示" ExitSub EndIf ReDimaa-1,51)'以下开始读取数据 i=0 WhileNot Forj=1To(j-1)<>"Null"Then aa(i,j-1)=(j-1).Value EndIf Next i=i+1 Wend Dimab()AsString ReDimab(UBound(aa,1),UBound(aa,2)-3) Fori=0ToUBound(aa,1)'线路总数 Forj=2ToUBound(aa,2)-1'对应站点总数 ab(i,j-2)=aa(i,j) Nextj Nexti =ab(0,0) Fori=0ToUBound(ab,1)'线路总数 Forj=0ToUBound(ab,2)'对应站点总数 'ab(i,j) Ifab(i,j)<>""Then Fork=0To-1 If(k)=ab(i,j)Then ExitFor EndIf Nextk Ifk>=Then ab(i,j) EndIf EndIf Nextj Nexti '赋值--从aa数组中读取相应站名 sSql="select*from46_朱智强" Setrs=New sSql,cn,adOpenKeyset,adLockReadOnly IfThen MsgBox"没有找到数据",12,"系统提示" ExitSub EndIf ReDimaa-1,51) '以下开始读取数据 i=0 WhileNot Forj=1To(j-1)<>"Null"Then aa(i,j-1)=(j-1).Value EndIf Next i=i+1 Wend ReDimab(UBound(aa,1), UBound(aa,2)-3) Fori=0ToUBound(aa,1)'线路总数 Forj=2ToUBound(aa,2)-1'对应站点总数 ab(i,j-2)=aa(i,j) Nextj Nexti =ab(0,0) Fori=0ToUBound(ab,1)'线路总数 Forj=0ToUBound(ab,2)'对应站点总数 'ab(i,j) Ifab(i,j)<>""Then Fork=0To-1 If(k)=ab(i,j)Then ExitFor EndIf Nextk Ifk>=Thenab(i,j) EndIf EndIf Nextj Nexti '赋值--从aa数组中读取相应站名 sSql="select*from46_朱智强" Setrs=New sSql,cn,adOpenKeyset,adLockReadOnly IfThen MsgBox"没有找到数据",12,"系统提示" ExitSub EndIf ReDimaa-1,51) '以下开始读取数据 i=0 WhileNot Forj=1ToIf(j-1)<>"Null"Then aa(i,j-1)=(j-1).Value EndIf Next i=i+1 Wend ReDimab(UBound(aa,1), UBound(aa,2)-3) Fori=0ToUBound(aa,1)'线路总数 Forj=2ToUBound(aa,2)-1'对应站点总数 ab(i,j-2)=aa(i,j) Nextj Nexti =ab(0,0) Fori=0ToUBound(ab,1)'线路总数 Forj=0ToUBound(ab,2)'对应站点总数 'ab(i,j) Ifab(i,j)<>""Then Fork=0To-1 If(k)=ab(i,j)Then ExitFor EndIf Nextk Ifk>=Then ab(i,j) EndIf EndIf Nextj Nexti '赋值--从aa数组中读取相应站名 ReDimab(UBound(aa,1),UBound(aa,2)-2) Fori=0ToUBound(aa,1)'线路总数 Forj=2ToUBound(aa,2)-1'对应站点总数 ab(i,j-2)=aa(i,j) Nextj Nexti =ab(0,0) Fori=0ToUBound(ab,1)'线路总数 Forj=0ToUBound(ab,2)'对应站点总数 'ab(i,j) Ifab(i,j)<>""Then Fork=0To-1 If(k)=ab(i,j)Then ExitFor EndIf Nextk Ifk>=Then ab(i,j) EndIf EndIf Nextj Nexti EndSub 公交线路查询代码 在查询界面中的全部线路查询模块中点击显示,则显示所有公交线路程序如下: PrivateSubCommand10_Click() Dimaa()AsString DimiAsInteger '访问数据库和数据表 sSql="select*from46_朱智强" Setrs=New sSql,cn,adOpenKeyset,adLockReadOnly IfThen MsgBox"没有找到数据",12,"系统提示" ExitSub EndIf ReDimaa-1,51) '以下开始读取数据 i=0 WhileNot Forj=1To(j-1)<>"Null"Then aa(i,j-1)=(j-1).Value EndIf Next i=i+1 Wend '以下在MSFGrid显示数据 WithMSFlexGrid2 .Rows=i+1 Fori=0ToUBound(aa,1) .Row=i+1 Forj=0To50 .TextMatrix(.Row,j)=aa(i,j) Next Next EndWith EndSub 线路查询代码 在线路查询模块,用于查询所输入的线路的所有公交站点,程序如下: PrivateSubCommand4_Click() '清空内容 WithMSFlexGrid2 ForP=0To45 ForQ=1To20 .TextMatrix(Q,P)="" Next Next EndWith DimsSqlAsString Dimaa()AsString DimiAsInteger '访问数据库和数据表 sSql="select*from46_朱智强wherenumber='"++"'" Setrs=New sSql,cn,adOpenKeyset,adLockReadOnly IfThen MsgBox"没有找到数据",12,"系统提示"
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 公交线路 查询 课程设计
![提示](https://static.bdocx.com/images/bang_tan.gif)