ImageVerifierCode 换一换
格式:DOCX , 页数:36 ,大小:219.45KB ,
资源ID:7740914      下载积分:12 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/7740914.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(城市通信网络建设系统.docx)为本站会员(b****6)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

城市通信网络建设系统.docx

1、城市通信网络建设系统数据结构课程设计题目:城市通信网络建设系统班级:*姓名:*学号:1111111111指导教师:完成日期:2015年6月13日1需求分析1.1 问题描述通信设施的安全保障是安全生产管理工作的一项重要内容。随着通信网络的不断扩大和各种先进的通信方式日益增多相应的通信设施也在快速扩展,在不同的环境、不同的地域受到各种客观条件的影响和破坏(包括自然因素和人为因素)以及通信设施在使用过程中的老化都会对全程全网的通信质量造成不同程度的影响。因此,采用通信设施安全保障计算机管理系统实现全区通信设施的集中管理,对保障通信设施安全,提高维护工作效率,及时发现与处理隐患问题,增强抵抗灾害能力,

2、特别是在实现管理工作的系统化、正规化、规范化方面是非常必要的。如何在最小的经济条件下达到利益最大化,是所有公司、企业已经政府部门一直所探讨和解决的问题。对于城市通信管理系统来说,若要在n个城市之间建设通信网络,只需要架设1条通信线路即可,建立最小生成树即能实现以最低的经济代价建设这个通信网。1.2 基本任务通过用户调查分析及实际需求,系统需要实现如下基本任务:(1)在纸上模拟设计n个城市的网络平面图,城市数不少于20个,相同的的城市数不少于2(1),顶点表示各城市,边表示城市间的距离;(2)编写算法,求解最小代价通信网络;(3)输出该通信网络中各边及其权值;n个城市间的线路连接属于图的结构,要

3、构建最经济的通信网络,即是构建图的生成树。把城市间的线路关系看成是图。城市间的距离即是图的权值。利用算法或算法即可求出最小生成树。2概要设计为了完成需求分析的基本任务,主要从以下3个方面进行设计:2.1 主界面设计为了使程序界面更加友好,建立了函数和函数,即欢迎界面以及实现用户可以按数字键选择相应的功能。欢迎界面如下图: 2.2 数据结构设计若要在n个城市之间建设通信网络,只需要架设1条通信线路即可。所以,将一个现实的经济问题,转变为一个求最小生成树的问题。本系统软件采用经典算法算法和算法实现求最小生成树,从而获取最经济的通信路径。2.3 系统功能设计系统建立了函数和函数,其功能如下:(1)函

