校园导游咨询(最短路径)
校园导游咨询程序设计报告

数据结构课程设计设计题目:校园导游咨询学院:信息学院班级:计算机1008班姓名:学号: 20101221180日期: 2012 年 3 月校园导航问题[问题描述]设计一个校园导游程序,为来访的客人提供各种信息查询服务。
[基本要求](1)设计所在学校的校园平面图,所含景点不少于十个。
以图中顶点表示校内各景点,存放景点名称、代号、简介等信息;以边表示路径,存放路径长度等信息。
(2)为来访客人提供图中任意景点相关信息的查询。
(3)为来访客人提供图中任意景点的问路查询,即查询任意两个顶点之间的一条最短的简单路径。
(4)校园导游图的景点和道路的修改扩充功能。
(5)扩充道路信息,如道路类别(车道、人行道),以致可按客人所需分别查询人行路径或车行路径。
(6)扩充每个景点的林洁景点的方向等信息,使得路径查询结果能提供详尽的导向信息。
(7)实现校园导游的仿真界面。
一、概要设计 (4)二、详细设计 (6)三、调试分析 (12)四、调用关系 (12)五、用户操作指南 (13)[测试数据]一、概要设计1. 数据类型#define V_MAX 20#define E_MAX 200typedef struct {char name[10];//名字//char code[10];//代码char info[20];//信息,简介int x,y;//坐标}VType;//顶点类型typedef struct {int live;//标记是否存在,如果被删除则为0,存在为1 char name[10];// 路名int length;//路的长度char ivex[10],jvex[10];//路(边)连接的两个顶点的名字int type;//表示道路类型,0表示两个都是,1表示人行道,2表示行车道}EdgeType;//边类型typedef struct AdjNode{int length;// 弧的长度char name[10];//关联的顶点的名字struct AdjNode *next;//下一条弧}AdjNode;//弧结点typedef struct {int live;//标记是否存在,如果被删除则为0,存在为1int flag;//标记是否被访问过VType data;//顶点的信息AdjNode *first_adj;//指向该顶点的第一条弧}VNode;//景点(顶点)结点typedef struct {VNode vex[V_MAX];//顶点数组EdgeType edge[E_MAX];//边的数组int v_num,e_num;}Graph;//图类型////////////////////////////////Graph G;AdjNode *p;2.基本函数////////////////////////////////void creatGraph(Graph &G);//创建校园图void load(Graph &G);//从文件中读取数据void save(Graph &G);//保存数据入文件int find_v(Graph G,char name[10]);//通过输入景点名字,返回该景点在vex数组里的下标void print_Graph(Graph G);//以邻接矩阵的形式输出图信息int direction(Graph G,char bname[10],char fname[10]);//用于判断并输出一个景点在另外一个景点的方位信息void search_view(Graph G);//查询并输出景点的所有信息void del_v(Graph &G);//删除景点void add_v(Graph &G);//增加景点void add_e(Graph &G)//增加道路void modify_v(Graph &G);//修改景点信息void del_e(Graph &G);//删除道路二、详细设计本程序由m.cpp、head.h、Menu.h、dijie.h4个文件构成。
校园导游咨询程序

