ImageVerifierCode 换一换
格式:DOC , 页数:20 ,大小:499KB ,
资源ID:4301736      下载积分:8 金币
验证码下载
登录下载
邮箱/手机:
验证码: 获取验证码
温馨提示:
支付成功后,系统会自动生成账号(用户名为邮箱或者手机号,密码是验证码),方便下次登录下载和查询订单;
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

开通VIP
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.zixin.com.cn/docdown/4301736.html】到电脑端继续下载(重复下载【60天内】不扣币)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  
声明  |  会员权益     获赠5币     写作写作

1、填表:    下载求助     索取发票    退款申请
2、咨信平台为文档C2C交易模式,即用户上传的文档直接被用户下载,收益归上传人(含作者)所有;本站仅是提供信息存储空间和展示预览,仅对用户上传内容的表现方式做保护处理,对上载内容不做任何修改或编辑。所展示的作品文档包括内容和图片全部来源于网络用户和作者上传投稿,我们不确定上传用户享有完全著作权,根据《信息网络传播权保护条例》,如果侵犯了您的版权、权益或隐私,请联系我们,核实后会尽快下架及时删除,并可随时和客服了解处理情况,尊重保护知识产权我们共同努力。
3、文档的总页数、文档格式和文档大小以系统显示为准(内容中显示的页数不一定正确),网站客服只以系统显示的页数、文件格式、文档大小作为仲裁依据,平台无法对文档的真实性、完整性、权威性、准确性、专业性及其观点立场做任何保证或承诺,下载前须认真查看,确认无误后再购买,务必慎重购买;若有违法违纪将进行移交司法处理,若涉侵权平台将进行基本处罚并下架。
4、本站所有内容均由用户上传,付费前请自行鉴别,如您付费,意味着您已接受本站规则且自行承担风险,本站不进行额外附加服务,虚拟产品一经售出概不退款(未进行购买下载可退充值款),文档一经付费(服务费)、不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
5、如你看到网页展示的文档有www.zixin.com.cn水印,是因预览和防盗链等技术需要对页面进行转换压缩成图而已,我们并不对上传的文档进行任何编辑或修改,文档下载后都不会有水印标识(原文档上传前个别存留的除外),下载后原文更清晰;试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓;PPT和DOC文档可被视为“模板”,允许上传人保留章节、目录结构的情况下删减部份的内容;PDF文档不管是原文档转换或图片扫描而得,本站不作要求视为允许,下载前自行私信或留言给上传者【丰****】。
6、本文档所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用;网站提供的党政主题相关内容(国旗、国徽、党徽--等)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
7、本文档遇到问题,请及时私信或留言给本站上传会员【丰****】,需本站解决可联系【 微信客服】、【 QQ客服】,若有其他问题请点击或扫码反馈【 服务填表】;文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“【 版权申诉】”(推荐),意见反馈和侵权处理邮箱:1219186828@qq.com;也可以拔打客服电话:4008-655-100;投诉/维权电话:4009-655-100。

注意事项

本文(数据结构-校园导游系统课程设计.doc)为本站上传会员【丰****】主动上传,咨信网仅是提供信息存储空间和展示预览,仅对用户上传内容的表现方式做保护处理,对上载内容不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知咨信网(发送邮件至1219186828@qq.com、拔打电话4008-655-100或【 微信客服】、【 QQ客服】),核实后会尽快下架及时删除,并可随时和客服了解处理情况,尊重保护知识产权我们共同努力。
温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载【60天内】不扣币。 服务填表

数据结构-校园导游系统课程设计.doc

1、滨江学院数据结构课程设计 题 目 校园导游咨询程序设计 学 号 学生姓名 院 系 专 业 指导教师 二一二 年 月 日1、 题目的内容及要求设计一个校园导游程序,为来访的客人提供各种信息查询服务。2、 需求分析(1)设计你的学校的校园平面图,所含景点不少于10个。以图中顶点表示学校各景点,存放景点名称、代号、简介等信息;以边表示路径,存放路径长度等相关信息。(2)为来访客人提供图中任意景点的问路查询,即查询任意两个景点之间的一条最短的简单路径。 (3)为来访客人提供图中任意景点相关信息的查询。 3、概要设计1功能模块图;void CreateUDN();/创建无向网void Search();

