《(完整word版)数据结构校园导游系统课程设计.docx》由会员分享,可在线阅读,更多相关《(完整word版)数据结构校园导游系统课程设计.docx(31页珍藏版)》请在优知文库上搜索。
1、用住Q弁居滨江学院蝙麒课程蝴题目校园导游咨询程序设计学号学生姓名院系专业指导教师-O-年月日1、题目的内容及要求设计一个校园导游程序,为来访的客人提供各种信息查询服务。2、需求分析(1)设计你的学校的校园平面图,所含景点不少于10个.以图中顶点表示学校各景点,存放景点名称、代号、简介等信息;以边表示路径,存放路径长度等相关信息.(2)为来访客人提供图中任意景点的问路查询,即查询任意两个景点之间的一条最短的简单路径。(3)为来访客人提供图中任意景点相关信息的查询.3、设计1.功能模块图;voidCreateUDN();创建无向网voidSearCh();查询景点信息voidShOrteStPat
2、h(inti);/计算最短路径voidOutput(intsightl,intSight2);输出函数2,各个模块详细的功能描述.CreateUDN();创建无向网、主要用来保存各景点信息SearchO;查询景点信息、景点的名称及介绍Shortestpath(inti);计算两景点间最短路径Output(intSightlJntsight2);输出两景点最短路径及信息3.模块图4iis-图的储存结构#defineMax30000#defineNUM10typedefstructArcCeII(itadj;*相邻接的景点之间的路程*/ArcCeII;/*定义边的类型*/typedefstruct
3、VertexTypeintnumber;/*景点编号*/char*sight;/*景点名称*/char*description;/*景点描述*/JVertexType;/*定义顶点的类型*/typedefstruct(VertexTypevexNUM;/*图中的顶点,即为景点*/ArcCeIIarcsNUMNUM;/*图中的边,即为景点间的距离Vintvexnum,arcnum;*/MGr叩h;/*定义图的类型二、算去1.主龄voidmain()(intv,vl;charck;CreateUDN(NUM,11);do(ck=Menu();switch(ck)case1,:system(,cis
4、);/narrate();printf(nttt请选择起点景点(09):;scanf(o%df&vO);Printf(ttt请选择终点景点(09):”);scanf(,f%d,f,&vl);ShortestPath(v);/*计算两个景点之间的最短路径*/output(v,vl);/*计算两个景点之间的最短路径7Printf(nntttt请按任意键继续.);getchar();getchar();break;case2:search();break;case3,:system(clsh);/narrate();0=l;HaMiTonian(I);Primf(nntttt请按任意键继续。n);g
5、etchar();getchar();break;;while(ck!=e,);)2输出程序voidoutput(intsightl,intsight2)(inta,b,c,d,q=0;a=sight2;if(a!=sightl)/*如果景点二不和景点一输入重合,则进行7(printf(nt从s到s的最短路径是,G.vexsightl.sight,G.vexsight2.sight);/*输出提示信息*/Printf(t(最短距离为%dm.)nn,Da);printf(t%s,G.vexsightlosight);d=sightl;*将景点一的编号赋值给d*/for(c=0;cNUM;+C)(
6、gate:;Pasightl=0;for(b=0;b(NUM;b+)if(G0arcsdb0adj30000&Pab)/*如果景点一和它的一个临界点之间存在路径且最短路径*/(Printf(一)s,G。vexb.sight);/*输出此节点的名称*/q=q+l;/*计数变量加一,满8控制输出时的换行*/Pab=0;d=b;/*将b作为出发点进行下一次循环输出,如此反复*/if(q%9=0)Printf(n);gotogate;3 .求最短路径voidShortestPath(intnum)(intv,wj,t;intfinalNUM;intmin;for(v=0;v(NUM;v+)(final
7、v=0;Dv=G.arcsnumvoadj;for(w=0;wNUM;w+)Pvw=0;if(Dv30000)(Pvnum=l;Pvv=1;)Dnum=0;finalnum=1;for(i=0;iNUM;+i)(min=Max;for(w=0;w(NUM;+w)if(!finalw)if(Dwmin)(v=w;min=Dw;)finalv=l;for(w=0;wNUM;+w)if(!finalw&(min+G.arcsvw.adj)Dw)Dw=min+G0arcsvw.adj;for(t=0;tNUM;t+)Pwt=Pvt;Pww=l;)4 .说明函数voidnarrate()(inti,k=
8、0;printf(,tt*欢迎使用校园导游程序*);pritf(ntt*南京信口工程大学*n);Printf(t_n”);printf(tt景点名称tUt景点描述n);printf(tIn);for(i=OJ(NUM;i+)(printf(t(%2d)%-10stttt%-25snj,Govexi.sight,G.vexiodescription);k=k+l;)(完整word版)数据结构校园导游系统课程设计printf(tIn);)5、查询景点信息voidsearch()(intnum;inti;charc;charname20;do(system(clso);C=SearchMenu();
9、switch(c)(case1:system(11cIsm);narrate();printf(ntt请输入您要查找的景点编号:);scant(%dz/,8inum);for(i=0;i(NUM;i+)if(num=G.vexi.number)Printf(nnttt您要查找景点信息如下:);Printf(ttt%25snnzz,Govexiodescription);Printf(nttt搦JB三S回。.);getchar();getchar();break;)if(i=NM)(printf(11nttt没有找到!);Primf(nnttt按任意键返回getchar();getchar();
10、)break;case,2,:narrate();system(clsn);printfCnntt请输入您要查找的景点名称:);SCanf(%s,name);for(i=0;i H t 2 3 图书馆一 老货室一 新食堂请按任意键继续请送挥起点芝?(H9)I 请选拄终点拿点(。9),从新食堂到文园的班路杼是最屈距离为10. 新食堂一 文园谓咬任意键继续.查询信息m东气体大 0 12 3 4 5 6 7 8 9请输入您要查找的景点编号,3您要查找景点信息如下:竞赛、晚会举办地按任意键返回6、及体味非常高兴能和同学们一起做实验,感谢各位老师以及同学们对我的匡助,特殊是老师循循善诱的教导和不拘一格的思路赋予我无尽的启迪;这次数据结构设计的每一个实验细节和每一个数据,都离不开老师您的细心指导.7、弋码#includestring.h#includeMStdioohn# includemalloc.h,r# includestdliboh# defineMax30000#defineNUM10typedefstr