校园导游系统

合集下载

校园导游系统课程设计

校园导游系统课程设计

校园导游系统课程设计一、课程目标知识目标:1. 学生能理解校园导游系统的基本概念,掌握其功能结构与操作流程。

2. 学生能运用所学的信息技术知识,结合校园实际情况,设计出实用的校园导游系统。

3. 学生了解并掌握校园导游系统中的地理信息、历史文化等相关知识。

技能目标:1. 学生能够运用所学的编程语言或软件工具,独立或合作完成校园导游系统的设计与制作。

2. 学生通过实践操作,提高自己的信息收集、处理、分析及解决问题的能力。

3. 学生能够通过项目实践,提升自己的团队协作、沟通表达及组织协调能力。

情感态度价值观目标:1. 学生在学习过程中,培养对信息技术的兴趣和爱好,提高主动学习和探究的精神。

2. 学生通过了解校园的历史文化,增强对学校的热爱和自豪感,培养积极向上的情感态度。

3. 学生在团队协作中,学会尊重他人、关心同伴,形成良好的人际关系,树立正确的价值观。

本课程针对中学生设计,结合信息技术学科特点,注重实践操作和团队协作。

课程目标旨在帮助学生将所学知识运用到实际项目中,提高他们的综合能力和素养。

通过本课程的学习,使学生能够更好地了解校园,提升自我解决问题的能力,同时培养他们的团队精神和价值观。

二、教学内容1. 校园导游系统概述- 了解校园导游系统的定义、功能与意义。

- 分析现有校园导游系统的优缺点。

2. 校园地理信息与历史文化- 学习校园地理分布、建筑特点及历史文化背景。

- 收集并整理校园内重要景点的信息。

3. 信息技术应用- 掌握编程语言(如Python)或软件工具(如GIS软件)的基本使用方法。

- 学习数据库管理,整理并存储校园导游信息。

4. 系统设计与制作- 制定校园导游系统的设计方案,明确系统功能模块。

- 学习界面设计,掌握一定的UI设计原则。

- 编程实现校园导游系统的基本功能,如地图导航、景点介绍等。

5. 项目实践与团队协作- 分组进行项目实践,明确分工与协作。

- 定期进行项目进度汇报,交流问题与经验。

校园导游系统设计与实现

校园导游系统设计与实现

校园导游系统设计与实现第一篇:校园导游系统设计与实现校园导游系统设计与实现目录 1.设计要求 2.1需求分析 2.2概要设计2.3各个模块名称和功能 2.4 系统导游主界面2.4.1前台系统2.4.2后台系统2.4.3退出系统 3实验总结参考文献附件1.设计要求设计一个校园导游程序,为来访的客人提供各种信息查询服务。

2.1需求分析⑴设计学校的校园平面图。

选取若干个有代表性的景点抽象成一个无向带权图(无向网),所含景点不少于 30 个。

以图中顶点表示校内各景点,边上的权值表示两景点之间的距离。

⑵存放景点代号、名称、简介等信息供用户查询。

⑶为来访客人提供图中任意景点相关信息的查询。

⑷为来访客人提供图中任意景点之间的问路查询。

⑸可以为校园平面图增加或删除景点或边,修改边上的权值等。

景点距离图2.2概要设计校园旅游模型是由景点和景点之间的路径组成的,所以这完全可以用数据结构中的图来模拟。

用图的结点代表景点,用图的边代表景点之间的路径。

所以首先应设计一个图类。

结点值代表景点信息,边的权值代表景点间的距离。

结点值及边的权值用顺序表存储,所以需要设计一个顺序表类。

本系统需要查询景点信息和求一个景点到另一个景点的最短路径长度及路线,为方便操作,所以给每个景点一个代码,用结构体类型实现。

计算路径长度和最短路线时可用迪杰斯特拉(Dijkastra)算法实现。

最后用 switch 选择语句选择执行浏览景点信息或查询最短路径。

1、主界面设计为了实现校园导游系统各功能的管理,首先设计一个含有多个菜单项的主控菜单子程序以链接系统的各项子功能,方便用户使用本系统。

2、存储结构设计本系统采用图结构类型(mgraph)存储抽象校园图的信息。

其中,各景点间的邻接关系用图邻接矩阵类型(adjmatrix)存储;景点(顶点)信息用结构数组(vexs)存储,其中每个数组元素是一个结构变量,包含景点编号、景点名称及景点介绍三个分量;图的顶点个数及边的条数由分量 vexnum、arcnum 表示,它们是整型数据。

校园导游系统设计

校园导游系统设计

1、需求分析设计一个校园导游系统程序,为来访的客人提供各种服务的信息查询。

(1).设计潍坊学院校园平面图,所含的景点不少于10个。

以图中顶点表示校内各景点,存放景点名称、代号、简介等信息;以边表示路径,存放路径长度等相关信息。

(2).为来访客人提供图中任意景点相关信息的查询。

(3).为来访客人提供图中任意景点的问路查询,即查询任意两个景点之间的一条最短的简单路径。

2、设计思路校园旅游模型是由景点和景点之间的路径组成的,所以这完全可以用数据结构中的图来模拟。

用图的结点代表景点,用图的边代表景点之间的路径。

所以首先应设计一个图类。

结点值代表景点信息,边的权值代表景点间的距离。

结点值及边的权值用顺序表存储,所以需要设计一个顺序表类。

本系统需要查询景点信息和求一个景点到另一个景点的最短路径长度及路线,为方便操作,所以给每个景点一个代码,用结构体类型实现。

计算路径长度和最短路线时可用弗洛伊德(Floyd)算法实现。

最后用switch选择语句选择执行浏览景点信息或查询最短路径。

