校园导游咨询程序

合集下载

校园导游咨询程序

校园导游咨询程序

【问题描述】设计一个校园导游程序,为来访的客人提供各种信息查询服务。

【基本要求】(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 国防生居住和训练的地方。

校园导游系统程序

校园导游系统程序

课题五:校园导游程序1)问题描述用无向网表示你所在学校的校园景点平面图,图中顶点表示主要景点,存放景点的编号、名称、简介等信息,图中的边表示景点间的道路,存放路径长度等信息。

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

2)基本要求(1)查询各景点的相关信息;(2)查询图中任意两个景点间的最短路径。

(3)能够将图的信息保存到文件中,并指定文件打开。

(4)增加、删除、更新有关景点和道路的信息。

附加难度:有余力的同学可以考虑用图形界面实现寻址的过程3) 设计思想核心数据结构定义一个图,将图保存后,对图进行面向指定节点到各个节点的最短路径的操作。

可以再文件中保存多个导游图,例如保存学校图、芜湖市图等文件。

开始时选择文件,将指定文件中的信息导入到内存的图中。

#define Infinity 1000#define MaxVertexNum 35#define MAX 40#include<fstream>#include<stdio.h>#include<stdlib.h>#include<conio.h>#include<string.h>#include<iostream.h>typedef struct arcell //边的权值信息{int adj; //权值}arcell,adjmatrix[MaxVertexNum][MaxVertexNum]; //图的邻接矩阵类型typedef struct vexsinfo //顶点信息{int position; //景点的编号char name[32]; //景点的名称char introduction[256]; //景点的介绍}vexsinfo;typedef struct mgraph //图结构信息{vexsinfo vexs[MaxVertexNum]; //顶点向量(数组)adjmatrix arcs; //邻接矩阵int vexnum,arcnum; //分别指定顶点数和边数}mgraph;//全局变量int visited[35]; //用于标志是否已经访问过int d[35]; //用于存放权值或存储路径顶点编号mgraph campus; //图变量(大学校园)// (1) 对图初始化mgraph initgraph(){int i=0,j=0;mgraph c;c.vexnum =28; //顶点个数c.arcnum =39; //边的个数for(i=0;i<c.vexnum ;i++) //依次设置顶点编号c.vexs[i].position =i;//依次输入顶点信息strcpy(c.vexs[0].name ,"正门: ");strcpy(c.vexs[0].introduction ,"学校大门,离公交站很近""|r\n");strcpy(c.vexs[1].name ,"学校后门门: ");strcpy(c.vexs[1].introduction ,"去往新区、学校班车进出口");strcpy(c.vexs[2].name ,"人文学院: ");strcpy(c.vexs[2].introduction ,"人文学院办公楼的住处,楼高3层");strcpy(c.vexs[3].name ,"管理学院: ");strcpy(c.vexs[3].introduction ,"MBA培训中心,楼高7层");strcpy(c.vexs[4].name ,"行政楼: ");strcpy(c.vexs[4].introduction ,"行政办公大楼,楼高5层");strcpy(c.vexs[5].name,"建设银行: ");strcpy(c.vexs[5].introduction ,"学生取款处,楼高1层");strcpy(c.vexs[6].name ,"体育馆: ");strcpy(c.vexs[6].introduction ,"室内各类球类运动");strcpy(c.vexs[7].name,"外语学院: ");strcpy(c.vexs[7].introduction ,"各种外语教学,楼高6层");strcpy(c.vexs[8].name ,"双馨园食堂: ");strcpy(c.vexs[8].introduction ,"学生就餐地点");strcpy(c.vexs[9].name, "博学楼: ");strcpy(c.vexs[9].introduction , "计算机科学与技术学院大楼,楼高13层"); strcpy(c.vexs[10].name ,"学生宿舍: ");strcpy(c.vexs[10].introduction ,"若干栋,离中山园食堂近");strcpy(c.vexs[11].name ,"中山园食堂: ");strcpy(c.vexs[11].introduction ,"学生就餐处");strcpy(c.vexs[12].name ,"图书馆: ");strcpy(c.vexs[12].introduction ,"历史悠久,文化气氛好");strcpy(c.vexs[13].name ,"法学楼: ");strcpy(c.vexs[13].introduction ,"研修法学佳地");strcpy(c.vexs[14].name ,"贵大学生超市: ");strcpy(c.vexs[14].introduction ,"买各种日用品的地方");strcpy(c.vexs[15].name ,"大礼堂: ");strcpy(c.vexs[15].introduction ,"文艺演出所在地");strcpy(c.vexs[16].name ,"慎思楼(新图书馆): ");strcpy(c.vexs[16].introduction ,"自习的好地方");strcpy(c.vexs[17].name ,"逸夫楼: ");strcpy(c.vexs[17].introduction ,"经济学院办公楼");strcpy(c.vexs[18].name ,"文化书院: ");strcpy(c.vexs[18].introduction ,"推动东西方文化交流的重要桥梁");strcpy(c.vexs[19].name ,"派出所: ");strcpy(c.vexs[19].introduction ,"保卫学校安全");strcpy(c.vexs[20].name ,"贵州大学出版社: ");strcpy(c.vexs[20].introduction ,"发行各种图书");strcpy(c.vexs[21].name ,"贵州大学网球场: ");strcpy(c.vexs[21].introduction ,"打网球的地方");strcpy(c.vexs[22].name ,"化工学院: ");strcpy(c.vexs[22].introduction ,"各种实验的研究之地");strcpy(c.vexs[23].name ,"贵州大学高等教育研究所: ");strcpy(c.vexs[23].introduction ,"关于高等教育的各种研究");strcpy(c.vexs[24].name ,"花溪海洋学校: ");strcpy(c.vexs[24].introduction ,"贵大内部学校");strcpy(c.vexs[25].name ,"贵州大学党校: ");strcpy(c.vexs[25].introduction ,"党员学习的地方");strcpy(c.vexs[26].name ,"校医院: ");strcpy(c.vexs[26].introduction ,"看小病的地方");strcpy(c.vexs[27].name ,"体育场: ");strcpy(c.vexs[27].introduction ,"田径远动地点");//依次输入边上的权值信息for(i=0;i<c.vexnum ;i++)for(j=0;j<c.vexnum ;j++)c.arcs [i][j].adj =Infinity; //先初始化图的邻接矩阵//部分弧长c.arcs[0][2].adj=50; c.arcs[0][3].adj=60;c.arcs[1][4].adj=90;c.arcs[2][3].adj=60; c.arcs[2][8].adj=40;c.arcs[3][4].adj=60; c.arcs[3][6].adj=40;c.arcs[4][5].adj=70; c.arcs[4][9].adj=70; c.arcs[4][10].adj=80;c.arcs[4][17].adj=200;c.arcs[5][7].adj=70;c.arcs[6][9].adj=40;c.arcs[7][18].adj=190;c.arcs[8][11].adj=50;c.arcs[9][12].adj=40;c.arcs[10][18].adj=70;c.arcs[11][12].adj=60; c.arcs[11][14].adj=50; c.arcs[11][15].adj=50;c.arcs[12][16].adj=50;c.arcs[13][14].adj=40; c.arcs[13][22].adj=60;c.arcs[14][15].adj=50; c.arcs[14][20].adj=90;c.arcs[15][16].adj=60; c.arcs[15][21].adj=40;c.arcs[16][17].adj=60;c.arcs[17][18].adj=80;c.arcs[18][19].adj=60;c.arcs[20][21].adj=60; c.arcs[20][24].adj=80;c.arcs[22][23].adj=60; c.arcs[22][25].adj=80;c.arcs[23][24].adj=60;c.arcs[24][26].adj=100; c.arcs[24][27].adj=100;c.arcs[25][26].adj=90;c.arcs[26][27].adj=90;for(i=0;i<c.vexnum ;i++) //邻接矩阵是对称矩阵,对称赋值for(j=0;j<c.vexnum ;j++)c.arcs[j][i].adj =c.arcs[i][j].adj ;FILE * pFile;pFile = fopen ("myfile.txt","w");fwrite(c.vexs[0].name,2,3,pFile);fwrite(c.vexs[0].introduction,2,11,pFile);fwrite("\r\n",2,1,pFile);fwrite(c.vexs[1].name,2,6,pFile);fwrite(c.vexs[1].introduction,2,12,pFile);fwrite("\r\n",2,1,pFile);fwrite(c.vexs[2].name,2,5,pFile);fwrite(c.vexs[2].introduction,2,15,pFile);fwrite("\r\n",2,1,pFile);fwrite(c.vexs[3].name,2,5,pFile);fwrite(c.vexs[3].introduction,2,10,pFile);fwrite("\r\n",2,1,pFile);fwrite(c.vexs[4].name,2,4,pFile);fwrite(c.vexs[4].introduction,2,11,pFile);fwrite("\r\n",2,1,pFile);fwrite(c.vexs[5].name,2,5,pFile);fwrite(c.vexs[5].introduction,2,10,pFile);fwrite("\r\n",2,1,pFile);fwrite(c.vexs[6].name,2,4,pFile);fwrite(c.vexs[6].introduction,2,8,pFile); fwrite("\r\n",2,1,pFile);fwrite(c.vexs[7].name,2,5,pFile);fwrite(c.vexs[7].introduction,2,11,pFile); fwrite("\r\n",2,1,pFile);fwrite(c.vexs[8].name,2,6,pFile);fwrite(c.vexs[8].introduction,2,6,pFile); fwrite("\r\n",2,1,pFile);fwrite(c.vexs[9].name,2,4,pFile);fwrite(c.vexs[9].introduction,2,17,pFile);fwrite("\r\n",2,1,pFile);fwrite(c.vexs[10].name,2,5,pFile);fwrite(c.vexs[10].introduction,2,11,pFile); fwrite("\r\n",2,1,pFile);fwrite(c.vexs[11].name,2,6,pFile);fwrite(c.vexs[11].introduction,2,5,pFile); fwrite("\r\n",2,1,pFile);fwrite(c.vexs[12].name,2,4,pFile);fwrite(c.vexs[12].introduction,2,10,pFile); fwrite("\r\n",2,1,pFile);fwrite(c.vexs[13].name,2,4,pFile);fwrite(c.vexs[13].introduction,2,6,pFile); fwrite("\r\n",2,1,pFile);fwrite(c.vexs[14].name,2,7,pFile);fwrite(c.vexs[14].introduction,2,9,pFile); fwrite("\r\n",2,1,pFile);fwrite(c.vexs[15].name,2,4,pFile);fwrite(c.vexs[15].introduction,2,7,pFile); fwrite("\r\n",2,1,pFile);fwrite(c.vexs[16].name,2,10,pFile); fwrite(c.vexs[16].introduction,2,6,pFile); fwrite("\r\n",2,1,pFile);fwrite(c.vexs[17].name,2,4,pFile);fwrite(c.vexs[17].introduction,2,7,pFile); fwrite("\r\n",2,1,pFile);fwrite(c.vexs[18].name,2,5,pFile);fwrite(c.vexs[18].introduction,2,14,pFile); fwrite("\r\n",2,1,pFile);fwrite(c.vexs[19].name,2,4,pFile);fwrite(c.vexs[19].introduction,2,6,pFile); fwrite("\r\n",2,1,pFile);fwrite(c.vexs[20].name,2,8,pFile);fwrite(c.vexs[20].introduction,2,6,pFile);fwrite("\r\n",2,1,pFile);fwrite(c.vexs[21].name,2,8,pFile);fwrite(c.vexs[21].introduction,2,6,pFile);fwrite("\r\n",2,1,pFile);fwrite(c.vexs[22].name,2,5,pFile);fwrite(c.vexs[22].introduction,2,9,pFile);fwrite("\r\n",2,1,pFile);fwrite(c.vexs[23].name,2,12,pFile);fwrite(c.vexs[23].introduction,2,11,pFile);fwrite("\r\n",2,1,pFile);fwrite(c.vexs[24].name,2,7,pFile);fwrite(c.vexs[24].introduction,2,6,pFile);fwrite("\r\n",2,1,pFile);fwrite(c.vexs[25].name,2,7,pFile);fwrite(c.vexs[25].introduction,2,7,pFile);fwrite("\r\n",2,1,pFile);fwrite(c.vexs[26].name,2,4,pFile);fwrite(c.vexs[26].introduction,2,6,pFile);fwrite("\r\n",2,1,pFile);fwrite(c.vexs[27].name,2,4,pFile);fwrite(c.vexs[27].introduction,2,6,pFile);fwrite("\r\n",2,1,pFile);fclose (pFile);return c;}//initgraph// (2) 查找景点在图中的序号int locatevex(mgraph c,int v){int i;for(i=0;i<c.vexnum ;i++)if(v==c.vexs[i].position)return i; //找到,返回顶点序号i return -1; //否则,返回-1}//(3) 、(4) 求两景点间的所有路径// (3) 打印序号为m,n景点间的长度不超过8个景点的路径void path(mgraph c, int m,int n,int k){int s,x=0;int t=k+1; //t 记载路径上下一个中间顶点在d[]数组中的下标if(d[k]==n && k<8) //d[k]存储路径顶点。