4、数:使用户更清晰看到程序的主体,使得程序界面更为直观。程序如下: () 初始界面 ( n); ( 最小生成树的应用n); ( 通信网络建设问题n); ( 董卓琴 1.0n); (n); ( n); ( n); (n; ( n); (1.输入通信网络基本信息并将信息存储到文件中n); (2.将网络基本信息显示到屏幕上n); (3.用算法算出最短路径,并将结果存储 到文件中n); (4.用算法算出最短路径,并将结果存储到文件中n); (5.退出n); ( n); ( n); ( ttt请输入您要选择的选项(1-5):n); (2)函数:为用户提供了方便,用户可以通过按数字键来选择相应的功能。程序如

5、下: () 控制选项函数 G = (); c; (); c; (c) (c) 1: (); ( 1b); ( n); ( ntt*欢迎使用*); ( ); (n*); ( n); ( n); ( n); (G); (); (); (); c; ; 2: (); ( 1c); ( n); ( ntt*欢迎使用*); ( ); (n*); ( n); ( ttt下面显示的是通信网络的基本信息n); ( n); (G); (G); ( nttt按任意键返回n); (); (); (); (); (); c; ; 3: (); ( 1e); ( n); ( ntt*欢迎使用*); ( ); (n*);

6、 ( n); ( n); ( n); (G); (0); ( tt*结果存入中,按任意键返回*n); (); (); (); (); (); c; ; 4: (); ( 1d); ( n); ( ntt*欢迎使用*); ( ); (n*); ( n); ( n); ( n); (G); (G); ( tt*结果存入中,按任意键返回*n); (); (); (); (); (); c; ; 5: ; 3模块设计3.1 模块设计系统主要包含主程序模块和其它操作模块。其调用关系如下图所示。 3.2 系统子模块及其功能设计本系统共设计了5个子模块,各程序的函数名及功能说明如下:(1)(G); 创建图模

7、块(2)(G); 存储图模块(3)(G); 输出图模块(4)(G); 算法求最小生成树模块 算法的基本思想是: 1、若网络G的边数1,则G即为所求的最小生成树,否则,一定有e1. 2、将网络的e条边按权值自小到大顺序排列。 3、将网络G中的边都去掉,只留下n个孤立顶点作为初始的最小生成树T,再按边的排放顺序逐个考察,若与当前E(T)中的边不构成圈,便将它加入到边集E(T),直至E(T)中边数满1为止。(5)(G); 算法求最小生成树模块 算法是另一种求最小生成树的方法,它的基本思想是按权值局部最小逐次将顶点和边加入到T中,直至V(T)满n个顶点为止。算法步骤为: 1、设最小生成树T的V(T)和

8、E(T)均为空。 2、从顶点集V(G)中任取一顶点加到顶点集V(T)中。 3、在与V(T)中各顶点相关的所有边中,取一条权值最小的边(),其中,包含于V(T),包含于V(T)。 4、()加入到E(T)中,将顶点加入到V(T)中。 5、若V(T)已满n个顶点,则算法终止,否则转步骤(3)。 3.3 系统模块之间的调用关系系统的5个子模块之间的主要调用关系如下图所示: 4详细设计 4.1 数据结构设计 系统采用邻接矩阵存储信息,定义如下: 图的数据结构 建立图 () (, 0, ); 城市名称 网络条数 ; 图的当前顶点数(城市总数) ; 图的当前弧数(网络总数) ; 记录从顶点集U到的代价最小的

9、边的辅助数组定义 辅助数组 () = 0; ; 当前点 ; 权值; () (, 0, 1024); 1024;* = 20; 若G中存在顶点u,则返回该顶点在图中位置;否则返回-1。 ( u) i; (i = 0; i ; ) ( (u, i) 0) i; -1; 4.2 系统主要模块设计 4.2.1 函数 1)创建邻接矩阵以存储图的内容。 2)填充矩阵,即输入城市间网络的状况,以方便使用算法或算法求 出最经济的架设方法。 程序如下: 采用数组(邻接矩阵)表示法,构造无向网G。 ( ) i = 0, j = 0, k = 0, w = 0; ; 路径的两个节点 (nntt*建立城市间网络信息*

10、); (请输入城市的总数:n); ( ); (请输入城市间的网络数:n); (); (请输入个城市的名称(个字符):n); (0) 构造顶点向量 (i); (0) 初始化邻接矩阵 (0) ij=65535; 65535为无穷大 (请输入条网络的两个城市信息城市1和城市2的距离(以空格作为间隔): n); (0) ( ); 输入城市1城市2名称及其距离 ( G, ); 定位权值位置 ( G, ); ijji; 对称 G; 4.2.2 函数 1)为了避免每次都重复输入信息,用文件存储图的内容。 2)如果没有文件则建立文件,并把图的内容存储到文件中。 3)如果文件存在,则从文件中读取图的内容到内存,

11、以便完成其他操作。程序如下: ( G) 输入内容存储在 ; *; (,); () (G); (,); (,n); 存城市树 (,n); 存网络数 (0) (,tni)存城市名称 (0)存储邻接矩阵 (0; ) (i j) ij = 0; 到它自己 (,ni, j, ij); (,ni, j, ij); (); 存储成功!。输入任意键返回.; c = (); 从文件中读取网的信息存到内存中 (tt*正在读取文件中.*n); (,n, ); (,n, ); 1024; (, 0, 1024); (0; i; ) (, 1023, ); (i); 1024; = 0; (, 0, 1024); (0

12、; i; ) (0=0; ) = 0; (n) 0: = 0; ; 1: = 1; ; 2: = 2; ; 3: = 3; ; 4: = 4; ; 5: = 5; ; 6: = 6; ; 7: = 7; ; 8: = 8; ; 9: = 9; ; *X; X = X*10; ij = ; (tt*读取成功.t*n); (); G; 4.2.3 函数 函数完成输出功能,将内存中图的内容输出到屏幕上程序如下: ( G)将输入的网络基本信息打到屏幕上 ; (城市总数t, ); (网络条数n, ); (城市名称:tn); (0; i; ) (i); i; (n); (各个城市间的距离:n); (n);

13、 (n); (0) (0) (距离公里nij); 输入任意键返回.; c = (); G; 4.2.4 函数 用算法求出最小生成树,即最经济的假设方案程序如下: ( G) 结果存储在 ; 000ab; *; (,); (0) i; (最短网络路径为:n); (k1) (0) 从ij中找到权值最小的 (1) (ij) ij中存最小权值 ; ; (ab) 如果a和b值不同则输出 (t距离nabab)输出生成树各边 (,nab); ; (0) 输出后变成相同值,下次将不会输出 (ib) ia; abba=65535; 输出过的权值变为最大值 (); (); G; 4.2.5 函数 用算法求出最小生成

