测绘程序设计C++.ppt

测绘程序设计与C++编程 长安大学 杨建华 2012年8月 第一章 绪 论 第一节 本课程的研究内容 本课程主要内容 测绘工程所涉及的数据计算、绘图、数据库管理、数据分析等,都可以使用计算机来完成。本课程主要讲述以下内容: (1) 面向对象软件设计的思想与C++语言。 (2) 测绘数据处理常用工具类设计。矩阵的概念及其相关计算,角度-弧度互化的函数、测量正反算函数以及正态分位数函数。 (3) 基本平差程类adj设计。最小二乘平差与抗差估计。 (4) 高程网平差类设计。水准网、三角高程网平差的相关计算问题。 (5) 平面网平差类设计。三角网、边角网、测边网平差的相关计算问题。 (6) GPS向量网平差类设计。观测值为GPS基线向量网的三维坐标平差。 (7) 测量坐标系转化类设计。测量坐标系转化程序设计技术,主要包括空间直角坐标系与大地地理坐标系的转换、高斯投影转换与平面直角坐标系的转换程序。 (8) 综合应用类设计。建立一个综合应用类,封装以上七个数据处理功能,为用户的具体问题计算应用提供方便。 平差问题程序计算特点 平差程序计算:速度快、精度高、数据处理自动化; 从程序设计的角度看,程序设计与平差计算相对独立。在程序设计时必须考虑需要处理的所有问题的普遍性和规律性。 在程序计算时,选择平差方法的依据不同: 在手工计算时,我们通常希望尽量降低计算工作量。当 必要观测数 t 多余观测数 r:条件平差; 必要观测数 t 多余观测数 r:间接平差, 这样,可以降低平差计算量。 在计算机程序计算时,由于计算机计算的快速高效性,我们不是很关心计算量的问题,而把主要精力集中于方法实现的现实性方面,要求方法具有较强的规律性,便于程序设计的技术实现。 在本课程中,我们使用间接平差方法进行程序设计。 总之,我们在选择数学模型的时候,一定要考虑算法同计算机程序设计的特点相统一。 平差程序的基本要求 平差程序设计与其它程序设计相同,应当满足一定的要求。 (1)程序逻辑结构简单,清晰易读,符合结构化程序设计要求,便于扩展; (2)运算速度快,占用内存小,内外存之间的交换不宜过于频繁; (3)数学模型及计算方法正确、先进,计算结果精度高; (4)适应性强,便于移植,充分考虑各种可能形式,尽量满足不同要求与需要; (5)方便用户,操作简便。数据输入与用户作业方式与习惯相统一,输出明了、齐全;尽量减少手工处理工作量,操作简便;人机交互性要强。 上述要求,既体现在平差程序的总体设计中,也贯穿于平差程序设计的各个环节中。 C++平差程序的设计步骤 面向对象分析 :提出概念模型 面向对象设计 :确定概念模型 确定概念模型中每个功能函数的具体算法 选定某种表达式来描述各种算法:伪代码 代码编写:C++类设计与成员函数编写 程序调试:类调试与系统软件调试 编写用户使用说明:系统功能与结构;数据格式与处理过程 学习本课程的基本要求 (1) 理解并掌握C++语言面向对象程序设计基本思想与基本技术,并应用于测绘程序设计中; (2) 理解并掌握《测量平差基础》、《控制网平差基础》等相关基础知识; (3) 勤动手、勤思考,阅读、编写相关功能程序,才能从根本上掌握面向对象的软件设计思想和测绘数据处理软件特点,理解并掌握面向对象的测绘程序设计技术。 第二节 模块化程序设计 模块——执行某一特定任务的数据结构和程序代码。 模块=数据+函数 模块化——将待开发的软件系统分解成若干个小的、相对独立的小系统,以使每个小系统可以独立地开发、测试,最终组装成完整的软件。软件模块化的目的在于使软件的功能与结构清晰,降低软件开发难度、方便阅读理解、测试和修改。 (工业生产)独立的小系统称为模块。 程序=数据+功能函数 按功能分块=结构化程序设计(C) 按组成结构分块=面向对象程序设计 (C++) 结构化方法(C语言) 功能分解:大事化小(将复杂的功能结构分解为一系列小的、相对独立、简单的局部功能结构) 按功能划分模块,要求每个模块包含单一、具体的功能 使每个模块独立性好,要求一个模块具有较强的内聚性和较弱的耦合性。方便于模块的独立开发、调试,同时,使模块具有很好的移植性。 划分模块时,应当尽量减小模块间的耦合性,例如尽可能地使用局部变量就可以减小模块之间的耦合性。采用层次结构进行分析(方法): 最上层模块是对系统整体功能的抽象; 下层模块是对上层模块的逐步细化、分解、描述; 重复(2),得出便于实现的独立性好的模块,直到下层模块不可再分为止。在最下层,对“怎么做”作出精确的描述。 平差程序结构化分块方法 面向对象方法(C++语言) 结构化方法

您可能关注的文档

文档评论(0)

1亿VIP精品文档

相关文档