2、/查询景点信息void Shortestpath(int i);/计算最短路径void Output(int sight1,int sight2);/输出函数2各个模块详细的功能描述。CreateUDN();/创建无向网、主要用来保存各景点信息Search();/查询景点信息、景点的名称及介绍Shortestpath(int i);/计算两景点间最短路径Output(int sight1,int sight2);/输出两景点最短路径及信息3.模块图4、 详细设计一、图的储存结构#define Max 30000#define NUM 10typedef struct ArcCell int a

3、dj; /*相邻接的景点之间的路程*/ArcCell;/*定义边的类型*/typedef struct VertexType int number; /*景点编号*/ char *sight; /*景点名称*/ char *description;/*景点描述*/VertexType; /*定义顶点的类型*/typedef struct VertexType vexNUM;/*图中的顶点,即为景点*/ ArcCell arcsNUMNUM;/*图中的边,即为景点间的距离*/ int vexnum,arcnum;/*顶点数,边数*/MGraph; /*定义图的类型二、 算法1.主程序void m

4、ain() int v0,v1; char ck; CreateUDN(NUM,11); do ck=Menu(); switch(ck) case 1: system(cls); / narrate(); printf(nnttt请选择起点景点(09):); scanf(%d,&v0); printf(ttt请选择终点景点(09):); scanf(%d,&v1); ShortestPath(v0); /*计算两个景点之间的最短路径*/ output(v0,v1); /*计算两个景点之间的最短路径*/ printf(nntttt请按任意键继续.n); getchar(); getchar()

5、; break; case 2:search(); break; case 3: system(cls); /narrate(); x0=1; HaMiTonian(1); printf(nntttt请按任意键继续.n); getchar(); getchar(); break; ; while(ck!=e); 2. 输出程序void output(int sight1,int sight2) int a,b,c,d,q=0; a=sight2; if(a!=sight1) /*如果景点二不和景点一输入重合,则进行*/ printf(nt从%s到%s的最短路径是,G.vexsight1.sig

6、ht,G.vexsight2.sight);/*输出提示信息*/ printf(t(最短距离为 %dm.)nnt,Da); printf(t%s,G.vexsight1.sight); d=sight1; /*将景点一的编号赋值给d*/ for(c=0;cNUM;+c) gate:; Pasight1=0; for(b=0;bNUM;b+) if(G.arcsdb.adj%s,G.vexb.sight); /*输出此节点的名称*/ q=q+1; /*计数变量加一,满8控制输出时的换行*/ Pab=0; d=b; /*将b作为出发点进行下一次循环输出,如此反复*/ if(q%9=0) print