综合实验十二 校园导游咨询

综合实验十二    校园导游咨询

综合实验十二校园导游咨询一、实验目的(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、显示校园平面图的功能模块此模块调用其他工具绘制好的BMP等程序可以识别的图片来显示校园平面图。

平面图中应醒目地标识出场所的准确名称以备用户查询。

2、查询任意场所的相关信息的功能模块此模块接收用户所输入的场所名称,并将场所的简介信息反馈给用户。

3、求单源点到其他各点的最短路径的功能模块此模块计算并记录从校园门口到各个场所的最短路径。

4、任意场所的问路查询的功能模块此模块接收用户所输入的场所名称,并在3中计算出的最短路径集合中找到相关项的信息反馈给用户。

校园导游咨询(最短路径)

校园导游咨询(最短路径)
}infotype; //数据域
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);

校园导游咨询程序设计报告计划

校园导游咨询程序设计报告计划

数据构造课程设计设计题目:校园导游咨询学院:信息学院班级:计算机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 数据结构定义我们使用图这一数据结构来表示校园地点之间的连接关系。

课程设计校园导游程序

课程设计校园导游程序

课程设计 校园导游程序一、课程目标知识目标:1. 学生能理解校园导游程序的基本概念和原理,掌握程序设计的基本步骤。

2. 学生能运用所学知识,结合校园实际情况,设计出功能完善、操作简便的校园导游程序。