实验三:校园导游咨询一、设计方案简介设计一个校园导游程序,为来访的客人提供各种信息查询服务。
1)设计你所在学校的校园平面图,2)为来访客人提供图中任意景点相关信息的查询。
3)为来访客人提供图中任意景点的问路查询,即查询任意两个景点之间的一条最短的简单路径。
二、设计题目实现:实际需求1)设计你所在学校的校园平面图,所含景点不少于10个。
以图中顶点表示校园内各景点,存放景点名称、代号、简介等信息:以边表示路径,存放路径长度等相关信息。
2)为来访客人提供图中任意景点相关信息的查询。
3)为来访客人提供图中任意景点的问路查询,即查询任意两个景点之间的一条最短的简单路径。
2)概要设计1、校园全景一览图、显示出校园的平面图。
2、提供校园中任意景点问路查询,即求任意两个景点之间的所有路径。
3、提供校园图中多个景点的最佳访问路线查询,即求途径这过个景点的最佳(短)路径。
1.功能模块图;短路径是:\n\n\t\t\t\t\t",[sight1].name,[sight2].name);ame); ength<MAX&&path[a][b]) ame); n\n\t",D[a]);}}五.测试数据及运行结果系统主界面学校平面图学校景点图最短路径信息查询异常信息三、设计评述:设计者对本设计的评述及通过设计的收获体会1.改进方案系统还有部分漏洞未能修复、不够绝对的稳定、还需改进!求最短路径时可以采用比较简单的哈密尔顿算法。
本次课程设计仅完成了要求的基本功能、由于平时掌握的不够好以及时间关系未能完成选作功能、这是一大缺陷!另外通过本次课程设计也更好的掌握了平时所学的知识、通过实践学到了许多课本上没有的知识!2.体会以后要加强动手时间能力、多与同学交流算法精髓!在编写程序中尽量做到独立完成、对于自己想要完成的问题要主动编程完成、这样自己是一个很大的提升、也能学到很多的知识、熟练编程!报告最后有两部分附录附录一:参考资料1、C语言程序设计(谭浩强版)2、数据结构(C语言版)编著:严蔚敏、吴伟民清华大学出版社附录二:源程序(将所有的源程序附在最后的附录中)pp : Defines the entry point for the console application.umber=i;[1].name="太原理工大学正门";[1].info="学校正门位于学校的正南方向、是进入学校前的第一道亮丽\n\t\t的风景线!\n";[2].name="电机馆";[2].info="电机馆是数学系,电子信息系,自动化,通讯等学院的学院楼!\n";[3].name="科学楼";[3].info="科学楼是我校科研机构场所,也是山西省网关所在地!\n";[4].name="多学科楼";[4].info="科学楼是计算机科学与技术学院,软件学院,电子信息学院,\n\t\t土木,建筑的学院楼,也是我校最好的学院楼!\n";[5].name="图书馆";[5].info="太原理工图书馆经历了初创时期,发展时期,面向现代化的转型时期。
校园导游咨询实验报告

本实验旨在通过设计并实现一个校园导游咨询系统,提高学生对数据结构在实际问题中的应用能力,培养编程实践能力和问题解决能力。
通过本次实验,学生能够深入了解图论在计算机科学中的应用,学会使用图论算法解决实际问题,并掌握Java编程语言在图形用户界面(GUI)设计中的应用。
二、实验内容1. 问题描述设计一个校园导游咨询系统,为来访客人提供以下服务:- 查询校园内景点的详细信息,包括名称、代号、简介等。
- 查询任意两个景点之间的最短路径。
- 提供从指定景点出发,游览所有景点的推荐路径。
2. 基本要求- 设计校园平面图,包含不少于10个景点。
- 以图中顶点表示校内各景点,存储景点名称、代号、简介等信息。
- 以边表示路径,存储路径长度等相关信息。
- 实现景点信息查询、景点间最短路径查询和推荐游览路径查询功能。
3. 数据结构- 采用邻接矩阵存储校园平面图,表示景点间的路径关系。
- 使用前趋结点数组辅助Floyd算法实现最短路径查询。
4. 算法- 使用Floyd算法计算任意两个景点之间的最短路径。
- 使用DFS算法结合贪心思想计算推荐游览路径。
5. 界面设计- 使用Java Swing实现图形用户界面,方便用户进行操作。
1. 需求分析- 与用户沟通,了解用户对校园导游咨询系统的需求。
- 确定系统功能,包括景点信息查询、景点间最短路径查询和推荐游览路径查询。
2. 系统设计- 设计系统架构,包括数据结构、算法和界面设计。
- 确定数据存储方式和算法实现方法。
3. 编码实现- 使用Java编程语言实现系统功能。
- 实现数据结构、算法和界面设计。
4. 测试与调试- 编写测试用例,验证系统功能。
- 调试系统,修复发现的问题。
四、实验结果1. 景点信息查询- 用户可以输入景点代号,查询景点详细信息,包括名称、代号、简介等。
2. 景点间最短路径查询- 用户可以输入两个景点的代号,查询它们之间的最短路径。
3. 推荐游览路径查询- 用户可以输入起始景点的代号,查询从该景点出发,游览所有景点的推荐路径。
综合实验十二 校园导游咨询

