《测量程序设计》上机指导书要点(共47页).doc
《《测量程序设计》上机指导书要点(共47页).doc》由会员分享,可在线阅读,更多相关《《测量程序设计》上机指导书要点(共47页).doc(47页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、精选优质文档-倾情为你奉上作者:zhang测量程序设计上机指导书辽宁工程技术大学测绘与地理科学学院测绘工程系2011-08-23专心-专注-专业测量程序设计上机指导书辽宁工程技术大学测绘与地理科学学院测绘工程系目 录Visual C+ 6.0 开发平台简介 .2MFC 概述.2实验 1 VC+编程环境的熟悉 .4实验 2 测量典型函数设计 .6实验 3 误差椭圆元素计算 .7实验 4 水准网间接平差程序设计.9实验 5 矩阵转置与求逆运算 .16实验 6 附合导线计算 .22测量程序设计实验教学大纲(09 计划) .221测量程序设计上机指导书辽宁工程技术大学测绘与地理科学学院测绘工程系Vis
2、ual C+ 6.0 开发平台简介Visual C+提供了一个支持可视化编程的集成开发环境:Visual Studio(又名Developer Studio)。Developer Studio 是一个通用的应用程序集成开发环境,它不仅支持 Visual C+,还支持 Visual Basic,Visual J+,Visual InterDev 等 Microsoft系列开发工具。Developer Studio 包含了一个文本编辑器、资源编辑器、工程编译工具、一个增量连接器、源代码浏览器、集成调试工具,以及一套联机文档。使用 Developer Studio,可以完成创建、调试、修改应用程序等
3、的各种操作。Developer Studio 采用标准的多窗口 Windows 用户界面,并增加了一些新特性,使得开发环境更易于使用,用户很容易学会它的使用方法。由于 Developer Studio 是一个可视化的开发工具,在介绍 Developer Studio的各个组成部分之前,首先了解一下可视化编程的概念。可视化技术是当前发展迅速并引人注目的技术之一,它的特点是把原来抽象的数字、表格、功能逻辑等用直观的图形、图象的形式表现出来。可视化编程是它的重要应用之一。所谓可视化编程,就是指:在软件开发过程中,用直观的具有一定含义的图标按钮、图形化的对象取代原来手工的抽象的编辑、运行、浏览操作,软
4、件开发过程表现为鼠标点击按钮和拖放图形化的对象以及指定对象的属性、行为的过程。这种可视化的编程方法易学易用,而且大大提高了工作效率。Visual C+的集成开发环境 Developer Studio 提供了大量的实用工具以支持可视化编程特性,它们包括:项目工作区、ClassWizard、AppWizard、WizardBar、Component Gallery 等。MFC 概述MFC 是一个编程框架。MFC (Microsoft Foundation Class Library) 中的各种类结合起来构成了一个应用程序框架,它的目的就是让程序员在此基础上来建立 Windows 下的应用程序,这是
5、一种相对 SDK 来说更为简单的方法。因为总体上,MFC 框架定义了应用程序的轮廓,并提供了用户接口的标准实现方法,程序员所要做的就是通过预定义的接口把具体应用程序特有的东西填入这个轮廓。Microsoft Visual C+提供了相应的工具来完成这个工作:AppWizard 可以用来生成初步的框架文件(代码和资源等);资源编辑器用于帮助直观地设计用户接口;ClassWizard 用来协助添加代码到框架文件;最后,编译,则通过类库实现了应用程序特定的逻辑。1 封装构成 MFC 框架的是 MFC 类库。MFC 类库是 C+类库。这些类或者封装了 Win322测量程序设计上机指导书辽宁工程技术大学
6、测绘与地理科学学院测绘工程系应用程序编程接口,或者封装了应用程序的概念,或者封装了 OLE 特性,或者封装了 ODBC 和 DAO 数据访问的功能,等等。2 继承首先,MFC 抽象出众多类的共同特性,设计出一些基类作为实现其他类的基础。这些类中,最重要的类是 CObject 和 CCmdTarget。CObject 是 MFC 的根类,绝大多数 MFC 类是其派生的,包括 CCmdTarget。CObject 实现了一些重要的特性,包括动态类信息、动态创建、对象序列化、对程序调试的支持,等等。所有从 CObject 派生的类都将具备或者可以具备 CObject 所拥有的特性。CCmdTarge
7、t通过封装一些属性和方法,提供了消息处理的架构。MFC 中,任何可以处理消息的类都从 CCmdTarget 派生。针对每种不同的对象,MFC 都设计了一组类对这些对象进行封装,每一组类都有一个基类,从基类派生出众多更具体的类。这些对象包括以下种类:窗口对象,基类是 CWnd;应用程序对象,基类是 CwinThread;文档对象,基类是Cdocument,等等。程序员将结合自己的实际,从适当的 MFC 类中派生出自己的类,实现特定的功能,达到自己的编程目的。3 虚拟函数和动态约束MFC 以“C+”为基础,自然支持虚拟函数和动态约束。但是作为一个编程框架,有一个问题必须解决:如果仅仅通过虚拟函数来
8、支持动态约束,必然导致虚拟函数表过于臃肿,消耗内存,效率低下。例如,CWnd 封装 Windows 窗口对象时,每一条 Windows 消息对应一个成员函数,这些成员函数为派生类所继承。如果这些函数都设计成虚拟函数,由于数量太多,实现起来不现实。于是,MFC建立了消息映射机制,以一种富有效率、便于使用的手段解决消息处理函数的动态约束问题。这样,通过虚拟函数和消息映射,MFC 类提供了丰富的编程接口。程序员继承基类的同时,把自己实现的虚拟函数和消息处理函数嵌入 MFC 的编程框架。MFC编程框架将在适当的时候、适当的地方来调用程序的代码。4 MFC 的宏观框架体系如前所述,MFC 实现了对应用程
9、序概念的封装,把类、类的继承、动态约束、类的关系和相互作用等封装起来。这样封装的结果对程序员来说,是一套开发模板(或者说模式)。针对不同的应用和目的,程序员采用不同的模板。例如,SDI应用程序的模板,MDI 应用程序的模板,规则 DLL 应用程序的模板,扩展 DLL 应用程序的模板,OLE/ACTIVEX 应用程序的模板,等等。这些模板都采用了以文档-视为中心的思想,每一个模板都包含一组特定的类。为了支持对应用程序概念的封装,MFC 内部必须作大量的工作。例如,为了实现消息映射机制,MFC 编程框架必须要保证首先得到消息,然后按既定的方法进行处理。又如,为了实现对 DLL 编程的支持和多线程编
10、程的支持,MFC 内部使用了特别的处理方法,使用模块状态、线程状态等来管理一些重要信息。虽然,这些内部处理对程序员来说是透明的,但是,懂得和理解 MFC 内部机制有助于写出功能灵活而强大的程序。总之,MFC 封装了 Win32 API,OLE API,ODBC API 等底层函数的功能,并提供更高一层的接口,简化了 Windows 编程。同时,MFC 支持对底层 API 的直接调用。MFC 提供了一个 Windows 应用程序开发模式,对程序的控制主要是由 MFC框架完成的,而且 MFC 也完成了大部分的功能,预定义或实现了许多事件和消息处理,等等。框架或者由其本身处理事件,不依赖程序员的代码
11、;或者调用程序3测量程序设计上机指导书辽宁工程技术大学测绘与地理科学学院测绘工程系员的代码来处理应用程序特定的事件。MFC 是 C+类库,程序员就是通过使用、继承和扩展适当的类来实现特定的目的。例如,继承时,应用程序特定的事件由程序员的派生类来处理,不感兴趣的由基类处理。实现这种功能的基础是 C+对继承的支持,对虚拟函数的支持,以及 MFC 实现的消息映射机制。实验 1 VC+编程环境的熟悉一、二、三、四、实验名称:VC+编程环境的熟悉实验目的:熟悉 VC+6.0 编程环境与 MFC 程序框架。实验任务:基于单文档、多文档,基于对话框等 MFC 应用程序框架的流程;MFC 生成的数据处理类。实
12、验要求:1每人独立完成 MFC 框架程序的建立;五、实验内容参考:建立一个 MFC 应用程序框架启动 Visual C+6.0 主程序如下:点 File -> new->project,选择 MFC AppWizard(exe),工程名字自己输入 Adjust,如下:4测量程序设计上机指导书辽宁工程技术大学测绘与地理科学学院测绘工程系点击 OK,出现下面界面:选择“Single document”,点击“Finish”,出现下面界面:5测量程序设计上机指导书辽宁工程技术大学测绘与地理科学学院测绘工程系点击“OK”按钮,出现下面界面:选择面板下面的“Class view”,可以查看
13、MFC 自动生成的类,点击“Resourceview”,可以增加菜单、对话框等,点击“File view”,可以看到 MFC 生成的每一个类对应的“.h”和“.cpp”文件。实验 2 测量典型函数设计一、二、三、实验名称:测量典型函数设计实验目的:掌握常用角弧度互化函数设计与实现。实验任务:设计数据处理类,编写角弧互化函数,设计函数类型与返回值,设计带参数的函数。6测量程序设计上机指导书辽宁工程技术大学测绘与地理科学学院测绘工程系四、五、实验要求:每人独立完成角弧度互化程序编写与调试;实验内容参考:1、角度化弧度的例程函数(此代码会有异常):#define PI 3.97932double r
14、adio_to_angle(double alfa)double alfa1,alfa2;double alfa3,alfa4;alfa=alfa*180/PI; /化为角度值alfa1=floor(alfa); /整度alfa2=floor(alfa-alfa1)*60); /整分alfa3=(alfa-alfa1)*60-alfa2)*60; /剩余的秒alfa4=alfa1+alfa2/100+alfa3/10000;return(alfa4);2、弧度化角度的例程函数:(此代码会有异常)#define PI 3.97932double angle_to_radio(double alf
15、a)double alfa1,alfa2,alfa3,alfa4;alfa1=floor(alfa); /整度alfa2=floor(alfa-floor(alfa)*100);/整分alfa3=(alfa*100-floor(alfa*100)*100;/整秒alfa4=alfa1+alfa2/60+alfa3/3600;return(alfa4/180*PI);以上两个程序存在漏洞,需要进一步完善实验 3 误差椭圆元素计算一、二、三、实验名称:误差椭圆元素计算。实验目的和任务:掌握误差椭圆和相对误差椭圆元素的计算公式,并采用C 或者 C+语言变成实现。实验要求:1234每人独立编写出误差椭
16、圆和相对误差椭圆元素的计算程序,并调试通过;采用 VC+6.0 开发平台,C 或者 C+语言编写程序;写出计算的结果。本实验属于综合性,设计性实验,对学生的要求比较高,会综合使用矩阵加法,乘法以及转置和求逆的程序。7测量程序设计上机指导书辽宁工程技术大学测绘与地理科学学院测绘工程系5注意事项:坐标方位角计算时必须考虑 X 与 Y 所在的象限。四、实验内容:参考教材测量平差P103-P112。具体的例子可以参考 P111 页的例题,进行程序的调试。(一) 误差椭圆元素计算公式:2QEE =12(Q XX + QYY + K )QFF=12(Q XX + QYY K )E = ó 0 Q
17、EEF = ó 0 QFFtg E =tg F =QEE Q XXQ XYQFF Q XXQ XY(二) 相对误差椭圆元素计算公式:QXX = Q X 1 X 1 + Q X 2 X 2 2Q X 1X 2QYY = QY 1Y 1 + QY 2Y 2 2QY 1Y 2QXY = Q X 1Y 1 + Q X 2Y 2 Q X 1Y 2 Q X 2Y 1K = (QXX QYY ) 2 + 4Q2XYQEE =12(QXX + QYY + K )QFF=12(QXX + QYY K )E = ó 0 QEEF = ó 0 QFFtg E =tg F =QEE QX
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 测量程序设计 测量 程序设计 上机 指导书 要点 47
限制150内