技能目标:1. 学生能运用编程软件,编写并调试校园导游程序,具备基本的程序调试能力。

2. 学生能通过小组合作,提高沟通与协作能力,共同完成校园导游程序的编写。

情感态度价值观目标:1. 学生能对程序设计产生兴趣,培养主动学习和探究的精神。

2. 学生在校园导游程序的设计过程中,能关注用户体验,培养良好的服务意识。

3. 学生通过解决实际校园问题,增强自信心,培养勇于克服困难的品质。

课程性质:本课程为信息技术学科,结合校园实际情况,以提高学生编程兴趣和实际操作能力为主。

学生特点:六年级学生对计算机操作已有一定基础,具备基本的编程知识,好奇心强,喜欢探索新事物。

教学要求:教师需关注学生个体差异,鼓励学生动手实践,注重培养学生的团队合作意识和解决问题的能力。

在教学过程中,将课程目标分解为具体的学习成果,以便于教学设计和评估。

二、教学内容1. 校园导游程序基本概念:介绍程序设计的基本原理,引导学生了解校园导游程序的功能和作用。

- 教材章节:第二章第二节“程序设计的基本原理”2. 编程语言基础:回顾并巩固Python编程语言的基本语法和结构。

- 教材章节:第一章“Python编程基础”3. 界面设计:学习设计简洁、直观的图形用户界面,提高用户体验。

