校园导游系统

合集下载

校园导游系统设计与实现

校园导游系统设计与实现

校园导游系统设计与实现

第一篇:校园导游系统设计与实现

校园导游系统设计与实现

目录 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、主界面设计

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

C++实现校园导游系统

C++实现校园导游系统

C++实现校园导游系统

本⽂实例为⼤家分享了C++实现校园导游系统的具体代码,供⼤家参考,具体内容如下

校园导游系统

问题描述:设计⼀个校园导游程序,完成校园信息的维护以及为来访的客⼈提供信息查询等服务功能。

基本要求:

设计学校的校园平⾯图,所含景点不少于10个,以图中顶点表⽰校内各景点,顶点的信息包括:景点名称、代号、简介等,以边表⽰道路,边上信息包括:两点距离、所需时间等相关信息。(注:数据的输⼊可以是键盘输⼊或⽂件输⼊两种⽅式)提供对校园景点信息的编辑(如:添加、删除、修改等)的功能;

为来访客⼈提供图中任意景点相关信息的查询(可提供多种查询⽅式);

为来访客⼈提供从校门⼝到图中任意景点的问路查询(最短路径);

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

#include<iostream>

using namespace std;

int main()

{

int n;

const int MAX=1000;

static int r [MAX][MAX]={

{0,100,20,200,MAX,MAX,MAX,MAX,MAX,MAX},

{100,0,MAX,80,MAX,MAX,MAX,90,MAX,MAX},

{20,MAX,0,MAX,MAX,MAX,200,MAX,MAX,MAX},

{200,80,MAX,0,40,MAX,MAX,70,MAX,50},

{MAX,MAX,MAX,40,0,300,MAX,MAX,MAX,60},

{MAX,MAX,MAX,MAX,300,0,50,MAX, MAX,MAX},

校园导游咨询管理系统软件设计报告书

校园导游咨询管理系统软件设计报告书

课程设计题目校园导游咨询管理系统软件设计学院计算机科学与技术学院

课程设计任务书

学生姓名:王成鹏专业班级:计算机0804

指导教师:杜薇工作单位:计算机学院

1

2

(3)为来访客人提供任意景点的问路查询。

(4)测试数据:自定。

(5)涉及技术工具:软件工程技术、数据库技术、UML工具、Java语言或C#语言等设计报告内容应说明:

1.课程设计目的与功能;

2.需求分析,数据结构或模块说明(功能与框图);

3.源程序的主要部分;

4.运行结果与运行情况分析;

校园导游咨询管理系统

1.课程设计目的与功能

1)设计目的:

为游客设计一个校园导游咨询管理系统软件,帮助游客很好地了解校园景点位置,为

观光带来方便。作为导游就是指示景点之间的距离和方向,让游客很清楚所处的位置,并且能够很快地找到方向与目的地。软件是为了简单、易用而设计的。

2)基本功能要求:

1.设计你所在学校的校园平面图,所含景点不少于10个。将校内各景点的数据(景点

名称、代号、简介等信息)和图片以图结构表示并保存于数据库。

景点相关信息的查询。为来访客人提供任意景点的问路查询。

一个学校中的景点不少于10个,每个景点都有一些相关的信息,还要有图片来形象地表示景点。给出一个平面图,表示各个景点的位置和景点之间的距离。并且把景点以及跟景点相关的信息保存于数据库中。

利用这个软件,游客可以查看到校园的平面图以及全部的景点。从平面图中可以看

出景点的位置、景点的名称和景点之间的距离、方向等信息。还附于全部景点的名称和代码。

利用这个软件,游客可以查找每个景点的相关信息,如:填入景点的代码或名称,显示景点的图片和信息等。

校园导游系统文件-精选

校园导游系统文件-精选

课程设计报告

课程名称:数据结构与算法

题目名称:校园导游系统

学生学院:数学与计算机科学系

专业班级:2016级计算机科学与技术本科班小组组长:王明

小组成员: 王明郑双凤吕运发指导老师:熊小颖老师

2017年10月15日

目录

一、设计目的 (3)

二、问题描述 (3)

三、基本要求 (3)

四、概要设计 (3)

五、主程序 (4)

六、测试数据 (13)

6.1 调试程序所用数据 (13)

6.2 程序的调试结果..............................................................................

七、总结...............................................................................................

