




已阅读5页,还剩8页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
最短路径问题课程设计报告设计题目: 最短路径问题 专业: 学号: 姓名: 指导教师: 目录一、摘要2二、功能分析2三、需求分析2四、总体设计2五、具体实现21、具体代码及说明22、过程说明:63、运行结果:6六、总结8一、 摘要本单元设计主要解决设计一个程序,用户输入起始位置,就能得到该点到其他点的最短路线,及最短距离。在程序设计中,采用了C面向对象编程语言,采用控制台界面,将功能分模块实现,对问题中的要求做出了准确的实现。程序通过调试运行,实现了设计目标。 关键词:C、控制台界面、弗洛伊德(Floyd)二、 功能分析在一个网络中,如果两个结点之间有直接的因果关系,则这两个结点直接连通,在连接两个结点的弧上标上它的代价或权,给出两个结点求这样一条最短的路径,使经过这条路径上的代价之和最小,这就是最短路径问题。本题运用Floyd算法。三、 需求分析最短路径算法在生活中的应用相当广泛,生活中经常出现,如 乘公交,、交巡警服务平台的设置与调度等。四、 总体设计根据课设题目要求,拟将整体程序分为四大模块。每个子模块相互独立,没有嵌套调用的情况,在主模块中调用上面子模块。以下是四个模块的大体分析: 1. 利用文件读入表示各顶点信息的邻近矩阵。 2. 应用Floyd算法求出所给图的距离矩阵和最短路径矩阵。 3. 通过求出的所给图的距离矩阵和最短路径矩阵,输出最短路径。4. 在主函数中调用上面三个子函数,完成求最短路径的程序设计。 五、 具体实现1、具体代码及说明#include#define max 20/输入邻接矩阵和点数/以形参的形式返回路径长度及其路径矩阵/因为直接传二维数组不能改变原值,所以需要传二级指针/n个点int zdlj(int (*a)max,int n,int (*sp)max,int (*path)max)/不要0行0列int i,j,m;/int bmaxmax=0;/保存路径长度/sp=a; /shortpath /错了,应该为赋值,而不是赋地址for(i=0;in;i+)for(j=0;jn;j+)spij=aij;/保存路径,/第i行表示第i个节点到其他节点时需要经过的节点/第j列表示其他节点到第j个节点时需要经过的节点/path=b; /错了i=j=m=0;for(i=0;in;i+)for(j=0;jn;j+)pathij=j;for(m=0;mn;m+)for(i=0;in;i+)for(j=0;jspim+spmj)spij=spim+spmj;pathij=pathim; return 0;/利用文件读入矩阵int drjz(int (*a)max,int n) FILE *fp; int mmaxmax; int i,j; if(fp=fopen(jz.txt,r)=NULL) printf(cant open file!); getchar(); exit(0); for(i=0;in;i+) for(j=0;jn;j+) fscanf(fp,%d,&aij); fclose(fp); /把三角矩阵变成对称矩阵 for(i=0;in;i+) for(j=0;j,x); while(1) /printf(%d-,pathxy); if(pathxy!=y) printf(%d-,pathxy); x=pathxy; else printf(%d,pathxy); break; return 0;int main()int amaxmax;int n,spmaxmax=0,pathmaxmax=0;int i,j,x,y;n=17; / drjz(a,n); printf(邻接矩阵为:n);for(i=0;in;i+)for(j=0;jn;j+)printf(%3d,aij);printf(n);zdlj(a,n,sp,path); printf(距离矩阵为:n); for(i=0;in;i+)for(j=0;jn;j+)printf(%2d,spij);printf(n); printf(路径矩阵为:n); for(i=0;in;i+)for(j=0;jn;j+)printf(%2d,pathij);printf(n); printf(输入要查找的两个顶点标号:n); scanf(%d%d,&x,&y); sc(sp,path,x,y);getchar(); getchar();return 0;2、过程说明:path矩阵第1行,第6列的值为6,表示从第1点到第6点的最短路径为6。R矩阵第1行第6列的值为2,第2行第6列的值为5,而第5行第6列的值为6,因此,16的最短路线为:1256。path矩阵第3行,第4列的值为5,表示从第3点到第4点的最短路径为5。R矩阵第3行第4列的值为2,第2行第4列的值为4,因此,34的最短路线为:324。3、运行结果:六、 总结课程设计总结: 本次课程设计涉及到的范围很广,让我能够比较系统的对C语言和数据结构进行一次整理和复习。同时有了很多的体会和经验。 1. 又一次复习了C语言,在这次课程设计中我体会到C语言超强的逻辑性,能够熟练使用BCB的编译环境,也对这两门课程有了新的认识,他们既有联系,又相互区别,在编写程序过程中要灵活应用。 2. 对数据结构的理解有待加强,这次课程设计应用的算法是Floyd算法。在学习的过程中自己就对这方面的知识比较生疏,所以刚拿到这个课设题目时,自己还是有些不自信,好在自己没有气馁,一步一步的努力终于取得了成功。 3. 此次设计让我意识到程序设计要求我们必须有不放弃的精神,不能因为几个错误就轻言放弃,只有坚持不懈方能取得成功。 4. 此次课程设计时间虽短,但我所收获的是永恒的。它让我尝到了学习的快乐,成功的喜悦,更让我懂得了不少做人的道理。要完成一项任务或把东西学好就必须有
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 港口物流基础知识培训课件
- 议题教学培训课件下载
- 混凝土施工中的施工安全风险预警方案
- 温度计的作用课件
- 医疗机构纠风工作管理制度范本
- 老年综合征管理新进展考核试题及答案
- 温度与酶的关系课件
- 2025至2030中国保安服务行业市场深度研究及发展前景投资可行性分析报告
- 渣土车司机安全知识培训课件
- 教师经典文学诵读心得记录
- 2024全新标前协议书范本下载
- 企业员工职业道德考核制度
- 公司安全事故隐患内部举报、报告奖励制度
- 【初中物理】质量与密度练习题 2024-2025学年初中物理人教版八年级上册
- 南外初中小语种课程设计
- 【上海市塑料探究所企业员工激励机制存在的问题及优化建议探析(论文)8200字】
- Unit2 Whats your hobby-教案人教精通版英语六年级上册
- 【必刷题】2024五年级英语上册一般过去时专项专题训练(含答案)
- T-CTSS 86-2024 原味茶饮料标准
- NB-T 10436-2020 电动汽车快速更换电池箱冷却接口通.用技术要求
- 简易财务报表附注模板
评论
0/150
提交评论