- 教材章节:第三章第一节“图形用户界面设计”4. 数据处理:运用列表、字典等数据结构,实现校园景点信息的存储与展示。

- 教材章节:第四章“数据结构与数据处理”5. 程序调试与优化:学习使用调试工具,找出并修复程序中的错误,提高程序质量。

- 教材章节:第六章第三节“程序调试与优化”6. 小组合作与项目实践:分组进行校园导游程序的设计与实现,提高团队协作能力。

- 教材章节:第五章“项目实践与团队协作”教学进度安排:1. 第1-2周:学习校园导游程序基本概念,回顾Python编程基础。

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

实验三:校园导游咨询一、设计方案简介设计一个校园导游程序,为来访的客人提供各种信息查询服务。

1)设计你所在学校的校园平面图,2)为来访客人提供图中任意景点相关信息的查询。

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

二、设计题目实现:实际需求1)设计你所在学校的校园平面图,所含景点不少于10个。

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

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

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

2)概要设计1、校园全景一览图、显示出校园的平面图。

2、提供校园中任意景点问路查询,即求任意两个景点之间的所有路径。

3、提供校园图中多个景点的最佳访问路线查询,即求途径这过个景点的最佳(短)路径。

1.功能模块图;void Map();//校园地图void CreateGraph();//创建图void OutputPlace();//输出景点列表void SearchPlace();//查询景点信息void SearchPath();//查询最短路径void Shortpath(int i);//计算最短路径void Output(int sight1,int sight2);//输出函数2.各个模块详细的功能描述。

