运筹学课程方案报告书最小生成树问题
更新时间:2023-03-13 12:57:01 阅读量: 教育文库 文档下载
- 课程方案落实情况报告推荐度:
- 相关推荐
个人资料整理 仅限学习使用
运筹学课程设计报告书
班级 学号 姓名LMZZ 日期2018.09.01
专业 个人资料整理 仅限学习使用 设计题目:最小生成树问题 设计方案: 本设计是在C语言环境下运行的,主要有: minitree_KRUSKAL(> 此函数包含几个算法有对树的邻接矩阵的构造,数据的输入,克鲁斯卡尔算法<又称Kruskal算法,其类似于求生成树的“避圈法”)求网的最小生成树,最小生成树的最小代价,输出最小生成树的顶点及其最小代价。 ljjzprint(int n> 定义并输出邻接矩阵。 主程序: int main(> { minitree_KRUSKAL(>。 <函数调用) printf(\输出邻接矩阵是:\\n\。 ljjzprint(n>。<函数调用) } 方案实施: ? ? ? ? ? 1、定义结构体以及各个变量; 2、数据的输入; 3、采用克鲁斯卡尔算法求出该图的最小生成树; 4、采用邻接矩阵做储存结构创建图; 5 、在主函数中分别调用以上各个函数,最终实现设计目的。 克鲁斯卡尔算法的表示: while (i
if (t[e[k].vexh].jihe!=t[e[k].vext].jihe> { e[k].flag=1。 for (j=1。j <=n。j++> if (t[j].jihe==t[e[k].vext].jihe> t[j].jihe=t[e[k].vexh].jihe。 t[e[k].vext].jihe=t[e[k].vexh].jihe。 i++。 } else e[k].flag=2。 } 邻接矩阵的表示: void ljjzprint(int n>/*定义并输出邻接矩阵*/ { int i,j。 for(i=1。i<=n。i++> { for(j=1。j<=n。j++> printf(\。 printf(\。 } } int main(> { minitree_KRUSKAL(>。 函数调用 printf(\输出邻接矩阵是:\\n\。 ljjzprint(n>。 输出矩阵 return 0。 } 调试过程: 原设计在定义输出矩阵函数时,没有形参,在调用时必须输入树的定点数这和前面的函数在输入树的数据时重复操作,为了避免重复如果这个函数添加一个参数为n的形参,再main函数调用minitree_KRUSKAL(>。后n为定值,n为了在ljjzprint(n>中为已知量则需在程序的开头定义一个全局变量n即可。在求最小生成树的代价时,因为其顶点的权值时变的 故重新定义个变量sum,以实现其权值的相加然后输出。 个人资料整理 仅限学习使用
结果与结论: 测试结果: 顶点为:a,b,c, d , e 其标号分别为1,2,3,4,5 Vexh和vext分别为边的两端顶点,weight为边的权值运行如下: 结论: 通过实际操作,运用简单的C语言程序编程能比较清楚和简单的把运筹学当中的相对抽象的最小树问题表现出来。 具体分工: 我主要负责程序后期的修改以及调试,才能使整个程序正常的运行出来。还有对ppt的制作和课程设计书整体的把握! 收获与致谢: 个人资料整理 仅限学习使用
紧张而又忙碌的课设学习终于结束了,在本次课设中我们也取得了相对很大的成就,通过本次课程设计我们也学到了很多,它增加了我们编程软件的兴趣,在具体操作中对所学的C语言的理论知识得到了巩固,达到实训的目的也发现了自己的不足之处,在以后的上机中应更加注意,同时体会到了C语言具有语句简洁,使用灵活,执行效率高等特点,并且通过此次运筹学课程设计,我们通过C语言将其中抽象的最小树问题比较直观的变现出来,掌握了求最小树问题的克鲁斯卡尔算法以及邻接矩阵的构造,特别是对C语言中数组和循环有了深刻的了解。通过实际操作将C语言编程和运筹学有机的结合起来,学会了C语言编程的基本步骤和基本方法,开发了自己的逻辑思维能力,培养了分析问题和解决问题的能力。 在此衷心感谢学院安排这次课设,让我们又多了一次学习交流的机会,更好的巩固了所学的知识,拓展了知识面。本次课设能取得成功,要感谢老师的帮助和指导。在课设期间老师帮助我们分析思路,提供方法,才使得我们的程序做的更加的完善。其次是要感谢和我同组的同学感谢对方对本次课设的付出。 参考文献: 《运筹学教程》<第三版)胡运权主编 《C程序设计》<第三版)谭浩强编著 《C程序设计题解与上机指导》<第三版)谭浩强编著 附件: 本设计的详细代码如下: #include
个人资料整理 仅限学习使用
{ char data。 int jihe。 }VEX。 typedef struct { int vexh,vext。 int weight。 int flag。 }EDGE。 void minitree_KRUSKAL(> { int i,m,min,k,j。 int sum=0。 VEX t[M]。 EDGE e[M]。 printf(\最小生成树问题\\n\。 printf(\程序设计者:冯云广,吕金刚\\n\。 printf(\输入顶点数及边数:\。 fflush(stdin>。 scanf(\。 //n个点 m条边 printf(\输入各个顶点名称:\\n\。 for (i=1。i <=n。i++> { printf(\。 //输入顶点字符 getchar(>。 fflush(stdin>。 //清除缓存 scanf(\。 // 输入点对应的字符 t[i].jihe=i。 } printf(\输入两个不同顶点及其边权:\\n\。 for(i=1。i<=m。i++> for(j=1。j<=m。j++> adjmatrix[i][j]=0。 for (i=0。i
} e[i].flag=0。 } i=1。 while (i
{ for(j=1。j<=n。j++> printf(\。 printf(\。 } } int main(> { minitree_KRUSKAL(>。 printf(\输出邻接矩阵是:\\n\。 ljjzprint(n>。 return 0。 } 指导教师评语: 课程设计报告成绩:,占总成绩比例:20% 答辩成绩:,占总成绩比例:30% 课程设计作品,占总成绩比例:50% 个人资料整理 仅限学习使用
总成绩:。
正在阅读:
运筹学课程方案报告书最小生成树问题03-13
浙江财经大学军理题库04-26
选择目标市场营销策略的依据05-12
混凝土结构基本原理课程设计任务书(07-09
琥珀第一课时教学设计(通用5篇)03-30
给我一双翅膀作文500字06-29
- exercise2
- 铅锌矿详查地质设计 - 图文
- 厨余垃圾、餐厨垃圾堆肥系统设计方案
- 陈明珠开题报告
- 化工原理精选例题
- 政府形象宣传册营销案例
- 小学一至三年级语文阅读专项练习题
- 2014.民诉 期末考试 复习题
- 巅峰智业 - 做好顶层设计对建设城市的重要意义
- (三起)冀教版三年级英语上册Unit4 Lesson24练习题及答案
- 2017年实心轮胎现状及发展趋势分析(目录)
- 基于GIS的农用地定级技术研究定稿
- 2017-2022年中国医疗保健市场调查与市场前景预测报告(目录) - 图文
- 作业
- OFDM技术仿真(MATLAB代码) - 图文
- Android工程师笔试题及答案
- 生命密码联合密码
- 空间地上权若干法律问题探究
- 江苏学业水平测试《机械基础》模拟试题
- 选课走班实施方案
- 运筹学
- 报告书
- 最小
- 生成
- 课程
- 方案
- 问题
- 中国老龄化社会问题及应对措施
- 防治石榴黑斑病
- 一年级上语文教学设计菜园里4人教新课标
- 作文课《个性写作的选材与组材》案例分析
- 马克思主义基本原理概论(马原)期末复习重点主观题笔记整理
- 电大证券投资分析作业及期末复习综合汇总!
- 幼儿园学前教育中班语言教案奇妙的伞 doc
- 对《思想道德修养法律基础》课教学论文
- 2019年中考数学总复习 全程考点训练24与圆有关的计算 含解析
- 基于摄像头的条码识别技术的研究及实现
- 会计实操经验SPAC方式上市成功案例
- 最新钣金组长年终总结(推荐下载)
- 辅音音标发音基础
- 2019年会计职称中级经济法考情分析及备考技巧
- 《永写这辉煌》
- 凤凰城c区桩基础工程(桩基旁站监理方案)
- 浅论我国消费者权益保护法律机制的构建
- 12864A液晶驱动16 - 16汉字+8 - 16数字字母
- 装修做不到这6条标准线,怪不得你家装修总后悔
- 计算机应用基础数据结构部分试题及答案(2)