基于mfcaccess的交通换乘路线设计学士学位论文.docx

上传人:b****5 文档编号:8227004 上传时间:2023-01-30 格式:DOCX 页数:29 大小:194.73KB
下载 相关 举报
基于mfcaccess的交通换乘路线设计学士学位论文.docx_第1页
第1页 / 共29页
基于mfcaccess的交通换乘路线设计学士学位论文.docx_第2页
第2页 / 共29页
基于mfcaccess的交通换乘路线设计学士学位论文.docx_第3页
第3页 / 共29页
基于mfcaccess的交通换乘路线设计学士学位论文.docx_第4页
第4页 / 共29页
基于mfcaccess的交通换乘路线设计学士学位论文.docx_第5页
第5页 / 共29页
点击查看更多>>
下载资源
资源描述

基于mfcaccess的交通换乘路线设计学士学位论文.docx

《基于mfcaccess的交通换乘路线设计学士学位论文.docx》由会员分享,可在线阅读,更多相关《基于mfcaccess的交通换乘路线设计学士学位论文.docx(29页珍藏版)》请在冰豆网上搜索。

基于mfcaccess的交通换乘路线设计学士学位论文.docx

基于mfcaccess的交通换乘路线设计学士学位论文

基于MFC/Access的交通换乘路线设计

摘要

现如今,人们的出行方式有了更多的选择,城市公交系统作为交通运输的主体得到了迅速的发展,但是目前我国的城市公交换乘信息系统还未发展到较为先进的水平,广大的城市民从公交信息系统得到的信息不是很全面,信息量比较少,为了解决这种状况,使城市公交加速发展,更加信息化,设计一个公交换乘信息系统有较为现实的应用意义。

本次设计是基于MFC/Access的公交换乘路线信息系统。

首先将公交路线网抽象成一个带权图,然后根据用户提供的起始站点和目的站点,运用dijkstra算法进行搜索,为用户提供一个最优的乘车方案。

本系统使用MicrosoftVisualC++6.0作为开发工具,用VC++中的MFC应用程序框架来实现。

这个公交换乘信息系统主要包含两个模块,分别是查询模块(按照线路、站点和两站点查询)和管理更新模块(公交线路管理和管理员账户管理),最后根据本系统在开发阶段和调试阶段出现的问题,得到了系统需要改进完善的地方,总结了设计开发本系统所得到的经验和收获。

关键词:

dijkstra,路线换乘,MFC架构

DesignofTransferbusroutebasedonDijkstraalgorithm

Abstract

Thedevelopmentofthebuspassengerinformationsystemisinalevelthatfallbehindofthecityinourcountry.Thelargepartofpassengerscanacquirefewwaysoftheinformation.Soit'spracticalforustodevelopcity'sbuspassengerinformationsysteminordertoresolvingthisproblem.Thedesignisbasedonthedijkstraalgorithmbustransferlinequerysystem.First,It’sneedtochangethebusroutenetworkintoaweightedgraphabstraction,Thenthesystemsearchesusebythedijkstraalgorithmaccordingtotheinitialsiteanddestinationsitewhichprovidedbyuser,andprovidesuserswithanoptimaltravelprogram.ThesystemusesMicrosoftVisualC++6.0asdevelopmenttool,achievesbytheMFCapplicationframeworkwhichinVC++.thesefunctionscanbedividedintotwoparts---searchsystem(Includingthelinesearch、stationsearchandbetweentwostationssearch)andmanagementupdatesystem(IncludingBuslinemanagementandAdministratoraccountmanagement).Atlastaccordingtotheproblemsthathappenedintheperiodofusing,Isummedupsomewaystoimprovethesystem,andsomeexperiencesthatIcanhavefromthisresearch.

Keywords:

dijkstra,Tranferline,StructureofMFC

 

1绪论

1.1课题背景意义

为了使城市市民的出行更加便捷、迅速出现了城市公交这样的客运企业,城市公交发展至今已经成为城市社会和经济活动的重要组成部分。