一、设计目的

随着现代社会生活节奏的加快,人们外出旅行以寻求放松的时间越来

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

系统”。开发本系统目的在于为来访我校的游客提供一条最短游览

路径,本系统从实际出发,通过对校园平面图的分析,将其转化为数

据并保存在系统中,因此系统提供的路径具有较大的可信性。

二、问题描述

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

西安邮电大学-(数据结构)校园导游系统课程设计报告

西安邮电大学-(数据结构)校园导游系统课程设计报告

fclose(fp); }
2、数据结构说明 程序中定义的数据类型——结构体(各个 成员的作用); 表定义:
typedef struct Arcnode { int num;//顶点编号 int weight;//顶点与此点之间路径的权值 struct Arcnode *nextarc; }arcnode; typedef struct Vertexnode { int num;//顶点编号 char name[20];//顶点景点名称 char introduce[40];//景点简介 int sum;//与其他连接的景点个数 //令人蛋疼的读文件呀 int flag;//默认为0,刚好可以标志。 arcnode *firstarc; }vertexnode; typedef struct AA { vertexnode vertex[MAX_vertex_num];//顶点数组 int other;//备用 }adjlist;
但确只有:(每个邻接点的邻接点都 少一个)
1 超市 同学们购物的天堂! 2 0 2 100 2 宿舍楼 同学们就寝,玩游戏的宝地。 2 0 1 100 3 体育馆 锻炼身体,高校的体育交流之地。 2 0 1 150 4 旭日苑 就餐之地1. 3 0 5 90 6 300 5 网吧 锻炼大脑,手指灵活性的地方。 3 0 2 30 4 90
7 120 6 图书馆 书的海洋。 3 0 3 70 4 300 8 40 7 美广 就餐之地2. 3 0 4 120 5 20 10 110 8 大活 娱乐晚会举办地。 3 0 6 40 9 30 12 200 9 喷泉 哈哈,你懂得! 3 0 8 30 10 70 13 40 10 实验楼 下一个产生钱学森的圣地! 3 0 7 110 9 70 11 30 11 教学楼 园丁与花朵! 2 0 10 30 13 100 12 行政楼 学校领导办公之地。 2 0 8 200 13 90 13 北门 学校的正门。 2 0 11 100 12 90

校园导游系统数据结构图

校园导游系统数据结构图

西安郵電學院

数据结构实验报告题目:校园导游系统

院系名称:计算机学院

专业名称:计算机科学与技术

班级:1006

学生姓名: ****

学号(8位):*****

指导教师:******

设计起止时间:2011年12月12日~2011年12月16日

一. 题目要求

1、设计学校的校园平面图,

地点(地点名称、地点介绍)不少于10个。

2、提供图中任意地点相关信息的查询。

3、提供图中任意地点的问路查询:

1)任意两个地点之间的一条最短(中转最少)的简单路径;

2)任意两个景点的最佳访问路线(带权)查询;

3)任意两个地点之间的所有路径。

4、地点和道路的扩充以及撤销;

地点基本信息的文件存储。(附加:加分题)

二.概要设计

1.功能模块的调用关系图

2.各个模块详细的功能描述。

1.首先,main()函数调用loge()函数,输出欢迎界面,然后调用showmenu()函数来选择用户所要进行的操作。其中showmenu()函数就是一个菜单供使用者来选择他所要进行的相关操作,比如信息的查询,最短路径查询之类。

2.browser()函数,用于输出校园平面图,给用户提供校园的景点分布状况,方便用户选择景点参观。

3.Search()函数,用于查询用户所选的景点信息,用户需要输入要查询的景点编号,函数会对编号进行判断,如果是合法输入,则在屏幕上输出该景点的相关信息,包括景点名字,景点的相关介绍,否则返回重新输入。

4.SearchAllpath()函数,用于查询用户所选的任意两个景点间的所有路径,用户需要输入要查询的起始景点编号,函数会对编号进行判断,如果是合法输入,用户需要输入要查询的终点景点编号,函数会对编号进行判断,如果是合法输入,则在屏幕上输出输查询的两个景点间的所有路径,否则返回重新输入。函数使用深度遍历DeepFirstSeach()查找路径。

(校园导游系统)c语言

(校园导游系统)c语言

校园导游咨询

一、目的

