课程设计报告小区网络光纤的铺设.docVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
广东海洋农曇信息曇浣 课程设计报告 设 计 题 目 小区网络光纤的铺设 课 程 名 称 数据结构 姓名(学号) 庞东兴(201211621165) 刘凯(201211621121) 梁杰生(201211621118) 联 系 电 话(67) 专 业 名 称 计算机科学与技术 所 在 班 级 计算机科学与技术1班 指 导 教 师 谢仕义 教 师 职 称 教授 起 止 时 间 2013年10月29日至2013年12月6日 评定成绩 课程设计的主要内容 设计数据结构和算法,实现居民小区之间网络光纤铺设的最佳方案选择,主要内容如 下:需要在某个城市n个居民小区Z间铺设网络光纤,假设任意两个居民小区Z间均需要 铺设光纤,则在这n个居民小区之间只需要铺设门-1条光纤即可形成一个网络,但由于地 理环境不同,所需要的代价也不尽相同。木课程设计要求事先随机生成任意居民小区之间 铺设网络光纤的代价,并将代价存入文件,然后设计一个最佳方案进行光纤铺设,使得既 能连通所有小区之间的网络,又能使网络光纤铺设的代价最小,最终以图形形式输岀所设 计的最佳方案。 二.功能和结构设计 1、克鲁斯卡尔算法: 克鲁斯卡尔算法的思想: 设无向连通网%G= (V, E),令G的最小生成树为丁= (U, TE),其初态为U=V, TE={},这样T中个顶点各自构成一个连通分量。然后,按照边的权值由小到大的顺序, 依次考察边集E中的各条边。若被考察边的两个顶点属于T的两个不同的连通分量, 则将此边加入到TE中,同时把两个连通分量连接为一个连通分量;若被考察边的两个 顶点屈于同一个连通分量,则舍去此边,以免造成回路,如此下来,当T中的连通分 量个数为I时,此连通分量便为G的一棵最小生成树。 算法过程描述: 初始化:U=V; TE={}; 重复下述操作直到T中的连通分量个数为1; 2、1在E中寻找最短边(U,V); 2、2如果顶点u、v位于T的两个不同连通分量,则 将边(U、v)并入 TE; 将这两个连通分量合为一个; 2^ 3在E中标记边(u, v),使得(u, v)不参加后续最短边的选取; 2、模块分析 根据对模型的功能分析,该管道铺设设计可以具有以下功能: .网络光纤铺设信息的输入; .最小生成树信息的输出; 3、抽象数据类型分析 Ver tcx[] Edge[][] R[] vertexNum edgeNum 居民区 邻接矩阵储存居民区的关系 居民区之间的距离 表示居民区数量 表示居民区的路线数目 4、功能分析 信息输入: 这5个居民区之间铺设网络光纤总长度中最短的长度为:55米 请输入单位长度路线铺设的价格(元):100 所以,这5个居民区之间铺设网络光纤所需最小费用为:5500元 0 程序输出: 0 0 22 32 12 10 27 18 33 15 35 26 请输入网络光纤铺设路线的总条数:佃 请按此格式输入边和权值:n,…k (表示n居民区到m居民区的距离为 1 2 4 3 2 4 3 3 4 4 k米): 请输入居民区的个数:5 0 2 5 8 1111 为为为为 度度度度 n 3 4 3 4 知区区区区 H民民民民 號居居居居 hi 0 0 2 1 纤|3凶凶 光民民民民 取居居居居 选 最短路径: * *欢迎便用本 稱您选 * 樽可以: * 居民区 A B ■ IMMO MV c D E 序号 0 1 2 3 4 分别输入居虽区:A B C D E 圭成居民区序号表: 三.流程图和算法设计 〃居民区数据输入 cout〈〈〃请输入居民区的个数:〃; cin?vertexNum; coutendl; cout?zz分别输入居民区:〃; for(i=0;ivertcxNum;i++) cinvertex[i]; cout?/z请输入网络光纤铺设路线的总条数:〃; cinedgeNum; 〃二维数组存储居民区信息 cout〈〈〃请按此格式输入边和权值:n, m, k (表示n居民区到m居民区的距离为k米): /z?endl; for (i=0;iedgeNum;i++) cinnmk; Edge[n][m]=k; Edge[m][n]=k; R[i]二k; coutendl; //对储存权值的数组R□进行排序 void GraphDatatype::InsertSort() { int k; for(int i二1;i〈edgeNum;i++) k=R[i]; for (int j=i-l;kR[j]; j—) {R[j+1]二 R[j];} R[j+1]二 k; //克鲁卡尔算法牛成最小牛成树 void GraphDatatype::Kruskal () { Sum=0; int i, b=0, d=0, num, vexl,

文档评论(0)

ggkkppp + 关注
实名认证
文档贡献者

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

1亿VIP精品文档

相关文档