




已阅读5页,还剩4页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
算法与数据结构课程设计报告书最小生成树:室内布线专 业:计算机科学与技术 成 绩: 烟台大学计算机与控制工程学院四、程序正确性验证(指边界测试数据,即程序对于精心选择的典型、苛刻而带有刁难性的几组输入数据能够得出满足要求的结果):门不影响两插座路线的测试数据:两插座在相邻墙面上,门处在两插座连线上,测试数据:八、程序代码#include#includeusing namespace std;typedef struct /存放节点数据float x;float y;float h;outlet;typedef struct int no;/存放节点编号int info;/存放节点所处墙面VertexType;typedef struct float edges2020;/存放邻接矩阵数据int n,e;VertexType vexs20;/节点变量MGraph;int Dplace(outlet d4)/根据门四角坐标求门的位置if(d1.x=d2.x&d1.x=d3.x&d1.x=d4.x)/若门四角的横坐标相同if(d1.x=0)/横坐标为0,则门在1号墙壁上return 1;else return 3;/否则在三号墙壁上if(d1.y=d2.y&d1.y=d3.y&d1.y=d4.y)/若门四角纵坐标相同if(d1.y=0)return 2;else return 4;int Oplace(outlet Olet,float a,float b)/插座的位置if(Olet.x=0&Olet.y=0&Olet.h=0)return 1;if(Olet.y=0&Olet.x 0&Olet.h0)return 2; if(Olet.x=a&Olet.y=0&Olet.h=0)return 3;if(Olet.y=b&Olet.x =0&Olet.h=0)return 4;int Xplace(int a,int b)/判断两插座的相对位置if(a=b)/如果两插座在同一面墙上,返回0return 0;if(a=1&(b=2|b=4)|a=2&(b=1|b=3)|a=3&(b=2|b=4)|a=4&(b=3|b=1)/如果两插座在相邻面墙上,返回1return 1;else return 2;float CC(outlet Olet1,outlet Olet2,outlet door4,int a)/有门存在时两插座之间的距离float n;if(a=1|a=3)/当门在第1或3面墙上时if(Olet1.h=door2.h&Olet2.h=door2.h&(Olet1.y=door2.y&door3.y=Olet2.y)|(Olet2.y=door2.y&door3.y=Olet1.y)/若果门处在两插座连线上n=fabs(Olet1.x-Olet2.x)+fabs(Olet1.y-Olet2.y)+(door2.h-Olet1.h)+(door2.h-Olet2.h);return n;else/如果门不影响两插座的链接n=fabs(Olet1.x-Olet2.x)+fabs(Olet1.y-Olet2.y)+fabs(Olet1.h-Olet2.h);return n;if(a=2|a=4)/如果门在第2 4 面墙上if(Olet1.h=door2.h&Olet2.h=door2.h&(Olet1.x=door2.x&door3.x=Olet2.x|Olet2.x=door2.x&door3.x=Olet1.x)/若果门处在两插座连线上n=fabs(Olet1.x-Olet2.x)+fabs(Olet1.y-Olet2.y)+(door2.h-Olet1.h)+(door2.h-Olet2.h);return n;else/如果门在第2 4 面墙上n=fabs(Olet1.x-Olet2.x)+fabs(Olet1.y-Olet2.y)+fabs(Olet1.h-Olet2.h);return n;typedef structint u;int v;float w;Edge;void InsertSort(Edge R,int n)/直接插入函数int i,j,h;Edge tmp;for(i=1;i=0&tmp.wRj.w)Rj+1=Rj;j-;Rj+1=tmp;void Kruskal(MGraph g)/克鲁斯卡尔函数int i,j,u1,v1,sn1,sn2,k;int vset400;float m=0;Edge E400;k=0;for(i=0;ig.n;i+)for(j=0;jg.n;j+)if(g.edgesij!=0)Ek.u=i;Ek.v=j;Ek.w=g.edgesij;k+;InsertSort(E,k);for(i=0;ig.n;i+)vseti=i;k=1;j=0;while(kg.n)u1=Ej.u;v1=Ej.v;sn1=vsetu1;sn2=vsetv1;if(sn1!=sn2)m=m+Ej.w;k+;for(i=0;ig.n;i+)if(vseti=sn2)vseti=sn1;j+;cout所需要的电线最短为:endl;cout ceil(m)endl;/输出最短总路线coutendl;int main()MGraph pp;/定义图 float HX,HY,HH;/定义房屋大小int N,i,j,x;int k,l;/暂存节点信息变量float m;cout请输入房屋大小和插座数目:HXHYHHN;if(N20)cout插座超过20,请重新输入:HXHYHHN;while(HX!=0&HY!=0&HH!=0&N!=0)/循环输入设置outlet Olet20;/插座数组outlet c,d;/插座的临时存放cout请输入个插座的坐标:endl;for(i=0;iOleti.xOleti.yOleti.h;outlet door4;/定义门的四个角的坐标 cout请输入门的四个角的坐标endl;for(i=1;idoori.xdoori.ydoori.h;x=Dplace(door);/门所在墙的编号for(i=0;iN;i+)/输入各节点的信息pp.vexsi.no=i;/节点编号=Oplace(Oleti,HX,HY);/节点信息的存入(插座编号从1开始的)pp.n=N;pp.e=N*N;for(i=0;iN;i+)/存入各插座两两间的长度(两两相比较)c=Oleti;/暂存插座ik=;/暂存此节点信息(即对应插座所处墙壁)for(j=i+1;jN;j+)d=Oletj;/暂存插座jl=;if(pp.vexsi.no=pp.vexsj.no)/若是同一节点,间距为0pp.edgesij=0;else/如果是不同节点分为以下三种情况if(Xplace(k,l)=0)/如果两插座在同一个墙壁上if(x!=k)/如果门不在这个墙壁上m=fabs(Oleti.x-Oletj.x)+fabs(Oleti.y-Oletj.y)+fabs(Oleti.h-Oletj.h);pp.edgesij=m;pp.edgesji=m;else/若门在这个墙壁上m=CC(c,d,door,x);pp.edgesij=m;pp.edgesji=m;if(Xplace(k,l)=1)/如果两插座在相邻的两个墙壁上if(x!=k&x!=l)/如果门不在两插座所在的墙壁上m=fabs(Oleti.x-Oletj.x)+fabs(Oleti.y-Oletj.y)+fabs(Oleti.h-Oletj.h);pp.edgesij=m;pp.edgesji=m;elsem=CC(c,d,door,x);pp.edgesij=m;pp.edgesji=m;if(Xplace(k,l)=2)/若两插座在对立的墙面上m=fabs(Olet
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 乡野道路测试题及答案
- 叉车理论考试题及答案
- 医药后勤面试题及答案
- 医防融合试题及答案
- 儿科护考试题及答案
- 山西省忻州市一中2026届高一化学第一学期期中质量跟踪监视试题含解析
- 家电公司社会责任报告办法
- 加餐店经营方案(3篇)
- 广东省清远市阳山县阳山中学2026届化学高一上期中监测试题含解析
- 拆桥围堰施工方案(3篇)
- GB/T 27043-2025合格评定能力验证提供者能力的通用要求
- 新能源企业盈利能力分析-以比亚迪股份有限公司为例
- 厂内专用垃圾转运方案(3篇)
- 2025年地质勘探与资源矿产管理技术考试试题及答案
- 2025年儿科急救大赛试题库及答案
- 2025年新版药品管理法培训试卷附答案(专业版)
- 蔬菜大棚种植技术课件
- 医疗废物与污水处理培训
- 保安证的考试试题及答案
- 2020-2025年中国胡椒行业市场调研分析及投资战略咨询报告
- 2025年新高考1卷(新课标Ⅰ卷)语文试卷(含答案)
评论
0/150
提交评论