ImageVerifierCode 换一换
格式:DOCX , 页数:25 ,大小:310.54KB ,
资源ID:6641144      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bingdoc.com/d-6641144.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(数据结构课程设计校园导游系统Word文档下载推荐.docx)为本站会员(b****3)主动上传,冰点文库仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰点文库(发送邮件至service@bingdoc.com或直接QQ联系客服),我们立即给予删除!

数据结构课程设计校园导游系统Word文档下载推荐.docx

1、char name30;int num;char introduction100;/简介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,p101010,D1010; for(v=0;vvexnum;v+) for(w=0;warcsvw.adj; for(u=0;uu+) pvwu=0; if(DvwINFINITY) pvwv=1;pvww=1; if(Dvu+DuwDv

2、w) Dvw=Dvu+Duw; for(i=0;ii+) pvwi=pvui|puwi; while(flag) printf(请输入出发点和目的地的编号: scanf(%d%d,&k,&j); if(kvexnum|jvexnum)景点编号不存在!请重新输入出发点和目的地的编号: if(k=0&kjvexsk.name); if(pkju&k!=u&j!=u)-vexsu.name);vexsj.name); 总路线长%dmn,Dkj); fclose(fp);迪杰斯特拉算法:void ShortestPath_DIJ(MGraph * G)approach.txtFail to openn