随着国民经济的快速发展和城市建设的日益繁荣,人口的逐渐增加,解决好人们出行的需求成为一个城市需要面对的重要课题。

城市公交的发展水平直接体现出城市的经济建设和城市居民的生活水平,对一个城市的发展具有着全局性、先导性的作用,城市公交以其方便、快捷、覆盖广、容量大成为了城市交通客运的主体。

但是随着客运产业的不断发展,城市公交系统也在日益壮大,这时在市民面前出现一个难题,出行的市民很难得到全面而准确的公交信息,造成城市公交发展了而市民出行困难了。

因此,急需一个全面、准确、易用、便捷的公交换乘信息系统。

在城市经济快速发展的推动下城市建设的步伐不断加快,导致城市规模不断扩大,人口基数急剧增长,解决日益突出城市交通运输问题迫在眉睫,面对这样的问题急需找到有效的解决方案。

要有效的解决城市交通运输问题就必须降低市民的出行时间,这样做将会为公交乘坐者和交通运输企业带来更大的效益,与此同时便捷的交通,准确详尽的换乘信息和广阔的市场也可以提升城市公交运输的整体形象,进而增加城市公交的客运量和运输效率。

在绝大多数市民出行时,城市公交已经成为了这些出行者的首选交通方式,由于城市公共交通运输覆盖面广、出行成本低、便捷,各地城市政府也在全力扶持城市公交运输的发展与建设。

在城市公交运输发展前景如此广阔的条件下,城市有必要为公交系统建设相对应的城市公交换乘信息系统,以满足当地市民或者是外来游玩、出差、探亲等急需了解本地道路情况的人对换乘路线的便捷查询要求,为他们的出行和生活提供更多的帮助,让出行者能够实现便捷出行。

目前,我国城市公交换乘信息系统建设不够完善,广大乘客获取公交换乘信息的方式有限,,并且很难保证公交换乘信息全面而准确。

人民现在的生活消费水平日益增高,出行的次数和里程都在增加,作为城市枢纽的城市公交系统将会承担越来越重大的客运任务。

同时,为了让公交线路覆盖更多的地区,公交车数量迅速增加,公交对市民服务时间和到站路程不断增长,公交乘运服务不断人性化,彻底的改变了人们的生活和出行方式。

在全球性的油价上涨、能源短缺大环境下,城市公交运营系统成为人们的出行的最大依赖、保障。

随着人们出行所涉及的区域不断扩大,出行方式很难做到乘坐一个线路公交直达目的地,出往往需要在途中换乘多辆公交,如何在耗时最短、换乘次数最少、出行成本最低的情况下最有效率的到达目的地,成为了出行者要思考的问题。

基于MFC/Access利用Dijkstra算法设计的公交换乘信息系统能够解决在乘客给出任意起点的情况下,动态查询选择最短出行路径的常用算法。

该公交换乘信息系统的设计将会对开发公交换乘查询系统和方便乘客规划出行路线有着重要的意义。

1.2设计的主要内容

1.建立公交路网信息:

对实际的公交道路图中的路段属性,如单行、路口转向、距离、行驶时间等信息进行编码,提供公交路网信息管理功能,包括:

录入信息、修改信息、删除信息和查询信息等常用功能。

2.建立公交路网模型:

将公交道路网用赋权有向图表示,把一条道路的十字路口或一条道路的终点看做赋权有向图中的一个结点;两个节点之间的道路定义为一条弧;把每条弧的上述属性定义为路段权重。

在赋权有向图上,一条路径的始点和终点分别为i和l,这条路径表示为一个弧的序列,并且满足前一个弧的终点是下一个弧的始点,第一个弧的始点是i,最后一个弧的终点是l,用这样一个有序的点集来表示一条公交路线,一条路径的代价是这条路径上所有弧的权重之和,由此建立公交道路网模型。

3.出行路线的自动诊断:

根据建立完成的公交路网模型,利用Dijkstra算法判断出始点到终点的最短公交线路,并为应用者提供出行线路的查询、保存、打印等常用功能。