3 算法设计3.1 概要设计3.1.1 程序中包含的模块(1)主程序模块主函数:void main()打印菜单,景点,景点信息(2)查询模块景点信息查询:void introduce()最短路径查询:要查找的两景点的最短距离:int shortestdistance()用floyd算法求两个景点的最短路径:void floyd()(3)打印模块打印两个景点的路径及最短距离:void display(int i,int j)3.1.2模块间的调用关系主函数main()调用:void introduce()/*景点介绍*/int shortestdistance()/*要查找的两景点的最短距离*/ shorestdistance()调用:void floyd()/*用floyd算法求两个景点的最短路径*/void display(int i,int j) /* 打印两个景点的路径及最短距离*/ 3.2 详细设计/*定义符号变量/*#define INT_MAX 10000#define n 10/*定义全局变量*/int cost[n][n]; /* 边的值*/int shortest[n][n]; /* 两点间的最短距离*/int path[n][n]; /* 经过的景点*/string M[100]; /*景点名称*/string J[100]; /*景点介绍*//*自定义函数原型说明*/void introduce();int shortestdistance();void floyd();void display(int i,int j);定义各顶点之间的距离:for(i=0;i<=n;i++)for(j=0;j<=n;j++)cost[i][j]=INT_MAX;cost[1][2]=cost[2][1]=3;cost[2][3]=cost[3][2]=1;cost[3][4]=cost[4][3]=2;cost[4][5]=cost[5][4]=1;cost[5][6]=cost[6][5]=1;cost[3][6]=cost[6][3]=2;cost[1][4]=cost[4][1]=5;cost[1][7]=cost[7][1]=7;cost[4][7]=cost[7][4]=1;cost[7][5]=cost[5][7]=1;cost[7][8]=cost[8][7]=2;cost[8][9]=cost[9][8]=1;cost[5][9]=cost[9][5]=2;cost[8][5]=cost[5][8]=2;cost[8][10]=cost[10][8]=1;cost[1][1]=cost[2][2]=cost[3][3]=cost[4][4]=cost[5][5]=0;cost[6][6]=cost[7][7]=cost[8][8]=cost[9][9]=cost[10][10]=0;界面菜单设计:while(1){printf("-------------------欢迎使用校园导游系统!-------------------\n");printf(" 欢迎来到潍坊学院!祝您旅途愉快! \n");printf(" 菜单选择\n");printf("1.景点信息查询\n");printf("2.景点最短路径查询\n");printf("3.退出系统\n\n");printf(" 学校景点列表(以下是您可能要去的地方):\n"); printf("1:潍坊学院大门");printf("2:行政楼");printf("3:餐厅");printf("4:实验楼");printf("5:图书馆\n");printf("6:商业区");printf("7:教学楼");printf("8:篮球场");printf("9:体育馆");printf("10:弘德湖\n");printf("-----------------------------------------------------------\n");printf("请选择服务:");scanf("\n%c",&k);switch(k){case '1':printf("进入景点信息查询:");introduce();break;case '2':printf("进入最短路径查询:");shortestdistance();break;case '3':printf("谢谢使用本系统!\n");exit(0);default:printf("输入信息错误!\n请输入字母1或2或3.\n");break;}}介绍景点:void introduce(){int a;printf("您想查询哪个景点的详细信息?\n请输入景点编号:");scanf("%d",&a);getchar();printf("\n");switch(a){case 1:printf("1:学校大门\n\n学校的正门,气势宏伟。

校园导游系统数据结构实习报告

校园导游系统数据结构实习报告

校园导游系统数据结构实习报告校园导游系统数据结构实习报告一、引言随着信息技术的快速发展,数字化校园已成为许多学校的重要建设目标。

其中,校园导游系统作为数字化校园的一部分,对于提高校园文化氛围,方便新生和游客游览校园,增强校园归属感起到了重要作用。

在这次实习中,我们的主要任务是设计和实现一个校园导游系统,采用数据结构技术对校园地图进行建模和优化,以提供高效、便捷的导游服务。

二、系统设计1、数据结构选择:考虑到校园地图的复杂性,我们采用了图(Graph)作为基础数据结构。

图是由节点(顶点)和边组成的集合,可以很好地表示校园中各个地点之间的连接关系。

2、地图表示:我们将校园地图转化为图,其中每个地点对应一个节点,地点之间的路径对应边。

为了更准确地表示实际环境,我们使用了带权重的边,权重表示路径的长度或美观度。

3、导游路径规划:我们使用了最短路径算法,如Dijkstra算法和A*算法,来规划最佳游览路径。

用户可以在系统中设定起点和终点,系统会根据图中的边和权重计算出最短路径。

4、语音导航:系统可以通过用户的手机实时获取位置信息,并使用TTS(Text-to-Speech)技术将规划的路径转化为语音提示,方便用户边听边走。

5、数据库设计:我们设计了一个关系型数据库,用于存储校园地图信息、用户信息等。

通过使用索引和查询优化技术,提高了系统性能。

三、系统实现1、环境配置:我们使用了Python语言和相关的数据结构库来实现系统。

开发环境为Windows 10操作系统,数据库采用了MySQL。

2、代码实现:我们对Python语言和相关库进行了深入学习,掌握了图算法的实现方法。

在实现过程中,我们遇到了一些问题,如最短路径算法的优化、语音导航的实时性等。

通过查阅资料、讨论和实践,我们成功解决了这些问题。

3、测试与调试:我们对系统进行了全面的测试,包括单元测试、集成测试和系统测试。

在测试过程中,我们发现并修复了一些bug,提高了系统的稳定性和可靠性。

校园导游咨询系统.

校园导游咨询系统.

c) 系统完成的功能: 来访客人浏览校园全景 查询相关景点的信息 可查询所有浏览路线 来访客人可以查询从某一景点到另一景点的最短路径;
d) 程序设计分析: 利用弗洛伊德算法来计算出起点到各个顶点之间的最短路径并进行 存储,弗洛伊德算法将找出每一对顶点之间的最短路径;
e) 系统的输入与输出: 键盘输入,输出等。
⑦初始化模块 函数:MGraph * CreatUDN(MGraph *G) 主要功能:初始化图形,接受用户输入 ⑧选择模块 函数:void Floyd(MGraph *G) 主要功能:选择出发点和目的地 ⑨确定位置模块 函数:int LocateVex(MGraph *G,char* v) 主要功能:定点位置 ⑩菜单模块 函数:void Menu(void) 主要功能:显示菜单,供用户选择
软件开发中的总体设计:
详细设计内容和过程
Browser函数模块
void Browser(MGraph *G)
{
int v;
printf("┏━━┳━━━━━━━━┳━━━━━━━━━━━━━━━━━━━┓\n");
printf("┃编号┃景点名称 ┃简介
┃\n");
for(v=0;v<G->vexnum;v++)
③调用函数模块 函数:void cmd(void) 主要功能:根据用户选择,调用完成各个功能的子函数 ④浏览函数模块 函数:void Browser(MGraph *G) 主要目的:浏览校园全景 ⑤路径查询模块 函数:void ShortestPath_DIJ(MGraph * G) 主要功能:求起点到各个顶点之间的最短路径 ⑥景点查询模块 函数:void Search(MGraph *G) 主要功能:寻找要查询的景点,并输出该景点的信息

校园导游系统实验报告

校园导游系统实验报告

竭诚为您提供优质文档/双击可除校园导游系统实验报告篇一:校园导游图系统数据结构实验报告一.设计目的通过布置具有一定难度的实际程序设计项目,使学生进一步理解和掌握课堂上所学各种基本抽象数据类型的逻辑结构、存储结构和操作实现算法,以及它们在程序中的使用方法;使学生掌握分析问题,求解问题的方法并提高学生设计编程实现的能力。

二.设计内容用无向网表示学校的校园景点平面图,图中顶点表示主要景点,存放景点的编号、名称、简介等信息,图中的边表示景点间的道路,存放路径长度等信息。

要求能够回答有关景点介绍、游览路径等问题。

游客通过终端可询问:(1)从某一景点到另一景点的最短路径。

(2)游客从公园进入,选取一条最佳路线。

(3)使游客可以不重复地浏览各景点,最后回到出口(出口就在入口旁边)。

[基本要求](1)将导游图看作一张带权无向图,顶点表示公园的各个景点,边表示各景点之间的道路,边上的权值表示距离.为此图选择适当的数据结构。

(2)把各种路径都显示给游客,由游客自己选择浏览路线。

(3)画出景点分布图于屏幕上。

[实现提示] (1)构造一个无向图g并用邻接矩阵来存储。

(2)利用迪杰斯特拉算法来计算出起点到各个顶点之间的最短路径用二维数组p[i][]来记录,最短路径长度就用一维数组d[i]存放;i的范围:0~20。

(3)一维数组have[]是用来记录最短路径出现顶点的顺序。

(4)根据起点和终点输出最短路径和路径长度。

三.概要设计1.功能模块图;2.各个模块详细的功能描述。

1.浏览校园全景:采用深度遍历遍历图进行所有景点浏览,将遍历景点信息输出2.查看所有游览路线:用户输入一个景点,采用迪杰斯特拉算法将从该景点起所有路径查出并输出在屏幕上3.选择出发点和目的地:用户输入一个出发点和一个目的地编号,采用弗洛伊德算法求出发点到目的地的最短路径4.查看景点信息:直接用编号进行单个景点查询。

四.详细设计重点设计及编码在求最短路径时采用迪杰斯特拉算法//迪杰斯特拉算法来计算出起点到各个顶点之间的最短路径,v0为起点voidshortestpath_DIJ(mgraph*g) {//迪杰斯特拉算法,求从顶点v0到其余顶点的最短路经及其带权长度d[v]//若p[v][w]为1,则w是从v0到v的最短路经上的顶点//final[v]类型用于设置访问标志intv,w,i,min,final[20],D[20],p[20][20],t=0,x,flag=1 ,v0;//vo为起始景点的编号while(flag){printf("请输入一个起始景点编号:");scanf("%d",if(v0g->vexnum){printf("景点编号不存在!请重新输入景点编号:");scanf("%d",}if(v0>=0}for(v=0;vvexnum;v++){fin al[v]=0;//初始化各顶点访问标志D[v]=g->arcs[v0][v].adj;//v0到各顶点v的权值赋值给d[v]for(w=0;wvexnum;w++)//初始化p[][]数组,各顶点间的路径全部设置为空路径0p[v][w]=0;if(D[v]final[v0]=1;//v0的访问标志设为1,v属于s集for(i=1;ivexnum;i++)//对其余g.vexnum-1个顶点w,依次求v到w的最短路径{min=InFInITY;for(w=0;wvexnum;w++)//在未被访问的顶点中,查找与v0最近的顶点vif(!final[w])if(D[w]vexnum;w++)//修改v0到其余各顶点w的最短路径权值d[w]if(!final[w]//修改v0到w的权值d[w]for(x=0;xvexnum;x++)//所有v0到v的最短路径上的顶点x,都是v0到w的最短路径上的顶点p[w][x]=p[v][x];p[w][w]=1;}}for(v=0;vvexnum;v++)//输出v0到其它顶点v的最短路径{if(v0!=v)printf("%s",g->vexs[v0].name);//输出景点v0的景点名for(w=0;wvexnum;w++)//对图中每个顶点w,试探w是否是v0到v的最短路径上的顶点{if(p[v][w]t++;}if(t>g->vexnum-1}}五.测试数据及运行结果1.正常测试数据和运行结果1.浏览校园全部景点信息:2.查看景点信息:3.输出两个景点间的最短路径:2.异常测试数据及运行结果1.当输出错误编号时程序没有反映,继续输入直到输入正确:2.当查询两景点编号相同时的最短路径时,结果如下:篇二:校园导游实验报告[1]校园导游实验报告学号:20XX30457018姓名:熊博班级:09计科1班完成日期:20XX-12-211、问题描述制作陶瓷学院的校园导游图,游客通过终端可询问:(1)从某一景点到另一景点的最短路径。

微校校园导游系统项目概要介绍及评分要求

微校校园导游系统项目概要介绍及评分要求

微校校园导游系统项目概要介绍及评分要求Micro Campus 微校校园导游系统项目概要介绍及评分要求2015.10一、项目背景随着我国高等教育的发展,校园建设进入了新高潮,面对着发展的需要,各校都在进行着大规模的校园建设。

而大学校园的逐渐扩建和美化,以及人们对高校人文历史的日益重视,越来越多的人将旅游的目的地设定为当地大学校园。

而各校方对此展示出积极的态度,加大校园旅游文化的深入,以此来展示高校的建设发展,同时也吸引更多的学子前来就学。

每当寒暑假来临,广大的学生家长们都想带自己的孩子领略各大知名高校的文化风貌,感受高等学府的精神魅力。

一些有志青年工作之余也希望能重返校园,与大学生一起激昂青春。

随着开放式校园的普及,各大高校也成为了众多游客的必看景点之一。

然而,高校旅游蓬勃发展至今,也开始面临很多的问题:专业高校导游难寻,高校游深度不足,网络上的图文简介缺乏趣味性,难以博得游客的喜爱。

一个有深度、有趣味的专业导游应用成为众多高校管理者和游客翘首以盼的产品。

二、问题描述现阶段国内外的导游系统大多是服务于著名景区,大学校园的导游系统却很少见。

而且目前流行的导游系统,存在以下问题:大多是电脑端的应用程序,不能随时随地为使用者提供方便。

侧重于多媒体的演示,虽然界面丰富,但缺少景点间的地理位置的分析。

即使地图有标注景点,但无法准确的计算并且显示两景点间的最短路径。

缺乏实时的定位功能,使用户不能根据自己的实际位置进行相关操作。

一般不涉及校园新闻动态的展示,使得初入校园的人,尤其是新生,对学校工作开展一无所知,不利于尽快融入校园生活。

侧重于功能实现,而往往忽略用户浏览信息的保存,使得用户每次使用都要重新查询,浪费时间等。

缺乏针对每个用户的智能推荐,比如路径,景点等的推荐。

高校缺乏统一的旅游资源管理平台,提供相应的旅游资源介绍,校园新闻,校园活动的发布等三、用户群体中小学生、学生家长、有志青年等高校游客刚踏入大学校校园的新生和渴望深入了解校园文化的本校学生高校旅游接待管理部门四、项目要求请从校方的角度,设计一套基于移动互联网,满足校方需求的方案,该整体解决方案包括以下要求:(1)策划方案·就现高校旅游业情况进行分析。

校园导游系统实验报告

校园导游系统实验报告

竭诚为您提供优质文档/双击可除校园导游系统实验报告篇一:校园导游图系统数据结构实验报告一.设计目的通过布置具有一定难度的实际程序设计项目,使学生进一步理解和掌握课堂上所学各种基本抽象数据类型的逻辑结构、存储结构和操作实现算法,以及它们在程序中的使用方法;使学生掌握分析问题,求解问题的方法并提高学生设计编程实现的能力。

二.设计内容用无向网表示学校的校园景点平面图,图中顶点表示主要景点,存放景点的编号、名称、简介等信息,图中的边表示景点间的道路,存放路径长度等信息。

要求能够回答有关景点介绍、游览路径等问题。

游客通过终端可询问:(1)从某一景点到另一景点的最短路径。

(2)游客从公园进入,选取一条最佳路线。

(3)使游客可以不重复地浏览各景点,最后回到出口(出口就在入口旁边)。

[基本要求](1)将导游图看作一张带权无向图,顶点表示公园的各个景点,边表示各景点之间的道路,边上的权值表示距离.为此图选择适当的数据结构。

(2)把各种路径都显示给游客,由游客自己选择浏览路线。

(3)画出景点分布图于屏幕上。

[实现提示] (1)构造一个无向图g并用邻接矩阵来存储。

(2)利用迪杰斯特拉算法来计算出起点到各个顶点之间的最短路径用二维数组p[i][]来记录,最短路径长度就用一维数组d[i]存放;i的范围:0~20。

(3)一维数组have[]是用来记录最短路径出现顶点的顺序。

(4)根据起点和终点输出最短路径和路径长度。

三.概要设计1.功能模块图;2.各个模块详细的功能描述。

1.浏览校园全景:采用深度遍历遍历图进行所有景点浏览,将遍历景点信息输出2.查看所有游览路线:用户输入一个景点,采用迪杰斯特拉算法将从该景点起所有路径查出并输出在屏幕上3.选择出发点和目的地:用户输入一个出发点和一个目的地编号,采用弗洛伊德算法求出发点到目的地的最短路径4.查看景点信息:直接用编号进行单个景点查询。

四.详细设计重点设计及编码在求最短路径时采用迪杰斯特拉算法//迪杰斯特拉算法来计算出起点到各个顶点之间的最短路径,v0为起点voidshortestpath_DIJ(mgraph*g) {//迪杰斯特拉算法,求从顶点v0到其余顶点的最短路经及其带权长度d[v]//若p[v][w]为1,则w是从v0到v的最短路经上的顶点//final[v]类型用于设置访问标志intv,w,i,min,final[20],D[20],p[20][20],t=0,x,flag=1 ,v0;//vo为起始景点的编号while(flag){printf("请输入一个起始景点编号:");scanf("%d",if(v0g->vexnum){printf("景点编号不存在!请重新输入景点编号:");scanf("%d",}if(v0>=0}for(v=0;vvexnum;v++){fin al[v]=0;//初始化各顶点访问标志D[v]=g->arcs[v0][v].adj;//v0到各顶点v的权值赋值给d[v]for(w=0;wvexnum;w++)//初始化p[][]数组,各顶点间的路径全部设置为空路径0p[v][w]=0;if(D[v]final[v0]=1;//v0的访问标志设为1,v属于s集for(i=1;ivexnum;i++)//对其余g.vexnum-1个顶点w,依次求v到w的最短路径{min=InFInITY;for(w=0;wvexnum;w++)//在未被访问的顶点中,查找与v0最近的顶点vif(!final[w])if(D[w]vexnum;w++)//修改v0到其余各顶点w的最短路径权值d[w]if(!final[w]//修改v0到w的权值d[w]for(x=0;xvexnum;x++)//所有v0到v的最短路径上的顶点x,都是v0到w的最短路径上的顶点p[w][x]=p[v][x];p[w][w]=1;}}for(v=0;vvexnum;v++)//输出v0到其它顶点v的最短路径{if(v0!=v)printf("%s",g->vexs[v0].name);//输出景点v0的景点名for(w=0;wvexnum;w++)//对图中每个顶点w,试探w是否是v0到v的最短路径上的顶点{if(p[v][w]t++;}if(t>g->vexnum-1}}五.测试数据及运行结果1.正常测试数据和运行结果1.浏览校园全部景点信息:2.查看景点信息:3.输出两个景点间的最短路径:2.异常测试数据及运行结果1.当输出错误编号时程序没有反映,继续输入直到输入正确:2.当查询两景点编号相同时的最短路径时,结果如下:篇二:校园导游实验报告[1]校园导游实验报告学号:20XX30457018姓名:熊博班级:09计科1班完成日期:20XX-12-211、问题描述制作陶瓷学院的校园导游图,游客通过终端可询问:(1)从某一景点到另一景点的最短路径。

最新校园导游系统设计与实现资料

最新校园导游系统设计与实现资料

校园导游系统设计与实现目录1.设计要求2.1需求分析2.2概要设计2.3各个模块名称和功能2.4 系统导游主界面2.4.1前台系统2.4.2后台系统2.4.3退出系统3实验总结参考文献附件1.设计要求设计一个校园导游程序,为来访的客人提供各种信息查询服务。

2.1需求分析⑴设计学校的校园平面图。

选取若干个有代表性的景点抽象成一个无向带权图(无向网),所含景点不少于30 个。

以图中顶点表示校内各景点,边上的权值表示两景点之间的距离。

⑵存放景点代号、名称、简介等信息供用户查询。

⑶为来访客人提供图中任意景点相关信息的查询。

⑷为来访客人提供图中任意景点之间的问路查询。

⑸可以为校园平面图增加或删除景点或边,修改边上的权值等。

景点距离图2.2概要设计校园旅游模型是由景点和景点之间的路径组成的,所以这完全可以用数据结构中的图来模拟。

用图的结点代表景点,用图的边代表景点之间的路径。

所以首先应设计一个图类。

结点值代表景点信息,边的权值代表景点间的距离。

结点值及边的权值用顺序表存储,所以需要设计一个顺序表类。

本系统需要查询景点信息和求一个景点到另一个景点的最短路径长度及路线,为方便操作,所以给每个景点一个代码,用结构体类型实现。

计算路径长度和最短路线时可用迪杰斯特拉(Dijkastra)算法实现。

最后用switch 选择语句选择执行浏览景点信息或查询最短路径。

1、主界面设计为了实现校园导游系统各功能的管理,首先设计一个含有多个菜单项的主控菜单子程序以链接系统的各项子功能,方便用户使用本系统。

2、存储结构设计本系统采用图结构类型(mgraph)存储抽象校园图的信息。

其中,各景点间的邻接关系用图邻接矩阵类型(adjmatrix)存储;景点(顶点)信息用结构数组(vexs)存储,其中每个数组元素是一个结构变量,包含景点编号、景点名称及景点介绍三个分量;图的顶点个数及边的条数由分量vexnum、arcnum 表示,它们是整型数据。

数据结构-校园导游系统

数据结构-校园导游系统

课程设计论文(附有代码!)题目:校园导游咨询学院:计算机科学与工程学院专业:计算机科学与技术姓名:学号:指导教师:2014年9月22日摘要桂林众山环绕,风景优美,加之近年来校园环境也得到不断地改善,来访校园的游客逐渐增加,为了方便众多游客对校园景点的参观,需要给来访人士提供校园导游咨询服务,利用计算机建立一个便利的咨询系统可以很好地解决这个问题。

在本设计实验中,我所采用的是邻接矩阵作为数据的存储结构,用不同的功能模块对两地距离和校园道路信息进行编辑。

当游客来访时,系统能根据用户输入的景点代号查询景点信息,提供任意两个景点间的最短路径查询,并能查询校园内的交通信息,方便游客访问。

工作人员还可以为校园更新景点以及路径信息。

本文将简单介绍该系统的开发背景,详细介绍系统的主要设计思路,函数的建立和使用过程,该系统功能的实现方式和实现结果,以及对所遇到问题的分析解决,最后对该系统进行总结描述。

关键词:校园导游咨询;C++;数据结构;最短路径;查询;目录引言 (1)1系统概述 (1)2需求分析 (1)2.1 系统需求 (1)2.2 开发环境 (2)3详细设计 (3)3.1 系统结构 (3)3.2 数据结构设计以及数据的初始化 (4)3.2.1 图结构设计 (4)3.2.2 数据的初始化 (4)3.3 查询模块的详细设计 (5)3.3.1 查询模块功能子函数设计 (5)3.4 更新功能模块详细设计 (7)3.4.1 更新模块功能子函数设计 (8)4所遇到的问题和分析解决 (10)5系统特色及关键 (11)6结论 (12)参考文献 (13)引言随着计算机科学技术的不断提高,计算机依靠其强大的功能已经成为人们生活中不可缺少的一部分,计算机能解决人类生活中的大部分问题,为人类文明和社会进步做出了巨大贡献。

桂林是一个全世界著名的旅游城市,近几年来旅游业得到了飞速的发展,来自各个国家各个城市的游客给城市带来了巨大的经济效益。

校园导游系统的设计及开发

校园导游系统的设计及开发

76软件开发与应用Software Development And Application电子技术与软件工程Electronic Technology & Software Engineering●基金项目:四川工商职业技术学院科研项目,“基于物联网应用的校园智能导游系统研发”,课题编号:2015NC02。

全国轻工职业教育教学指导委员会2019年度项目,项目名称:“‘一带一路’背景下轻工类高职院校旅游专业国际化人才培养模式研究——以四川工商职业技术学院为例”,项目编号:QGHZW2019036。

1 校园导游系统的设计背景及功能需求1.1 校园导游系统的设计背景目前,以高校校园文化为主线的教育休闲旅游市场潜力巨大,为高校校园开发个性化旅游景区带来良好的发展机遇[1]。

对于校园游客来说,一般都是拟报考的考生和家长,大部分应该是第一次到学校,不会非常的熟悉校园环境[2]。

因此,开发校园导游系统对校园游客而言,有很大的帮助,有助于提升游览学校的体验感。

同时,当前我国在开展高职旅游管理专业教学时仍存在一定的问题。

具体而言,实践教学活动通常集中在中餐厅、酒店、客房、茶艺等场所,而这类场所实训意义并不大,由于面积较小,设备设施落后,无法引导学生从真正意义上掌握知识和技能[3]。

此外,一些学校缺乏必要的教学硬件支持,如必要的实习实训教室与配套的设备。

有的学校根本没有这些设施,有设施的也多由于管理问题利用率不高[4]。

因此,校园导游系统的设计和开发,亦可作为高职院校旅游专业人才培养的实训载体。

1.2 校园导游系统的功能需求以我校为例,校园导游系统的设计既需要满足不同的校园游客能根据自己的喜好,自行选择游览路线,又能在旅游专业国际化人才培养过程中作为专业课程的实训设备载体,还能直接应用于我校留学生作为熟悉校园生活的辅助工具。

因此,要求校园导游系统能实现以下多项功能:(1)能方便进行参观路线的信息布点,具有低功耗模式,能依靠纽扣电池或微型锂电池长期待机和运行,也方便更换电池或移动电源充电;(2)每个信息布点之间的信号相互不干扰,即使布点位置在相邻的2个房间之间,也不出现“串台”;(3)能播放参观路线中各个信息的语音,并能方便学生或老师录制和更新语音信息,甚至方便离线录制;(4)能方便校园游客自行选择游览路线和游览地点,例如:一条路线上虽然布置有多个信息点,但在游览过程中只触发游客选择的游览地点;(5)能有一定的定位功能,能远程显示游客的游览进程。

数据结构课程设计——校园导游咨询系统

数据结构课程设计——校园导游咨询系统

数据结构课程设计——校园导游咨询系统在当今数字化的时代,信息的高效获取和处理变得至关重要。

对于一个大型校园来说,拥有一个便捷的导游咨询系统能够极大地提升访客和新生的体验。

本次数据结构课程设计的目标就是创建一个实用的校园导游咨询系统。

一、系统需求分析首先,我们需要明确这个校园导游咨询系统的主要功能和用户需求。

对于访客和新生来说,他们可能希望了解校园内各个景点的位置、简介,以及如何从当前位置到达目标景点的最优路径。

系统应该能够提供清晰准确的地图信息、景点介绍和导航指引。

从学校管理的角度出发,系统需要易于更新和维护,能够及时添加新的景点或者修改已有景点的信息。

同时,为了保证系统的稳定性和安全性,需要有一定的权限管理机制,防止未经授权的修改和访问。

二、数据结构选择为了实现上述功能,我们需要选择合适的数据结构来存储和管理校园的相关信息。

对于校园地图的表示,可以使用图(Graph)这种数据结构。

将校园中的各个景点看作图中的节点,景点之间的道路看作边,边的权重可以表示道路的长度或者行走所需的时间。

为了存储景点的详细信息,如名称、简介等,可以使用结构体或者类。

每个景点的结构体或类成员包含景点的标识符、名称、简介等属性。

对于路径搜索和导航,我们可以选择迪杰斯特拉(Dijkstra)算法或者 A算法来计算最短路径。

三、系统功能模块设计1、地图显示模块能够以直观的方式展示校园的地图,包括各个景点的位置和连接关系。

支持缩放、平移等操作,方便用户查看不同区域的细节。

2、景点信息查询模块用户可以输入景点名称或关键词,系统能够快速检索并显示相应景点的详细信息。

3、路径规划模块根据用户输入的起始景点和目标景点,计算并显示最优的行走路径。

能够提供多种路径选择,如最短路径、最少转弯路径等。

4、周边设施查询模块用户可以查询某个景点周边的餐厅、商店、卫生间等设施的位置。

5、用户管理模块只有授权的管理员能够对校园景点信息和地图进行修改和更新。

校园导游系统 数据结构实习报告

校园导游系统 数据结构实习报告

校园导游系统数据结构实习报告在当今数字化的时代,校园导游系统对于提升校园的服务质量和访客体验具有重要意义。

本次数据结构实习,我致力于开发一个实用的校园导游系统,通过运用所学的数据结构知识,实现了系统的核心功能,并对整个开发过程进行了深入的总结和反思。

一、系统需求分析校园导游系统旨在为访客提供便捷的校园导航服务,帮助他们快速了解校园布局、建筑物位置以及相关设施信息。

具体需求包括:1、校园地图的构建与展示:能够清晰呈现校园的地理布局,包括建筑物、道路、绿地等。

2、地点查询功能:访客可以输入目标地点,系统能够快速定位并提供导航路径。

3、周边设施查询:如餐厅、图书馆、停车场等,方便访客了解周边服务设施。

二、数据结构选择为了实现上述功能,需要选择合适的数据结构来存储和管理校园信息。

经过分析,我选用了以下几种数据结构:1、图结构用图来表示校园的地理布局,将建筑物和道路视为图的顶点和边。

可以使用邻接矩阵或邻接表来存储图的关系,便于进行路径搜索和遍历。

2、哈希表用于快速查找地点和设施的信息,提高查询效率。

3、链表存储导航路径,方便进行路径的添加和删除操作。

三、系统功能实现1、地图构建首先,对校园进行实地考察,收集建筑物和道路的位置信息。

然后,将这些信息转化为图的顶点和边,并建立相应的邻接关系。

2、地点查询当访客输入地点名称时,通过哈希表快速定位到对应的顶点。

接着,使用图的搜索算法(如迪杰斯特拉算法)计算从当前位置到目标位置的最短路径。

3、周边设施查询为每个设施建立相应的标识,并在哈希表中存储设施的位置和相关信息。

根据访客的当前位置,搜索附近一定范围内的设施。

四、系统界面设计为了提供友好的用户体验,设计了简洁直观的系统界面。

界面主要包括以下几个部分:1、地图展示区以图形化的方式展示校园地图,标注出建筑物和道路。

2、查询输入框访客可以在此输入地点或设施名称进行查询。

3、结果显示区显示查询结果,包括目标地点的位置、导航路径以及周边设施信息。

基于微信平台的校园智能导游系统介绍

基于微信平台的校园智能导游系统介绍

校园智能导游系统系统&功能简介北京迅邦科技2016.05校园智能导游系统系统介绍校园智能导游系统是基于GPS定位的校园导游系统:访客只需关注校园微信平台,即可使用智能导游服务,访客可以选择感兴趣的游览线路,沿途可以随时通过手机定位,通过地图找到自己所处的位置,聆听所处的景观的真人语音介绍。

除此之外,还具备各类校园热点、新生接待地点、ATM机、配套商家等多项功能。

通过校园智能导游平台,三维地图中的热点信息以主动弹出的方式出现,能够让访客更快捷的找到,距离自己多远。

尤其对于新生来说,从进入校门起,所需要的所有信息都可以通过校园导游便捷查询,为学子们快速的融入新的学习和生活,提供最大的便利。

访客无需下载任何软件或客户端,关注官方公众号即可使用,校园智能导游一切为师生服务!2系统优势3校园单位的信息大都跟地理位置有关,基于位置的信息服务是移动应用的强项。

互联网服务几乎可以整合吃、住、行、游、购、学习等各个方面的信息。

无需安装,使用简单;可结合图片、文字、音频、视频、360全景等方式生动展现景点的信息和周边服务。

访客的移动性、信息需求的多样性、及时性、智能地图导游对于校庆、会议接待来说是尤为重要的。

通过微博,微信等分享功能,快速分享到朋友圈,实现校园品牌宣传。

校园导游系统会议接待地理性广泛性简单易用口碑宣传新生接待无论是新生接待处,还是公寓、宿舍、食堂等必要信息,都离不开地图导航。

为什么要用校园智能导游?校园智能导游系统使用流程4校园三维全景地图展示GPS实时定位功能校园单位线路实时查询校园单位信息查询与讲解单位内部及周边信息查询扫描二维码、或关注校园微信公众平台,即可使用。

手机打开微信扫一扫校园智能导游系统校园智能导游系统功能介绍1、校园全景地图展示以3D地图的形式展现校园全貌,快速放大、缩小、移动,方便访客对校区全面了解,统筹规划线路。

配有校园三维地图,旅游线路、沿途单位景点、周边服务设施都可以在地图上展示,一目了然。

校园导游系统

校园导游系统

课程设计说明书课程名称:数据结构与算法设计题目:校园导游系统院系:计算机科学与信息工程学院学生姓名:学号:专业班级:计算机科学与技术信息技术方向11-1 指导教师:2013年6月21日课程设计任务书摘要:随着社会经济的发展,人们接近自然的机会就越多,因此外出旅游现在被越来越多的都市人所看中,所以如何快速方便的找到我们想要的旅游景点的信息和最短路径,如何简单的修改相关的信息,就成了很重要的问题。

本设计基于图的结构,用数组表示法创建一个无向图,针对游客的实际需求,将安阳工学院的景点编号、名称、介绍等信息放入到图的顶点当中,将路径长度的信息存放在弧当中。

利用弗洛伊德算法求出两个景点之间的最短路径,利用迪杰斯特拉算法来求从一个景点到其他剩余的所有景点的最短距离;用相应的函数来查找景点,并显示出它的编号,信息,简介。

并进行一定的界面美化,更贴近用户,相应的提示使用户操作起来更容易。

关键词:最短路径、查找景点信息、无向图目录1. 设计背景 (2)1.1程序设计内容 (2)1.2程序设计要求 (2)2.设计方案 (3)2.1 校园景点图 (3)2.2 程序模块图 (3)2.3 主函数设计简要 (3)2.4 各函数模块的功能 (4)3. 方案实施 (4)3.1 程序执行流程图 (4)3.2 主函数设计思想 (4)4. 结果测试 (5)4.1 主函数功能模块测试 (5)4.2 主函数功能测试 (5)4.3 各功能所执行的操作 (6)5. 结论 (6)6. 收获与致谢 (7)7. 参考文献 (7)8. 附件 (7)1. 设计背景1.1程序设计内容根据设计要求,利用无向图将学校的景点作为图的顶点,顶点的边作为景点之间的距离进行存储,根据游客的需求,查找各个景点的信息,找出两个景点的最短路径,实现校园的导游目的。

1.2程序设计要求用无向网表示你所在学校的校园景点平面图,图中顶点表示主要景点,存放景点的编号、名称、简介等信息,图中的边表示景点间的道路,存放路径长度等信息。

校园导游系统课程设计

校园导游系统课程设计

校园导游系统课程设计一、课程设计概述校园导游系统课程设计是一门综合性较强的课程,旨在让学生通过实践操作,掌握软件开发的基本流程和技能,并且培养学生的团队协作意识和创新精神。

本课程设计主要涉及到需求分析、系统设计、编码测试等方面,同时也包括了软件工程的基本原理和方法。

二、课程设计目标1.熟悉软件开发的基本流程和技能;2.掌握需求分析、系统设计、编码测试等方面的知识;3.培养学生的团队协作意识和创新精神;4.提高学生解决问题的能力和实践操作能力。

三、教学内容1.需求分析:包括用户调研、问题定义、功能规格说明书等;2.系统设计:包括架构设计、模块划分、数据库设计等;3.编码实现:包括前端页面开发、后台逻辑开发等;4.测试与维护:包括单元测试、集成测试以及维护更新等。

四、教学方法1.理论授课:介绍软件工程相关知识,如需求分析、系统设计、编码测试等;2.案例分析:通过分析实际案例,让学生了解软件开发中的常见问题及解决方法;3.团队合作:将学生分成小组,让他们在团队中协作完成一项任务;4.实践操作:让学生通过实践操作,掌握软件开发的基本流程和技能。

五、教学评估1.课堂测验:对学生掌握的理论知识进行考核;2.作业评估:对学生完成的作业进行评估,包括需求文档、设计文档、代码实现以及测试报告等;3.团队协作评估:对学生在团队中的表现进行评估,包括沟通协调能力、工作质量等;4.项目演示与答辩:让学生展示自己完成的项目,并回答相关问题。

六、课程设计要求1.独立完成需求分析、系统设计、编码测试等环节,并撰写相应文档;2.按时提交作业和项目进度报告,并参加相应的评估和演示答辩活动;3.积极参与团队协作,在团队中承担相应角色,并保证工作质量和进度;4.遵守课程设计相关规定和要求,如不得抄袭、不得泄露他人隐私等。

七、总结校园导游系统课程设计是一门综合性较强的课程,通过实践操作,让学生掌握软件开发的基本流程和技能,并培养团队协作意识和创新精神。

校园导游系统设计开题报告

校园导游系统设计开题报告

校园导游系统设计开题报告1. 项目背景随着高校规模的不断扩大,新生和游客在校园中迷失的情况日益增多。

校园导游系统的设计旨在为人们提供一个简单、方便、快捷的方式来浏览和探索校园。

该系统将提供校园地图、导航功能、景点介绍等功能,帮助用户更好地了解校园并规划自己的行程。

2. 项目目标校园导游系统的设计目标如下:•提供详细的校园地图,包含主要教学楼、宿舍区、图书馆等重要地点;•支持用户根据个人需求进行导航,提供最佳路线规划;•提供校园景点介绍,包括历史背景、建筑特点等信息;•支持用户自定义行程,可以根据个人兴趣选择参观的景点;•提供多语言支持,方便国际游客使用。

3. 系统设计3.1 技术选择在系统设计过程中,我们将使用以下技术和工具:•前端开发:使用HTML、CSS和JavaScript进行用户界面设计和交互;•后端开发:使用Python语言和Django框架进行服务器端开发;•数据库:使用MySQL存储校园地图、景点介绍等数据;•地图API:使用Google Maps API提供地图显示和导航功能;•多语言支持:使用gettext库实现多语言支持。

3.2 系统模块校园导游系统将被划分为以下模块:•用户认证模块:负责用户注册、登录和注销等功能;•地图模块:提供校园地图的显示和导航功能;•景点模块:负责提供校园景点的信息展示和介绍;•行程模块:支持用户自定义行程的创建、编辑和查看。

3.3 数据库设计针对校园导游系统的需求,设计如下数据库表:•用户表:用于存储用户的基本信息,包括用户名、密码等;•地图表:存储校园地图的信息,包括建筑物名称、经纬度等;•景点表:存储校园景点的信息,包括景点名称、描述、照片等;•行程表:存储用户创建的行程信息,包括行程名称、开始时间、结束时间等。

3.4 用户界面设计校园导游系统将具有简洁、直观的用户界面,方便用户使用。

主要包括以下页面:•登录页面:用户输入用户名和密码进行登录;•注册页面:新用户填写个人信息进行注册;•地图页面:展示校园地图,并提供导航功能;•景点页面:展示校园景点的介绍和照片;•行程页面:显示用户创建的行程信息。

校园导游咨询系统

校园导游咨询系统

1.需求分析1.1创建结点(旅游景点)创建该旅游景点是在顺序表中完成的,在顺序表中,首先要创建结点结构体,将该结构体命名为SeqList,成员变量有数组list和size,分别用来表示最大元素个数(即旅游景点的最大个数)和顺序表中当前存储的数据元素个数,顺序表可以完成的功能有求当前数据元素个数,插入数据元素,删除数据元素,取数据元素。

1.2创建图在构造图的操作中包括结点的插入(实参包括AdjMGraph *G,DataTyp v[],n,RowColWeight E[],e)分别表示在该*G的结构体中的SeqlistVertices[]中插入结点,在*G的结构体中的edge[MaxVertices][MaxVertices]的边数组中插入边信息结点分别为行下标、列下标、权值,该*G的结构体中numOfEdges,e表示边的条数,即将e的值给它。

结点的顺序表初始化,在该函数中也应包括一个结构体边信息结构体:成员包括行下标、列下标、权值。

并将该结构体命名为RowColWeight。

1.3图的实现在该函数中要使用SeqList头文件,在该文件中要真正进行插入边和结点。

首先在该函数中应该定义一个结构体AdjMGraph,在该结构体的成员变量包括存放结点的顺序表定义为SeqlistVertices[]、存放边的邻接矩阵用edge[MaxVertices][MaxVertices]表示,边的条数numOfEdges。

初始化AdjMGraph 中的成员变量线性表和边数及存放边的邻接矩阵。

然后在顺序表中插入结点,在邻接矩阵中插入边,删除边,删除结点。

取序号为V的结点的第一个邻接结点,取序号为V1的邻接结点V2结点的下一个邻接结点1.4求最短路径在该函数中,应该有四个参数,两个位输入参数,分别为带权图G和源点(景点起点)序号v0,两个为输出参数,分别为distance[]和path[],distance[]用来存放达到的从源点v0到其余各结点的最短距离,path[]用来存放最短路径的下标。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

课程设计报告课程名称:数据结构与算法题目名称:校园导游系统学生学院:数学与计算机科学系专业班级: 2016级计算机科学与技术本科班小组组长:王明小组成员: 王明郑双凤吕运发指导老师:熊小颖老师2017年10月15日目录一、设计目的3二、问题描述3三、基本要求3四、概要设计3五、主程序4六、测试数据136.1调试程序所用数据136.2程序的调试结果七、总结一、设计目的随着现代社会生活节奏的加快,人们外出旅行以寻求放松的时间越来越多。

考虑到游客不可能对所有景点都有所了解,因此可能无法找到游玩景点最省时,最高效的路径,而人工导游成本又过高,故使用C语言,基于《数据结构》中图的相关算法开发了“南昌师范学院导游系统”。

开发本系统目的在于为来访我校的游客提供一条最短游览路径,本系统从实际出发,通过对校园平面图的分析,将其转化为数据并保存在系统中,因此系统提供的路径具有较大的可信性。

二、问题描述设计校园导游程序,为来访的客人提供服务,为来访我校的游客提供一条在游客当前位置到目的地的最短游览路径,找到游玩景点最省时,最高效的路径。

三、基本要求1.假设有一所校园的平面图,所含景点不小于10个,请选择适当的坐标来表示出该图上的各个景点。

2.为来访的客人提供从当前位置到其他景点的最短路径的咨询;3.必须具有校园平面图的修改和扩充功能(即某些景点坐标的修改和景点个数的增加)。

四、概要设计算法思路本设计的重难点在于问题二的解决。

利用了弗洛伊德算法函数设计Floyd() 本算法在设计时参考了《数据结构C语言版》一书中有关Floyd算法的介绍,同时借鉴了如今网上流行的设计方式。

之所以选择本算法来实现计算最短路径,原因在于本算法容易理解,可以算出任意两个节点之间的最短距离,代码编写简单。

但是,本算法缺点在于时间复杂度过高,不适合用于计算大量数据。

Floyd算法首先将两景点间路径长度数据存储于数组D[v][w]中,而后使用一个三维数组用于存放最短路径所经过的顶点,接下来使用三重循环判断两景点之间直接路径是否大于间接路径,若大于,则将三维数组中存放的顶点信息更改为简介路径所经过的顶点信息。

以上部分完成后,当用于标记输入数据是否合法的flag=1时,输出错误信息,提示用户重新输入,当输入数据合法时,输出以上程序得到结果。

五、主程序#include<stdio.h>#include<stdlib.h>#define MAX_VERTEX_NUM 100 //最大顶点数#define MAX_INT 10000 //无穷大typedef int AdjType;typedef struct{int pi[MAX_VERTEX_NUM];//存放v到vi的一条最短路径int end;}PathType;typedef char VType; //设顶点为字符类型typedef struct{VType V[MAX_VERTEX_NUM]; //顶点存储空间AdjType A[MAX_VERTEX_NUM][MAX_VERTEX_NUM]; //邻接矩阵}MGraph;//邻接矩阵表示的图//Floyd算法//求网G(用邻接矩阵表示)中任意两点间最短路径//D[][]是最短路径长度矩阵,path[][]最短路径标志矩阵void shortdistance(MGraph * G,int path[][MAX_VERTEX_NUM],int D[][MAX_VERTEX_NUM],int n){ int i,j,k;for(i=0;i<n;i++){//初始化for(j=0;j<n;j++){if(G->A[i][j]<MAX_INT){path[i][j]=j;}else{path[i][j]=-1;}D[i][j]=G->A[i][j];}}for(k=0;k<n;k++){//进行n次试探for(i=0;i<n;i++){for(j=0;j<n;j++){if(D[i][j]>D[i][k]+D[k][j]){D[i][j]=D[i][k]+D[k][j];//取小者path[i][j]=path[i][k];//改Vi的后继}}}}for(i=0;i<n;i++){//输出每对顶点间最短路径长度及最短路径for(j=0;j<n;j++){printf("V%d到V%d的最短长度:",i,j);printf("%d\t",D[i][j]);//输出Vi到Vj的最短路径长度k=path[i][j];//取路径上Vi的后续Vkif(k==-1){printf("There is no path between V%d and V%d\n",i,j);//路径不存在}else{printf("最短路径为:");printf("(V%d",i);//输出Vi的序号iwhile(k!=j){//k不等于路径终点j时printf(",V%d",k);//输出kk=path[k][j];//求路径上下一顶点序号}printf(",V%d)\n",j);//输出路径终点序号}printf("\n");}}}int introduce(char scenery){getchar();printf("请输入景点对应的大写字母\n");scanf("%c",&scenery);switch(scenery){default:printf("没有该景点\n");case 'A':printf("图书馆,距离南大门100米\n"); break;case 'B':printf("实验楼,距离南大门200米\n"); break;case 'C':printf("理科楼,理科类学生上课地点\n");break;case 'D':printf("女宿舍楼,南昌师范学院的女孩子的家\n");break;case 'E':printf("男宿舍楼,南昌师范学院的男孩子的家\n");break;case 'F':printf("大学生活动中心,大学生活动休闲场所\n");break;case 'G':printf("田径场,运动会举办场地\n");break;case 'H':printf("逸夫大礼堂,各种活动举办场所\n");break;case 'I':printf("体育馆,正在建设中\n");break;case 'J':printf("综合楼,领导办公处\n");break;case 'K':printf("北大门,学校出口\n");break;}return 0;}int main(){char kk;char scenery;int i,j,k,v='A',m=11;//v为起点,n为顶点个数MGraph G;int path[MAX_VERTEX_NUM][MAX_VERTEX_NUM];//v到各顶点的最短路径向量int D[MAX_VERTEX_NUM][MAX_VERTEX_NUM];//v到各顶点最短路径长度向量charV[MAX_VERTEX_NUM]={'A','B','C','D','E','F','G','H','I', 'J','K'};int a[MAX_VERTEX_NUM][MAX_VERTEX_NUM]={ //初始化{0,50,200,100,MAX_INT,MAX_INT,MAX_INT,MAX_INT,MAX_INT,M AX_INT,MAX_INT},{50,0,100,MAX_INT,MAX_INT,MAX_INT,MAX_INT,MAX_INT,MAX_I NT,MAX_INT,MAX_INT},{200,100,0,MAX_INT,MAX_INT,100,50,MAX_INT,MAX_INT,MAX_I NT,MAX_INT},{100,MAX_INT,MAX_INT,0,500,200,MAX_INT,MAX_INT,MAX_INT, MAX_INT,MAX_INT},{MAX_INT,MAX_INT,MAX_INT,500,0,300,MAX_INT,300,MAX_INT,300,500},{MAX_INT,MAX_INT,100,200,300,0,400,200,100,MAX_INT,MAX_ INT},{MAX_INT,MAX_INT,MAX_INT,MAX_INT,MAX_INT,400,0,100,30 0,MAX_INT,MAX_INT},{MAX_INT,MAX_INT,MAX_INT,MAX_INT,200,200,100,0,MAX_IN T,400,MAX_INT},{MAX_INT,MAX_INT,50,MAX_INT,MAX_INT,100,300,MAX_INT,0 ,MAX_INT,MAX_INT},{MAX_INT,MAX_INT,MAX_INT,MAX_INT,300,MAX_INT,MAX_INT, 400,MAX_INT,0,300},{MAX_INT,MAX_INT,MAX_INT,MAX_INT,500,MAX_INT,MAX_INT, MAX_INT,MAX_INT,300,0}};for(i=0;i<m;i++){for(j=0;j<m;j++){G.A[i][j]=a[i][j];}}printf("****************************************\n ");printf("**\n");printf("**\n");printf("* 欢迎使用南昌师范学院校园咨询系统!*\n");printf("**\n ");printf("* *\n ");printf("****************************************\n");printf("\n");while(1){printf("1.景点信息查询请按“1”键:\n");printf("2.景点最短路径查询(弗洛伊德算法)请按“2”键:\n");printf("3.景点最短路径查询(迪杰斯特拉算法)请按“3”键:\n");printf("4.校内景点地图查询请按“4”键:\n");printf("5.退出系统请按“5”键 :\n");printf("请选择:\n");scanf("%c",&kk);switch(k){case'1':printf("景点介绍查询\n");introduce(scenery);break;case'2':printf("景点最短路径查询(弗洛伊德算法)\n");shortdistance(&G,path,D,11);break;case'5':printf("谢谢使用!\n");exit(0);}}return 0;}六、测试数据6.1调试程序所用数据6.2程序的调试结果七、总结经过小组同学的努力,我们终于结束了这次的课程设计,虽然我们尽了很大的努力,但是其中仍显现出许多的不足。

相关文档
最新文档