数据结构课程设计(校园导游系统).docVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
数据结构课程设计(校园导游系统).doc

设计目的 设计一个学校的导游系统,方便游客游览我们学校。 二. 设计内容 为来访的客人提供各种信息查询服务 (3) IniGraph:初始化学校地图,给出景点的详细信息,以及景点之间的距离。 (4) Shortestpath_dij:迪杰斯特拉算法,用于求两个景点之间的最短路径。 (5) serch:供游客查询单个景点的详细信息 (6) prim:普利姆算法,用于得出最佳布网方案。 (7) map:无参函数,打印学校的全景图。 (8) menu:游客的输入界面。 (9) print:打印相应的游览路线。 (10) cmd:输入相应的选择进行不同的游览方式。 四.详细设计 1.功能函数的调用关系图 2.各功能函数的数据流程图 3.重点设计及编码 创建结构体,表示景点,成员为编号,名称,简介 typedef struct //图中顶点表示主要景点,存放景点的编号、名称、简介等信息, { char name[30]; int num; char introduction[100];//简介 }infotype; Prim算法: void prim(MGraph *G) { FILE *fp; fp=fopen(D:sight.txt,at+); if(fp==NULL) printf(fail to open!!\n); else { int v,u,i,w,k,j,flag=1,p[10][10][10],D[10][10]; for(v=0;vG-vexnum;v++) for(w=0;wG-vexnum;w++) { D[v][w]=G-arcs[v][w].adj; for(u=0;uG-vexnum;u++) p[v][w][u]=0; if(D[v][w]INFINITY) { p[v][w][v]=1;p[v][w][w]=1; } } for(u=0;uG-vexnum;u++) for(v=0;vG-vexnum;v++) for(w=0;wG-vexnum;w++) if(D[v][u]+D[u][w]D[v][w]) { D[v][w]=D[v][u]+D[u][w]; for(i=0;iG-vexnum;i++) p[v][w][i]=p[v][u][i]||p[u][w][i]; } while(flag) { printf(请输入出发点和目的地的编号:); scanf(%d%d,k,j); if(k0||kG-vexnum||j0||jG-vexnum) { printf(景点编号不存在!请重新输入出发点和目的地的编号:); scanf(%d%d,k,j); } if(k=0kG-vexnumj=0jG-vexnum) flag=0; } fprintf(fp,%s,G-vexs[k].name); for(u=0;uG-vexnum;u++) if(p[k][j][u]k!=uj!=u) fprintf(fp,--%s,G-vexs[u].name); fprintf(fp,--%s,G-vexs[j].name); fprintf(fp, 总路线长%dm\n,D[k][j]); } fclose(fp); } 迪杰斯特拉算法: void ShortestPath_DIJ(MGraph * G) { FILE *fp; fp=fopen(D:approach.txt,at+); if(fp==NULL) printf(Fail to open!!!!\n); else { int v,w,i,min,t=0,x,flag=1,v0; int final[20], D[20], p[20][20]; while(flag) { printf(请输入一个起始景点编号:); scanf(%d,v0); if(v00||v0G-vexnum) { printf(景点编号不存在!请重新输入景点编号:); scanf(%d,v0); } if(v0=0v0G-vexnum) flag=0; }//endwhile for(v=0;vG-vexnum;v++) { final[v]=0; D[v]=G-arcs[v0][v].adj; for(w=0;wG-vexnum;w++) p[v][w]=0; if(D[v]INFINITY) { p[v][v0]=1;p

文档评论(0)

jackzjh + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档