综合实验十二校园导游咨询一、实验目的(1)熟练掌握图的创建及遍历基本操作算法。
(2)熟练掌握最短路径算法。
(3)利用图的遍历和最短路径求解技术,设计一个校园导游程序,为来访的客人提供各种信息查询服务。
二、实验内容【问题描述】设计一个校园导游程序,为来访的客人提供各种信息查询服务。
【基本要求】(1)设计你所在学校的校园平面图,所含景点不少于10个。
以图中顶点表示校内各景点,存放景点名称、代号、简介等信息;以边表示路径,存放路径长度等相关信息。
(2)为来访客人提供图中任意景点相关信息的查询。
(3)为来访客人提供图中任意景点的问路查询,即查询任意两个景点之间的一个最短的简单路径。
【测试数据】由读者根据实际情况指定。
【实现提示】一般情况下,校园的道路是双向通行的,可设校园平面图是一个无向网。
顶点和边均含有相关信息。
【选作内容】(1)求校园图的关节点。
(2)提供图中任意景点问路查询,即求任意两个景点之间的所有路径。
(3)提供校园图中多个景点的最佳访问路线查询,即求途经这多个景点的最佳(短)路径。
(4)校园导游图的景点和道路的修改扩充功能。
(5)扩充道路信息,如道路类别(车道、人行道等)、沿途景色等级,以至可按客人所需分别查询人行路径或车行路径或观景路径等。
(6)扩充每个景点的邻接景点的方向等信息,使得路径查询结果能提供详尽的导向信息。
(7) 实现校园导游图的仿真界面。
程序代码及结果:#include<iostream>#include<iomanip>using namespace std;const int MaxSize=18;const int INFINITY=65535;//最大值无穷class direction;template <class T> class MGraph;template <class T>class VertexNode//定义头结点{friend class MGraph<T>;public:int vex;//顶点名称T vexname;//顶点名称T vexinf;//顶点信息direction dir;//存放顶点方位信息的direction类的dir。
校园导游路线规划方案

校园导游路线规划方案在大学校园中,每个角落都蕴藏着不同的故事和历史。
为了让新生快速融入校园生活,建议学校制定一份校园导游路线规划方案,让新生们能够在短时间内了解校园的各个角落和历史。
第一条路线:校园风景线此路线适合新生们在校园漫步,欣赏学校园林美景。
1.西门。
这是学校的正门,门前有一块大型石碑,上面凸显有学校的名字。
西门内有一圆形广场,广场中央有一座学术塔楼,可以俯瞰整个西区。
门前有公交车和出租车站台。
2.校园中心湖区。
环绕着这个湖泊的道路可以让您有一个美好的散步。
在沿途,您会看到绿草如茵的草坪、树木连绵不绝、花朵盛开。
您也可以在湖岸边看到不同种类的鸟类、鱼类和小动物。
3.第一教学楼区。
这里有一个非常宽阔的草坪,供学生在课余时间休息和娱乐。
该区域周围有几座教学楼,是各个学院的教学地点。
第二条路线:校园文化历史线此路线适合新生们寻找校园的历史遗迹和文化特色。
1.校园南门。
这个门曾是学校唯一的出入口,到今天已经有上百年的历史了,是学校重要的历史遗址之一。
2.光华楼。
这座楼是校内最著名的建筑之一,在这里学生们可以接触到不同的文化和艺术。
楼内有展览厅、会议室、艺术工作室等设施。
3.学校图书馆。
学校图书馆是校内最大的建筑之一,同时也是学校内最重要的文化机构之一。
学生可以在这里查阅各种各样的书籍、参考文献和研究资料。
第三条路线:校园学习线此路线适合新生们快速了解校内学习资源。
1.信息楼。
这座楼是学校内最新的建筑之一,其内设有图书馆、计算机教室和多媒体教室等,使得学生们可以快速上手各种计算机软件。
2.电子实验楼。
这个楼是进行各种电子实验和研究的地方,学生可以选择参加这些工作室来更好地了解这个领域的知识。
3.计算机教室。
学校内设有多个计算机教室,不仅有大型计算机房还有小型的专业实验室,让学生可以更好的上手计算机技术。
第四条路线:校园运动线此路线适合喜爱运动的新生们,了解更多校园运动资源。
1.学校操场。
这里是学校最大的活动场地,在我们的校园中可谓是极具代表性的的建筑之一。
最短路径算法在校园导游系统中的应用

