收藏 分销(赏)

庐山导游系统论文.doc

上传人:仙人****88 文档编号:8784528 上传时间:2025-03-02 格式:DOC 页数:41 大小:595KB
下载 相关 举报
庐山导游系统论文.doc_第1页
第1页 / 共41页
庐山导游系统论文.doc_第2页
第2页 / 共41页
点击查看更多>>
资源描述
毕 业 论 文 (设 计)     题 目 庐山导游系统 英文题目 Lushan mountain guiding system 院 系 信息科学与技术学院 专 业 计算机科学与技术 姓 名 李 刚 年 级 指导教师 胡 慧     2 摘 要 随着人们物质水平日益提高,越来越多的人走出了家门,投入到了旅游大军中,国内外旅游业取得了蓬勃发展。为了提高竞争力,在旅游市场夺得更大份额,各旅游点在进行旅游资源开发,加强管理的同时,都在考虑如何用现代的技术更好地为游客提供人性化的服务,各种导游系统也应运而生。 经过对旅游业形势和庐山现状的分析,导游系统对庐山的地图进行抽象分析,将景点分布情况以邻接矩阵形式存储在计算机中。系统主要由系统登录,景点查询,路径查询三个模块组成。景点查询可为游客提供景点信息查询服务;路径查询是电子向导,可为游客提供如何从甲地到乙地的路径查询服务。根据用户的特殊性,设计了简洁友好的使用界面,设计并实现了关键算法:最短路径查询。 [关键词]:系统分析,路径查询,导游系统 Abstract With the living level rising, more and more people go out of their home, take part in the travelers. The domestic and abroad tourism have been developed rapidly. In order to raise the competence of competition, and get more proportions in the tourism market, the tourism departments are expanding the tourism resources and strengthening management, meantime, they are all considering how to use modern technology to provide better humanizing service. Lu Shan mountain guiding system consists of system loading module, spots searching module, path searching module. Spots searching module could provide the service of searching spots information; path searching module is electronic wizard, providing the path searching service on how to get to on place from another place. According to the particularity of different users, the system has brief and friend using interface, designating and realizing the critical algorithm: the shortest path searching. [KeyWords] :Lushan mountain guiding system , System analysis , path search 36 目 录 摘要………………………………………………………………………………………Ⅰ Abstract……………………………………………………………………………………Ⅱ 第一章 概 述………………………………………………………………………………1 1.1背景分析………………………………………………………………………………1 1.2 国内外现状……………………………………………………………………………2 1.3 论文组织………………………………………………………………………………3 第二章 系统需求………………………………………………………………………4 2.1业务需求………………………………………………………………………………4 2.2 性能需求………………………………………………………………………………4 2.3 系统平台需求………………………………………………………………………… 4 2.4 数据流图……………………………………………………………………………… 5 2.5 数据分析……………………………………………………………………………… 6 2.6 数据字典……………………………………………………………………………… 7 第三章 系统设计…………………………………………………………………………9 3.1 程序流程图…………………………………………………………………………9 3.2系统流程图……………………………………………………………………………9 3.3 系统结构图…………………………………………………………………………11 3.4景点分布图…………………………………………………………………………… 12 3.5 景点结构关系图的存储……………………………………………………………12 3.6 重要算法描述………………………………………………………………………13 第四章 系统实现……………………………………………………………………………16 4.1 启动界面的实现……………………………………………………………………16 4.2 主界面窗体实现……………………………………………………………………16 4.3 系统程序编码………………………………………………………………………18 第五章 系统测试及维护……………………………………………………………………27 5.1 系统测试……………………………………………………………………………27 5.2 系统维护……………………………………………………………………………30 第六章 总 结…………………………………………………………………………32 参考文献………………………………………………………………………………34 致 谢……………………………………………………………………………………35 第一章 概 述 随着社会的发展,旅游业已成为全球经济中发展势头最强劲和规模最大的产业之一。旅游业在城市经济发展中的产业地位、经济作用逐步增强,旅游业对城市经济的拉动性、社会就业的带动力、以及对文化与环境的促进作用日益显现。 这个世界正处于这样的时代--遍及全球的平民百姓的大众旅游黄金时代已经到来。各国为了发展旅游业,对改善和优化各自的旅游环境,都在作出很大的努力。凡是能为人们提供娱乐、休憩、游玩的地方,大多人满为患,拥挤不堪。所以要发展我国的旅游业,完善与旅游相关联的各项配套的软、硬件设施是至关重要的。 1.1背景分析 美丽的庐山[1],是世界级名山。地处江西省北部,风景区总面积302平方公里,山体面积282平方公里,最高峰汉阳峰海拔1474米,东偎鄱阳湖,南靠南昌滕王阁,西邻京九大通脉,北枕滔滔长江。中华民族源远流长的历史和数千年博大精深的文化蕴育了庐山无比丰厚的内涵,使她不仅风光秀丽,更集教育名山、文化名山、宗教名山、政治名山于一身。 庐山的历史遗迹,代表了中国历史发展的大趋势,处处闪烁着中华民族历史文化的光华,充分展示了庐山极高的历史、文化、科学和美学价值。她是千古名山,得全国人民厚爱及世界的肯定,获一系列殊荣:首批国家重点风景区、全国风景名胜区先进单位、中国首批4A级旅游区、全国文明风景区、全国卫生山、全国安全山、中华十大名山之一、世界遗产地--我国目前唯一的世界文化景观,我国首批世界地质公园。庐山的历史遗迹以其独特的方式,融汇在具有突出价值的自然美之中,形成了具有极高美学价值的、与中华民族精神和文化生活紧密相联的文化景观。庐山的每一滴水、每一棵树、每一幢房,如一首诗、一幅画、一本书。庐山,是中华民族的骄傲! 1.任务提出 开发者:九江学院信息科学与技术学院 用户类型:游客、系统管理员 用户特点:客户端操作人员只具备基本软件操作能力,要求软件简单、易操作、具有极强的异常处理能力;系统管理员要求具备数据库操作维护能力及熟悉对景区各景点的分布情况。 2.系统目标 系统目标是总体设计的根据,是系统具体实现的前提,本系统将达到以下目标: (1) 便于景区管理,节省资源。 (2) 为游客提供导游服务,游客可通过本系统查看各个景点介绍等信息。 (3) 可为游客提供查询服务,可查询景点之间的路线。 1.2 国内外现状 随着国际和平环境的来临、世界经济的日益繁荣和国际交往的不断扩大,作为第三产业的国际旅游业迅猛发展。旅游业[2-3]是投入少、效益好、创汇多、可带动一些关联产业的发展和增加就业,并促进国际经济交往的产业。旅游业为国家财政积累和创外汇均起了重要作用。我国虽然自然资源十分丰富,但因对旅游业缺乏投资,设施落后,又因长期受国家高度保护,缺乏市场竞争机制,以致我国旅游业远落后于发达国家。 我国旅游业在世界旅游行列中的排位,按旅游收入计,1978年居世界第41位,经过十多年的努力,至80年代后期,跃升至第25位左右。但在同一时期内,与部分亚洲国家(地区)相比,韩国排位由第38位上升至第13位,泰国由第24位上升至第14位。上述情况,一方面说明我国的旅游业近年来有一定的发展,另一方面也说明发展速度不快,地位仍较滞后。与我国拥有丰富的旅游资源很不相称。 国际旅游业是一个国家对外交流的一个重要窗口,也即是作为国家内外两种经济体系的重要交接口。对每个国家的经济发展起着重要的作用。各国为了发展旅游业,对改善和优化各自的旅游环境,都在作出很大的努力。我国旅游设施和基础设施落后,国家投资少,旅游设施不配套,服务质量差是我国旅游业发展缓慢的主要原因。因此积极引进外资和先进技术设备,以完善与旅游服务相关联的各项配套设施。为吸引游客发展旅游业,努力使凡与旅游服务相关联的行业,包括宾馆饭店、景点设施、娱乐、交通、购物等配套设施都做到尽善尽美和富有特色。导游系统在国外的多数景区都已经配备,而在国内还没有几个。导游系统无论是对游客还是景区,都是非常重要的。如果没有良好的旅游及相关服务设施和完善的软、硬环境,是难以大量吸引客源的。 1.3 论文组织 本论文重点介绍了庐山导游系统的实现过程:包括系统分析、 数据流程分析、功能设计、系统设计、 系统实现、 系统测试和调试。也给出了重要功能的代码实现。全文共分六章。 1.第一章概述,介绍了背景分析和我国当前旅游业的国内外形势。提出开发导游系统的必要性。 2.第二章系统需求分析,从业务需求、系统功能、平台、数据4部分对系统进行了分析。 3.第三章是系统设计,软件主要从两个方面入手:景点查询和最短路径查询。得出了系统流程图、设计了图的存储,设计了主要算法。 4.第四章介绍了导游系统的实现过程和部分主要功能代码。 5.第五章为系统的测试及维护,介绍了一些系统的测试方法和测试结果,以及软件的维护。 6.最后一章是总结,对本论文所做工作进行了总结。 第二章 系统需求 2.1业务需求 1. 使用范围要求 该系统是根据庐山景区的特点制作的导游系统,在各景点或公共场所设置。可为游客提供方便。不过该系统可以很容易改造为其他景区、学校、一些大公司的导游系统,为参观提供方便。 2. 功能要求 该系统主要有以下功能: (1)建立庐山景区的平面图。 (2)为来访客人提供图中任意景点相关信息的查询。 (3)为来访客人提供图中任意景点的问路查询,即查询任意两个景点之间的一条最短的简单路径。 2.2 性能需求 虽然系统的数据量不是很大,但是也要保证数据的长期完整性和安全性。系统操作简单易行,查询灵活方便。通过系统的实施,可为游客提供优质服务,起到宣传效果。 2.3 系统平台需求 1. 系统开发平台 操作系统:Windows系列 开发工具:Visual C++ 6.0 2. 开发环境介绍 Visual C++[4-7]是Microsoft C/C++ 7.0之后推出的新一代程序开发工具,它不仅继承C++的特性,同时具备可视化程序语言(Visual Programming Language)及程序产生器的概念。既然是面向对象语言,当然会提供系统基础类给程序员再使用(Reuse)。在Visual C++ 中,延袭Microsoft C/C++7.0的作法,将原有的SDK函数重新封装在适当的类中,构造了“基础类函数库(Microsoft Foundation Class Library,简称MFC)”,它提供了许多现成的框架对象,可供在使用Visual C++设计应用程序是使用。此外,还提供“ClassWizard”与“AppWizard”可帮助构造基本的程序框架,从软件再使用的技术观点而言,已由SDK函数库方式经过面向对象程序设计方式进展到自动产生模板相关类程序代码方式(Framework)。 面向对象的程序设计是一种新型的程序设计方法,计算机环境本身就是一个对象的集合体,对象彼此之间通过消息相互作用,面向对象的程序设计提高了程序的模块化和可维护性。面向对象的程序设计有几个特点及优点。首先,由于对象包含属性和方法,因此支持模块化程序设计,而模块化程序设计支持开发的便利性及代码的可维护性。 Visual C++ 6.0是Microsoft公司推出的功能最强大、最复杂的语言产品之一,它是目前为止在Windows环境下进行大型软件开发的首选。其具有如下特点: (1)Visual C+ + 的语法符合ANSL C+ + 标准,并在此基础上针对Windows操作系统增加了一些语句; (2)集成了MFC(Microsoft Foundation Class)类库,MFC封装了Windows API函数和消息,使程序员可以使用MFC高效率地开发各种应用程序; (3)提供了MFC AppWizard,可方便地生成程序框架; (4)提供了基于MFC的ClassWizard,通过它可以轻松地完成对各种MFC类的使用与维护。 Visual C++ 6.0作为Visual Studio家族中的一员,是Microsoft公司以C++语言为基础开发的可视化集成开发工具,与其他编程语言Visual Basic 6.0、Visual ForPro等一起,成为广大程序员喜爱的开发平台。 2.4 数据流图 由游客选择输入景点名称,通过景点查询系统,进行处理,最终输出用户所需相关景点信息,或者是用户选择输入信息,通过路径查询处理系统进行处理,最终输出用户所需的有关两景点间最便捷路径信息。如图2-1所示。 用 户 景 点 查 询 路 径 查 询 信息传输 信息传输 信息文件 查询结果 查询结果 选择信息 选择信息 图2-1 游客查询数据流图 系统管理员根据权限成功登录,根据需要对数据进行添加和修改。成功修改后,可对数据保存。管理员模块数据流图如图2-2所示。 管理员登录 验 证 信息文件 写信息 数 据 更改数据 图2-2 图2-2 管理员模块数据流图 2.5 数据分析 数据项描述 数据项编号:01 数据项名称:景点名称 简述:景点的主要标志 类型:字符型 长度:30位 取值/定义:庐山景区现有实体名称 数据项编号:02 数据项名称:景点介绍 简述:景点的相关描述 类型:字符型 长度:100位 取值/定义:该建筑的作用及内部设施 数据项编号:03 数据项名称:景点图片 简述:有关景点的实体照 类型:图片类型 数据项编号:04 数据项名称:两景点间长度 简述:有直接通路的两景点间的路径长度 类型:整型 2.6 数据字典 原始数据的描述: 数据名称:庐山导游系统 简述:系统中保存庐山各景点的相关信息,即景点名称、景点介绍、图片、两景点间的长度。 来源:庐山的现有景点及相关信息。 去处:来访者 组成:存储信息用库有景点个数,两景点及之间的长度,景点介绍及图片。 数据表: 信息文件=景点名称+景点介绍+景点图片+两景点间长度 数据表如表2-1所示,表由景点编号、景点名称、景点介绍、景点图片四个部分组成。景点编号由0-9十个数字组成与景点名称一一对应,景点介绍主要介绍了个景点的基本设施及用途。 表2-1 数据信息表 景点编号 景点名称 景点介绍 景点图片 0 如琴湖 此湖,建于1961年,面积约110000平方米,蓄水量约1000000立方米。因湖面形如小提琴,故名。 Bitmap1 1 乌龙潭 乌龙潭位于东谷山冲底部头,两山夹峙,中为一线幽涧,树木交翠,绿荫掩映,恬静凉爽。 Bitmap2 2 含鄱口 含鄱口海拔1286米,含鄱岭和对面的汉阳峰之间形成一个巨大壑口,大有一口汲尽山麓的鄱阳湖水之势,故得名 Bitmap3 3 仙人洞 仙人洞为庐山著名景点之一。位于锦绣谷的南端,有参差如手的“佛手岩”。 Bitmap4 4 三叠泉 三叠泉位于五老峰下部,飞瀑流经的峭壁有三级,溪水分三叠泉飞泻而下,落差共155米,极为壮观,撼人魂魄。 Bitmap5 5 五老峰 五老峰地处庐山东南,因山的绝顶被垭口所断,分成并列的五个山峰,仰望俨若席地而坐的五位老翁. Bitmap6 6 植物园 从含鄱口沿石阶而下走数百米即抵植物园大门。是我国著名的亚热带高山植物园. Bitmap7 7 东林寺 东林寺,座落于庐山西麓,是净士宗发源地。东林寺为晋代东方名僧慧远于东晋太元九年(公元384年)创建 Bitmap8 8 大口瀑布 大口瀑布是庐山管理局近年开发出来的景点,游客可乘索道直接到大口瀑布. Bitmap9 9 小天池 小天池位于庐山牯岭北面,池中之水置于高山而终年不溢不涸。池后山脊上,屹立着一座白塔似的喇嘛塔。 Bitmap10 第三章 系统设计 经过分析,对庐山导游流程进行整理,得出其使用过程如下: 进入系统之后,来访者将根据景点名称栏的下拉菜单中所提供的景点名称选择所要访问的景点,单击查询将会出现与此景点相关信息的对话框。 来访者将根据起点栏和终点栏的下拉菜单中所提供的景点名称分别选择景点,表示所要查找的最短路径的两景点。单击查询,将会获得两景点间的最短路径长度及所要经过的其他景点的名称和顺序。 3.1 程序流程图 程序流程图如图3-1所示。首先登录系统,如果是管理员的话要进行身份验证,验证成功后进入管理员模块。管理员可以对系统内部数据进行修改、添加,并且可以控制整个系统的运行状态决定是否推出本系统。如果你是一般用户,则不需要进行身份验证,直接进入一般用户模块。选择输入,通过系统查询,你将得到你所需要查询的相关信息。一般用户只能进行查询,不能对数据进行添加、删除、修改。 3.2系统流程图 在对上述流程进行分析后,现在对新的导游流程进行整理,其查询过程如下:进入系统之后,来访者将根据景点名称栏的下拉菜单中所提供的景点名称选择所要访问的景点,单击查询将会出现与此景点相关信息的对话框.参观者将根据起点栏和终点栏的下拉菜单中所提供的景点名称分别选择景点,表示所要查找的最短路径的两景点,单击查询,将会获得两景点间的最短路径长度及所要经过的其他景点的名称和顺序。 查询信息 登录 输出结果 输出结果 查询路径 结束 景点查询 路径查询 选择输入 选择输入 退出 验证 NO YES 成功 退出 NO YES YES NO 图3-1 程序流程图 景点介绍流程如图3-2所示。 检索信息 景点介绍 选择景点 景点集合 输出信息 图3-2 景点介绍流程图 路径查询流程如图3-3所示。 选择起点 选择终点 景点集合 查找并计算 长度及路径 图3-3 最短路径查询流程图 3.3 系统结构图 根据功能描述[8-9],庐山导游系统可分为2个主要功能模块,用户模块和管理员模块。庐山导游系统结构图如图3-4所示。管理员模块的主要功能是对实际情况有所改变的数据进行修改,并保证其及时性和准确性。用户查询模块的主要功能是对游客输入的景点查询,提供相应的景点信息,并能为游客提供路径查询服务,即游客可以输入目前的地址,再输入目的地的地址,系统能提示如何到达的路径,并给出距离。 庐山导游系统 景点路径查询 长度和路径 景点介绍查询 景 点 名 称 景 点 介绍 景 点 图片 用户界面 管理员界面 修改数据 图3-4 系统结构图 3.4景点分布图 分析庐山景点分布情况,并进行抽象,得出各景点分布[10-11]如图3-5所示。其中方框代表景点,景点编号与表2-1相对应。边代表两景点间的路径,边上的数字代表长度,单位为M。 7 9 0 3 1 6 2 4 5 8 1100 1000 800 1100 1500 1200 1100 500 450 500 图3-5 景点分布图 3.5 景点结构关系图的存储 图的存储方法[12-14]有很多,常见的存储表示法有: 1. 邻接矩阵表示法 2. 邻接表 3. 邻接多重表 4. 十字链表 邻接矩阵表示法:可以很容易的判定任意两点之间是否有边相连,并容易求得各个顶点的度。在邻接表上容易找到任一顶点的第一个邻接点和下一个邻接点,但要判定任意两点之间是否有边或弧相连,则需要搜索第i个或第j个链表。因此,不及邻接矩阵方便。对无向图而言,邻接多重表和邻接表的差别,仅仅在于同一条边在邻接表中用两个结点表示,而在邻接多重表中只有一个结点。所以,除了在边结点中增加一个标志域外,邻接多重表所需的存储量和邻接表相同。十字链表是有向图的一种链式存储结构,只使用于有向图。 邻接矩阵表示法存储数据,具有如下特点: 1. 存储空间:对无向图而言,它的邻接矩阵是对称矩阵,因此采用特殊的压缩存储法,即只存储其下三角。这样,一个具有n个顶点的无向图,它的邻接矩阵需要n(n-1)/2个存储空间即可。但是用下三角存储虽然节省存储空间,但是计算不是很方便。所以在本系统中不采用压缩存储法。 2. 便于运算:采用邻接矩阵表示法,便于判定图中任意两个顶点之间是否有边相连,还便于求得各个顶点的度。 经过以上分析,决定采用邻接矩阵存储庐山景点分布图。 庐山景点分布图利用邻接矩阵表示法如下: 0 1 2 3 4 5 6 7 8 9 0 0 ∞ ∞ 800 ∞ ∞ ∞ 1100 ∞ 1000 1 ∞ 0 ∞ 1100 ∞ ∞ ∞ ∞ ∞ ∞ 2 ∞ ∞ 0 1100 500 450 ∞ ∞ ∞ ∞ 3 800 1100 1100 0 ∞ ∞ 1200 ∞ 1800 ∞ 4 ∞ ∞ 500 ∞ 0 500 ∞ ∞ ∞ ∞ 5 ∞ ∞ 450 ∞ 500 0 ∞ ∞ ∞ ∞ 6 ∞ ∞ ∞ 1200 ∞ ∞ 0 ∞ ∞ ∞ 7 1100 ∞ ∞ ∞ ∞ ∞ ∞ 0 ∞ ∞ 8 ∞ ∞ ∞ 1800 ∞ ∞ ∞ ∞ 0 ∞ 9 1000 ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ 0 3.6 重要算法描述 在上述的路径带权无向图中,顶点代表地点,边代表景点间的路线,边权表示路线的长度。在本系统中最重要的功能就是实现最短路径的查询。在两点中求最短路径算法中迪杰斯特拉算法[15-16]比较好。 迪杰斯特拉算法算法的基本思想是:按路径长度递增的顺序,逐个产生各最短路径。 设有带权的无向图D=(V,{E}),D中的边权为W(e)。辅助向量dist[ ]的每一个分量dist[i]表示已经找到的且从开始点V0到每一个终点Vi的当前最短路径的长度。它的初态为:如果从V0到Vi有弧,则dist[i]为弧的权值;否则dist[i]为∞。其中,长度为dist[i]=Min{dist[i]|Vi∈V}的路径是从V0出发的长度最短的一条最短路径,此路径为(V0,Vj)。 S——为已求得最短路径的终点集合(开始为{V0})。 V-S——为尚未求出最短路径的顶点集合(开始为V-{V0}的全部结点)。 迪杰斯特拉算法的主要步骤如下: 1. g为用邻接矩阵表示的带权图。 S←{V0},Dist[i]=g.arcs[v0][i].adj; 将v0到其余顶点的路径长度初始化为权值; 2. 选择Vk,使得dist[Vk]=min(dist[i]|Vi∈V-S) Vk为目前求得的下一条从V0出发的最短路径的终点。 3. 修改从V0出发到集合V-S上任一顶点Vi的最短路径的长度。如果dist[k]+g.arcs[k][i].adj<dist[i],则将dist[i]修改为dist[k]+g.arcs[k][i].adj 4. 重复第2,3步n-1次,即可按最短路径长度的递增顺序,逐个求出V0到图中其他每个顶点的最短路径。 迪杰斯特拉算法流程图如图3-6所示: 图3-6 迪杰斯特拉算法流程图 第四章 系统实现 系统经过分析并加以设计,就可以着手进行实现了,本系统主要分为界面实现和代码实现。 4.1 启动界面的实现 本系统首先印入眼帘的是庐山的平面图。本系统的启动界面窗口如图4-1所示。 图4-1 系统启动界面 此窗体的设计整体为一个对话框模板ID为IDD_STARTUP。其背景图为庐山景区的平面图,为Bitmap类型ID为IDB_MAP。在它的右下角有一个标题为进入系统的图标按钮控件ID为IDOK,单击此图标,用户可以正式进入系统主界面。 4.2 主界面窗体实现 主窗体是用户进行操作的主要界面,简单明了是最重要的,每个图标要完成的功能在界面中都有文字提示,用户要完成什么功能只要点击就行了。其名称为庐山导游系统。如图4-2所示。 图4-2 系统主界面 此窗体一共分为两块景点查询及问路查询。在景点查询模块中外围用一个标题为景点查询的ID为IDC_STATIC的Group Box 类型控件所包围,内有名为选择景点的静态文本,傍边是一个ID为IDC_SIGHTNAME的Combo Box 类型控件,点击其下拉图标将出现所有景点的名称。右边是一个标题为显示景点信息ID为IDC_SHOWSIGHTINFO的Push Button 类型控件。用户在选择了一个景点后,再单击按钮将出现窗体信息,如图4-3所示。以景点如琴湖为例。 图4-3 景点介绍窗体 此窗体由两个标题为景点名称、景点信息的静态文本,两个ID分别为IDC_NAME、IDC_INFO的Edit类型控件,一个ID为IDC_PICTURE的Bitmap类型控件所构成。控件IDC_NAME显示景点名称,控件IDC_INFO显示景点信息,控件IDC_PICTURE显示景点图片。各随输入景点的不同而改变。 问路查询模块的外围同样是由一个标题为问路查询ID为IDC_STATIC的Group Box 类型控件所包围,内有两个标题分别为起点、终点的静态文本,两个ID都为IDC_COMBOBEGIN的Combo Box 类型控件,点击它们下拉图标将出现所有景点的名称。一个标题为查询的ID为IDC_QUERY的Push Button类型控件,一个ID为IDC_SHOWOUT的Edit类型控件。在选择了起点与终点景点名称后单击查询,Edit中将出现总长度及路线,以乌龙潭到五老峰为例,如图4-4所示。 图4-4 最短路径实现图 在主窗体的最下方还有一个标题为结束查询的ID为IDC_BUTTON2的Push Button类型控件,单击此控件系统将自动退出。 4.3 系统程序编码 1.最短路径查询 void CNewguideDlg::TDijkstra(int u, int *d[], int *path[]) { for(int v=0;v<u;v++) { Dijkstra(v, d[v], path[v]); } } void CNewguideDlg::Dijkstra(int v, int d[], int path[]) { bool *s=new bool[n]; if(v<0||v>n-1) { //cerr<<"BadInput"<<endl; return; } for(int i=0;i<n;i++) { s[i]=false; d[i]=a[v][i]; if(i!=v&&d[i]<NoEdge) path[i]=v; else path[i]=-1; } s[v]=true;d[v]=0; for(i=0;i<n-1;i++) { int u=choose(d,n,s,NoEdge); s[u]=true; for(int w=0;w<n;w++) { if(!s[w]&&d[u]+a[u][w]<d[w]) { d[w]=d[u]+a[u][w]; path[w]=u; } } } void CNewguideDlg::TDijkstra(int u, int *d[], int *path[]) { for(int v=0;v<u;v++) { Dijkstra(v, d[v], path[v]); } } CNewguideDlg::~CNewguideDlg() { for(int i=0;i<n;i++) delete []a[i]; delete []a; } 2.“显示景点信息”按扭代码 void CNewguideDlg::OnShowsightinfo() { // TODO: Add your control notification handler code here UpdateData(TRUE); char selectname[15]; m_sightname.GetWindowText(selectname,15); sightflag=m_sightname.GetCurSel(); if(sightflag==-1) //如果用户没有选择景点,给出出错提示 { MessageBox("请选择景点名称!"); } else //} { m_sightinfo.CChangeInfo(selectname,info[sightflag]); m_sightinfo.DoModal(); } } 3.“查询”按扭代码 void CNewguideDlg::OnQuery() { // TODO: Add your control notification handler code here UpdateData(TRUE); int stack[20]={0},top=0; ///////////////// char selectbegin[15],selectend[15]; int begin,end; m_cbegin.GetWindowText(selectbegin,15); begin=m_cbegin.GetCurSel(); m_cend.GetWindowText(selectend,15); end=m_cend.GetCurSel(); //////////////// int end1=end; char result[50]={""}; char a[2]; char flag[6]="---->"; strcat(result,"总长度为:"); itoa(d[begin][end],a,10); strcat(result,a); strcat(result,"\r\n"); strcat(result,"路线为:"); stack[top]=end; while(end>=0) { if(path[begin][end]>=0)stack[++top]=path[begin][end]; end=path[begin][end]; } while(top>0) { strcat(result,name[stack[top]]); strcat(result,flag); top--; } strcat(result,name[stack[top]]); m_showout=_T(result); UpdateData(FALSE); } 4.显示景点图片函数代码如下: bool SIGHTINFO::ShowPic(int num) { int num1=num+1; //得到文件名,文件名格式为Bitmap(i).bmp char Pic[12]="Bitmap"; char last[1]; itoa(num1,last,10); strcat(Pic,last); strcat(Pic,".bmp"); HBITMAP hbmp=(HBITMAP)LoadImage(NULL,_T(Pic),IMAGE_BITMAP,0,0,LR_CREATEDIBSECTION|LR_DEFAU
展开阅读全文

开通  VIP会员、SVIP会员  优惠大
下载10份以上建议开通VIP会员
下载20份以上建议开通SVIP会员


开通VIP      成为共赢上传
相似文档                                   自信AI助手自信AI助手

当前位置:首页 > 学术论文 > 其他

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        抽奖活动

©2010-2025 宁波自信网络信息技术有限公司  版权所有

客服电话:4009-655-100  投诉/维权电话:18658249818

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :微信公众号    抖音    微博    LOFTER 

客服