校园导游咨询程序
综合实验十二校园导游咨询
综合实验十二校园导游咨询一、实验目的(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)设计你的学校的校园平面图,所含景点不少于10个。
以图中顶点表示学校各景点,存放景点名称、代号、简介等信息;以边表示路径,存放路径长度等相关信息。
(2)为来访客人提供图中任意景点的问路查询.(3)为来访客人提供图中任意景点相关信息的查询。
【测试数据】由读者根据实际情况指定。
【实现提示】一般情况下,校园的道路是双向通行的,可设校园平面图是一个无向网。
顶点和边均含有相关信息。
#include<stdio.h>#include<process.h>#include <cstdlib>#include<string.h>#define INT_MAX 10000#define N 20int Length[N][N];// 边的值int shortest[N][N];//两点间的最短距离int path[N][N];// 经过的景点(数字代表)void introduce();//景点介绍int shortestdPath();//任意两点的最短距离void floyed(); //弗洛伊德算法void display(int i,int j);//打印路径char str[N+1][20] = {" ","南区大门","交大子弟学校","文达湖","软件学院","南区礼堂","校医院","建设银行","宿舍楼群A","中国移动","国防生大楼","四食堂","艺术学院","8栋","一食堂","逸夫楼","图书馆","基础学院","信息学院","土木学院","电气学院"};//文字代表int main(){/*主函数*/int i,j;char k;for(i=0;i<=N;i++)for(j=0;j<=N;j++)Length[i][j]=INT_MAX;Length[1][3]=Length[3][1]=170;Length[2][3]=Length[3][2]=120;Length[3][4]=Length[4][3]=400;Length[2][5]=Length[5][2]=350;Length[3][6]=Length[6][3]=200;Length[4][8]=Length[8][4]=50;Length[8][9]=Length[9][8]=150;Length[5][12]=Length[12][5]=150;Length[6][7]=Length[7][6]=160;Length[7][9]=Length[9][7]=150;Length[6][13]=Length[13][6]=200;Length[7][14]=Length[14][7]=200;Length[9][11]=Length[11][9]=100;Length[11][14]=Length[14][11]=100;Length[12][13]=Length[13][12]=150;Length[13][14]=Length[14][13]=250;Length[12][15]=Length[15][12]=100;Length[13][16]=Length[16][13]=80;Length[13][17]=Length[17][13]=80;Length[17][19]=Length[19][17]=100;Length[19][20]=Length[20][19]=80;Length[18][16]=Length[16][18]=50;Length[15][18]=Length[18][15]=160;Length[18][20]=Length[20][18]=200;Length[15][10]=Length[10][15]=50;Length[1][1]=Length[2][2]=Length[3][3]=Length[4][4]=Length[5][5]=0;Length[6][6]=Length[7][7]=Length[8][8]=Length[9][9]=Length[10][10]=0; Length[11][11]=Length[12][12]=Length[13][13]=Length[14][14]=Length[15][15]=0; Length[16][16]=Length[17][17]=Length[18][18]=Length[19][19]=Length[20][20]=0;while(1){printf("**********************欢迎使用华东交大南区导游系统!******************\n\n");printf("1.景点信息查询请按1 \n");printf("2.景点最短路径查询请按2 \n");printf("3.退出系统请按3 \n\n");printf("学校景点列表:\n");printf("1:南区大门");printf("2:交大子弟学校");printf("3:文达湖");printf("4:软件学院");printf("5:南区礼堂\n");printf("6:校医院");printf("7:建设银行");printf("8:宿舍楼群A ");printf("9:中国移动");printf("10:国防生大楼\n");printf("11:四食堂");printf("12:艺术学院");printf("13:8栋");printf("14:一食堂");printf("15:逸夫楼\n");printf("16:图书馆");printf("17:基础学院");printf("18:信息学院");printf("19:土木学院");printf("20:电气学院\n\n");printf("*************************************************************** ******\n\n");printf("请选择服务:");scanf("\n%d",&k);switch(k){case 1:printf("进入景点信息查询:\n");introduce();break;case 2:printf("进入最短路径查询:");shortestdPath();break;case 3:exit(0);default:printf("输入信息错误!\n请输入1,2,3\n");break;}}return 0;}/*main*/void introduce(){/*景点介绍*/int a;printf("请输入您想了解的景点编号:");scanf("%d",&a);getchar();printf("\n");switch(a){case 1:printf("1:南区大门\n\n 学校的南区正门,与北区大门正对遥遥相对\n\n");break;case 2:printf("2:交大子弟学校\n\n 生源包括学校部分老师的孩子和学校周围村庄的孩子\n\n");break;case 3:printf("3:文达湖\n\n 湖心设有喷泉,湖畔绿树掩映\n\n");break;case 4:printf("4:软件学院\n\n 成立于2002年,学院有在校师生近3700人,部分学生培养方式为“软件工程+应用背景专业\n\n");break;case 5:printf("5:南区礼堂\n\n 是交大中大节日活动的举办场所,观众几乎场场爆满,星期六和星期天日新网在南礼有偿播放大片\n\n");break;case 6:printf("6:校医院\n\n 校医院的医生经验丰富,开的药钱学校给报销绝大多数\n\n");break;case 7:printf("7:建设银行\n\n 设有自动取款机,交大学生的现金多数是从那里取出来的\n\n");break;case 8:printf("8:宿舍楼群A\n\n 南区1/3 的男生住在那里\n\n");break;case 9:printf("9:中国移动\n\n 这里还有中国联通和中国电信营业厅\n\n\n");break;case 10:printf("10: 国防生大楼\n\n 国防生居住和训练的地方。
校园导游咨询系统.
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) 主要功能:寻找要查询的景点,并输出该景点的信息
校园导游咨询讲解
《算法与数据结构》课程设计报告班级:专业级班姓名:学号:课程设计题目:校园导游咨询所属课程:算法与数据结构实验室(中心):指导教师:完成时间:年月日学院信息科学与工程学院课程设计任务书课程算法与数据结构A班级指导教师题目校园导游咨询完成时间2015年6月23日至2015年7月3日主要内容介绍校园的景点,同时提供任意两点之间最短的路径。
设计报告要求1.封面;2.课程设计成绩单、课程设计任务书3.内容提要;4.“课程设计报告”正文部分:主要应包括:①问题分析和任务定义;②环境简介;③设计:主要是指数据结构与核心算法的设计描述;操作界面的设计;主要功能的算法框架;测试用例设计等内容(要求使用C++)。
④编译参数与步骤的说明;⑤上机调试总结与分析;⑥用户使用说明;⑦测试数据与测试结果等内容。
⑧课程设计总结:可以包括课程设计过程的收获、遇到的问题及解决过程的思考、对数据结构这门课程的思考和认识等内容。
⑨附录程序清单5.参考文献版面要求1.题目用黑体三号,段后距18磅(或1行),居中对齐;2.标题用黑体四号,段前、段后距6磅(或0.3行);3.正文用小四号宋体,行距为1.25倍行距;4.标题按“一”、“㈠”、“1”、“⑴”顺序编号。
指导时间安排星期周次一二三四五六17周1-4节1-4节18周1-4节5-8节指导地点专业实验室406/407指导教师:信息科学与工程学院课程设计成绩单课程名称:算法与数据结构A课程设计姓名综合成绩程序运行情况(占总成绩20%)□能正确运行(20分)□基本能正确运行□能运行但结果不完善(15分)(10分)程序功能完善程度(占总成绩10%)□完善(10分)□基本完善(8分)□不完善(5分)程序结构的合理性(占总成绩10%)□合理(10分)□基本合理(8分)□不太合理(5分)对问题的答辩情况(占总成绩40%)□概念正确有创新□能正确回答所有问题(40分)(35分)□部分问题回答概念不清晰(20分)□基本能正确回答(30分)学生的工作态度与独立工作能力(占总成绩10%)□工作态度认真能独立完成任务□工作态度认真但独立性较差(8分)□工作态度基本认真但缺乏独立性(5分)设计报告的规范性(占总成绩10%)(10分)□符合规范(10分)□基本符合规范(8分)□规范性较差(5分)摘要数据结构课程设计对于训练学生掌握程序设计技术、使学生进一步理解和掌握课堂上所学各种基本抽象数据类型的逻辑结构、存储结构和操作实现算法,以及它们在程序中的使用方法。
校园导游咨询程序设计报告计划
数据构造课程设计设计题目:校园导游咨询学院:信息学院班级:计算机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,存在为1char 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);//增添道路改正景点信息删除道路二、详细设计本程序由、、、个文件组成。
数据结构-校园导游程序(附源码)
数据结构-校园导游程序(附源码)简介本文档旨在介绍一个校园导游程序的设计与实现。
该程序使用数据结构来管理校园地点信息,并提供导游功能,供用户查找并导航到目标地点。
文档将依次介绍相关的背景知识、程序设计原理、算法实现以及使用方法。
目录1.背景知识1.校园导游需求2.数据结构概述2.程序设计原理1.数据结构设计2.地点信息管理3.导航算法设计3.算法实现1.数据结构定义2.地点信息管理算法3.导航算法4.使用方法1.程序安装2.数据录入3.导游功能使用5.附录1.附件1:源码文件2.附件2:数据样例1.背景知识1.1 校园导游需求校园导游程序是为了帮助使用者在校园中快速找到目标地点,并提供导航功能,方便出行和参观。
该程序需要管理校园地点的信息,包括名称、位置和介绍等。
使用者可以通过程序查找地点、导航到目标地点。
1.2 数据结构概述数据结构是计算机中用来组织和存储数据的方式。
在校园导游程序中,我们需要选择适合的数据结构来存储和管理地点信息。
常用的数据结构有数组、链表、树、图等。
根据需求分析,我们可以使用图这一数据结构来表示校园地点之间的关系,方便进行导航。
2.程序设计原理2.1 数据结构设计在校园导游程序中,我们使用图这一数据结构来表示校园地点之间的关系。
每个地点可以看作图的一个节点,节点之间的边表示地点之间的连接关系。
通过构建图数据结构,我们可以方便地管理地点信息并进行导航。
2.2 地点信息管理地点信息管理是校园导游程序的核心功能之一。
我们需要设计适合的数据结构来存储地点的信息,包括名称、位置和介绍等。
通过合理的数据结构设计,可以快速地查找和修改地点信息。
2.3 导航算法设计导航算法是实现导游功能的关键。
我们需要设计算法来计算出从起点到目标地点的最短路径,并提供导航指引。
常用的导航算法有Dijkstra算法、A算法等,我们根据需求选择合适的算法进行实现。
3.算法实现3.1 数据结构定义我们使用图这一数据结构来表示校园地点之间的连接关系。
校园导游咨询讲解
《算法与数据结构》课程设计报告班级:专业级班姓名:学号:课程设计题目:校园导游咨询所属课程:算法与数据结构实验室(中心):指导教师:完成时间:年月日学院信息科学与工程学院课程设计任务书信息科学与工程学院课程设计成绩单指导教师: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%(占总成绩.摘要数据结构课程设计对于训练学生掌握程序设计技术、使学生进一步理解和掌握课堂上所学各种基本抽象数据类型的逻辑结构、存储结构和操作实现算法,以及它们在程序中的使用方法。
校园导游咨询程序
Main()函数模:主要打印开始界面和提示相关的操作。
用穷举的方法把学校相关景点之间的路径和权值(距离)初始化,用cost[][]二维数组实现。
打印:输入”s”进行查询最短路径,输入“b”进入主菜单页面,输入“e”退出程序。
switch(k){case'b':star();break;case 's':printf("the shortest way searching:");shortestdistance();break;case 'e':exit(0);default:printf("Error!\nplease press b or s or e.\n");getchar();break;}Star()函数:主要是显示一个界面,功能是提供查询路径选择和查看进入景点的主页面和退出该页面返回主界面。
switch(choose){case '0':instruction();getchar();break;case '1':jingdian();break;case '2': map();break;case '9':end();break;default:star();}Jingdian()函数:显示校园的10个景点和代号,提示输入相应的代号进入该景点的函数模块。
在这里也可以查询10个景点中任意两个之间的最短路径,也可以选择退出程序。
switch(point){case '1': office();break;case '2': library();break;case '3': lake();break;case '4': classroom();break;case '5': apartment();break;case 's':shortestdistance();break;case '0': star();getchar();break;case 'e':exit(0);default:jingdian();}Floyed()函数:求两个景点之间的最短距离。
校园导游咨询程序
实验三:校园导游咨询一、设计方案简介设计一个校园导游程序,为来访的客人提供各种信息查询服务。
1)设计你所在学校的校园平面图,2)为来访客人提供图中任意景点相关信息的查询。
3)为来访客人提供图中任意景点的问路查询,即查询任意两个景点之间的一条最短的简单路径。
二、设计题目实现:实际需求1)设计你所在学校的校园平面图,所含景点不少于10个。
以图中顶点表示校园内各景点,存放景点名称、代号、简介等信息:以边表示路径,存放路径长度等相关信息。
2)为来访客人提供图中任意景点相关信息的查询。
3)为来访客人提供图中任意景点的问路查询,即查询任意两个景点之间的一条最短的简单路径。
2)概要设计1、校园全景一览图、显示出校园的平面图。
2、提供校园中任意景点问路查询,即求任意两个景点之间的所有路径。
3、提供校园图中多个景点的最佳访问路线查询,即求途径这过个景点的最佳(短)路径。
1.功能模块图;{printf("\t\t\t\t\t\t从%s到%s的最短路径是:\n\n\t\t\t\t\t",[sight1].name,[sight2].name);ame); ength<MAX&&path[a][b]) ame); n\n\t",D[a]);}}五.测试数据及运行结果系统主界面学校平面图学校景点图最短路径信息查询三、设计评述:设计者对本设计的评述及通过设计的收获体会1.改进方案系统还有部分漏洞未能修复、不够绝对的稳定、还需改进!求最短路径时可以采用比较简单的哈密尔顿算法。
本次课程设计仅完成了要求的基本功能、由于平时掌握的不够好以及时间关系未能完成选作功能、这是一大缺陷!另外通过本次课程设计也更好的掌握了平时所学的知识、通过实践学到了许多课本上没有的知识!以后要加强动手时间能力、多与同学交流算法精髓!在编写程序中尽量做到独立完成、对于自己想要完成的问题要主动编程完成、这样自己是一个很大的提升、也能学到很多的知识、熟练编程!报告最后有两部分附录附录一:参考资料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="太原理工图书馆经历了初创时期,发展时期,面向现代化的转型时期。
校园导游咨询
不过也通过这次课程设计,让我明白现实生活跟程序之间联系,同时也让我明白了数据结构这门课程的重要性,我以后会继续努力学习这门课程。
(1)建立模型(逻辑结构)
(2)建立模块之间的关系(存储结构)
(3)算法
四、源程序清单
五、测试结果
六、课程设计总结及心得体会
实验题目:校园导游咨询
一、课程目的
为用户提供路径咨询和景点查询,根据用户指定的始点和终点输出相应路径或者根据用户指定的景点输出景点的信息。
二、基本要求
(1)设计校园平面图,在校园景点选10个左右景点。以图中顶点表示校园内各景点,存放景点名称、代号、简介等信息;以边表示路径,存放路径长度等有关信息。
printf(" 8:篮球场\n");
printf(" 9:足球场\n");
printf(" 10:食堂\n");
printf("请选择服务:");
scanf("\n%c",&k);
switch(k)
{
case 'i':
printf("进入景点信息查询:");
introduce();
break;
case 's':
scanf("%d",&a);
printf("\n");
switch(a)
{
case 1:
printf("1:学校大门\n\n学校的正门,气势宏伟。\n\n");break;
校园导游程序
洛阳理工学院课程设计报告课程名称数据结构课程设计题目校园导游程序课程设计任务书1、设计题目:校园导游程序2、设计内容与要求:[问题描述]用无向网表示你所在学校的校园景点平面图,图中顶点表示主要景点,存放景点的编号、名称、简介等信息,图中的边表示景点间的道路,存放路径长度等信息。
要求能够回答有关景点介绍、游览路径等问题。
[基本要求](1)查询各景点的相关信息;(2)查询图中任意两个景点间的最短路径。
(3)查询图中任意两个景点间的所有路径。
(4)增加、删除、更新有关景点和道路的信息。
课程设计评语成绩:指导教师:_______________年月日3、流程图4、模块划分(1)主函数:void main( )(2)void CreateUDN(int v,int a); /* 造图函数*/(3)void narrate(); /*说明函数*/(4)void ShortestPath(int num); /*最短路径函数*/(5)void output(int sight1,int sight2); /*输出函数*/(6)char Menu(); /* 主菜单*/(7)void search(); /* 查询景点信息*/(8)char SearchMenu(); /* 查询子菜单*/(9)void HaMiTonian(int); /*图的遍历*/(10)void Searchpath1(MGraph g);/*查询两个景点间的所有路径*/(11)void disppath(MGraph g,int i,int j);(12)void path(MGraph g,int i,int j,int k);/*确定路径上第k+1个顶点的序号*/(13)void NextValue(int);(14)void display(); /* 显示遍历结果*/(15)int Addnewsight(int n); /*添加新的景点和路径*/(16)int Deletesight(int n); /*删除景点和路径*/5、数据结构类型定义typedef struct ArcCell{int adj; /* 相邻接的景点之间的路程*/}ArcCell; /* 定义边的类型*/typedef struct VertexType{int number; /* 景点编号*/char sight[100]; /* 景点名称*/char description[1000]; /* 景点描述*/}VertexType; /* 定义顶点的类型*/typedef struct{VertexType vex[20]; /* 图中的顶点,即为景点*/ArcCell arcs[20][20]; /* 图中的边,即为景点间的距离*/ int vexnum,arcnum; /* 顶点数,边数*/}MGraph; /* 定义图的类型*/6、测试结果1、查询景点信息2、查询两景点间最短路径3、查询两景点间所有路径4、添加新的景点和路径5、删除已有的景点和路径6、修改删除已有的景点和路径7、实验心得经过几天的课程设计,总的来说收获还是很大的!首先代码能力明显提高,有了想法基本都能顺利表达出来;再者就是数据结构的选择使用能力也有了很大的提高!虽说平时的实验课我们也有用各种数据做题,但那些都是很明确的知道该做什么操作,存什么,我们的发挥空间不大一般照做就行,然而这次实习我们却在自主的选择判断,这本身就是一个很大的提高!还有就是算法方面的学习有了初步进阶,如最短路径,这样比较简单的图论算法能比较熟练的写出来。
课程设计校园导游咨询
课程设计校园导游咨询一、教学目标本课程旨在让学生了解和掌握校园导游的基本知识,包括校园的历史、文化、建筑、景观等方面的内容。
通过本课程的学习,使学生能够熟练运用所学的知识,为游客提供专业的校园导游服务。
具体目标如下:1.知识目标:学生能够掌握校园的基本历史、文化、建筑和景观知识,了解校园的发展历程和特色。
2.技能目标:学生能够运用所学的知识,进行校园导游的讲解和服务,具备良好的沟通和应变能力。
3.情感态度价值观目标:学生能够培养对校园文化的认同感,增强爱护校园环境的责任心,提高服务他人的意识。
二、教学内容本课程的教学内容主要包括以下几个方面:1.校园历史:介绍校园的创建背景、发展历程和重要事件。
2.校园文化:阐述校园的文化传统、校训、校风等核心价值观。
3.校园建筑:解析校园主要建筑的风格、特点和背后的故事。
4.校园景观:介绍校园内的风景名胜、历史遗迹和生态景观。
5.导游技巧:教授导游的基本礼仪、沟通技巧、应急处理等实际操作能力。
三、教学方法为了提高教学效果,本课程将采用多种教学方法相结合的方式进行:1.讲授法:教师讲解校园历史、文化、建筑和景观等方面的知识。
2.讨论法:学生分组讨论校园导游的实际案例,分享心得体会。
3.案例分析法:分析校园导游的成功案例和存在的问题,提高学生的判断和分析能力。
4.实验法:学生进行校园导游的实践活动,锻炼学生的实际操作能力。
四、教学资源为了支持教学内容和教学方法的实施,我们将准备以下教学资源:1.教材:选用权威、实用的校园导游教材,为学生提供系统的理论知识。
2.参考书:提供相关的历史、文化、建筑等领域的参考书籍,丰富学生的知识储备。
3.多媒体资料:制作精美的课件、视频等多媒体资料,增强课堂教学的趣味性和生动性。
4.实验设备:配备必要的实验设备,如地图、模型等,帮助学生更好地理解校园景观。
5.实践活动:学生进行校园导游的实际操作,提高学生的实践能力。
五、教学评估为了全面、客观地评估学生的学习成果,本课程将采用多种评估方式相结合的方法:1.平时表现:评估学生在课堂上的参与度、发言积极性以及团队合作表现等。
校园导游带团服务流程方案
校园导游带团服务流程方案校园导游带团服务流程方案一、方案背景随着大学生活水平的提高,越来越多的学生和家长参观考察大学校园,了解学校的教育环境和设施等情况。
为了更好地引导和服务参观团队,学校决定推出校园导游带团服务。
二、服务目标1. 为参观团队提供全方位的校园导游和讲解服务,帮助他们更好地了解学校。
2. 提供个性化的参观路线和安排,满足不同参观团队的需求。
3. 在参观过程中,提供周到的服务和解答参观者的问题,提升参观体验。
三、服务流程1. 预约与安排(1)参观团队提前向学校导览中心预约校园导游带团服务,提供参观日期、时间和人数等基本信息。
(2)导览中心根据参观团队的需求和学校资源情况,确定合适的导游和参观路线。
(3)导览中心将参观路线和安排发送给参观团队,确认相关事项后双方达成一致。
2. 参观前准备(1)导览中心与导游沟通参观团队的背景和需求,以便为参观团队提供更加个性化的参观服务。
(2)导游提前了解学校的历史、建筑、校园文化等信息,熟悉参观路线并准备相关讲解资料和导览器材料。
3. 参观过程(1)导游准时到达集合地点,对参观团队进行迎接和签到。
(2)导游向参观团队介绍学校的基本情况,简单介绍参观路线和安排。
(3)带领参观团队依据预定路线参观校园,为参观者提供相关的讲解和解答问题。
(4)在参观过程中,及时根据参观团队的需求和兴趣,调整参观路线和安排,以满足参观者的期待。
(5)导游可根据需要,安排校园文化活动、示范课等额外的体验活动。
4. 参观后总结(1)导游带领参观团队完成参观后,进行总结和整理讲解资料。
(2)导览中心向参观团队进行满意度调查,收集反馈意见和建议,以便不断改进服务质量。
(3)参观团队表达感谢之后,解散并结束校园导游带团服务。
四、推广与宣传为了提高校园导游带团服务的知名度和受欢迎程度,学校可以采取以下推广与宣传措施:1. 在学校官方网站和微信公众号等渠道上发布校园导游服务的信息和推广宣传文章。
校园导游咨询系统
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、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
void SearchPlace();//查询景点信息
void SearchPath();//查询最短路径
void Shortpath(int i);//计算最短路径
void Output(int sight1,int sight2);//输出函数
2.各个模块详细的功能描述。
Map();//显示校园整体的地图、包含学校各景点的详细位置
CreateGraph();//创建图、主要用来保存各景点信息
OutputPlace();//输出景点列表、供选择景点信息查询时使用
SearchPlace();//查询景点信息、景点的名称及介绍
SearchPath();//查询最短路径、两景点间最短距离
实验三:校园导游咨询
一、
设计一个校园导游程序,为来访的客人提供各种信来访客人提供图中任意景点相关信息的查询。
3)为来访客人提供图中任意景点的问路查询,即查询任意两个景点之间的一条最短的简单路径。
二、
实际需求
1)设计你所在学校的校园平面图,所含景点不少于10个。以图中顶点表示校园内各景点,存放景点名称、代号、简介等信息:以边表示路径,存放路径长度等相关信息。
path[a][b]=0;
d=b; //将b作为出发点进行下一次循环输出,如此反复
if(q%14==0) printf("\n");
goto gate;
}
}
}
printf("\n\n\t\t\t\t\t\t最短距离为%dm.\n\n\t",D[a]);
}
}
五.测试数据及运行结果
系统主界面
学校平面图
学校景点图
{
int v,w,i,t;//i、w和v为计数变量//t表示景点个数
int final[NUM]; //标志数组、用来存放顶点的信息
int min;//记录权值、最终输出路径
for(v=0;v<NUM;v++)
{
final[v]=0; //假设从顶点num到顶点v没有最短路径
D[v]=G.arc[num][v].length;//将num到其余顶点的最短路径长度初始化为权值
//输出sight1到sight2的最短路径长度,存放在D[]数组中
printf("\t%s",G.vertex[sight1].name); //输出景点一的名称
d=sight1; //将景点一的编号赋值给d
for(c=0;c<NUM;++c)
{
gate:; //标号,可以作为goto语句跳转的位置
{
D[w]=min+G.arc[v][w].length;//更新路径
for(t=0;t<NUM;t++)
path[w][t]=path[v][t];
path[w][w]=1;
}
}
}
void Output(int sight1,int sight2) //输出函数
{
int a,b,c,d,q=0;//a、b、c和d为计数变量//q控制计数变量、用于换行
for(w=0;w<NUM;w++)
path[v][w]=0;//初始化从v到w的路径值
if(D[v]<MAX) //存在路径
{
path[v][num]=1; //存在标志置为一
path[v][v]=1; //自身到自身
}
}
D[num]=0;//初始化新路径
final[num]=1; //初始化num顶点属于final集合
{
v=w;
min=D[w];
}
final[v]=1; //离num顶点更近的v加入到s集合
for(w=0;w<NUM;++w) //更新当前最短路径极其距离
if(!final[w]&&((min+G.arc[v][w].length)<D[w]))//不在s集合,并且比以前所找到的路径都短就更新当前路径
Shortpath(int i);//计算两景点间最短路径
Output(int sight1,int sight2);//输出两景点最短路径及信息
四.详细设计
2
全局变量
Graph G;
int path[NUM][NUM];
int D[NUM];
3.
重点设计:求最短路径
编码:
void Shortpath(int num)//迪杰斯特拉算法最短路径
a=sight2; //将景点二赋值给a
if(a!=sight1) //如果景点二不和景点一输入重合,则进行...
{
printf("\t\t\t\t\t\t从%s到%s的最短路径是:\n\n\t\t\t\t\t",G.vertex[sight1].name,G.vertex[sight2].name);//输出提示信息
//开始主循环,每一次求得num到某个顶点的最短路径,并将其加入到final集合
for(i=0;i<NUM;++i) //其余G.vexnum-1个顶点
{
min=MAX; //当前所知离顶点num的最近距离
for(w=0;w<NUM;++w)
if(!final[w]) //w顶点在v-s中
if(D[w]<min) //w顶点离num顶点更近
2)为来访客人提供图中任意景点相关信息的查询。
3)为来访客人提供图中任意景点的问路查询,即查询任意两个景点之间的一条最短的简单路径。
2)概要设计
1、
2、
3、提供校园图中多个景点的最佳访问路线查询,即求途径这过个景点的最佳(短)路径。
1
void Map();//校园地图
void CreateGraph();//创建图
path[a][sight1]=0;
for(b=0;b<NUM;b++)
{
if(G.arc[d][b].length<MAX&&path[a][b]) //如果景点一和它的一个临界点之间存在路径且最短路径
{
printf("--->%s",G.vertex[b].name); //输出此节点的名称
q=q+1; //计数变量加一,满8控制输出时的换行
最短路径信息查询
异常信息
三、
1.
系统还有部分漏洞未能修复、不够绝对的稳定、还需改进!
求最短路径时可以采用比较简单的哈密尔顿算法。
本次课程设计仅完成了要求的基本功能、由于平时掌握的不够好以及时间关系未能完成选作功能、这是一大缺陷!另外通过本次课程设计也更好的掌握了平时所学的知识、通过实践学到了许多课本上没有的知识!