(完整word版)数据结构校园导游系统课程设计.docx

上传人:夺命阿水 文档编号:519887 上传时间:2023-08-10 格式:DOCX 页数:31 大小:102.12KB
返回 下载 相关 举报
(完整word版)数据结构校园导游系统课程设计.docx_第1页
第1页 / 共31页
(完整word版)数据结构校园导游系统课程设计.docx_第2页
第2页 / 共31页
(完整word版)数据结构校园导游系统课程设计.docx_第3页
第3页 / 共31页
(完整word版)数据结构校园导游系统课程设计.docx_第4页
第4页 / 共31页
(完整word版)数据结构校园导游系统课程设计.docx_第5页
第5页 / 共31页
点击查看更多>>
资源描述

《(完整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、及体味非常高兴能和同学们一起做实验,感谢各位老师以及同学们对我的匡助,特殊是老师循循善诱的教导和不拘一格的

11、思路赋予我无尽的启迪;这次数据结构设计的每一个实验细节和每一个数据,都离不开老师您的细心指导.7、弋码#includestring.h#includeMStdioohn# includemalloc.h,r# includestdliboh# defineMax30000#defineNUM10typedefstructArcCeII(intadj;ArcCeII;typedefstructVertexType(intnumber;char*sight;char*description;JVertexType;typedefstruct(VertexTypevexNUM;ArcCeIIarcs

12、NUMNUM;intvenum,arcnum;MGr叩h;MGraphG;intPNUMNUM;longintDNUM;intx9=0;voidCreatellDN(intv,inta);voidnarrate();voidShortestPath(intnum);voidoutput(intsightl,intsight2);charMenu();voidsearch();charSearchMenuO;voidHaMiTonian(int);voidNextValue(int);voiddisplay();voidmain()(intv,vl;charck;CreateUDN(NM,11)

13、;do(ck=Menu();switch(ck)(case,1,system(cis);/narrate();printf(wnttt请选择起点景点(09):);scanf(w%d,&v0);printf(wttt请选择终点景点(09):);scant(m%d,&vl);ShortestPath(v);output(v,vl);printf(nntttt请按任意键继续。.n);getchar();getchar();break;case2,:search();break;case,3:system(wds);/narrate();0=1;HaMiTonian(1);printfC,nntttt

14、请按任意键继。oon);getchar();getchar();break;);while(ck!=e,);)charc;intflag;doflag=l;system(,zclsn);narrate();prntf(nttt-1n);printf(wtttn);printf(wtttL查询景点路径In);printf(wttt2、查询景点信息);printfttt3、推荐参观路线n);printf(,tttt、退出n);printf(tttn);printf(tttlln);printf(tttt请输入您的选择:);scanf(%c,&c);if(c=z1,Ic=三,2zIc=f3,c=t,

15、)flag=0;while(flag);returnc;charSearchMenuOcharc;intflag;doflag=l;system(cis);narrate();printf(ntttrln);printftttn);printf(tttI1、按照景点编号查询n);printf(httt2、按照景点名称杳询n);printf(tttt、返回printf(wtttn););printf(tttlln);PrimfCtttt请输入您的选择:”);scanf(%c,&c);if(c=lc=2c=t)flag=O;while(flag);returnc;)voidsearch()intn