1、对自己学过的知识进一步的加深理解,对数据构造的算法思想要有更深的理解。

2、通过课程设计,学会通过系统分析、系统设计、编程调试,写实验报告等环节,进一步掌握应用系统设计的方法和步骤,灵敏运用并深化理解典型数据构造在软件开发中的应用。

3、学会综合运用数据构造课程中学到的数据构造和算法,如图的存储构造,数组,迪杰斯特拉算法和Floyd算法等自行实现一个较为完好的应用系统的设计与开发。

二、需求分析

1、功能需求

〔1〕在菜单中显示校园景点地图。

〔2〕可以查找任意景点的途径。

〔3〕可以自动查找用户键入始点景点和终点景点的最短途径。

〔4〕用户可以查询任意景点的景点信息。

2、输入

根据菜单提示键入相应的数字键已完成相应的操作。例如:在菜单界面中键入数字3,再根据系统提示键入始点和终点对应的编号,系统便会输出相应的途径。

3、输出

程序将根据用户键入的数字键,调用相应函数,完成查找过程,并将结果输出到屏幕。

三、概要设计

1、变量定义

typedef struct //图中顶点表示主要景点,存放景点的编号、名称、简介

{

char name[30];

int num;

char introduction[100];//简介

}infotype;

typedef struct ArCell //定义构造体变量来储存途径长度