校园 , 然 而大学校 园 占 地庞 大 , 景 点复杂 , 让很多新生一开 始都
很 茫然 , 他 们需要一个指 导以便尽快熟悉学 习和生活环境 。因 此, 本 文应用最短路径 算法和最小生成树 算法设计了一 个校园 导游系统 , 为新 生提供 方便。
)A r c N o d e ;
t y p e d e f s t r u c t( V e r t e x D a t a v e x s [ MA X _ VE RT E X _ NU M] ; , ★ 顶点向量 /
pa t h a l g o r i t h m i s u s e d t o a c h i e v e q u e r yi n g r e l e v a n t i n f o r ma t i o n o f v a r i o u s v i e w s p o t s i n c a mp u s a n d t h e s h o r t e s t p a t h b e t we e n a n y t wo s po t s . Kr u s k a l a l g o r i h m i t s a p p l i e d t o o bt a i n t he mi n i mu m s pa n n i n g t r e e o f t he p l a n a r g r a p h ,a n d f in d t he s h o r t e s t p a h t
c o n n e c t i n g a l l v i e w・ s p o t s .Th e s e f u nc t i on s wi l l p r o v i d e c o n ve n i e n c e f o r n e w s t u de n t s t o g e t f a mi l i a r t h e c a mp u s e n v i r o n me n t .
校园导游咨询讲解

《算法与数据结构》课程设计报告班级:专业级班姓名:学号:课程设计题目:校园导游咨询所属课程:算法与数据结构实验室(中心):指导教师:完成时间:年月日学院信息科学与工程学院课程设计任务书信息科学与工程学院课程设计成绩单指导教师:A课程设计课程名称:算法与数据结构性别男班级学号姓名指导教师算法与数据结构班级课程A2201完成时校园导游咨 201主介绍校园的景点,同时提供任意两点之间最短的路径内.封面.课程设计成绩单、课程设计任务.内容提要.“课程设计报告”正文部分主要应包括①问题分析和任务定义②环境简介③设计:主要是指数据结构与核心算法的设计描述;操作界设的设计;主要功能的算法框架;测试用例设计等内容(要求使报C+)要④编译参数与步骤的说明⑤上机调试总结与分析⑥用户使用说明⑦测试数据与测试结果等内容⑧课程设计总结:可以包括课程设计过程的收获、遇到的问及解决过程的思考、对数据结构这门课程的思考和认识等内容⑨附录程序清.参考文1题目用黑体三号,段后1磅(行),居中对齐2标题用黑体四号,段前、段后磅(0.版行)3正文用小四号宋体,行距1.2倍行距要4标题按“一”、“㈠”、“1”、“⑴”顺序编号星周指11-时1-安11-5-指专业实验406/40地点综合成绩□能正确运行□基本能正确运行□能运行但结果不完善程序运行情况15分)((10分)分)(20(占总成绩20%)□不完善□基本完善□完善程序功能完善程度分)(5(8分)(分)10)10%(占总成绩□不太合理□基本合理程序结构的合理性□合理5分)(8分)()(占总成绩10%分)(10□基本能正确回答□概念正确有创新□能正确回答所有问题30(分)40(分)(35分)对问题的答辩情况□部分问题回答概念不清晰40%(占总成绩)(20分)□工作态度认真能独立完成任务□工作态度认真但独立性较差学生的工作态度与(10分)(分)8独立工作能力□工作态度基本认真但缺乏独立性(占总成绩10%)(5分)□规范性较差□符合规范□基本符合规范设计报告的规范性(5分)10分)(8(分))10%(占总成绩.摘要数据结构课程设计对于训练学生掌握程序设计技术、使学生进一步理解和掌握课堂上所学各种基本抽象数据类型的逻辑结构、存储结构和操作实现算法,以及它们在程序中的使用方法。
C语言课设(校园导游)

校园导游目录摘要 ......................................................................................... 错误!未指定书签。
1绪论 .......................................................................................... 错误!未指定书签。
2系统分析 .................................................................................. 错误!未指定书签。
2.1功能需求 ........................................................................... 错误!未指定书签。
2.2数据需求............................................................................ 错误!未指定书签。
2.3性能需求 ........................................................................... 错误!未指定书签。
3总体设计 .................................................................................. 错误!未指定书签。
3.1系统设计方案.................................................................... 错误!未指定书签。
3.2功能模块设计.................................................................... 错误!未指定书签。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
typedef struct
{
infotype vexs[MAX_VERTEX_NUM]; //顶点的数据域
AdjMatrix arcs; //邻接矩阵
int vexnum,arcnum; //图的当前顶点数和弧数
}MGraph;
(2)各个函数的声明如下:
void cmd(void);
数据结构课程设计
实验报告
学号:
姓名:
提交日期:
成绩:
东北大学秦皇岛分校
设计题目:校园导游咨询
一、实验目的
(1)熟练掌握图的创建及遍历基本操作算法。
(2)熟练掌握最短路径算法。
(3)利用图的遍历和最短路径求解技术,设计一个校园导游程序,为来访的客人提供各种信息查询服务。
二、需求分析
实验内容
【问题描述】
MGraph InitGraph(void); //初始化图
void Menu(void); //整体菜单
void Browser(MGraph *G); //遍历校园全景
void ShortestPath_DIJ(MGraph * G); //景点所有路线
void Floyd(MGraph *G); //两景点之间最短距离
while(flag)
{
printf("请输入一个起始景点编号:");
scanf("%d",&v0); //输入一个值赋给v0
if(v0<0||v0>G->vexnum)
{
printf("景点编号不存在!请重新输入景点编号:");
scanf("%d",&v0);
}
if(v0>=0&&v0<G->vexnum)
{
min=INFINITY; //当前所知离v0顶点的最近距离
for(w=0;w<G->vexnum;w++)
if(!final[w]) //w顶点在v-s中
if(D[w]<min){v=w;min=D[w];} //w顶点离v0顶点更近
final[v]=1; //离v0顶点最近的v加入s集
2.功能模块图;
(1)主菜单(Menu):存放着所有的选择供用户查询。用户可通过输入编号来查询自己想要获得的信息。
(2)浏览校园全景(Browser):采用深度遍历遍历图进行所有景点浏览,将遍历景点信息输出。
(3)查看各景点游览路线(ShortestPath_DIJ):用户输入一个景点,采用迪杰斯特拉算法将从该景点起所有路径查出并输出在屏幕上。
{
int adj; //路径长度
}ArCell,AdjMatrix[MAX_VERTEX_NUM][MAX_VERTEX_NUM];
typedef struct //图中顶点表示主要景点,存放景点的编号、名称、简介等信息,
{
char name[30];
int num;
char introduction[100];//简介
{
p[v][v0]=1;p[v][v]=1; //v0是从v0到v的顶点,v是从v0到v的顶点
}
}
D[v0]=0;final[v0]=1; //初始化,v0到v0的带权路径长度为0,最短路径,v0顶点属于s集
//开始主循环,每次求得v0到某个v顶点的最短路径,并加v到s集
for(i=1;i<G->vexnum;i++) //其余G.vexnum-1个顶点
flag=0;
}
for(v=0;v<G->vexnum;v++)
{
final[v]=0; //v不属于s,即v顶点还没有走过
D[v]=G->arcs[v0][v].adj; //v0到v的弧权值
for(w=0;w<G->vexnum;w++)
p[v][w]=0; //设置空路径
if(D[v]<INFINITY)
cmd(); //调用cmd()
}
(4)主要函数
<1>迪杰斯特拉算法
算法思想:依路径长度递增的次序求得各条路径
//迪杰斯特拉算法来计算出起点到各个顶点之间的最短路径,v0为起点
void ShortestPath_DIJ(MGraph * G)
{
int v,w,i,min,t=0,x,flag=1,v0; //flag=1保证输入编号有效
int final[20], D[20], p[20][20];
//用迪杰斯特拉算法求网G的v0顶点到其余顶点v的最短路径P[v]及带权长度D[v]
//若P[v][w]为1,则w是从v0到v当前求得最短路径上的顶点
//final[v]为1当且仅当v属于s(s是已求得最短路径的终点的集合),即已经求得从v0到v的最短路径
(4)选择出发点和目的地(Floyd):用户输入一个出发点和一个目的地编号,采用弗洛伊德算法求出发点到目的地的最短路径。
(5)查看景点信息(Search):直接输入编号进行单个景点查询。
(6)显示图的邻接矩阵(print)
(7)退出系统(exit)
4.详细设计
(1)图的结构
typedefLeabharlann struct ArCell //对弧的定义
设计一个校园导游程序,为来访的客人提供各种信息查询服务。
【基本要求】
(1)设计你所在学校的校园平面图,所含景点不少于10个。以图中顶点表示校内各景点,存放景点名称、代
号、简介等信息;以边表示路径,存放路径长度等相关信息。
(2)为来访客人提供图中任意景点相关信息的查询。
(3)为来访客人提供图中任意景点的问路查询,即查询任意两个景点之间的一条最短的简单路径。
void Search(MGraph *G); //查看景点信息
void print(MGraph *G); //输出该图邻接矩阵
(3)主函数
void main(void) //定义主函数
{
system("color 1f");
system("mode con: cols=100 lines=40");
【测试数据】
由读者根据实际情况指定。
【实现提示】
一般情况下,校园的道路是双向通行的,可设校园平面图是一个无向网。顶点和边均含有相关信息。
【实现功能】
这个系统给用户提供查询景点,浏览路径,寻找最佳的方案到达目的地,还提供了最佳路径。
3、概要设计
1.系统分析:
用的图的算法进行构造,用邻接表建立图,图的每一个顶点代表相应的景点。然后再用深度优先遍历进行搜索,查找所需的路径。再用迪杰特斯拉算法求出一个景点到其他景点之间的最佳路径。然后再用弗洛伊德算法求出要查询的出发点到目的地的最短路径。