欢迎来到天天文库
浏览记录
ID:31324861
大小:395.00 KB
页数:20页
时间:2019-01-08
《数据结构.校园导游系统课程设计报告书》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库。
1、WORD格式整理滨江学院《数据结构》课程设计题目校园导游咨询程序设计学号学生姓名院系专业指导教师二O一二年月日学习参考资料分享WORD格式整理1、题目的内容及要求设计一个校园导游程序,为来访的客人提供各种信息查询服务。2、需求分析(1)设计你的学校的校园平面图,所含景点不少于10个。以图中顶点表示学校各景点,存放景点名称、代号、简介等信息;以边表示路径,存放路径长度等相关信息。(2)为来访客人提供图中任意景点的问路查询,即查询任意两个景点之间的一条最短的简单路径。(3)为来访客人提供图中任意景点相关信息的查询。3、概要设计1.功能模块图;voidCreateUDN();//创建无向网vo
2、idSearch();//查询景点信息voidShortestpath(inti);//计算最短路径voidOutput(intsight1,intsight2);//输出函数2.各个模块详细的功能描述。CreateUDN();//创建无向网、主要用来保存各景点信息Search();//查询景点信息、景点的名称及介绍Shortestpath(inti);//计算两景点间最短路径Output(intsight1,intsight2);//输出两景点最短路径及信息学习参考资料分享WORD格式整理3.模块图4、详细设计一、图的储存结构#defineMax30000#defineNUM10typ
3、edefstructArcCell{intadj;/* 相邻接的景点之间的路程 */ }ArcCell; /* 定义边的类型 */ typedefstructVertexType{intnumber;/* 景点编号 */ char*sight;/* 景点名称 */char*description;/* 景点描述 */}VertexType;/* 定义顶点的类型 */ typedefstruct{学习参考资料分享WORD格式整理VertexTypevex[NUM]; /* 图中的顶点,即为景点 */ArcCellarcs[NUM][NUM];/* 图中的边,即为景点间的距离 */intve
4、xnum,arcnum;/* 顶点数,边数 */ }MGraph; /* 定义图的类型 二、算法1.主程序voidmain(){intv0,v1;charck;CreateUDN(NUM,11);do{ck=Menu();switch(ck){case'1':system("cls");//narrate();printf("ttt请选择起点景点(0~9):");scanf("%d",&v0);printf("ttt请选择终点景点(0~9):");scanf("%d",&v1);ShortestPath(v0); /* 计算两个景点之间的最短路径 */output(v
5、0,v1); /* 计算两个景点之间的最短路径 */printf("tttt请按任意键继续...");getchar();getchar();break;case'2':search();break;case'3':system("cls");//narrate();x[0]=1;HaMiTonian(1);printf("tttt请按任意键继续...");getchar();getchar();break;};}while(ck!='e');学习参考资料分享WORD格式整理}2.输出程序voidoutput(intsight1,intsight2
6、){inta,b,c,d,q=0;a=sight2;if(a!=sight1)/* 如果景点二不和景点一输入重合,则进行 */{printf("t从%s到%s的最短路径是",G.vex[sight1].sight,G.vex[sight2].sight);/* 输出提示信息 */ printf("t(最短距离为%dm.)t",D[a]);printf("t%s",G.vex[sight1].sight);d=sight1; /* 将景点一的编号赋值给d */ for(c=0;c7、++){if(G.arcs[d][b].adj<30000&&P[a][b])/* 如果景点一和它的一个临界点之间存在路径且最短路径 */ {printf("-->%s",G.vex[b].sight);/* 输出此节点的名称 */ q=q+1;/* 计数变量加一,满8控制输出时的换行 */P[a][b]=0;d=b; /* 将b作为出发点进行下一次循环输出,如此反复 */if(q%9==0)printf("");gotogat
7、++){if(G.arcs[d][b].adj<30000&&P[a][b])/* 如果景点一和它的一个临界点之间存在路径且最短路径 */ {printf("-->%s",G.vex[b].sight);/* 输出此节点的名称 */ q=q+1;/* 计数变量加一,满8控制输出时的换行 */P[a][b]=0;d=b; /* 将b作为出发点进行下一次循环输出,如此反复 */if(q%9==0)printf("");gotogat
此文档下载收益归作者所有