16、um;inti;charc;charname20;doSyStemCCIS);C=SearchMenuO;switch(c)(case,1,:system(,cIsm);narrate();printf(ntt请输入您要查找的景点编号:);scanf(%d,&num);for(i=0;i(NUM;i+)(if(num=Govexi.number)(Printf(nnttt您要查找景点信息如下:);printf(nnttt%-25snn,Govexi.description);printfCnttt按任意键返回。getchar();getchar();(完整word版)数据结构校园导游系统课程设

17、计break;)if(i=NM)(printf(wnnttt没有找到!);printf(onnttt按任意键返回.);getchar();getchar();)break;case,2,:narrate();system(ocis);printf(nntt请输入您要查找的景点名称:);SCanf(%sm,name);for(i=0;i(NUM;i+)(if(!strcmp(name,G0vexi0sight)(printf(nnttt您要查找景点信息如下:);printf(z,nnttt%25snn,G.vexiodescription);printf(nttt按任意键返回);getchar(

18、);getchar();break;)if(i=NUM)(printfCnnttt没有找到!);printf(/,nnttt按任意键返回。“);getchar();getchar();)break;while(c!=t);voidCreatelIDN(intvzinta)inti,j;Govexnum=v;G.arcnum=a;for(i=0;iG0vexnum;+i)G.vexi.number=1;G0vex0osight=东大门;G.vexOodescription=03Eo;Gvexl.sight=气象楼;G.vex1.description=校气象研究楼.;Gvex2.sight=体育

19、馆;G.vex20description=w运动,放松心情;G.vex30sight=大学生活动中心”;G0vex3.description=晚会举办地;G.vex4.sight=图书馆;G0vex4odescription=阅览,借阅图书”;G0vex5oSight=滨江楼;G.vex5.description=学习,自习室”;Gvex.sight=综合楼;Govex6.description=学习,办公室;Govex7.sight=老食堂;G0vex7.description=餐饮休闲;Govex8sight=新食堂;G.vex8odescription=餐饮休闲;G.vex9.sight

20、=文园;Govex9.description=w宿舍,歇息;for(i=OjiG0vexnum;+i)for(j=0;jG.vexnum;+j)G0arcsijoadj=Max;G.arcs01oadj=Goarcsl0oadj=2;G0arcs02.adj=G0arcs20oadj=l;G0arcsO30adj=G.arcs30oadj=7;Goarcs14.adj=Goares4loadj=8;G.arcs24.adj=Goarcs420adj=9;Goarcs35oadj=Goarcs53oadj=5;G.arcs57oadj=G.arcs75oadj=2;G.arcs46oadj=Go

21、arcs640adj=3;Goarcs47,adj=Goarcs74.adj=2;G.arcs68oadj=Goarcs86.adj=2;G0arcs78.adj=Goarcs87oadj=l;Goarcs890adj=Goares98.adj=l;)voidnarrate()(inti,k=O;printfCntt*欢迎使用校园导游程序*n);Prjntf(ntt*南京信息工程大学*n),printftn);p11ntf(tt景点名称ttIt景点描述n);Printf(tIn);for(i=0;i(NUM;i+)printf(t(%2d)%10stttt%25snw,i,G.vexi.sig

22、ht,Govexiodescription);k=k+l;)printf(tIn);voidShortestPath(intnum)(intv,w,i,t;intfinalNUM;intmin;for(v=0;v(NUM;v+)(finalv=O;Dv=Goarcsnumvoadj;for(w=0;wNUM;w+)Pvw=0;if(Dv30000)Pvnum=1;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=1;for(w=0;w

23、NUM;+w)if(!finalw&(min+G.arcsvw.adj)(Dw)(Dw=min+G0arcsvw.adj;for(t=0;t(NUM;t+)Pwt=Pvt;Pww=l;)voidoutput(intsightl,intsight2)inta,b,c,d,q=0;a=sight2;if(a!=sightl)/*如果景点二不和景点一输入重合,则进行*/(printf(wnt从%s到%s的最短路径是,G。vexsightl0sight,G0vexsight2osight);/*输出提示信息*/Printf(N(最短距离为%dm.)nnf,Da);printf(t%so,G.vexsi

24、ghtl.sight);d=sightl;/*将景点一的编号赋值给d*/for(c=0;c(NUM;+c)(gate:;Pasightl=0;for(b=0;bNUM;b+)(if(G0arcsdb.adj%srGovexb.sight);/*输出此节点的名称*/q=ql;/*计数变量加一,满8控制输出时的换行*/Pab=0;d=b;/*将b作为出发点进行下一次循环输出,如此反复*/if(q%9=0)printf(n);gotogate;)voidHaMiTonian(intm)(if(m9)return;1.:NextValue(m);if(xm=0)return;if(m=8&Goarcs0x9-l.adj!=30000)display();elseHaMiTonian(m+l);gotoL;)voidNetValue(intk)(intj;I:xk=(xk+1)%10;if(xk=0)return;if(G.arcsk-1-lxkl.adj!=30000)for(j=0;jk;j+)if(Xj=Ik)gotoI;return;)elsegotoI;)voiddisplay()inti=0;Primf(nnt);for(i=0;i9;i+)printf(%s),G.vexxil.sight);Printf(出口”);printf(n);

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 在线阅读 > 生活休闲


备案号:宁ICP备20000045号-1

经营许可证:宁B2-20210002

宁公网安备 64010402000986号