1.3算法完善

Dijkstra算法是在图论学等科领域中计算最短路的经典算法,该算法对于道路网或计算机网络的拓扑结构很适合,通过对Dijkstra算法的改进,判断出最为便捷的公交出行线路方案。

在原来公交换乘线路设计中用到的Dijkstra算法,只能给出从起始站点到终点站点所要途径的所有公交站点的集合,这对于应用城市公交换乘信息系统的出行者来说是不够方便的,因为出行乘客在出行时只会在意要坐哪个线路的车,在这条线路车途径的哪个站点下车进行公交换乘继续出行,至于公交车在运行阶段所要途经的站点信息并不是很关注,不会去刻意了解。

当然该城市公交换乘信息系统也涵盖了改进完善之前的Dijkstra算法的一些优点,例如在公交路线表中便捷的查询得到某条公交线路包含的所有站点。

但是由于城市公交网络中涉及的数据量太过庞大,且公交线路具有有向性的特点,这使的利用Dijkstra算法进行计算要消耗较大的时间成本,于是需要基于运算时间较长和公交网络的自身特性这两方面作出改进。

例如,我们要查询从A公交站点到B公交站点的最佳公交换乘线路,在查询经过A公交站点的所有公交线路集合的同时也能够查询得到经过B公交站点的所有公交线路的集合。

在查询从a站点到站点b的最优路线的过程中,首先看a、b站点之间是否能够直达,若能直达,则按照所有线路的权值进行排序,选择出最优路线;若不能直达,则查询a站点和b站点可以直达的所有站点,对这两个集合取交集,若是交集不为Φ,结束迭代,按照线路的权值进行排序,选择出最优公交路线,否则,仍然继续迭代。

查询由A公交站点出发,在途中必须要进行一次公交换乘才能到达的目标站点集合,与可以不用进行公交换乘,直接到达B公交站点的所有目标站点集合进行取交集,若取得的交集不为Φ,则迭代结束,这样便得到必须换乘两次才能到达目的地的公交换乘方案,按照线路的权值进行排序,选择出最优线路。

否则,迭代继续进行,直至查询得到最优乘坐公交的换乘路线方案或者所有公交站点完成迭代为止。

1.4论文的组织结构

论文第2章是开发系统所需要的工具工具与所需具备的环境的概述,介绍了该系统设计开发使用的VisualC++6.0中的C++开发语言和系统在数据库的设计开发中使用的数据库连接技术ADO,并介绍了开发该系统所需要具备的计算机环境。

第3章是需求分析,包括系统功能需求,系统数据库需求等。

第4章是系统设计与架构,包括划分系统的功能模块,数据库设计及建立。

第5章是测试。

包括测试的内容、方法和用例。

2系统的开发工具与环境

基于MFC/Access利用dijkstra算法的设计的公交换乘线路信息系统属于计算机软件开发的范畴。

就目前的计算机软件开发,它要求程序的可维护性、可扩充性及可伸展性。

为保证软件的质量,可采用相应的不同的设计方案。

由于面向对象程序设计具有继承、封装以及多态等特点,所以在城市公交信息查询系统的设计和编程阶段都能够有效降低程序复杂度。

本软件开发使用了面向对象语言C++实现,使用了微软公司的VC开发工具下的MFC来编程。

用到了MFC中的基础类,做到了代码的重用,为软件的开发节省了不少时间。

2.1开发平台VisualC++6.0

VisualC++6.0,简称为VC或VC6.0,是由微软公司开发推出的一款C++编译器,这款VisualC++6.0程序是可以将“高级语言”翻译为“低级语言”的。

VisualC++开发工具有非常强大的的功能,可以实现可视化软件开发。

在1993年Microsoft公司推出首款VisualC++系列程序VisualC++1.0之后,VisualC++不断的推出新的版本,随着VisualC++的不断更新,功能不断增强,现如今不少的专业程序员在进行程序编写编译时的首选工具便是VisualC++。