Map();//显示校园整体的地图、包含学校各景点的详细位置CreateGraph();//创建图、主要用来保存各景点信息OutputPlace();//输出景点列表、供选择景点信息查询时使用SearchPlace();//查询景点信息、景点的名称及介绍SearchPath();//查询最短路径、两景点间最短距离Shortpath(int i);//计算两景点间最短路径Output(int sight1,int sight2);//输出两景点最短路径及信息四.详细设计1.功能函数的调用关系图2.各功能函数的数据流程图全局变量Graph G;int path[NUM][NUM];int D[NUM];3.重点设计及编码重点设计:求最短路径编码:void Shortpath(int num)//迪杰斯特拉算法最短路径{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到其余顶点的最短路径长度初始化为权值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集合//开始主循环,每一次求得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顶点更近{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集合,并且比以前所找到的路径都短就更新当前路径{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控制计数变量、用于换行a=sight2; //将景点二赋值给aif(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);//输出提示信息//输出sight1到sight2的最短路径长度,存放在D[]数组中printf("\t%s",G.vertex[sight1].name); //输出景点一的名称d=sight1; //将景点一的编号赋值给dfor(c=0;c<NUM;++c){gate:; //标号,可以作为goto语句跳转的位置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控制输出时的换行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]);}}五.测试数据及运行结果系统主界面学校平面图学校景点图最短路径信息查询异常信息三、设计评述:设计者对本设计的评述及通过设计的收获体会1.改进方案系统还有部分漏洞未能修复、不够绝对的稳定、还需改进!求最短路径时可以采用比较简单的哈密尔顿算法。

