资源描述:
《数据结构校园导游系统课程设计》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库。
1、絃饥Z伉務滨江学院《数据结构》课程设计目校园导游咨询程序设计号学生姓名院系专业指导教师二o—二年月日1、题目的内容及要求设计一•个校园导游程序,为來访的客人提供各种信息查询服务。2、需求分析(1)设计你的学校的校园平面图,所含景点不少于10个。以图中顶点表示学校各景点,存放景点名称、代号、简介等信息;以边表示路径,存放路径长度等相关信息。(2)为来访客人提供图屮任意景点的问路查询,即查询任意两个景点之间的一条最短的简单路径。(3)为来访客人提供图中任意景点相关信息的查询。3、概要设计1.功能模块图;voidCreatel'DNO;//
2、创建无向网voidSearch();//査询景点信息voidShortestpath(inti);//计算最短路径voidOutput(intsightl,intsight2);//输出函数2.各个模块详细的功能描述。CreateUDNO;//创建无向网、主要用来保存各景点信息Search();//查询景点信息、景点的名称及介绍Shortestpath(inti);//计算两景点间最短路径Output(intsightl,intsigh⑵;//输出两景点最短路径及信息1.模块图4、详细设计一、图的储存结构^defineMax30000
3、#defineNUM10typedefstructArcCel1{intadj;/*相邻接的景点之间的路程*/}ArcCel1;/*定义边的类型*/typedefstructVertexType{intnumber;/*景点编号*/char*sight;/*景点名称*/char^description;/*景点描述*/}VertexType;/*定义顶点的类型*/typedefstructVertexTypevex[NUM];/*图中的顶点,即为景点*/ArcCellarcs[NUM][NUM];/*图中的边,即为景点间的距离*/in
4、tvexnum,arcnum;/*顶点数,边数*/}MGraph;/*定义图的类型二、算法1•主程序voidmain()intvO,vl;charck;CreateUDN(NUM,11);do{ck=Menu();switch(ck){case'1’:system(,zcls,z);//narrate();printfCttt请选择起点景点(0〜9):");scanf("%d:&v0);printf(vttt请选择终点景点(0~9):〃);scanf&vl);ShortestPath(vO);/*计算两个景点z间的
5、鼓短路径*/output(vO,vl);/*计算两个景点Z间的最短路径*/printf(z,tttt请按任意键继续.・.");getchar();getchar();break;case'2’:search();break;case'3,:system(〃cls");//narrate();x[0]=l;HaMiTonian(1);printf(/ztttt请按任意键继续・・・rT);getchar();getchar();break;};}while(ck!二'e');2.输出程序voidout
6、put(intsightl,intsight2){inta,b,c,d,q=0;a=sight2;if(a!=sightl)/*如果景点二不和景点一输入重合,则进行*/{printf(,zt从%s到%s的最短路径是ZZ,G.vex[sightl].sight,G.vex[sight2].sight);/*输出提示信息*/printf(,zt(最短距离为%dm.)t,/,D[a]);printf(z,t%sz,,G.vex[sightl].sight);d二sightl;/*将景点一的编号赋值给d*/for(c=0;
7、c%s",G.vex[b].sight);/*输出此节点的名称*/q二q+1;/*计数变量加一,满8控制输出吋的换行*/P[a][b]=0;d二b;/*将b作为出发点进行下一次循环输岀,如此反复*/if(q%9=0)printf(〃『);gotogate;3.求最短路径voidShortes
8、tPath(intnum){intv,w,i,t;intfinal[NUM];intmin;for(VHO-V〈NUM八V++)fin巴