网站大量收购独家精品文档,联系QQ:2885784924

《数据结构 课程设计 室内布线 数据结构课程设计》.doc

《数据结构 课程设计 室内布线 数据结构课程设计》.doc

  1. 1、本文档共13页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
《数据结构》课程设计报告书 题目:室内布线 姓名: 性别: 男 班级: 计091-2 学号:200925501213 日期: 2010.7.7 课程设计内容: 装修房子是一项颇为复杂的工程,现在需要写一个程序帮助房主设计室内电线的布局。 首先,墙壁上插座的位置是固定的。插座间需要有电线相连,而且要布置得整齐美观,即要求每条线都与至少一条墙边平行,且嵌入四壁或者地板(不能走屋顶)。 房主想要知道,要将所有插座连通,自己需要买的电线最短长度是多少(取整数) 提示: 1、每个房间都有门,电线不可以穿门而过。图中给出一个有4个插座的房间的电线布局。 2、输出时应注意,题目要求取整数,但不能四舍五入,必须向上取整,因为电线短一点就不能保证连通。 算法设计: #include iostream #define MAX 20 #define MAXSIZE 1000 using namespace std; float H_LENGH,H_WIDTH,H_HIGH; int y;//定义房子的长宽高和插座的个数为全局变量 typedef struct { float X,Y,Z; }Point; typedef struct //用四个点定义门的位置 { Point DoorPlace[4]; int DP;//用来标记门在房间位置 float D_HIGH; }Door; typedef struct //定义插座的个数和位置 { Point SocketPlace[MAX]; int SocketNum,SD; }HOutlet; typedef struct {int row,col,mark; float e; }Triple; typedef struct { Triple data[MAXSIZE]; int m,n,len;}TSMatrix; int P2W(Point p)//通过插座的位置求出插座在哪一面墙上 { int num; if (p.X=0p.Y==0p.Z=0) num=1; else if (p.X==H_LENGHp.Y=0p.Z=0) num=2; else if (p.X=0p.Y==H_WIDTHp.Z=0) num=3; else if (p.X==0p.Y=0p.Z=0) num=4; return num; } float max(float a,float b)//求两个数的最大值 { float tem; if (ab){ tem=a;} else tem=b; return tem; } float max(float a,float b,float c)//求三个数的最小值 { float tem; tem=max(a,b); tem=max(tem,c); return tem;} float max(float a,float b,float c,float d)//求四个数的最大值 { float tem; tem=max(a,b); tem=max(tem,c); tem=max(tem,d); return tem;} float min(float a,float b)//求两个数的最小值 { float tem; if (ab) {tem=a; } else tem=b; return tem;} float min(float a,float b,float c)//求三个数的最小值 { float tem; tem=min(a,b); tem=min(tem,c); return tem;} float min(float a,float b,float c,float d)//求四个数的最小值 { float tem; tem=min(a,b); tem=min(tem,c); tem=min(tem,d); return tem;} float JDZ(float X,float Y)//求两个数相减的绝对值 { float tem; tem=X-Y; if (tem0) {tem=-tem;} return tem;} float CalDis(Point p1,Point p2,Door D)//求两个插座之间的最短距离{ float distance=0,distance1=0,distance2=0,distance3=0,DL,DR,SL,SR; int Num1,Num2; DL=min(D.DoorPlace[0].X,D.DoorPlace[1].X,D.DoorPla

您可能关注的文档

文档评论(0)

lipinting + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档