大数据结构-校园导游系统.doc
《大数据结构-校园导游系统.doc》由会员分享,可在线阅读,更多相关《大数据结构-校园导游系统.doc(54页珍藏版)》请在课桌文档上搜索。
1、word 课程设计论文附有代码!题 目:校园导游咨询学 院: 计算机科学与工程学院专 业: 计算机科学与技术姓 名: 学 号: 指导教师: 51 / 54摘 要某某众山环绕,风景优美,加之近年来校园环境也得到不断地改善,来访校园的游客逐渐增加,为了方便众多游客对校园景点的参观,需要给来访人士提供校园导游咨询服务,利用计算机建立一个便利的咨询系统可以很好地解决这个问题。在本设计实验中,我所采用的是邻接矩阵作为数据的存储结构,用不同的功能模块对两地距离和校园道路信息进展编辑。当游客来访时,系统能根据用户输入的景点代号查询景点信息,提供任意两个景点间的最短路径查询,并能查询校园内的交通信息,方便游客
2、访问。工作人员还可以为校园更新景点以与路径信息。本文将简单介绍该系统的开发背景,详细介绍系统的主要设计思路,函数的建立和使用过程,该系统功能的实现方式和实现结果,以与对所遇到问题的分析解决,最后对该系统进展总结描述。关键词:校园导游咨询;C+;数据结构;最短路径;查询;目 录引言11系统概述12需求分析12.1 系统需求12.2 开发环境23详细设计33.1系统结构33.2 数据结构设计以与数据的初始化43.2.1 图结构设计43.2.2 数据的初始化43.3 查询模块的详细设计53.3.1 查询模块功能子函数设计53.4 更新功能模块详细设计73.4.1 更新模块功能子函数设计84所遇到的问
3、题和分析解决105系统特色与关键116结论12参考文献13引言随着计算机科学技术的不断提高,计算机依靠其强大的功能已经成为人们生活中不可缺少的一局部,计算机能解决人类生活中的大局部问题,为人类文明和社会进步做出了巨大贡献。某某是一个全世界著名的旅游城市,近几年来旅游业得到了飞速的开展,来自各个国家各个城市的游客给城市带来了巨大的经济效益。地处尧山地带的某某电子科技大学风景非常优美,随着我们大学知名度的提高,来访游客数量大大增加,这就需要我们建立一个校园导游咨询系统来解决游客的来访咨询,为游客提供所需要了解的景点信息,或者统观所有景点信息后再选择需要参观的景点;校园里有公车巴士等交通工具,价格合
4、理,乘坐方便,可以为游客们提供代步工具,系统可以为游客提供所有的交通方式由游客自行选择。当游客们参观完某景点需要参观下一个景点时,系统可以为其提供两景点间的最短路径,减少游客的步行量。最终的目的是给各位游客们提供参观校园的便利,让游客更好地了解我们的大学。使校园旅游实现管理信息化,智能化。1 系统概述从选定题目之后,本人在校园内做了实地调查,画出了大致的校园平面图;并查找相关资料,熟悉了开发环境以与图结构的知识。参考了资料书上的其他类似案例,对系统的开发做了较好的准备。该系统是由用户、管理员、计算机组成的用以进展校园咨询校园更新的系统。可实现通过认为输入查询各类景点信息,交通信息;当校园景点更
5、新时,工作人员可以与时地通过系统更新景点信息,为游客提供任意两景点之间的最短路径。2 需求分析2.1 系统需求校园导游咨询系统的根本要求:1设计你所在学校的校园平面图,所含景点不少于10个。2以图中顶点表示校内各景点,存放有景点名称、编号、简介等信息;以边表示路径,存放路径长度等相关信息。3为来访客人提供图中任意景点相关信息的查询。4为来访客人提供图中任意景点的问路查询,即查询任意两个景点之间的一条最短的简单路径。5必须具有校园平面图的修改和扩大功能,即某些景点坐标的修改和景点个数的增加。6需要有5条以上的文件记录。7为游客提供校园交通方案的查询。8能够根据景点实际变化进展景点信息的更新。9能
6、够将更新后景点信息传入到文本文件里保存。程序设计分析: 1构造一个无向带权网G并用邻接矩阵来存储;2利用Dijkstra算法来计算出起点到各个顶点之间的最短路径并进展存储,弗洛伊德算法将找出每一对顶点之间的最短路径;系统的输入与输出:(1) 键盘输入。(2) 磁盘输入输出。该系统需要具备下面几个使用要求: (1)需要有友好的系统界面,易于理解,操作简单,中文菜单。 2数据处理要保证准确度,能给予用户实际有效的信息。 3当用户输入错误,需要有友好的提醒界面,并能再次输入。 4将用户需要的信息完整地输出到系统界面,不能输出无用信息和不完整的信息。 5系统易于读懂,易于维护和扩大。2.2 开发环境校
7、园导游咨询系统在联想计算机上进展开发配置为:CPU:AMDTrinityAPUA8-4500M操作系统为 windows 7 旗舰版64开发语言:C+C+是在C语言的根底上开发的一种集面向对象编程、泛型编程和过程化编程于一体的编程语言。应用较为广泛,是一种静态数据类型检查的,支持多重编程的通用程序设计语言。它支持过程化程序设计,数据抽象,面向对象设计,制作图标等多种程序设计风格。3 详细设计3.1 系统结构从该系统整体结构上分析,该系统主要分为查询模块和更新模块,查询模块包括景点信息查询,任意两景点间的最短路径查询,校园交通方案的查询这三个根本查询功能,根本上满足来访游客的查询需求。更新模块包
8、括校园景点信息更新,校园景点道路更新,车辆行驶路线更新等功能,可以对校园各个信息进展更改,以便于来访游客能了解到景点的最新信息。这两个模块之间通过这里已经具有了严密的联系。因为各种查询必须建立在各种数据的输入更新之上,当校园信息改变时,游客查询得到信息也应该是更新过后的信息。通过查询模块与更新模块之间的功能联系,就可以实现一个有机的循环。系统根本运行界面如下所示,这里我用了一个while(1)将开始菜单放到一个初始大循环里,当用户操作完成一项根本功能后便会自动回到这个主菜单,方便下一个用户的使用。用一个switch(k)由用户输入的相应字符来执行相应的功能函数,最后可以按#号键退出。在本系统中
9、,需要使用图结构来存储各个景点数据。图由假如干边和假如干顶点组成,在这里每个顶点对应的景点包含有景点编号,景点坐标,景点名称,景点简介这些信息。图是一种非线性的数据结构,其中的数据元素之间是多对多的的关系。对于校园景点来说,其中每一个景点可以看做是一个顶点,假如两个景点之间可以直接到达,那么他们有一条边相连,在边上附加一个权值,代表两个景点间的距离。假如两景点间不能直接到达,我们可以使用一个给定的数值来代表距离的无穷大。我们使用邻接矩阵来表示图,它由一个顺序存储顶点信息的顶点表和一个存储顶点间的相互关系的关系矩阵两局部组成。如下所示,图结构包括当前顶点数目,当前边的数目。用一个一维数组来存放顶
10、点,用一个二维数组来存放边。typedef structint n,e; /顶点数目,边数目Vertex vexsMaxVertexNum; /存放顶点Vertex* pvexs; /顶点指针int edgesMaxVertexNumMaxVertexNum; /存放边MGraph;图结构定义好之后,就需要把图结构中的各个数据项初始化。方便后边程序的使用。首先在程序中定义一个图的全局变量MGr,初始时默认顶点个数也就是景点个数为15,给每个景点按照校园地图附上景点信息,并用一个for循环暂时先给图中每一条边赋值为无穷大,顶点到自身的距离为0。然后通过一个int mile(int a,int b
11、)函数,通过给定的两个景点的编号来调用两个景点的x,y坐标进而求出它们间的距离。并将求出来的距离赋值到图结构的相应的边上。在车辆结构中,也先定义一个车类型的全局变量,用数组来表示三种不同类型的车辆,每种车型包含有车辆名称,车辆速度,车辆票价,车辆行驶路线等根本信息。3.3 查询模块的详细设计本模块主要用于实现游客对现有景点的信息的查询,通过这个模块的功能可以为游客提供需要查找的景点信息。由于本系统需要使用文本文件来存储景点信息,所以我们在程序里要首先创建一个文本文件来存放所有的景点信息,当使用景点查询功能时,首先在文本文件中找到对应的景点信息,然后从文本文件里输出并显示。考虑到如果用户需要一次
12、性查询所有景点信息,如此将文本文件里的所有景点信息输出显示。在该模块中,程序还可以实现两个景点间最短路径的查询。图结构中已经存放有边的长度的数组,任意两个景点之间可以有多条路径到达,为了能使用户快速地到达,使用Dijstra算法和打印函数可以实现最短路距离的查询,并将该条路径顺序打印到屏幕上。为了使功能丰富,这里还添加了校园交通方案的查询。提供应用户两个景点之间的多种交通方案供用户选择。给每一种类型的车辆规定一条路径,该种车辆在这条道路上往返,能够经过某些景点,但也有某些景点不能通过。反应给用户包括车型、车辆从出发点到终点所用的时间、票价信息。(1) void writefile()函数文本文
13、件的读入函数。使用ofstream fout(ST3.txt)来实现建立打开一个文本文件,并用一个for循环来依次读入校园景点信息,每一个景点信息存放为一行,信息读入完成关闭ST3.(2) void find(int i)与void allvexs()函数这里的整型参数i代表着需要查询的校园景点的编号,使用ifstream fin(ST3.txt)来打开存放有所用景点信息的文本文件,用一个for循环来查找该编号是否存在。在void allvexs()中用一个for循环屡次调用void find(int i)函数,实现对所有景点信息的查询。(3) void Dijkstra(MGraph *G,
14、int v,int path,int dist)函数这里使用了著名的Dijkstra算法,它可以实现求出图中某个源点到其余各顶点的最短路径。按照路径长度递增的次序产生最短路径。首先在程序中定义两个个数组distMaxVertexNum、pathMaxVertexNum,数组元素pathi用来存放各个顶点的顶点信息,其中每个元素disti表示起点V0到每个终点的最短路径长度。假设S表示以求出的最短路径的终点集合,那么下一条最短路径即从顶点V0到达顶点Vx的路径,它们之间的最短路径长度要么为弧的权值,要么为distj与Vj到Vx的权值之和。因此下一条路径可以用distx=G-edgesv0Vx或者
15、distx=distj+G-edgesVjVx来存放源点到该顶点的最短路径。(4) int DispPath(MGraph *G,int path,int dist,int start,int end)函数由于前面定义的一维数组dist和path已经在Dijstra函数中将最短路径上的顶点信息和源点到各顶点的距离保存了下来,这时就需要定义一个DispPath函数来输出最短路径上的顶点信息与总距离。系统通过调用用户输入的两个景点编号确定起始景点和目的景点,并使用一个while循环实现依次递减将各景点信息输出。 查询1号景点到4号景点的最短路径:(5) float Time(int a,int b
16、,int c)和int li(int a,int b,int i)函数在车辆类型的初始化中已经为各个车辆录入相关的车辆信息,使用一个一维数组Car.mycari.licheng来存放车辆运营的景点历程,规定它所能经过的景点。利用time()函数来求往返两景点需要的时间。在li()函数中首先需要用for遍历判断用户输入的两个景点是否在车辆规定的运营路径上,由于局部景点不通过,所以路程不能由最短路径求出,只能通过使运营路径上相邻的景点一一相加求出,除以车辆速度,返回一个时间值。最后用li()函数将各个信息输出,无法到达的景点给出相应提示。3.4 更新功能模块详细设计校园导游咨询系统的另一个功能模块
17、就是对于整个系统的数据具有一定的更新功能,对于管理人员而言,当校园环境发生实时变化,他们就需要修改系统内部原本的旧信息,把变化后的新信息录入到系统当中。对于游客而言,他们需要的是当下最新的景点和路径等校园信息,以确定他们的校园旅游方案,不至于出现错误的访问方式。由上面的表示可知,最初的景点数据信息已经保存在文本文件中了,每个景点信息都占用一行。当某个景点暂停开放或施工,游客是不能访问的,这时就需要从文本文件中删去其中的一行景点信息,游客在访问时就无法得到这个景点的信息。当校园中道路需要关闭通行时,除去路径首尾的两个景点之间的相邻关系,用无穷大替换掉原有的权值,使得他们无法直接到,这样就可以实现
18、道路的删除。同样,当开放新的校园景点和开通新校园道路时,系统也就必须具有校园景点和校园路径的增加功能,管理员可以在不同的地理方位定义新的景点,录入新的景点信息,增加景点与景点之间的相邻关系,通过改变权值,使它们能够直接到达。校园景点地理位置也可以根据实际规划进展修改,通过x,y坐标的调整可以改变整个校园平面图,合理使用可以达到良好的景点排版效果。对于校园的变化,以与乘客的需要,我们还要适当地调整校园车辆的运营线路,方便官大游客的访问。在更新模块中,要特别注意错误处理和条件的判定问题,因为旧的校园信息可能与需要更新的校园信息所冲突,例如地理位置冲突,景点名称冲突等,输入重复以与不合法的输入都可能
19、带给游客错误的信息,所以需要通过必要的提醒信息引导游客的使用。(1) void addvex()函数景点的添加函数。首先判断景点个数是否达到约定的最大景点个数,否如此继续添加新景点的各个景点信息,注意这里的X,Y坐标的输入。用一个for循环将邻接矩阵中新的行和列MGr.edgesij、MGr.edgesji初始化赋值为无穷大。用ofstream fout(ST3.txt,ios:app)打开原来存放景点信息的文本文件实现将新的景点信息添加到原文本文件的末行。图中顶点个数MGr.n+,添加完毕。增加景点编号为15的景点。(2) void addedge()函数校园道路添加函数。由用户输入需要添加
20、路径的原有的两个景点的编号,判断输入是否有错,输入正确时,通过这两个景点的坐标给这条路径赋上相应的权值。(3) void zuobiao() 函数修改校园景点坐标函数。由用户输入需要修改的景点的编号,接着给景点输入新的坐标值,主要判断该新坐标是否已经存在,否者会影响最短路径函数的使用。修改完成后,使用writefile()函数将修改后的景点信息重新录入前面定义的文本文件ST3.TXT中。修改景点编号为0的坐标信息。(4) void delroad()函数道路删除函数。由用户输入需要删除路径的两个景点的编号,判断该路径权值是否为无穷大,修改邻接矩阵中相应的矩阵元素,将路径长度权值赋值为无穷大。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 数据结构 校园 导游 系统
链接地址:https://www.desk33.com/p-9909.html