风也温柔

计算机科学知识库

数据结构在线考试系统源代码 校园导游系统代码(数据结构).doc

  一、问题描述设计一个校园模拟导游程序,为新生或来访的客人通过与机器的“对话“提供最短路径的信息查询服务。二、基本要求1.任意选取个场所,构成一个无向带权图,图中顶点表示场所,边上的权值表示两点间的距离,图的存储结构可采用带权的邻接矩阵。2.咨询以用户和计算机的对话方式进行,由用户输入起始点和终点,输出信息:最短路径是多少?并指出所经过的场所。3、计算并记录从校门口到各个场所的最短路径,即求单源点到其它各个场所的最短路径。4、提供校园中任意场所的问路查询,即求任意两点之间的最短路径。三、测试数据学生根据实际情况指定#/无穷大/#40#####;//路径长度},[][];//图中顶点表示主要景点,存放景点的编号、名称、简介等信息数据结构在线考试系统源代码数据结构在线考试系统源代码,[30];;[200];//简介};evexs[];//景点;//路径数组,;//景点数,路径长度记录};;//全局变量(void);//在主函数中用来调用其他应用子函数的函数声明(void);//用来构造学校地图的子函数返回类型(void);//菜单函数;(G);//调用类型的地址,进行();//迪杰斯特拉算法求最短路径的子函数(G);//佛洛伊德算法(G);//寻找要查询的景点数据结构在线考试系统源代码 校园导游系统代码(数据结构).doc,并输出该景点的信息();//查看景点分布图(G);//景点列表();//();//退出(G,charv);//定点位置(G);////初始化图形,接受用户输入(G);//打印输出子函数(void)(void)//用来调用其他需要用到的函数的子函数b=();//构造校园地图(&b);//Menu();//调用菜单函数[scanf]1;while(i!=4)case1:("cls");/(&b);/te();(&b);break;case2:("cls");tou(&b);Floyd(&b);(&b);break;case3:("cls");tou(&b);(&b);(&b);break;case4:exit(0);break;:break;(void)//构造校园地图G.=13;//景点数量G.=21;//路径数量for(i=1;i%s",G->vexs[u].name);}("-->%s",G->vexs[j].name); (" 总路线长%dmn",Dk); }//Floyd end //寻找要查询的景点,并输出该景点的信息void ( intk,flag=1; while(flag) ("请输入要查询的景点编号:");scanf("%d",&k); if(kG->) ("景点编号不存在!请重新输入景点编号:");scanf("%d",&k); if(k>0&&)flag=0; n",G->vexs[k].num,G->vexs[k].name,G->vexs[k].);(" }// ( G,char intc=-1,i; if((v,G->vexs[i].name)==0){c=i;break;} (*G)//初始化图形,接受用户输入 [20],v2[20]; ("请输入图的顶点数,弧数:"); scanf("%d%d",&G->,&G->); ("请输入景点的编号:、名称、简介:n"); ("景点编号:");scanf("%d",&G->vexs->num); ("景点名称:"); scanf("%s",G->vexs[i].name); ("景点简介:"); scanf("%s",G->vexs->); G->arcsi.adj=;("请输入路径长度:n"); ("景点对(x,y):");scanf("%s",v1); scanf("%s",v2); ("路径长度:"); scanf("%d",&w); i=(G,v1); j=(G,v2); G->arcsi.adj=w;G->arcsj=G->arcsi; () {//查看景点分布图,3 (" ("男生宿舍 ("请按任意键继续!");getch(); ("n"); ( if(G->arcsv.adj==)(" ("%-7d",G->arcsv.adj); if(t%G->==0)("n"); ( ("n");("编号景点名称 ("%-4d%-12sn",G->vexs[v].num,G->vexs[v].name);("n");

  文章来源:https://www.docin.com/p-543694069.html