测绘程序设计(整理)

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

1数据处理(平差程序)的基本要求(1)程序逻辑结构简单,清晰易读,符合结构化程序设计要求,便于扩展;(2)运算速度快,占用内存小,内外存之间的交换不宜过于频繁;(3)数学模型及计算方法正确、先进,计算结果精度高;(4)适应性强,便于移植,充分考虑各种可能形式,尽量满足不同要求与需要;(5)方便用户,操作简便。数据输入与用户作业方式与习惯相统一,输出明了、齐全;尽量减少手工处理工作量,操作简便;人机交互性要强。

2数据处理程序的设计步骤:结构总体设计:基本功能、模块化;数据结构设计:概念模型、结构体、模块化;确定软件各组成部分的算法及数据组织:根据概念模型需要的处理过程与功能展开。分析模块之间的关联关系;选定某种表达式来描述各种算法:伪代码;代码编写:C 语言源程序编写;程序调试:模块调试与软件调试;编写用户使用说明:功能、结构;数据格式与处理过程

3模块:执行某一特定任务的数据结构和程序代码。模块=数据+函数(C 语言中每一个模块对应一个函数function )

模块化:将待开发的软件分解成若干个小的模块,以使每个模块可以独立地开发、测试,最后组装成完整的软件。

软件模块化的目的在于使软件的结构清晰,降低软件开发难度、容易阅读理解、测试和修改。

划分模块的原则:功能分解:大事化小,小事化了.按功能划分模块,要求每个模块包含单一、具体的功能.使每个模块独立性好,这就要求一个模块具有较强的内聚性和较弱的耦合性。方便于模块的独立开发、调试,同时,使模块具有很好的移植性。

划分模块时,应当尽量减小模块间的耦合性,例如尽可能地使用局部变量就可以减小模块之间的耦合性。采用层次结构进行分析(方法):(1)最上层模块是对系统整体功能的抽象;(2)下层模块是对上层模块的逐步细化、分解、描述;(3)重复(2),得出便于实现的独立性好的模块,直到下层模块不可再分为止.在最下层,对“怎么做”作出精确的描述。

函数:实现某种模块算法的程序代码

C 语言函数:是C 语言源程序的基本模块,通过对函数模块的调用实现特定的功能。函数可以分为库函数和用户定义函数

库函数:由C 语言系统提供的实现基本操作和处理过程的函数,用户无须定义,也不必在程序汇总作类型说明,只需在程序前包含该函数原型的头文件即可在程序中直接调用

用户定义函数:将需要处理的问题按功能进行分块,每个模块处理一个特定的具体问题或过程,用户按特定的处理需要编写的函数。不仅在程序中定义函数本身,在主调函数模块中还必须对被调函数进行类型说明,然后才能使用。

C 语言结构体是一个可以包含不同数据类型的结构,可以由用户定义的数据类型。结构体是对软件从数据的角度进行分块的方法。

结构体好处:用结构体对数据进行正确分块后,软件的数据空间会非常清晰,明了和完整,由于问题空间概念本身具有的独立性,从而也可以保证数据在程序处理中的正确性和安全性。另外,使用结构体,使得问题空间过程和功能分析更加简单,明确,对相关结构体的处理也可以满足功能函数之间独立性的要求。 ⎪⎪⎩

⎪⎪⎨⎧⎩⎨⎧⎩⎨⎧模块的功能用的其他模块),引用的全局变量,调模块接口(输入、输出外部特征序代码实现模块具体功能的程模块的局部数据内部特征模块的性质

结构化程序设计:按软件功能独立性划分模块的方法,将待开发的软件分解为若干个独立性好的模块,每个模块用一个函数表示,对每个模块独立开发,调试,最后组装成整体的软件的程序设计的方法。主线:对问题空间主要概念结构体数据生成,处理与数据保存过程的实现。宗旨:功能分块,即函数分析,设计,以及互相间的调用关系。

数据模块化1概念及关系2用结构体对数据进行正确分块后,软件的数据空间会非常清晰,明了和完整,由于问题空间结构概念本身具有独立性,从而保证数据在程序处理过程中的正确性和安全性。

结构化的模块化(指功能模块化)思想具体表现:一是在软件分析和设计中,如何将一个大的复杂的问题分解为一系列相互独立的小的,简单问题:二是在问题解决过程中如何将一系列相对独立的函数组装成一个可以互相处理具体问题的完整,正确的软件系统

网形数字化:将网形转化为一系列数据的工作和过程。网形数字化所得到的一组数据就是控制网的数据结构。

测量平差的数据结构:是表达一个控制网的全部数据集合,包括已知数据,观测数据,网形数据(网图数据)及其关系。

最小独立环:满足1多边形线性无关2环中包含的边数最少/距离最短的多边形环。

生成树:将图中所有n个点,用n-1条边连接起来的连接图叫生成树。

一个控制网的全部数据的集合包括已知数据、观测数据、网形数据(网图数据)及其关系。图论是研究事物之间关系的一种数学方法,在图论中,用点表示事物,用线段表示事物之间的联系,点称为图的顶点,线段称为图的边。对于控制网其中元素及其关系

图是由点和边构成的,可以定义为顶点集V与边集E的和,记为G=(V,E)

若点偶中顶点的顺序可以任意,称这种图为无向图,有向图:点偶顺序固定的图。

图的数学表示方法有以下三种:相关矩阵,邻接表和边目录。

1)相关矩阵:如果i,j两点有边相连,则矩阵第i行、第j列元素为1,反之为0;对角线上元素永远为零。

无向图特点:关于主对角线对称,通常只需写出一半即可。

有向图特点:通常不是对称矩阵,需要写出矩阵全部元素。

2)邻接表:按照图中的顶点顺序,将与该点边相连的所有点(可达顶点)排成一行,所有这些行所构成的表叫邻接表。

该表可由对应的相关矩阵产生。为节省内存,通常将邻接表排成一行。为识别可达顶点所属的行号,需要给出每行含有的可达顶点数,从而构成可达顶点数表和可达顶点表。如下所示:

• 2 2 2 1 (可达顶点数)

• 2 3 1 3 2 4 2 (可达顶点)

与有向图类似,无向图的邻接表也可以由相应相关矩阵产生。

3)边目录:这种用两端点号表示图中边所构成的表成为边目录。对有向图用边目录表示如:• 1 1 2 2 3 3 4

• 2 3 1 3 2 4 2

在上列数据中,每一列表示一条边,第一行中的点为起点号,第二行中的点为终点号。

无向图边目录表示方法与有向图类似。需要注意的是,为了使每条边只表示一次,采用最小点号原则。也就是起点号由小到大排列,相同的边不重复表示。

以上三种方法只要知道一种表示,其它两种就可以相应生成。

各种方法的比较

相关矩阵、邻接表和边目录都能表示出图的全部点和边。其中,相关矩阵方法冗余度最大,对角线上元素全为零,其余位置上也存在大量的数据冗余。另外,相关矩阵不能反映出各边

相关文档
最新文档