网络光纤铺设的最佳方案选择教材文档格式.docx
- 文档编号:19556866
- 上传时间:2023-01-07
- 格式:DOCX
- 页数:15
- 大小:89.88KB
网络光纤铺设的最佳方案选择教材文档格式.docx
《网络光纤铺设的最佳方案选择教材文档格式.docx》由会员分享,可在线阅读,更多相关《网络光纤铺设的最佳方案选择教材文档格式.docx(15页珍藏版)》请在冰豆网上搜索。
2改算法过程描述
a.在图G=(V,E)(V是顶点,E是边)中,从集合V中任取一个顶点,如k0放入集合U中,这时,U={k0},集合T(E)为空。
b.从k0出发寻找与U中顶点相邻权值最小的边的另一顶点k1,并使k1加入U。
即U={k0,k1},同时将该边加入集合T(E)中。
c.重复
(2),直到U=V为止。
d.这时T(E)中有n-1条边,T=(U,T(E))就是一一颗最小生成树。
2.模块分析
根据对模型的功能分析,该管道铺设设计可以具有以下功能:
1.网络光纤铺设信息的输入;
2.最小生成树信息的输出;
下面我们给出相应的功能模块图:
3.抽象数据类型分析
areanum居民区总数(顶点总数);
edgenum边的总数;
date[][20]邻接矩阵存储图结构;
s边的权值;
short-way[i]居民区i到目前生成树中所有点集U中某个居民区的路程最小值
near-area[i]U中能使其最小的居民区
4.功能分析
假设居民区分布和各居民区之间的距离如下图显示
则通过网络光纤铺设的最佳方案选择后结果如下面显示
程序开始
信息输入
输出结果
三、流程图和算法设计
1.详细算法分析
1信息输入模块
//输入顶点个数和边的条数
cout<
<
"
请输入居民区个数:
;
cin>
>
areanum;
endl;
请输入网络光纤铺设路线的总条数:
edgenum;
//初始化矩阵各元素值
inti,j,k;
for(i=0;
i<
i++)
for(j=0;
j<
j++)
date[i][j]=INFINITY;
//读入边
intfrom,to,s;
请按此格式输入边和权值:
i,j,k(表示i居民区到j居民区的距离为k米)"
for(i=0;
i<
edgenum;
i++)
{
cin>
from>
to>
m;
date[from][to]=s;
date[to][from]=st;
}
//输出邻接矩阵
for(j=0;
j<
areanum;
j++)
{
cout<
date[i][j]<
'
\t'
}
cout<
②建立最小生成树并输出结果
voidprim(intdate[][MAXNODE],intareanum,intnear_area[])
{
//辅助数组short_way,near_area
//short_way[i]表示居民区i到到目前生成树中所有点集U中某个居民区(点)的路程最小值
//near_city[i]表示U中能使其最小的居民区(点)
intshort_way[areanum];
intmin;
inti,j,k;
//0已经放入U中
//初始化short_way和near_area
for(i=1;
short_way[i]=date[0][i];
near_area[i]=0;
short_way[i]=0;
near_area[0]=0;
//有n-1条边要加入生成树,所以只要循环n-1次即可
min=INFINITY;
//求生成树外顶点到生成树内顶点具有最小权值的边
j=1;
k=1;
while(j<
areanum)
//确定当前具有最小权值的边及位置
if(short_way[j]!
=0&
&
short_way[j]<
min)
{
min=short_way[j];
k=j;
}
j++;
这"
areanum<
个居民区之间铺设网络光纤总长度中最短的长度为:
s<
米"
short_way[k]=0;
for(j=0;
n;
if(date[k][j]<
short_way[j])
short_way[j]=date[k][j];
near_area[j]=k;
}
2.程序流程图
Y
N
areanum
i++
j++
输出邻
接矩阵
j=0
i=0
i=1
+++
Short_way[i]=data[0][i]
near_area[i]=0
Y
j=1,k=1,min=INFINITY
date[k][j]<
short_way[j]
short_way[j]!
=0&
short_way[j]<
min
输出min
short_way[k]=0;
min=short_way[j];
k=j
short_way[j]=date[k][j];
near_area[j]=k;
结束
四、源程序代码
#include<
stdio.h>
iostream.h>
#defineINFINITY9999
voidmain()
inta1;
for(a1=0;
a1<
25;
a1++)
"
网络光纤铺设的最佳方案选择"
21;
34;
*"
**"
*欢迎使用本程序,希望本程序可以*"
*帮您选择最佳铺设方案*"
a1++)
intdate[20][20];
intareanum;
intedgenum;
//初始化矩阵个元素值
inti,j;
for(i=0;
i++)
for(j=0;
j++)
date[i][j]=INFINITY;
//读入边
intfrom,to,m;
for(i=0;
{
cin>
date[from][to]=m;
date[to][from]=m;
}//输出邻接矩阵
输出邻接矩阵如下面显示"
for(j=0;
{
cout<
}
cout<
}//prim();
//辅助数组short_way,near_area
//short_way[i]表示居民区i到目前目前生成树中所有点集U中某个居民区的最小路程
//near_area[i]表示U中能使其最小的居民区
intshort_way[20];
intnear_area[20];
intmin;
intk,s,price;
//0已存入U中
//初始化hort_way和near_area
for(i=1;
i++)
short_way[i]=date[0][i];
near_area[i]=0;
}
short_way[i]=0;
near_area[0]=0;
s=0;
从居民区0出发"
i++)//有n-1条边要加入生成树所以只要循环n-1次即可
min=INFINITY;
//求生成树外顶点到生成树内顶点具有最小权值的边
j=1;
while(j<
areanum)//确定当前具有最小权值的边及位置
if(short_way[j]!
min)
{
min=short_way[j];
k=j;
}
j++;
从居民区"
near_area[k]<
到居民区"
k<
;
两个居民区之间的距离(边的权值)为:
min<
short_way[k]=0;
s+=min;
if(date[k][j]<
short_way[j])
short_way[j]=date[k][j];
near_area[j]=k;
请输入单位长度的价格(元):
cin>
price;
所以,这"
个居民区之间铺设网络光纤所需最小费用为:
s*price<
元"
谢谢您的使用!
本程序编写者:
杨汛、杨阳、卢路路"
五、课程设计总结
经过两个星期的不懈努力,数据结构课程设计终于落幕。
我这次的课程设计的题目是《网络光纤铺设的最佳方案选择》,即使用普里姆算法得到所需要的最小的生成树。
在整个设计过程中,自己从刚开始简单的构思算法思路的大致框架,直到最后使得整个算法顺利的得以实现。
期间遇到的问题、错误多不甚数,然经过无数次的调试分析,最终一一得以圆满解决。
在这两个星期里,自己可谓是感慨万分。
的确,从选题到定稿,从理论到实践,在整整两星期的日子里,可以说得是苦多于甜,但是自己却能够在这短短的两个星期里学到很多很多的的东西,不仅可以巩固了以前所学过的知识,加深了对课本知识点的理解。
而且学到了很多在书本上所没有学到过的知识,能够说是收获颇丰。
通过这次课程设计使我懂得了理论与实际相结合是很重要的,只有理论知识是远远不够的,只有把所学的理论知识与实践相结合起来,从理论中得出结论,从实践中验证理论,从而提高自己的实际动手能力和独立思考的能力。
当然,在设计的过程中遇到许许多多的问题,可以说得是困难重重,毕竟这是一次课程设计,需要掌握的知识面比较广,同时在设计的过程中发现了自己的不足之处,对以前所学过的知识理解得不够深刻,掌握得不够牢固,通过这次课程设计之后,一定把以前所学过的知识重新温故。
在设计中,vc++6.0使用的也更加的牢固,了解的也更加深刻。
这次课程设计已经结束了,对于我自己,对本次课程设计我的感受很深,在这个过程中,我也曾经因为实践经验的缺乏失落过,也为毫无头绪而烦恼,也曾经为调试的成功实现而手舞足蹈。
呵呵,让自己在本次课程设计中感受了一番大起大落,使自己从中明白了,做成功一件事,是需要付出和汗水的。
天下无难事只怕有心人,只要自己坚定信念,成功也只在咫尺之间。
当然,我们也不能满足于现有的水准,否则就会停滞不前,要知道学海无涯,仍需我们努力学习。
所以,在以后的时间里,我会利用更多时间去上机实验,加强自学的能力,多编写程序,相信不久后我的编程能力会有所提高能设计出更多的更有创新的作品!
六、参考资料
1.胡明《数据结构》(C++版)清华大学出版社
2.张勇《C++语言程序设计教程》(第二版)清华大学出版社
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 网络 光纤 铺设 最佳 方案 选择 教材