此后,虽然微软公司在VisualC++6.0之后还继续新的版本VisualC++.NET也称为VisualC++7.0,但因为VisualC++.NET在应用时它的局限性很大,程序只适用于Windows2000、WindowsXP以及WindowsNT4.0这些系统。

所以在实际的宽肩开发过程中,VisualC++6.成为了主要的程序开发编译平台。

VisualC++6.0不仅仅是一个简单的C++的编译器,同时还是Windows操作系统环境下的一个可视化集成开发环境(integrateddevelopmentenvironment,IDE)。

VisualC++6.0程序包含了许多的组件,包括编辑器、调试器以及程序向导AppWizard、类向导ClassWizard等开发工具。

VisualC++6.0程序所包含的所有组件由DeveloperStudio这一个组件集成为和谐的、稳定的软件开发环境。

VisualC++大概可以分成三个主要的部分:

  1.DeveloperStudio。

在日常的程序开发工作中99%的做业都是在这一个集成开发环境完成的。

DeveloperStudio虽然拥有者一个很出色的编辑器以及众多Wizard,但是它本身并不包含程序编译或者链接程序的程序功能。

而且DeveloperStudio并不是提供予VC专门使用的,它还同样的可以运用在于VB,VJ,VID等VisualStudio家族的其他成员编程编译过程中。

2.MFC。

它是微软的基础类,在C++的环境中,通常要编写一个应用程序的框架和引擎时用到MFC这个微软基础类。

MFC提供大部分用来进行界面开发的类,关联一个窗口的动作,但它所提供所有类中,有许多的类并不是与窗口进行关联,也就是说这些类是不实现对一个窗口对象的控制的,这些类的作用并不是一个界面类,而是一些在WinDOS(用MFC编写的程序绝大部分都在WinDOS中运行)中进行内部处理的类,例如数据库的管理类就是这样就是这样的一种实现。

3.PlatformSDK。

它是整个VisualStudio以及VisualC++的核心内容和灵魂所在。

它的核心是MicrosoftC/C++编译器,并且配合MASM同时借助其他一些工具和文档资料辅助做业。

2.2Access2003

微软在1992年基于Windows3.0推出了第一个版本的Access1.1。

微软公司在Windows的桌面关系数据库管理系统(RDBMS)的基础上推出Access,常用微软Office软件的知道Office系列应用软件之中就包含有Access。

Access提供了7种用来建立数据库系统的对象,他们分别是表、查询、报表、窗体、宏、页、模块;提供了模板、生成器以及多种向导,规范了界面设计、报表生成、数据查询和数据存储等操作;使得建立功能完善的数据库管理系统过程更加简便易行,这样普通用户在实现大部分数据管理操作过程中便可以不需要编写代码就能进行想要的操作。

Access是一种关系型数据库管理系统,主要有以下特点:

(1)存储方式单一

Access包括表、查询、窗体、报表、页、宏和模块七个管理对象,这些管理对象都存放在的数据库文件中,文件的后缀为(.mdb),使用户的操作和管理更为简单方便。

(2)面向对象

Access这个开发工具是面向对象的,将各种功能利用面向对象的方式在数据库管理系统中进行对象化,把不同的功能看作为不同的对象,并且将数据库管理的各种功能封装于各类对象中。

Access将一个应用系统表示为众多对象的集合,每一个对象都附带有一组属性和方法,以这些属性和方法来描述众多对象的行为,用户还可以基于自己的实际要求、需求来增加扩展对象的属性和方法。

通过借助对象的方法、属性进行对数据库的操作和管理,方便用户在开发过程中进行使用。

同时,这种基于面向对象的开发方式能够使开发应用程序变的更为简单易行。

(3)界面友好且易操作

Access是一个可视化的开发工具,它的开发风格和Windows是相同的,用户若是想要生成对象并应用,只需要拖放鼠标即可使用,操作非常的简便、直观。