14、树,即最经济的假设方案程序如下: 用普里姆算法从第u个顶点出发构造网G的最小生成树T,输出T的各条边 ( u) 结果存储在中 0; ; *; (,); (); (0) 辅助数组初始化 (j); jkj; k0; 初始u (最短网络路径为:n); (1) 选择其余1个顶点 (); 求出T的下一个结点:第K顶点 ()nkk); (,nkk); 输出生成树的边 k0; 第K顶点并入U集 (0) (kjj) 新顶点并入U集后重新选择最小边 (jk); jkj; (); ();5调试分析系统主界面运行如图1所示。各子功能测试运行结果如下:运行程序,出现欢迎界面,见下图:5.1 城市间网络信息的建立5.2

15、显示通信网络的基本信息 5.3 查询最短网络路径 6用户使用说明 1、运行程序,出现欢迎界面; 2、按1进入输入系统,如果文件没有存储城市网络内容,则由用户从键盘读入,读入后自动保存到文件中,按任意键即可返回欢迎界面; 3、如果文件内已经存储了城市网络内容,则显示文件已保存到文件中,按任意键返回; 4、输入2可以在屏幕上输出存储在文件内的城市间网络信息,显示完毕后按任意键可返 回欢迎见面; 5、按3和4分别可实现算法和算法求出最小生成树,即最低经济代价建设通信网络(距离最短的最经济),显示完毕后按任意键返回欢迎界面; 6、按5退出程序。7参考文献 数据结构理论与实践 杨永斌 (核心算法算法以及

16、算法来源于此) 数据结构(C语言)实践教程 胡元义 数据结构 严蔚敏、吴伟民 课程设计案例精选与编程指导 陈清华、朱红8对所设计的软件进行自我评价,如创新点、未解决的问题等情况说明: 1、对图的逻辑结构及存储结构有了更深刻的认识; 2、对算法和算法亦有了更深刻的认识; 3、了解并掌握数据结构与算法的设计方法,具备初步的独立分析和设计能力,深入了解了模块化的程序设计步骤; 4、算法应该用堆排序然后再找路径,但未能实现; 5、输入方面如果没有将网络信息存入文件,由键盘输入信息时,如果手误输错了无法更改,只能重新输入,而且如果输入中文,最后显示时会出现乱码,只能用英文输入; 6、算法的实现仍有问题,

17、结果存在错误,而且只能实行到第三步,到第四步时会出现程序关闭的提醒;9、程序源代码: 20 最大顶点个数 3 顶点字符串的最大长度+1 ; 邻接矩阵的数据结构 图的数据结构 建立图 () (, 0, ); 城市名称 网络条数 ; 图的当前顶点数(城市总数) ; 图的当前弧数(网络总数) ; 记录从顶点集U到的代价最小的边的辅助数组定义 辅助数组 () = 0; ; 当前点 ; 权值; () (, 0, 1024); 1024;* = 20; 若G中存在顶点u,则返回该顶点在图中位置;否则返回-1。 ( u) i; (i = 0; i ; ) ( (u, i) 0) i; -1; 采用数组(邻接

18、矩阵)表示法,构造无向网G。 ( ) i = 0, j = 0, k = 0, w = 0; ; 路径的两个节点 (nntt*建立城市间网络信息*); (请输入城市的总数:n); ( ); (请输入城市间的网络数:n); (); (请输入个城市的名称(个字符):n); (0) 构造顶点向量 (i); (0) 初始化邻接矩阵 (0) ij=65535; 65535为无穷大 (请输入条网络的两个城市信息城市1和城市2的距离(以空格作为间隔): n); (0) ( ); 输入城市1城市2名称及其距离 ( G, ); 定位权值位置 ( G, ); ijji; 对称 G; ( G) 输入内容存储在 ;

19、*; (,); () (G); (,); (,n); 存城市树 (,n); 存网络数 (0) (,tni)存城市名称 (0)存储邻接矩阵 (0; ) (i j) ij = 0; 到它自己 (,ni, j, ij); (,ni, j, ij); (); 存储成功!。输入任意键返回.; c = (); 从文件中读取网的信息存到内存中 (tt*正在读取文件中.*n); (,n, ); (,n, ); 1024; (, 0, 1024); (0; i; ) (, 1023, ); (i); 1024; = 0; (, 0, 1024); (0; i; ) (0=0; ) = 0; (n) 0: = 0; ; 1: = 1; ; 2: = 2; ; 3:

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1