7、f(n); goto gate; 3. 求最短路径 void ShortestPath(int num) int v,w,i,t; int finalNUM; int min; for(v=0;vNUM;v+) finalv=0; Dv=G.arcsnumv.adj; 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;wNUM;+w) if(!finalw) if(Dwmin) v=w; min=Dw; finalv=1; for(w

8、=0;wNUM;+w) if(!finalw&(min+G.arcsvw.adj)Dw) Dw=min+G.arcsvw.adj; for(t=0;tNUM;t+) Pwt=Pvt; Pww=1; 4. 说明函数void narrate() int i,k=0; printf(ntt*欢迎使用校园导游程序*n); printf(ntt*南京信息工程大学*n); printf(t_n); printf(tt景点名称tt|t景点描述n); printf(t_|_n); for(i=0;iNUM;i+) printf(t (%2d)%-10sttt|t%-25sn,i,G.vexi.sight,G.

9、vexi.description); k=k+1; printf(t_|_n);5、查询景点信息void search() int num; int i; char c; char name20; do system(cls); c=SearchMenu(); switch (c) case 1: system(cls); narrate(); printf(nntt请输入您要查找的景点编号:); scanf(%d,&num); for(i=0;iNUM;i+) if(num=G.vexi.number) printf(nnttt您要查找景点信息如下:); printf(nnttt%-25sn

10、n,G.vexi.description); printf(nttt按任意键返回.); getchar(); getchar(); break; if(i=NUM) printf(nnttt没有找到!); printf(nnttt按任意键返回.); getchar(); getchar(); break; case 2: narrate(); system(cls); printf(nntt请输入您要查找的景点名称:); scanf(%s,name); for(i=0;iNUM;i+) if(!strcmp(name,G.vexi.sight) printf(nnttt您要查找景点信息如下:)

11、; printf(nnttt%-25snn,G.vexi.description); printf(nttt按任意键返回.); getchar(); getchar(); break; if(i=NUM) printf(nnttt没有找到!); printf(nnttt按任意键返回.); getchar(); getchar(); break; while(c!=t);6. 选择菜单char SearchMenu() char c; int flag; do flag=1; system(cls); narrate(); printf(ntttn); printf(ttt n); printf

12、(ttt 1、按照景点编号查询 n); printf(ttt 2、按照景点名称查询 n); printf(ttt t、返回 n); printf(ttt n); printf(tttn); printf(tttt请输入您的选择:); scanf(%c,&c); if(c=1|c=2|c=t) flag=0; while(flag); return c;5、运行结果及分析系统主界面查询路径查询信息6、收获及体会 非常高兴能和同学们一起做实验,感谢各位老师以及同学们对我的帮助,特别是老师循循善诱的教导和不拘一格的思路给予我无尽的启迪;这次数据结构设计的每个实验细节和每个数据,都离不开老师您的细心指

13、导。7、源代码#include string.h#include stdio.h#include malloc.h#include stdlib.h#define Max 30000#define NUM 10typedef struct ArcCell int adj; ArcCell;typedef struct VertexType int number; char *sight; char *description;VertexType; typedef struct VertexType vexNUM; ArcCell arcsNUMNUM; int vexnum,arcnum;MG

14、raph; MGraph G; int PNUMNUM; long int DNUM; int x9=0;void CreateUDN(int v,int a);void narrate(); void ShortestPath(int num);void output(int sight1,int sight2);char Menu(); void search(); char SearchMenu(); void HaMiTonian(int); void NextValue(int); void display();void main() int v0,v1; char ck; Crea

15、teUDN(NUM,11); do ck=Menu(); switch(ck) case 1: system(cls); / narrate(); printf(nnttt请选择起点景点(09):); scanf(%d,&v0); printf(ttt请选择终点景点(09):); scanf(%d,&v1); ShortestPath(v0); output(v0,v1); printf(nntttt请按任意键继续.n); getchar(); getchar(); break; case 2:search(); break; case 3: system(cls); /narrate();

16、x0=1; HaMiTonian(1); printf(nntttt请按任意键继续.n); getchar(); getchar(); break; ; while(ck!=e); char Menu() char c; int flag; do flag=1; system(cls); narrate(); printf(ntttn); printf(ttt n); printf(ttt 1、查询景点路径 n); printf(ttt 2、查询景点信息 n); printf(ttt 3、推荐参观路线 n); printf(ttt t、退出 n); printf(ttt n); printf(

17、tttn); printf(tttt请输入您的选择:); scanf(%c,&c); if(c=1|c=2|c=3|c=t) flag=0; while(flag); return c;char SearchMenu() char c; int flag; do flag=1; system(cls); narrate(); printf(ntttn); printf(ttt n); printf(ttt 1、按照景点编号查询 n); printf(ttt 2、按照景点名称查询 n); printf(ttt t、返回 n); printf(ttt n); printf(tttn); print

18、f(tttt请输入您的选择:); scanf(%c,&c); if(c=1|c=2|c=t) flag=0; while(flag); return c;void search() int num; int i; char c; char name20; do system(cls); c=SearchMenu(); switch (c) case 1: system(cls); narrate(); printf(nntt请输入您要查找的景点编号:); scanf(%d,&num); for(i=0;iNUM;i+) if(num=G.vexi.number) printf(nnttt您要查

19、找景点信息如下:); printf(nnttt%-25snn,G.vexi.description); printf(nttt按任意键返回.); getchar(); getchar(); break; if(i=NUM) printf(nnttt没有找到!); printf(nnttt按任意键返回.); getchar(); getchar(); break; case 2: narrate(); system(cls); printf(nntt请输入您要查找的景点名称:); scanf(%s,name); for(i=0;iNUM;i+) if(!strcmp(name,G.vexi.si

20、ght) printf(nnttt您要查找景点信息如下:); printf(nnttt%-25snn,G.vexi.description); printf(nttt按任意键返回.); getchar(); getchar(); break; if(i=NUM) printf(nnttt没有找到!); printf(nnttt按任意键返回.); getchar(); getchar(); break; while(c!=t);void CreateUDN(int v,int a) int i,j; G.vexnum=v; G.arcnum=a; for(i=0;iG.vexnum;+i) G.

21、vexi.number=i; G.vex0.sight=东大门; G.vex0.description=学校正门。; G.vex1.sight=气象楼; G.vex1.description=校气象研究楼。; G.vex2.sight=体育馆; G.vex2.description=运动,放松心情; G.vex3.sight=大学生活动中心; G.vex3.description=竞赛、晚会举办地; G.vex4.sight=图书馆; G.vex4.description=阅览,借阅图书; G.vex5.sight=滨江楼; G.vex5.description=学习,自习室; G.vex6.

22、sight=综合楼; G.vex6.description=学习,办公室; G.vex7.sight=老食堂; G.vex7.description=餐饮休闲; G.vex8.sight=新食堂; G.vex8.description=餐饮休闲; G.vex9.sight=文园; G.vex9.description=宿舍,休息; for(i=0;iG.vexnum;+i) for(j=0;jG.vexnum;+j) G.arcsij.adj=Max; G.arcs01.adj=G.arcs10.adj=2; G.arcs02.adj=G.arcs20.adj=1; G.arcs03.adj=

23、G.arcs30.adj=7; G.arcs14.adj=G.arcs41.adj=8; G.arcs24.adj=G.arcs42.adj=9; G.arcs35.adj=G.arcs53.adj=5; G.arcs57.adj=G.arcs75.adj=2; G.arcs46.adj=G.arcs64.adj=3; G.arcs47.adj=G.arcs74.adj=2; G.arcs68.adj=G.arcs86.adj=2; G.arcs78.adj=G.arcs87.adj=1; G.arcs89.adj=G.arcs98.adj=1;void narrate() int i,k=0

24、; printf(ntt*欢迎使用校园导游程序*n); printf(ntt*南京信息工程大学*n); printf(t_n); printf(tt景点名称tt|t景点描述n); printf(t_|_n); for(i=0;iNUM;i+) printf(t (%2d)%-10sttt|t%-25sn,i,G.vexi.sight,G.vexi.description); k=k+1; printf(t_|_n);void ShortestPath(int num) int v,w,i,t; int finalNUM; int min; for(v=0;vNUM;v+) finalv=0;

25、Dv=G.arcsnumv.adj; 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;wNUM;+w) if(!finalw) if(Dwmin) v=w; min=Dw; finalv=1; for(w=0;wNUM;+w) if(!finalw&(min+G.arcsvw.adj)Dw) Dw=min+G.arcsvw.adj; for(t=0;tNUM;t+) Pwt=Pvt; Pww=1; void output(int s

26、ight1,int sight2) int a,b,c,d,q=0; a=sight2; if(a!=sight1) /*如果景点二不和景点一输入重合,则进行*/ printf(nt从%s到%s的最短路径是,G.vexsight1.sight,G.vexsight2.sight);/*输出提示信息*/ printf(t(最短距离为 %dm.)nnt,Da); printf(t%s,G.vexsight1.sight); d=sight1; /*将景点一的编号赋值给d*/ for(c=0;cNUM;+c) gate:; Pasight1=0; for(b=0;bNUM;b+) if(G.arcs

27、db.adj%s,G.vexb.sight); /*输出此节点的名称*/ q=q+1; /*计数变量加一,满8控制输出时的换行*/ Pab=0; d=b; /*将b作为出发点进行下一次循环输出,如此反复*/ if(q%9=0) printf(n); goto gate; void HaMiTonian(int m) if(m9) return; L: NextValue(m); if(xm=0) return; if(m=8&G.arcs0x9-1.adj!=30000) display(); else HaMiTonian(m+1); goto L; void NextValue(int k) int j; l:xk=(xk+1)%10; if(xk=0) return; if(G.arcsxk-1-1xk-1.adj!=30000) for(j=0;jk;j+) if(xj=xk) goto l; return; else goto l; void display() int i=0; printf(nnt); for(i=0;i,G.vexxi-1.sight); printf(出口); printf(n);

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        获赠5币

©2010-2024 宁波自信网络信息技术有限公司  版权所有

客服电话:4008-655-100  投诉/维权电话:4009-655-100

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :gzh.png    weibo.png    LOFTER.png 

客服