管道铺设施工的最佳方案Word格式文档下载.docx
- 文档编号:22277011
- 上传时间:2023-02-03
- 格式:DOCX
- 页数:10
- 大小:94.46KB
管道铺设施工的最佳方案Word格式文档下载.docx
《管道铺设施工的最佳方案Word格式文档下载.docx》由会员分享,可在线阅读,更多相关《管道铺设施工的最佳方案Word格式文档下载.docx(10页珍藏版)》请在冰豆网上搜索。
①准备代价文件
自动随机生成、用户可以自定义
②读图文件,得到图的存储结构
③计算最小生成树
何种算法效率更好?
Prim、Kruskal
④显示最小生成树
文本方式:
各边、总权值
图形函数:
屏幕初始化、端点位置的初始化、绘边函数、代价显示函数、绘无边图函数......
课程设计详细内容:
//main.ccp
#include<
iostream>
conio.h>
process.h>
#include"
Pipe.h"
usingnamespacestd;
intmain()
{
intn;
for(inti=1;
i<
=10;
i++)
cout<
<
endl;
cout<
"
**************************"
**欢迎进入**"
**管道铺设系统**"
按任意键继续..."
if(!
getch())
return0;
system("
cls.exe"
);
Pipelinem;
while
(1)
{
m.menu();
cin>
>
n;
switch(n)
{
case1:
m.create();
break;
case2:
m.prim();
case3:
m.print();
case4:
m.print2();
case5:
case6:
return0;
}
}
}
//
fstream>
iomanip>
Pipeline:
:
Pipeline()
************************************"
请输入需铺设管道的居民数量:
cin>
N;
voidPipeline:
prim()
intmin,t,m,w;
intr;
intk=2;
intj=k-1;
inti=1;
请输入从哪个居民开始铺设管道:
r;
for(i;
=N;
bian[i].from=r;
bian[i].end=i;
bian[i].weights=Graph[r][i];
for(k;
k<
=N+1;
k++)
min=999;
m=k-1;
for(j;
j<
j++)
if(bian[j].weights<
min)
{
min=bian[j].weights;
m=j;
}
edgetemp=bian[k-1];
bian[k-1]=bian[m];
bian[m]=temp;
j=bian[k-1].end;
for(i=k;
=N;
t=bian[i].end;
w=Graph[j][t];
if(w<
bian[i].weights)
bian[i].weights=w;
bian[i].from=j;
menu()
***********************************"
**1、输入需铺设管道的居民信息**"
**2、用prim算法求出最短路径**"
**3、输出prim算法的结果**"
**4、输出输入各权值的结果**"
**5、画出管道铺设的结果图**"
**6、退出**"
create()
intm;
ofstreamf("
weight.txt"
//打开文件用于写,若文件不存在就创建它
f)//打开文件失败则结束运行
throw"
文件打开失败!
;
return;
else
for(inti=1;
i<
for(intj=i;
j<
if(i==j)
{
Graph[i][j]=999;
continue;
}
cout<
请输入("
i<
"
j<
)边的权值:
cin>
m;
f<
setw(10)<
//将权值保存到文件中
Graph[i][j]=m;
Graph[j][i]=m;
cout<
f.close();
//关闭文件
print()
起点"
"
终点"
权值"
for(inti=1;
bian[i].from<
bian[i].end<
bian[i].weights<
print2()
for(intj=1;
Graph[i][j]<
//Pipe.h
#ifndef_PIPE_H_
#define_PIPE_H_
structedge//定义一条生成树的边
intfrom;
//起点
intend;
//终点
intweights;
//权值
};
classPipeline//定义一个管道的类
public:
Pipeline();
//无参构造函数
voidprim();
//普里母算法实现
voidmenu();
//菜单
voidcreate();
//建立各个居民之间的权限
voidprint();
//输出prim算法的结果
voidprint2();
//输出输入权值的结果
private:
intN;
//居民数
edgebian[50];
//最小生成树的边集
intGraph[50][50];
//各个居民点的权值的集合
#endif
注:
可另附页
课程设计总结及体会:
通过数据结构的课程设计使我们对所学知识有了更好的理解,也增强了动手能力,同时也发现了自己的很多不足之处,对所学知识的应用能力不足,编程水平与课程要求有很大差距。
由于对课本知识了解不够,在实验过程中遇到了一些问题,经过查阅资料思考和探究,最终将问题得到了解决。
通过这次课程设计使我懂得了理论与实际相结合是很重要的,只有理论知识是远远不够的,只有把所学的理论知识与实践相结合起来,才能达到学以致用的目的。
设计的过程中发现了自己的不足之处,就是对所学的知识理解得不够深刻,掌握得不够牢固。
在此次的课程设计过程中,也让我学到了很多课堂以外的东西,比如独立思考解决问题的能力,出现差错的随机应变的能力,以及与人合作共同完成任务的能力。
总之,此次课程设计让我受益匪浅。
学生(签字)黎苗苗
__2012_年__6___月__18___日
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 管道 铺设 施工 最佳 方案