{

int adj; //途径长度

}ArCell,AdjMatrix[MAX_VERTEX_NUM][MAX_VERTEX_NUM

typedef struct //景点信息的构造体定义:

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

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

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

Micro Campus 微校校园导游系统项目

概要介绍及评分要求

2015.10

一、项目背景

随着我国高等教育的发展,校园建设进入了新高潮,面对着发展的需要,各校都在进行着大规模的校园建设。而大学校园的逐渐扩建和美化,以及人们对高校人文历史的日益重视,越来越多的人将旅游的目的地设定为当地大学校园。而各校方对此展示出积极的态度,加大校园旅游文化的深入,以此来展示高校的建设发展,同时也吸引更多的学子前来就学。

每当寒暑假来临,广大的学生家长们都想带自己的孩子领略各大知名高校的文化风貌,感受高等学府的精神魅力。一些有志青年工作之余也希望能重返校园,与大学生一起激昂青春。随着开放式校园的普及,各大高校也成为了众多游客的必看景点之一。然而,高校旅游蓬勃发展至今,也开始面临很多的问题:专业高校导游难寻,高校游深度不足,网络上的图文简介缺乏趣味性,难以博得游客的喜爱。一个有深度、有趣味的专业导游应用成为众多高校管理者和游客翘首以盼的产品。

二、问题描述

现阶段国内外的导游系统大多是服务于著名景区,大学校园的导游系

统却很少见。而且目前流行的导游系统,存在以下问题:

大多是电脑端的应用程序,不能随时随地为使用者提供方便。

侧重于多媒体的演示,虽然界面丰富,但缺少景点间的地理位置的分析。即使地图有标注景点,但无法准确的计算并且显示两景点间的最短路径。缺乏实时的定位功能,使用户不能根据自己的实际位置进行相关操作。一般不涉及校园新闻动态的展示,使得初入校园的人,尤其是新生,对学校工作开展一无所知,不利于尽快融入校园生活。

校园导游咨询系统-中南大学数据结构课程设计

校园导游咨询系统-中南大学数据结构课程设计

1.2.设计与实现
基本思路
校园导游拓扑图是由景点和景点之间的路径组成的, 所以这完全可以用数 据结构中的图来模拟。用图的结点代表景点,用图的边代表景点之间的路径。所 以首先应设计一个图类。结点值代表景点信息,边的权值代表景点间的距离。结
2
点值及边的权值用顺序表存储, 所以需要设计一个顺序表类。 本系统需要查询景 点信息和求一个景点到另一个景点的最短路径长度及路线,为方便操作, 所以给 每个景点一个代码, 用结构体类型实现。 计算路径长度和最短路线时可用弗洛伊 德(Floyd)算法实现。最后用 switch 选择语句选择执行浏览景点信息或查询最 短路径。
程序实现过程中的主要难点和解决方法
程序设计的主要难点就是在对结构体的设计和弗洛伊德算法的具体实 现上,通过查询数据结构的书及相关算法书,我了解到弗洛伊德算法主要运 用了动态规划的相关思想, 通过一个图的权值矩阵求出它的每两点间的最短 路径矩阵。 从图的带权邻接矩阵 A=[a(i,j)] n×n 开始, 递归地进行 n 次更新, 即由矩阵 D(0)=A,按一个公式,构造出矩阵 D(1);又用同样地公式由 D(1)
主要数据结构
链接矩阵,相关代码 typedef struct arc { int adj; }arc,adjmatrix[40][40];
//路径长度 //建一个结构体数组保存路径长度
typedef struct scenery //存储景点信息 { int num;//景点编号 char name[20];//景点名称 char introduction[200];//景点介绍 }scenery;

校园导游系统程序--课程设计-报告

校园导游系统程序--课程设计-报告

1、需求分析

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

(1).设计工商学院校园无向图,所含的景点不少于10个。以图中顶点表示校内各景点,存放景点名称、代号、简介等信息;以边表示路径,存放路径长度等相关信息。

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

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

2、设计思路

校园旅游模型是由景点和景点之间的路径组成的,所以这完全可以用数据结构中的图来模拟。用图的结点代表景点,用图的边代表景点之间的路径。所以首先应设计一个图类。结点值代表景点信息,边的权值代表景点间的距离。结点值及边的权值用顺序表存储,所以需要设计一个顺序表类。本系统需要查询景点信息和求一个景点到另一个景点的最短路径长度及路线,为方便操作,所以给每个景点一个代码,用结构体类型实现。计算路径长度和最短路线时可用弗洛伊德(Floyd)算法实现。最后用switch选择语句选择执行浏览景点信息或查询最短路径。

3 算法设计

3.1 概要设计

3.1.1 程序中包含的模块

(1)主程序模块

主函数:void main(void)

void cmd(void) cmd修改显示框大小,字体背景颜色,初始化景点,景点信息

打印菜单,

MGraph InitGraph(void); //初始化图。

MGraph * CreatUDN(MGraph *G);//初始化图形接受用户输入

void Menu(void);//菜单函数

void Browser(MGraph *G);//浏览函数

校园导游系统

校园导游系统

西安郵電大学

数据结构课程设计报告题目:校园导游系统

院系名称:

专业名称:

班级:

学生姓名:

学号(8位):

指导教师:

设计起止时间:2013年12月16日~2013年12月27日

一. 设计目的

(1)了解二叉树特性、存储及其操作实现,在计算机领域运用二叉树编译代码实现一件简单实际的操作,熟练掌握二叉树的三种遍历递归与非递归的实现;(2)掌握图的两种遍历深度优先遍历和广度优先遍历,了解两者的区别和优缺点。学习在计算机中表示和处理图形结构以及绘制简单的地图并输出,熟练掌握图的逻辑结构和存储结构,学习用算法来解决实际问题;

(3)掌握邻接链表和邻接矩阵的存储结构,以及这两者的区别,会用邻接链表和邻接数组两种方法来实现数据的存储与读取;

(4)巩固文件的存储与读取部分,以便能够加深对文件读写的理解和更好的更熟练的实际应用;

(5)学会用计算机解决实际问题,将生活中的问题数据化,然后输入到计算机中以便更快的解决,提高自己的实践能力以及自身的学习能力,加深对课本知识的理解和掌握。

二. 设计内容

<1> 设计题目:设计一个校园导游程序,并按各要求进行编程:

要求:

(1)设计并显示学校的校园平面图,

地点(地点名称、地点介绍),

路线(公里数)均不少于10个。

(2)提供图中任意地点相关信息的查询。

(3)提供图中任意地点的问路查询:

1>任意两个地点之间的一条最短的简单路径;

(最短路径长度——中转次数最少)

2>任意两个地点之间的一条最佳访问路线;

(带权(公里数)最短路径长度)

3>任意两个地点之间的所有简单路径。

数据结构-校园导游系统

数据结构-校园导游系统

课程设计论文(附有代码!)题目:校园导游咨询

学院:计算机科学与工程学院

专业:计算机科学与技术

姓名:

学号:

指导教师:

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)

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

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

校园智能导游系统

系统&功能简介

北京迅邦科技2016.05

校园智能导游系统系统介绍