本次课程设计仅完成了要求的基本功能、由于平时掌握的不够好以及时间关系未能完成选作功能、这是一大缺陷!另外通过本次课程设计也更好的掌握了平时所学的知识、通过实践学到了许多课本上没有的知识!2.体会以后要加强动手时间能力、多与同学交流算法精髓!在编写程序中尽量做到独立完成、对于自己想要完成的问题要主动编程完成、这样自己是一个很大的提升、也能学到很多的知识、熟练编程!报告最后有两部分附录附录一:参考资料1、C语言程序设计(谭浩强版)2、数据结构(C语言版)编著:严蔚敏、吴伟民清华大学出版社附录二:源程序(将所有的源程序附在最后的附录中)// 查询景点信息.cpp : Defines the entry point for the console application.//#include "stdafx.h"#include "stdio.h"#include <string.h>#include <stdio.h>#include <malloc.h>#include <stdlib.h>#include <conio.h>#define NUM 20#define MAX 100000#define FALSE 0#define TURE 1typedef struct ArcNode{int length; //路径长度} ArcNode, *ArcLink; //边结点的定义typedef struct VertexNode{int number; //景点的编号char *name; //景点的名称char *info; //景点的简介} VertexNode; //顶点结点的定义typedef struct Graph{VertexNode vertex[NUM];ArcNode arc[NUM][NUM];int vexnum,arcnum; //图的顶点数,边数} Graph; //图的定义Graph G;int path[NUM][NUM];int D[NUM];void CreateGraph();//创建图void Map();//学校地图void outputplace();//输出校园景点名称void searchplace();//查询景点信息void searchpath();//查询最短路径void shortestpath_DIJ(int num);//迪杰斯特拉算法最短路径void output(int sight1,int sight2);//输出函数void CreateGraph()//创建图{int i,j;G.vexnum=12;G.arcnum=17;for(i=1;i<NUM;i++)G.vertex[i].number=i;G.vertex[1].name="太原理工大学正门";G.vertex[1].info="学校正门位于学校的正南方向、是进入学校前的第一道亮丽\n\t\t的风景线!\n";G.vertex[2].name="电机馆";G.vertex[2].info="电机馆是数学系,电子信息系,自动化,通讯等学院的学院楼!\n";G.vertex[3].name="科学楼";G.vertex[3].info="科学楼是我校科研机构场所,也是山西省网关所在地!\n";G.vertex[4].name="多学科楼";G.vertex[4].info="科学楼是计算机科学与技术学院,软件学院,电子信息学院,\n\t\t土木,建筑的学院楼,也是我校最好的学院楼!\n";G.vertex[5].name="图书馆";G.vertex[5].info="太原理工图书馆经历了初创时期,发展时期,面向现代化的转型时期。

