




已阅读5页,还剩8页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
实验课程名称 数据结构课程设计 专 业 班 级 计算机科学与技术10级1班 学 生 姓 名 罗泽丽 学 号 10410901019 指 导 教 师 冯 韵 2012至201学年第 一 学期第 一 至 九 周目 录1概述31.1现状分析31.2存在的问题31.3实现意义32系统分析31.编写要求32.结构设计33概要设计43.1交通咨询系统模块43.2狄克思拉算法图43.3整体流程图54详细设计64.1建立有向图的存储结构64.2 地杰斯特拉算法64.3费洛伊徳算法74.4 主函数75运行与测试95.1有向图的存储结构建立95.2单源路径的迪杰斯特拉算法95.3调用费洛伊德算法96总结和心得107参考文献108附录101概述1.1现状分析在交通网络非常发达,交通工具盒交通方式不断更新的今天,人们在出差,旅游或做其他行动时,往往由于不知道要去目的地的路线,从而给人们的出行带来了很大的不便。不仅浪费时间,还有大量的交通费用。 1.2存在的问题在人们出行时,有急事的那些人就想很快到达目的地,有些人又想使到达目的地的费用越少越好,而老年人就想周转次数最少,但是由于不知道路线,从而导致了一系列的困难,给人们的出行带来很大的不便。1.3实现意义对于这样一个人们关心的问题可用一个人图结构来表示交通网络系统,利用计算机建立一个交通咨询系统这样极大地方便了人们的出行,使得交通不那么的拥挤,从而让出行者更快,更好的到达想要去的地方。2系统分析1.编写要求(1) 提供对城市信息进行编辑的功能.(2) 图形界面尽可能的人性化。(3) 能够对城市建立交通网络图。(4) 提供路径最优决策。2.结构设计1.建立交通网络图的存储结构2.解决单源最短路径3.实现两个城市顶点之间的最短路径。3概要设计3.1交通咨询系统模块交通咨询管理系统管理员用户咨询一个城市到任意城市距离咨询任意两个城市间最短距离增加城 市设置距 离建立交通网3.2狄克思拉算法图开 始初始化距离和路径i=1j=1;j+;jn 修改最短路径和距离输出结果3.3整体流程图开 始输入选择功能用户管理员运 行 否输入退出 是结束4详细设计4.1建立有向图的存储结构 void CreateMGraph(MGraph * G,int n,int e)int i,j,k,w;for(i=1;ivexsi=(char)i;for(i=1;i=n;i+)for(j=1;jarcsij=Maxint;printf(输入%d条边的i,j及w:n,e);for(k=1;karcsij=w;printf(有向图的存储结构建立完毕!n);4.2 地杰斯特拉算法(void Dijkstra(MGraph *G,int v1,int n)int D2MVNum,p2MVNum;int v,i,w,min;enum boolean SMVNum;for(v=1;varcsv1v; if(D2vMaxint) p2v=v1;else p2v=0;D2v1=0; Sv1=TRUE;for(i=2;in;i+)min=Maxint;for(w=1;w=n;w+)if(!Sw & D2wmin)v=w;min=D2w;Sv=TRUE;for(w=1;warcsvwarcsvw;p2w=v;printf(路径长度 路径n);for(i=1;i=n;i+)printf(%5d,D2i);printf(%5d,i);v=p2i;while(v!=0)printf(-%d,v);v=p2v;printf(n);4.3费洛伊徳算法void Floyd(MGraph *G,int n)int i,j,k,v,w;for(i=1;i=n;i+)for(j=1;jarcsij!=Maxint)pij=j;elsepij=0;Dij=G-arcsij;for(k=1;k=n;k+)for(i=1;i=n;i+)for(j=1;j=n;j+)if(Dik+DkjDij) Dij=Dik+Dkj;pij=pik;4.4 主函数 (void main()MGraph *G;int m,n,e,v,w,k;int xz=1;G=(MGraph *)malloc(sizeof(MGraph);printf(输入图中顶点个数和边数n,e:);scanf(%d,%d,&n,&e);CreateMGraph(G,n,e);while(xz!=0)printf(*求城市之间最短路径*n);printf(=n);printf(1.求一个城市到所有城市的最短路径n);printf(2.求任意的两个城市之间的最短路径n);printf(=n);printf(请选择 :1或2,选择0退出:n);scanf(%d,&xz);if (xz=2)Floyd(G,n);printf(输入源点(或起点)和终点:v,w:);scanf(%d,%d,&v,&w);k=pvw;if (k=0)printf(顶点%d 到 %d 无路径!n,v,w);elseprintf(从顶点%d 到 %d 最短路径路径是:%d,v,w,v);while (k!=w)printf(%d,k);k=pkw;printf(%d,w);printf(径路长度:%dn,Dvw);else if(xz=1)printf(求单源路径,输入源点v:);scanf(%d,&v);Dijkstra(G,v,n);printf(结束求最短路径,再见!n); 5运行与测试5.1有向图的存储结构建立5.2单源路径的迪杰斯特拉算法5.3调用费洛伊德算法6总结和心得在这次的试验中,让我更深的了解数据结构,在做实验的时候,自己亲自动手,一点一点慢慢做,突然发现好困难,也由于平时的基本功不够,所以导致了问题的难度性加大了。在这次的试验中,难易程度对我而言较大,程序代码不算长,但由于输入时不细心,导致许多的小错误,但还存在着不少的问题,在同学的帮助下,慢慢解决了这个问题,但许多概念还是模棱两可的,可是这次绝对是我的一个进步。我以后一定认真学习,好好把握问题的关键,掌握知识的要领。7参考文献1 .严蔚敏、吴伟民主编 数据结构(C语言版) 清华大学出版社2 苏仕华主编 数据结构课程设计 机械工业出版社3 严蔚敏、吴伟民 数据结构习题集(C语言版)清华大学出版社8附录#include#include#define MVNum 100#define Maxint 32767enum booleanFALSE,TRUE;typedef char VertexType;typedef int Adjmatrix;typedef structVertexType vexsMVNum;Adjmatrix arcsMVNumMVNum;MGraph;int D1MVNum,p1MVNum;int DMVNumMVNum,pMVNumMVNum;void CreateMGraph(MGraph * G,int n,int e)int i,j,k,w;for(i=1;ivexsi=(char)i;for(i=1;i=n;i+)for(j=1;jarcsij=Maxint;printf(输入%d条边的i,j及w:n,e);for(k=1;karcsij=w;printf(有向图的存储结构建立完毕!n);void Dijkstra(MGraph *G,int v1,int n)int D2MVNum,p2MVNum;int v,i,w,min;enum boolean SMVNum;for(v=1;varcsv1v; if(D2vMaxint) p2v=v1;else p2v=0;D2v1=0; Sv1=TRUE;for(i=2;in;i+)min=Maxint;for(w=1;w=n;w+)if(!Sw & D2wmin)v=w;min=D2w;Sv=TRUE;for(w=1;warcsvwarcsvw;p2w=v;printf(路径长度 路径n);for(i=1;i=n;i+)printf(%5d,D2i);printf(%5d,i);v=p2i;while(v!=0)printf(-%d,v);v=p2v;printf(n);void Floyd(MGraph *G,int n)int i,j,k,v,w;for(i=1;i=n;i+)for(j=1;jarcsij!=Maxint)pij=j;elsepij=0;Dij=G-arcsij;for(k=1;k=n;k+)for(i=1;i=n;i+)for(j=1;j=n;j+)if(Dik+DkjDij) Dij=Dik+Dkj;pij=pik;void main()MGraph *G;int m,n,e,v,w,k;int xz=1;G=(MGraph *)malloc(sizeof(MGraph);printf(输入图中顶点个数和边数n,e:);scanf(%d,%d,&n,&e);CreateMGraph(G,n,e);while(xz!=0)printf(*求城市之间最短路径*n);printf(=n);printf(1.求一个城市到所有城市的最短路径n);printf(2.求任意的两个城市之间的最短路径n);printf(=n);printf(请选择 :1或2,选择0退出:n);scanf(%d,&xz);if (xz=2)Floyd(G,n);printf(输入源点(或起点)和终点:v,w:);scanf(%d,%d,&v,&w);k=pvw;if (k=0)printf(顶
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 用心学国学课件
- 口腔修复知识培训内容摘要
- 培训行业财务知识小讲堂课件
- 2025年度山地生态旅游项目场地租赁与共同经营协议书
- 2025年度航天发射服务与零部件集成供应合同
- 2025年公务车报废更新及购置合同范本
- 2025年生物制药研发成果知识产权转让合同
- 2025年企业形象宣传册批量印刷及立体售后支持服务协议
- 2025年素食食材供应与加工合作协议
- 2025年智能商业空间租赁与全方位增值服务协议
- 无人机项目融资计划书
- 液氧站施工方案
- GB/T 16886.12-2023医疗器械生物学评价第12部分:样品制备与参照材料
- 发泡模具验收报告
- HCCDP 云迁移认证理论题库
- 无线电技术设施运行维护定期巡检项目总表
- 社会组织规范化建设评价指标体系解读
- GB/T 702-2017热轧钢棒尺寸、外形、重量及允许偏差
- GB/T 20238-2018木质地板铺装、验收和使用规范
- GB/T 1303.1-1998环氧玻璃布层压板
- GB/T 11684-2003核仪器电磁环境条件与试验方法
评论
0/150
提交评论