3、 int v,w,i,min,t=0,x,flag=1,v0; int final20, D20, p2020;请输入一个起始景点编号: scanf(%dv0); if(v0 printf(请重新输入景点编号: scanf( if(v0v0arcsv0v.adj; for(w=0; pvw=0; if(Dv pvv0=1;pvv=1; Dv0=0;finalv0=1; for(i=1; min=INFINITY; if(!finalw) if(Dwarcsvw.adj for(x=0;xvexnum-1&v0! 总路线长%dmnn,Dv); /endfor /endif /ShortestPa

4、th_DIJ end五测试数据及运行结果1正常测试数据和运行结果2异常测试数据及运行结果六调试情况,设计技巧及体会1改进方案对于我的设计,合理之处是对每一次查询都以文件的形式进行了存储,其次,校园的平面图比较好的展现了我们学校的风貌。不足之处是使用prim算法的时候,若终点输入不合法,程序会陷入,死循环。这是致命的错误,我的改进方法是若输入字符不合法,则跳出循环,再次输入,直到合法为止。利用迪杰斯特拉算法在计算到剩下的顶点的最短距离时第一个for循环时时间复杂度是O(n),每进行一次第二个for循环的时间复杂度都是O(n),第三个for循环也就是存储途经顶点时用的循环而不是书中算法所用的只是个

5、地址的赋值,所以时间复杂度也是O(n),这样总的时间复杂度就是O(n3)。改进设想主要就是给用户一个浏览路线的推荐本来在程序设计初期是计划要实现这个功能的,但是由于时间和能力问题没有去实现,因为它涉及到汉密尔顿路的实现,目前感觉还比较复杂所以暂时放弃了,日后如果有机会一定将这个功能完善。2体会调试过程中难免会遇见这样或者那样的问题,一个很低级的错误就是在字符串的赋值上居然还会出错,本来是不可以像int型数据那样直接用等于号赋值的,可是刚开始由于失误却犯了这样低级的错误结果导致出现102个错误,当时确实有点慌了,等冷静下来一想才把问题想明白,字符串的赋值必须用strcpy函数。看来基本功还是相当

6、的重要的。此外,迪杰斯特拉算法其实放在这里多少有些不合适,因为不管在求任意两个景点之间的最短路径还是求某一景点到其它景点的最短路径时都要完全的执行一遍算法时间复杂度是很高的,当时在实现时也确实考虑到了这个问题只是后来感觉要是实现时间复杂度的降低不是很简单也就暂时放弃了,也就选择了将这个算法直接搬了过来,这里是一点败笔,尚需要改进。七参考文献数据结构 严蔚敏 吴为民C语言程序设计(第三版) 谭浩强 八附录:源代码(电子版)#define INFINITY 10000 /*无穷大*/#define MAX_VERTEX_NUM 40#define MAX 40#includestdio.hconi

7、o.hstring.htypedef struct ArCellint adj; /路径长度ArCell,AdjMatrixMAX_VERTEX_NUMMAX_VERTEX_NUM;typedef structinfotype vexsMAX_VERTEX_NUM;AdjMatrix arcs;int vexnum,arcnum;MGraph;MGraph b;void cmd(void);MGraph InitGraph(void);void Menu(void);void Browser(MGraph *G);void ShortestPath_DIJ(MGraph * G);void P

8、rim(MGraph *G);void Search(MGraph *G);int LocateVex(MGraph *G,char* v);MGraph * CreatUDN(MGraph *G);void print(MGraph *G);void map();/*/void main(void) system(mode con: cols=100 lines=30 cmd();void cmd(void) int i; b=InitGraph(); Menu();i); while(i!=6) switch(i) case 1:Browser(&b);Menu();break; case

9、 2:map(); case 3:ShortestPath_DIJ(& case 4:Floyd(& case 5:Search(& case 6:exit(1); default:MGraph InitGraph(void) MGraph G; int i,j; G.vexnum=10; G.arcnum=14;G.vexnum; G.vexsi.num=i; strcpy(G.vexs0.name,旭日苑 strcpy(G.vexs0.introduction,难吃,洗过的筷子上面都是菜叶子 strcpy(G.vexs1.name,校医院 strcpy(G.vexs1.introducti

10、on,校医院,名副其实的校(shou)医(yi)院(yuan) strcpy(G.vexs2.name,大学生活动中心 strcpy(G.vexs2.introduction,又名大活,举办一些没什么卵用的晚会 strcpy(G.vexs3.name,美食广场 strcpy(G.vexs3.introduction,吃货的天堂,完爆旭日苑 strcpy(G.vexs4.name,图书馆 strcpy(G.vexs4.introduction,Warning学霸出没 strcpy(G.vexs5.name,足球场 strcpy(G.vexs5.introduction,国足的未来.2333333

11、3 strcpy(G.vexs6.name,水煮鸽子 strcpy(G.vexs6.introduction,然而他并不能吃 strcpy(G.vexs7.name,东区教学楼 strcpy(G.vexs7.introduction,又名尼伯龙根,进去就不要想出来 strcpy(G.vexs8.name,狗男女湖 strcpy(G.vexs8.introduction,湖边时常回荡着单身狗的哀嚎 strcpy(G.vexs9.name,澡堂 strcpy(G.vexs9.introduction,洗个澡,压压惊 for(j=0;j+) G.arcsij.adj=INFINITY; G.arcs

12、01.adj=100; G.arcs02.adj=200; G.arcs06.adj=400; G.arcs17.adj=300; G.arcs23.adj=120; G.arcs36.adj=220; G.arcs34.adj=100; G.arcs45.adj=300; G.arcs49.adj=250; G.arcs59.adj=350; G.arcs67.adj=60; G.arcs69.adj=200; G.arcs78.adj=50; G.arcs89.adj=20; G.arcsji.adj=G.arcsij.adj; return G;/InitGraph endvoid Me

13、nu() n 西安邮(mei)电(dian)大学n n 1.校园景点介绍 n 2.校园平面图 n 3.查看所有游览路线(jiandan) n 4.选择出发点和目的地(zuiduan) n 5.查看景点信息 n 6.退出系统 n nOption-:void Browser(MGraph *G) int v;n编号景点名称 简介 n%-4d%-16s%-56snvexsv.num,G-vexsv.name,G-vexsv.introduction);n/ 迪杰斯特拉算法来计算出起点到各个顶点之间的最短路径,v0为起点请稍候.n文件已经成功地保存至D:/approach.txt!void Searc

14、h(MGraph *G) int k,flag=1;请输入要查询的景点编号:k);nvexsk.num,G-vexsk.name,G-vexsk.introduction);n/Search endint LocateVex(MGraph *G,char* v) int c=-1,i; if(strcmp(v,G-vexsi.name)=0) c=i; return c;void print(MGraph *G)int v,w,t=0;for(v=0; if(G-arcsvw.adj=INFINITY) else printf(%-7darcsvw.adj); if(t%G-vexnum=0)void Prim(MGraph *G)G

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2