\n\t\t如今,她已经发展成为资源丰富,现代化,综合性,开放式的图书馆!\n";G.vertex[6].name="机械馆";G.vertex[6].info="机械馆是我校百年高校最有力的体现!\n\t\t是欧式风格建筑,外观宏伟气派\n\t\t为机械学院的学院楼!\n";G.vertex[7].name="篮球场";G.vertex[7].info="篮球场全橡胶场,每天这里打球人员特多,我校篮球队\n\t\t在历年的CUBA联赛上取得佳绩,是我们引以为豪的校队!\n";G.vertex[8].name="清泽餐厅";G.vertex[8].info="清泽餐厅是我校最现代化的食堂,提供各种美食!\n";G.vertex[9].name="学生宿舍";G.vertex[9].info="这里是我校学生宿舍集中所在地,包括本科生,研究生宿舍,\n\t\t是我们在学校的家!\n";G.vertex[10].name="文体中心";G.vertex[10].info="文体中心包括体育馆,体育场,各种体育娱乐场所,供学生\n\t\t体育锻炼的地方!\n";G.vertex[11].name="国际交流中心";G.vertex[11].info="国际交流中心是外国留学生居住学习科研的场所!\n";for(i=0;i<NUM;++i)for(j=0;j<NUM;++j)G.arc[i][j].length=MAX;G.arc[1][2].length=G.arc[2][1].length=60;G.arc[1][3].length=G.arc[3][1].length=30;G.arc[1][6].length=G.arc[6][1].length=70;G.arc[2][3].length=G.arc[3][2].length=10;G.arc[2][4].length=G.arc[4][2].length=50;G.arc[2][6].length=G.arc[6][2].length=100;G.arc[4][5].length=G.arc[5][4].length=20;G.arc[5][6].length=G.arc[6][5].length=40;G.arc[5][7].length=G.arc[7][5].length=10;G.arc[7][8].length=G.arc[8][7].length=15;G.arc[8][9].length=G.arc[9][8].length=400;G.arc[8][10].length=G.arc[10][8].length=120;G.arc[9][10].length=G.arc[10][9].length=500;G.arc[10][11].length=G.arc[11][10].length=80;G.arc[11][5].length=G.arc[5][11].length=100;G.arc[11][6].length=G.arc[6][11].length=500;}void Map()//学校地图{printf("\n\n");system("cls");printf("\t┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┒\n");printf("\t┃太原理工大学校园图┃\n");printf("\t┃注:此图按正门布局而画,方位并非上北下南左西右东! ┃\n");printf("\t┃━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\n");printf("\t┃┏————┒\n");printf("\t┃ ................................ ┃学生宿舍┃ \n");printf("\t┃ : : ┗------ --┛┃\n");printf("\t┃┏--------┒┏--------┒┃\n");printf("\t┃┃文体中心┃........┃清泽餐厅┃┃\n");printf("\t┃┗--------┛┗--------┛┃\n");printf("\t┃ : : ┃\n");printf("\t┃ : : ┃\n");printf("\t┃ : ┍------┒┃\n");printf("\t┃ : ┃篮球场┃┃\n");printf("\t┃ : ┗------┛┃\n");printf("\t┃ : : ┃\n");printf("\t┃ : : ┃\n");printf("\t┃┍--------┒┏------┒┏--------┒┃\n");printf("\t┃┃国际交流┃........┃图书馆┃........┃多学科楼┃┃\n");printf("\t┃┗--------┛┗------┛┗--------┛┃\n");printf("\t┃ : : : ┃\n");printf("\t┃ : : : ┃\n");printf("\t┃ : ┏------┒ : ┏------┒ : ┃\n");printf("\t┃ :... ┃机械馆┃.........┃电机馆┃....:.... ┃\n");printf("\t┃┗------┛ : ┗- ----┛ : ┃\n");printf("\t┃ : : : ┃\n");printf("\t┃ : : ┏------┒┃\n");printf("\t┃ : : ┃科学楼┃┃\n");printf("\t┃ : : ┗------┛┃\n");printf("\t┃┏----------------┒: ┋┃\n");printf("\t┃┃太原理工大学大门┃''''''''''''' ┃\n");printf("\t┃┗----------------┛┎------┓┃\n");printf("\t┃┃北┃\n");printf("\t┃┃西╋东┃\n");printf("\t┃┃南┃\n");printf("\t┃┗------┛┃\n");printf("\t┗━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\n");}void outputplace()//输出校园景点名称{printf("\t┎━━━━━━━━━━━━━━━━━━━━━━━━┓\n");printf("\t┃太原理工大学学校景点一览表┃\n");printf("\t┠━━━━━━━━━━━━━┲━━━━━━━━━━┃\n");printf("\t┃ 1.学校正门┃ 2.电机馆┃\n");printf("\t┠━━━━━━━━━━━━━╂━━━━━━━━━━┃\n");printf("\t┃ 3.科学楼┃ 4.多学科楼┃\n");printf("\t┠━━━━━━━━━━━━━╂━━━━━━━━━━┃\n");printf("\t┃ 5.图书馆┃ 6.机械馆┃\n");printf("\t┠━━━━━━━━━━━━━╂━━━━━━━━━━┃\n");printf("\t┃ 7.篮球场┃ 8.清泽餐厅┃\n");printf("\t┠━━━━━━━━━━━━━╂━━━━━━━━━━┃\n");printf("\t┃ 9.学生宿舍┃ 10.文体中心┃\n");printf("\t┠━━━━━━━━━━━━━╂━━━━━━━━━━┃\n");printf("\t┃ 11.国际交流中心┃┃\n");printf("\t┗━━━━━━━━━━━━━┸━━━━━━━━━━┛\n");}void searchplace()//查询景点信息{int i,num;char c='y';while(c=='y'){system("cls");outputplace();printf("\t\t请输入您要查找的景点编号:");scanf("%d",&num);getchar();system("cls");if(num>0 && num<=G.vexnum) //判定信息输入正确{for(i=1;i<=G.vexnum;i++)if(num==G.vertex[i].number){printf("\n\t\t景点编号:%d\n",i);printf("\t\t景点名称:%s\n",G.vertex[i].name);printf("\t\t景点简介:%s\n\n",G.vertex[i].info);}}elseprintf("\t\t信息输入有误!\n");num=0;printf("\n\t\t是否继续查询景点信息(y/n):");c=getchar();getchar();}system("cls");}void searchpath()//查询最短路径{int i,j;char c='y';while(c=='y'){system("cls");outputplace();printf("\n\n\t\t初始景点编号(1->11):");scanf("%d",&i);printf("\t\t最终景点编号(1->11):");scanf("%d",&j);getchar();if(i>G.vexnum || i<=0 || j>G.vexnum || j<0 || i==j)printf("\t\t输入信息错误!\n\n");else{shortestpath_DIJ(i);output(i,j);}printf("\n\t\t是否继续查询最短路径(y/n):");c=getchar();getchar();}system("cls");}void shortestpath_DIJ(int num)//迪杰斯特拉算法最短路径{int v,w,i,t;//i、w和v为计数变量//t表示景点个数int final[NUM]; //标志数组、用来存放顶点的信息int min;//记录权值、最终输出路径for(v=0;v<NUM;v++){final[v]=FALSE; //假设从顶点num到顶点v没有最短路径D[v]=G.arc[num][v].length;//将num到其余顶点的最短路径长度初始化为权值for(w=0;w<NUM;w++)path[v][w]=FALSE;//初始化从v到w的路径值if(D[v]<MAX) //存在路径{path[v][num]=TURE; //存在标志置为一path[v][v]=TURE; //自身到自身}}D[num]=0;//初始化新路径final[num]=TURE; //初始化num顶点属于final集合//开始主循环,每一次求得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顶点更近{v=w;min=D[w];}final[v]=TURE; //离num顶点更近的v加入到s集合for(w=0;w<NUM;++w) //更新当前最短路径极其距离if(!final[w]&&((min+G.arc[v][w].length)<D[w]))//不在s集合,并且比以前所找到的路径都短就更新当前路径{D[w]=min+G.arc[v][w].length;//更新路径for(t=0;t<NUM;t++)path[w][t]=path[v][t];path[w][w]=TURE;}}}void output(int sight1,int sight2)//输出函数{int a,b,c,d,q=0;//a、b、c和d为计数变量//q控制计数变量、用于换行a=sight2; //将景点二赋值给aif(a!=sight1) // 如果景点二不和景点一输入重合,则进行...{printf("\t\t从%s到%s的最短路径是:\n\n\t\t",G.vertex[sight1].name,G.vertex[sight2].name);//输出提示信息//输出sight1到sight2的最短路径长度,存放在D[]数组中printf("%s",G.vertex[sight1].name); //输出景点一的名称d=sight1; //将景点一的编号赋值给dfor(c=0;c<NUM;++c){gate:; //标号,可以作为goto语句跳转的位置path[a][sight1]=FALSE;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控制输出时的换行path[a][b]=FALSE;d=b; //将b作为出发点进行下一次循环输出,如此反复if(q%12==0) printf("\n");goto gate;}}}printf("\n\n\t\t最短距离为 %dm.\n\n\t",D[a]);}}int main(int argc, char* argv[]){int x;CreateGraph();printf("\n\n\n\n\n\t\t欢迎使用太原理工大学校园导游系统\n\n\n");while(1){printf("\n\n");printf("\t\t┎━━━━━━━━━━━━━━━┓\n");printf("\t\t┃ 1.校园平面图浏览┃\n");printf("\t\t┃┃\n");printf("\t\t┃ 2.景点信息查询┃\n");printf("\t\t┃┃\n");printf("\t\t┃ 3.任意两点最短路径查询┃\n");printf("\t\t┃┃\n");printf("\t\t┃ 0.退出系统┃\n");printf("\t\t┗━━━━━━━━━━━━━━━┛\n");printf("\n\t\t请选择您需要的操作(0-3):");scanf("%d",&x);getchar();switch(x){case 1: system("cls");printf("\t校园平面图浏览:"); Map();break;case 2: system("cls");printf("\t景点信息查询:"); searchplace();break;case 3: system("cls");printf("\t任意两点最短路径查询:"); searchpath();break;case 0: printf("\n\t");exit(0);default: system("cls");printf("\t\t输入信息错误,请重新输入!\n"); break;}}return 0;}(注:专业文档是经验性极强的领域,无法思考和涵盖全面,素材和资料部分来自网络,供参考。

相关文档
最新文档