Access同时还提供了报表设计器、查询生成器、表生成器和查询向导、数据库向导、表向导、报表向导以及窗体向导等工具,使得开发操作变得更加容易,减少开发人员的使用难度。

(4)集成环境与处理多种数据信息

Access需要在Windows操作系统下的集成开发环境中进行工作,由于在这个环境中已经涵盖了各种生成器工具以及向导,因而使开发人员的工作效率有了大幅度的提高,缩短了程序开发的周期时间,因而能够高效有序地进行建立数据库、创建表、设计数据查询、设计用户界面和报表打印等数据库的基本操作。

(5)Access是支持ODBC(开发数据库互连,OpenDataBaseConnectivity)的,在Access数据库中借助其强大的DDE(动态数据交换)和OLE(对象的联接和嵌入)特性还可以做到添加声音、位图、Excel表格和Word文档。

Access还可以通过网络应用程序与网络上的动态数据进行联接。

2.3程序设计语言C++

C++语言是在C语言的基础上发展而来的一种优良的面向对象程序设计语言,但但是与C语言相比较起来,C++语言更为容易被用户学习和掌握。

C++语言在计算机科学的各个领域中应用是很广泛的,因为C++语言有着其特有的特有的语言机制。

在原本结构化程序设计方法基础上将面向对象的设计思想进行了进一步的的一个提升,在C++语言上面完美地体现着面向对象设计方式的各种优势与特色。

C++主要特点:

完全支持C语言与面向对象。

C++基于C语言发展而来,保持了C语言的高效、简洁和在某些操作上继承了汇编语言指令的特性。

同时,对C语言的类型作了系统的改革和扩充,弥补了C语言中的存在的一些漏洞,为C++的编译提供了更好的类型检查和编译分析,能够检测出更多的类型错误。

C++解决了C语言的安全性问题,相比于C语言来说更加安全可靠。

由于C++语言是在C语言的基础上发展而来的一种优良的面向对象程序设计语言所以C++与C语言是可以实现相互兼容的,这样许多C语言代码不用进行修改即可在C++编译器中编译运行,这样的可以相互移植的特性使得实用软件和众多库函数都可以在C语言和C++移植使用。

因此,熟练应用C语言的开发人员能很快掌握C++进行编程。

此外,与C语言相同的是用C++编写的程序整齐明了,具有良好的的可读性,代码结构清晰合理。

C++最主要的特点是支持面向对象的程序设计,使用C++编程效率更高;由于面向对象的方法更接近人类的思考思维方式,C++对于问题的描述更容易,程序理解与维护也更容易;C++的模板对库代码是支持重用的;在程序员完成大型程序设计时选用C++语言更为有利、有优势。

C++支持多种程序设计方法,支持对过程化和基于对象的程序设计方法。

适合于开发方法不同的编程人员。

2.4系统的开发要求

本次开发的公交换乘信息系统对计算机操作系统环境的要求如下:

硬件要求:

CPU:

最低IntelPentiumII500MHz。

磁盘空间:

1GB。

内存:

最低限值512MB(最好是在1GB以上)。

显示:

1024*768,256色

软件要求:

计算机操作系统:

Windows2000以上的计算机操作系统环境。

开发平台:

VisualC++6.0,Access2003。

3需求分析

3.1系统功能需求分析

随着社会经济建设的高速发展,人民生活消费需求的不断提高,在忙碌的工作告一段落后更多的人选择旅行来放松自己丰富生活,但是当我们第一次来到这个要旅行的城市时,我们知道自己要去的旅游景区但是对于如何到达的路线是未知的,通常只能请导游随身而行,这时一个能查看具体公交线路的城市公交换乘信息系统变便得很有实用价值、实际意义。

本系统在实现信息系统的整体功能时采用了面向对象设计思想和方法,将信息系统的每个模块的功能应用达到系统所需标准,即将整体系统进行合理的划分,使每个不同的模块能够完成其相应的功能,将各个功能模块之间和模块内部的联系清晰的体现,避免系统设计凌乱无序,正确合理完整的将存储信息的数据库进行相互关联,实现每个功能模块之间的数据信息共享,确定各个功能模块其内部结构设计,在模块内部的功能设计完成的同时建立各个功能模块之间的数据、逻辑联系,达到预先计划要求的系统的整体功能。