校园智能导游系统是基于GPS定位的校园导游系统:访客只需关注校园微信平台,即可使用智能导游服务,访客可以选择感兴趣的游览线路,沿途可以随时通过手机定位,通过地图找到自己所处的位置,聆听所处的景观的真人语音介绍。除此之外,还具备各类校园热点、新生接待地点、ATM机、配套商家等多项功能。

通过校园智能导游平台,三维地图中的热点信息以主动弹出的方式出现,能够让访客更快捷的找到,距离自己多远。尤其对于新生来说,从进入校门起,所需要的所有信息都可以通过校园导游便捷查询,为学子们快速的融入新的学习和生活,提供最大的便利。

访客无需下载任何软件或客户端,关注官方公众号即可使用,校园智能导游一切为师生服务!

2

系统优势

3

校园单位的信息大都跟地理位置有关,基于位置的信息服务是移动应用的强项。

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

无需安装,使用简单;可结合图片、文字、

音频、视频、360全景等方式生动展现景点的信息和周边服务。

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

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

校园导游系统

会议接待地理性

广泛性

简单易用

口碑宣传新生接待

无论是新生接待处,还是公寓、宿舍、食堂等必要信息,都离不开地图导航。

为什么要用校园智能导游?

校园智能导游系统

使用流程

4

校园三维全景地图展示

GPS实时定位功能

校园单位线路实时查询

校园单位信息查询与讲解

校园导游系统

校园导游系统

课程设计说明书课程名称:数据结构与算法

设计题目:校园导游系统

院系:计算机科学与信息工程学院

学生姓名:

学号:

专业班级:计算机科学与技术信息技术方向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. 项目背景

随着高校规模的不断扩大,新生和游客在校园中迷失的情况日益增多。校园导

游系统的设计旨在为人们提供一个简单、方便、快捷的方式来浏览和探索校园。该系统将提供校园地图、导航功能、景点介绍等功能,帮助用户更好地了解校园并规划自己的行程。

2. 项目目标

校园导游系统的设计目标如下:

•提供详细的校园地图,包含主要教学楼、宿舍区、图书馆等重要地点;

•支持用户根据个人需求进行导航,提供最佳路线规划;

•提供校园景点介绍,包括历史背景、建筑特点等信息;

•支持用户自定义行程,可以根据个人兴趣选择参观的景点;

•提供多语言支持,方便国际游客使用。

3. 系统设计

3.1 技术选择

在系统设计过程中,我们将使用以下技术和工具:

•前端开发:使用HTML、CSS和JavaScript进行用户界面设计和交互;

•后端开发:使用Python语言和Django框架进行服务器端开发;

•数据库:使用MySQL存储校园地图、景点介绍等数据;

•地图API:使用Google Maps API提供地图显示和导航功能;

•多语言支持:使用gettext库实现多语言支持。

3.2 系统模块

校园导游系统将被划分为以下模块:

•用户认证模块:负责用户注册、登录和注销等功能;

•地图模块:提供校园地图的显示和导航功能;

•景点模块:负责提供校园景点的信息展示和介绍;

•行程模块:支持用户自定义行程的创建、编辑和查看。

3.3 数据库设计

针对校园导游系统的需求,设计如下数据库表:

•用户表:用于存储用户的基本信息,包括用户名、密码等;

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

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

4 编码调试

校园导游咨询系统主界面如下图1所示,输入1进行景点路径查询,输入2进行景点信息查询,输入3时推荐参观路线,输入e时则退出本系统。

图1

当输入1时进入一个选择子菜单(输入错误时,保持原有状态),正确输入起点(2)(灯光篮球场)和终点(4)(实验楼),屏幕将打印出两景点之间的最短路径:灯光篮球场—〉惠馨园—〉实验楼,最短路径为约430m。如下图2所示:

图2

当输入的景点代号不在(0-9)之间时,程序提示重新输入,直到输入正确。测试数据:当起点输入10终点输入12时,景点不存在,程序提示重新输入;当起点输入0(教学主楼)终点输入12时,终点景点不存在,程序提示重新输入;当起点输入0(教学楼)终点输入8(图书馆)时,景点都存在,屏幕打印出两景点最短路径:教学楼—〉喷泉—〉学术报告厅—〉图书馆,最短路径约为200m。如下图3所示:

图3

按100推出此环节,当在选择主菜单选择2时,出现如下图4所示子菜单:

图4

当输入1时,则按景点编号查询,当输入6(地球科学博物馆)时,屏幕上打印出此景点信息:里面有著名的不寻常恐龙化石;当输入4(实验楼)时,屏

幕上打印出此景点信息:各专业实验的重要场地;当输入12时,此景点不存在,屏幕上显示:!!!没*有*找*到!!!;当输入20时,此景点不存在,屏幕上显示:!!!没*有*找*到!!!。如下图5所示:

图5

当输入2时,则按景点名称查询,当输入“图书馆”时,屏幕上打印出此景点信息:图书馆是莘莘学子学习的园地,里面有各科资料,每人可以任借五本书;当输入“计算机实验室”时,屏幕上打印出此景点信息:计算机专业实验实习场所;当输入“教学三号楼”时,此景点不存在,屏幕上显示:!!!没*有*找*到!!!;如下图6所示:

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

课程设计报告

课程名称:数据结构与算法

题目名称:校园导游系统

学生学院:数学与计算机科学系

专业班级: 2016级计算机科学与技术本科班小组组长:王明

小组成员: 王明郑双凤吕运发

指导老师:熊小颖老师

2017年10月15日

目录

一、设计目的3

二、问题描述3

三、基本要求3

四、概要设计3

五、主程序4

六、测试数据13

6.1调试程序所用数据13

6.2程序的调试结果

七、总结

一、设计目的

随着现代社会生活节奏的加快,人们外出旅行以寻求放松的时间越来越多。考虑到游客不可能对所有景点都有所了解,因此可能无法找到游玩景点最省时,最高效的路径,而人工导游成本又过高,故使用C语言,基于《数据结构》中图的相关算法开发了“南昌师范学院导游系统”。开发本系统目的在于为来访我校的游客提供一条最短游览路径,本系统从实际出发,通过对校园平面图的分析,将其转化为数据并保存在系统中,因此系统提供的路径具有较大的可信性。

二、问题描述

设计校园导游程序,为来访的客人提供服务,为来访我校的游客提供一条在游客当前位置到目的地的最短游览路径,找到游玩景点最

省时,最高效的路径。

三、基本要求

1.假设有一所校园的平面图,所含景点不小于10个,请选择适当

的坐标来表示出该图上的各个景点。

2.为来访的客人提供从当前位置到其他景点的最短路径的咨询;

3.必须具有校园平面图的修改和扩充功能(即某些景点坐标的修改

和景点个数的增加)。

四、概要设计

算法思路

本设计的重难点在于问题二的解决。利用了弗洛伊德算法函数设计Floyd() 本算法在设计时参考了《数据结构C语言版》一书中有关Floyd算法的介绍,同时借鉴了如今网上流行的设计方式。之所以选择本算法来实现计算最短路径,原因在于本算法容易理解,可以算出任意两个节点之间的最短距离,代码编写简单。

但是,本算法缺点在于时间复杂度过高,不适合用于计算大量数据。Floyd算法首先将两景点间路径长度数据存储于数组D[v][w]中,而后使用一个三维数组用于存放最短路径所经过的顶点,接下来使用三重循环判断两景点之间直接路径是否大于间接路径,若大于,则将三维数组中存放的顶点信息更改为简介路径所经过的顶点信息。以上部分完成后,当用于标记输入数据是否合法的

flag=1时,输出错误信息,提示用户重新输入,当输入数据合法时,输出以上程序得到结果。

五、主程序

#include

#include

#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

for(j=0;j

if(G->A[i][j]

path[i][j]=j;

}else{

path[i][j]=-1;

}

D[i][j]=G->A[i][j];

}

}

for(k=0;k

for(i=0;i

for(j=0;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

for(j=0;j

printf("V%d到V%d的最短长度:",i,j);

printf("%d\t",D[i][j]);//输出Vi到Vj的最短路径长度

k=path[i][j];//取路径上Vi的后续Vk

if(k==-1){

printf("There is no path between V%d and V%d\n",i,j);//路径不存在

}else{

printf("最短路径为:");

printf("(V%d",i);//输出Vi的序号i

while(k!=j){//k不等于路径终点j时

printf(",V%d",k);//输出k

k=path[k][j];//求路径上下一顶点序号

}

printf(",V%d)\n",j);//输出路径终点序号

}

相关文档
最新文档