城市公交换乘信息系统总共分为5个功能模块,公交线路查询模块、公交站点查询模块、公交换乘信息模块、数据与维护模块和系统账户管理模块。

1.功能名称:

线路查询

功能概述:

在公交换乘信息系统中输入某条公交线路的公交编号查询得到该条公交线路上面所途经的所有公交站点。

2.功能名称:

站点查询

功能概述:

在公交换乘信息系统中输入的指定目标公交站点查询得到途经该站点的每条公交路线信息。

3.功能名称:

公交换乘查询

功能概述:

通过输入起始站和目的站,系统根据dijkstra算法给出一个基于最短路径的乘车方案。

4.功能名称:

数据维护

功能概述:

管理员登录公交换乘信息系统,可以对数据库中的数据进行添加、修改、删除公交线路等更新和维护。

5.功能名称:

管理账户

功能概述:

管理员登录公交换乘信息系统,实现对管理员的信息资料、安全密码进行修改和保存功能操作。

3.2系统分析建模

在设计该系统,首先要考虑如何将数据库的结构与语义通过数据模型表示、描述出来,将公交线路的相关信息进行抽象,把公交线路的各种信息存入数据库中。

目前独立于计算机系统的“概念数据模型”,如“实体联系模型”和直接面向数据库逻辑结构的“结构数据模型”是使用比较广泛的数据模型。

在该公交换乘线路信息系统采用“实体联系模型”(ER模型)来构建数据库的结构与描述数据库,以此对现实的公交信息以及彼此的逻辑关联进行初步的抽象化。

通过数据库ER图直接从现实中抽象出实体类型及实体间联系,再用数据库ER图来对数据模型进行描述。

“实体联系模型”(ER模型)有两个明显的优点:

与人的思维方式相类似,比较容易理解实体之间的关系、逻辑关联,易于对实体和实体联系进行抽象使用;与计算机本身无关,用户接受起来相对容易。

但是建立ER模型只是构建数据库的第一个步骤。

E-R图是直观表示概念模型的工具,构成E-R图的基本要素是实体型、属性和联系,其中用矩形框来描述实体类型,将现实中的目标对象抽象成为实体类型;用菱形框来描述联系类型,此联系即为实体类型之间的逻辑关联;用椭圆形狂来描述实体的属性。

实体和属性的定义如下:

管理员表(登录姓名,登录密码)

站名表(站名编号,公交站名)

公交线路编号表(车次,线路公交类型)

公交线路表(线路编号,公交车次,公交站名,公交站点的次序)

各实体属性图如图3.1所示:

图3.1实体属性图

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

 

3.3系统数据库需求分析

在完成一个信息管理系统的实现过程中,数据库的设计和实现是至关重要的,整个信息管理系统是否高效,是否合理,能否实现要求达到的应用效果完全要依赖于数据库结构设计与实现。

一个优良的信息管理系统需要有高效的数据存储的效率,而合理的数据库结构设计可以保证数据的整体性和一致性。

数据库技术是在传统的文件系统基础上发展而来的,数据库数据模型的发展依次从层次模型、网状模型发展到关系模型。

数据管理是数据库技术发展至今的最新技术,此技术是计算机科学的一个重要分支,它能规范、指导我们完成正确地数据库系统设计,数据管理出现极大地推动了计算机应用的发展。

在我们开发一个信息管理系统时,想要更有效的设计完成实用的数据库系统便需要依赖数据库技术的原理和方法。

设计构建一个完善、结构清晰的数据库系统需要涵盖数据库管理系统(DBMS),数据库管理员(DBA)、数据库(DB)、应用程序和相应的硬件设施等各部分内容。

现在许多数据库管理系

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

当前位置:首页 > 小学教育 > 其它课程

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

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