《测量程序设计》上机指导书要点

上传人:无*** 文档编号:103566706 上传时间:2022-06-09 格式:DOC 页数:24 大小:504.50KB
收藏 版权申诉 举报 下载
《测量程序设计》上机指导书要点_第1页
第1页 / 共24页
《测量程序设计》上机指导书要点_第2页
第2页 / 共24页
《测量程序设计》上机指导书要点_第3页
第3页 / 共24页
资源描述:

《《测量程序设计》上机指导书要点》由会员分享,可在线阅读,更多相关《《测量程序设计》上机指导书要点(24页珍藏版)》请在装配图网上搜索。

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测量程序设计上机指导书辽宁工程技术大学测绘与地理科学学院测绘工程系Visual C+ 6.0 开发平台简介Visu

2、al C+提供了一个支持可视化编程的集成开发环境:Visual Studio(又名Developer Studio)。Developer Studio 是一个通用的应用程序集成开发环境,它不仅支持 Visual C+,还支持 Visual Basic,Visual J+,Visual InterDev 等 Microsoft系列开发工具。Developer Studio 包含了一个文本编辑器、资源编辑器、工程编译工具、一个增量连接器、源代码浏览器、集成调试工具,以和一套联机文档。使用 Developer Studio,可以完成创建、调试、修改应用程序等的各种操作。Developer Studi

3、o 采用标准的多窗口 Windows 用户界面,并增加了一些新特性,使得开发环境更易于使用,用户很容易学会它的使用方法。由于 Developer Studio 是一个可视化的开发工具,在介绍 Developer Studio的各个组成部分之前,首先了解一下可视化编程的概念。可视化技术是当前发展迅速并引人注目的技术之一,它的特点是把原来抽象的数字、表格、功能逻辑等用直观的图形、图象的形式表现出来。可视化编程是它的重要应用之一。所谓可视化编程,就是指:在软件开发过程中,用直观的具有一定含义的图标按钮、图形化的对象取代原来手工的抽象的编辑、运行、浏览操作,软件开发过程表现为鼠标点击按钮和拖放图形化的

4、对象以和指定对象的属性、行为的过程。这种可视化的编程方法易学易用,而且大大提高了工作效率。Visual C+的集成开发环境 Developer Studio 提供了大量的实用工具以支持可视化编程特性,它们包括:项目工作区、ClassWizard、AppWizard、WizardBar、Component Gallery 等。MFC 概述MFC 是一个编程框架。MFC (Microsoft Foundation Class Library) 中的各种类结合起来构成了一个应用程序框架,它的目的就是让程序员在此基础上来建立 Windows 下的应用程序,这是一种相对 SDK 来说更为简单的方法。因为

5、总体上,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 所拥有的特性。CCmdTarget通过封装一些属性和方法,提供了消息处理的

7、架构。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 编程的支持和多线程编程的支持,MFC 内部使用了特别的处理方法

10、,使用模块状态、线程状态等来管理一些重要信息。虽然,这些内部处理对程序员来说是透明的,但是,懂得和理解 MFC 内部机制有助于写出功能灵活而强大的程序。总之,MFC 封装了 Win32 API,OLE API,ODBC API 等底层函数的功能,并提供更高一层的接口,简化了 Windows 编程。同时,MFC 支持对底层 API 的直接调用。MFC 提供了一个 Windows 应用程序开发模式,对程序的控制主要是由 MFC框架完成的,而且 MFC 也完成了大部分的功能,预定义或实现了许多事件和消息处理,等等。框架或者由其本身处理事件,不依赖程序员的代码;或者调用程序3测量程序设计上机指导书辽宁

11、工程技术大学测绘与地理科学学院测绘工程系员的代码来处理应用程序特定的事件。MFC 是 C+类库,程序员就是通过使用、继承和扩展适当的类来实现特定的目的。例如,继承时,应用程序特定的事件由程序员的派生类来处理,不感兴趣的由基类处理。实现这种功能的基础是 C+对继承的支持,对虚拟函数的支持,以和 MFC 实现的消息映射机制。实验 1 VC+编程环境的熟悉一、二、三、四、实验名称:VC+编程环境的熟悉实验目的:熟悉 VC+6.0 编程环境与 MFC 程序框架。实验任务:基于单文档、多文档,基于对话框等 MFC 应用程序框架的流程;MFC 生成的数据处理类。实验要求:1每人独立完成 MFC 框架程序的

12、建立;五、实验内容参考:建立一个 MFC 应用程序框架启动 Visual C+6.0 主程序如下:点 File - new-project,选择 MFC AppWizard(exe),工程名字自己输入 Adjust,如下:4测量程序设计上机指导书辽宁工程技术大学测绘与地理科学学院测绘工程系点击 OK,出现下面界面:选择“Single document”,点击“Finish”,出现下面界面:5测量程序设计上机指导书辽宁工程技术大学测绘与地理科学学院测绘工程系点击“OK”按钮,出现下面界面:选择面板下面的“Class view”,可以查看 MFC 自动生成的类,点击“Resourceview”,可

13、以增加菜单、对话框等,点击“”,可以看到 MFC 生成的每一个类对应的“.h”和“.cpp”文件。实验 2 测量典型函数设计一、二、三、实验名称:测量典型函数设计实验目的:掌握常用角弧度互化函数设计与实现。实验任务:设计数据处理类,编写角弧互化函数,设计函数类型与返回值,设计带参数的函数。6测量程序设计上机指导书辽宁工程技术大学测绘与地理科学学院测绘工程系四、五、实验要求:每人独立完成角弧度互化程序编写与调试;实验内容参考:1、角度化弧度的例程函数(此代码会有异常):#define PI 3.14932double radio_to_angle(double alfa)double alfa1

14、,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.14932double angle_to_radio(double alfa)double alfa1,alfa2,alfa3,alfa4;alfa1

15、=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每人独立编写出误差椭圆和相对误差椭圆元素的计算程序,并调试通过;采用 VC+6.0 开发平台,C

16、 或者 C+语言编写程序;写出计算的结果。本实验属于综合性,设计性实验,对学生的要求比较高,会综合使用矩阵加法,乘法以和转置和求逆的程序。7测量程序设计上机指导书辽宁工程技术大学测绘与地理科学学院测绘工程系5注意事项:坐标方位角计算时必须考虑 X 与 Y 所在的象限。四、实验内容:参考教材测量平差P103-P112。具体的例子可以参考 P111 页的例题,进行程序的调试。(一) 误差椭圆元素计算公式:2QEE =12(Q XX + QYY + K )QFF=12(Q XX + QYY K )E = 0 QEEF = 0 QFFtg E =tg F =QEE Q XXQ XYQFF Q XXQ

17、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 QXXQXYQFF QXXQXY8K = (Q XX QYY ) 2 + 4Q XY测量程序设计上机指导书辽宁工程技术大学测绘与地理科学

18、学院测绘工程系五、例子(P111)在某三角网中插入 P1 和 P2 两个新点。设用间接平差法平差。平差之后这两点之间的协因数阵如下:QXX0.00160.00100.00050.00020.00240.00060.00080.00100.00060.00210.00030.00050.00080.00030.0024Q11 Q12Q31 Q32Q41 Q42Q13Q23Q33Q43Q14 Q24 Q34 Q44 根据以上的公式,分别计算出未知点 P1 和 P2 的误差椭圆元素以和这两点之间的相对误差椭圆元素。实验 4 水准网间接平差程序设计一、二、三、四、1实验名称:水准网间接平差程序设计实验

19、目的:掌握用间接平差法对任意网形的水准网进行平差的算法设计以和程序编制;并学习采用读文件处理数据的方法,并设计水准数据处理类。实验任务:用 C/C+编写水准网间接平差程序,并调试通过,用实测数据实算分析;同时评定精度。实验要求:个人独立编写程序,原始数据存放于文本文件或者数据库文件中;2 程序应该具有通用性,即任意网形都可以平差;3 用实测的数据进行计算分析。4 评定待定点的高程精度。五、实验内容12数据文件的编制格式总点数 未知点数 测段数(观测高差的个数)已知点 1 点名 高程已知点 2 点名 高程未知点 3 点名 0未知点 4 点名 0未知点 5 点名 0。起点点号 终点点号 观测高差

20、路线长度(km)起点点号 终点点号 观测高差 路线长度(km)起点点号 终点点号 观测高差 路线长度(km)。平差原理由观测值的起始和终点号或者水准网网形,形成误差方程的系数矩阵 B(也叫设计矩阵),由观测的路线长度形成观测高差的权阵 P(观测值90.0002= Q Q22= 21测量程序设计上机指导书独立,P 为对角阵),原理如下:辽宁工程技术大学测绘与地理科学学院测绘工程系Pi =CSi(C 为任意常数)V = Bx lN bb = B T PBW = B T Plx = N bb1 W3法方程系数矩阵与闭合差的自动累加由于 N 和 W 具有可加性,即每读取一个高差观测值,即可得到一个误差

21、方程的系数向量,然后累加到法方程系数矩阵与闭合差中;当高差观测值读取完毕的时候,法方程系数矩阵与闭合差也累加完毕;此时可用公式直接计算待定点高程的改正数,加上高程近似值,就得到了高程的平差值。4精度评定验后单位权中误差: 0 =V T PVn t待定点高程(未知参数)的协因数阵: QXX = N bb1待定点高程的方差: DXX = 02 QXX改正数 V 的协因数阵: QVV = Q BN bb1 B T高差平差值的协因数阵: QLL = BN bb1 B T5例子 1(P79)(1)in.txt 文件4351 A 237.4832 B 0.03 C 0.04 D 0.01223134314

22、5.8353.7829.6407.3842.2703.52.74.03.02.5(2)源程序(部分代码有漏洞)/Gckzwpc.h 头文件代码class CGckzwpcpublic:CGckzwpc();virtual CGckzwpc();10测量程序设计上机指导书辽宁工程技术大学测绘与地理科学学院测绘工程系public:bool ReadData(CString ); /读水准网平差数据文件void pc(); /平差函数void jdpd(); /精度评定函数int invGJ(double *a,int n); /求逆函数int nz,nw,ne,nn;/文件头信息:总点数,未知点数

23、,已知点数,测段数int n120,n220; /存放高差起点与终点的点号double H50,h50,W20,X20,B5020,V50,VPV;double *Nbb,S50,l50,P50,ph50;CString dm20; /控制点点名double SIG0,DX2020;/Gckzwpc.cpp 代码bool CGckzwpc:ReadData(CString )int i;int MAXLINE =512;char buff513,ch115;CStdio;if( !fp.Open()AfxGetApp()-m_pMainWnd-MessageBox(数据文件不存在或数据文件错!

24、,进程. . . . . .!,MB_OK|MB_ICONSTOP);_exit(1);return FALSE;fp.ReadString(buff,MAXLINE);sscanf(buff,%d%d%d,&nz,&nw,&nn);ne=nz-nw;int dh;double gc;for(i=0;inz;i+)fp.ReadString(buff,MAXLINE);sscanf(buff,%d%s%lf,&dh,ch1,&gc);dmi=ch1;Hi=gc;for(i=0;inn;i+)11测量程序设计上机指导书辽宁工程技术大学测绘与地理科学学院测绘工程系fp.ReadString(buf

25、f,MAXLINE);sscanf(buff,%d%d%lf%lf,&n1i,&n2i,&hi,&Si);fp.Close();return TRUE;void CGckzwpc:pc()int i,j,k;/double Nbb12020;Nbb = new double * nw;for(i=0;inw;i+)Nbbi = new double nw;for(i=0;inn;i+)Pi=0.0;li=0.0;for(j=0;jnw;j+)Bij=0.0;for(i=0;ine) Bin1i-ne-1=-1;if(n2ine) Bin2i-ne-1=+1;Pi=1/Si;li=Hn1i-1+

26、hi-Hn2i-1;for(i=0;inw;i+)for(j=0;jnw;j+)Nbbij=0.0;for(k=0;knn;k+)Nbbij+=Bki*Bkj*Pk;for(i=0;inw;i+)Wi=0.0;for(k=0;knn;k+)12测量程序设计上机指导书辽宁工程技术大学测绘与地理科学学院测绘工程系Wi+=Bki*Pk*lk;invGJ(Nbb,nw);for(i=0;inw;i+)Xi=0.0;for(k=0;knw;k+)Xi+=Nbbik*Wk;/精度评定函数void CGckzwpc:jdpd()int i,j,k;FILE *fp;fp=fopen(out.txt,w);V

27、PV =0.0;for(i=0;inn;i+)Vi=0.0;for(k=0;knw;k+)Vi+=Bik*Xk;Vi+=-li;VPV+=Vi*Vi*Pi;phi=hi+Vi;/计算验后单位权中误差SIG0=sqrt(VPV/(nn-nw);/计算未知参数的方差for(i=0;inw;i+)for(j=0;jnw;j+)DXij=SIG0*SIG0*Nbbij;double QLL5050,SIGL5050;13测量程序设计上机指导书辽宁工程技术大学测绘与地理科学学院测绘工程系/ 计 算 观 测 值 的 平 差 值 的 中 误 差QLL=B*inv(Nbb)*BTDLL=SIG0*SIG0*Q

28、LLfor(i=0;inn;i+)for(j=0;jnn;j+)QLLij =0.0;SIGLij=0.0;for(k=0;knw;k+)for(int m=0;mnw;m+)QLLij+=Nbbkm*Bik*Bjm;SIGLij=SIG0*sqrt(QLLij);fprintf(fp,*水准网间接平差结果*nn);fprintf(fp, 总点数%3d未知点数%3d测段数%3dn,nz,nw,nn);fprintf(fp,n 验后单位权中误差%6.2lf(mm)nn,SIG0*1000);fprintf(fp,n 起点号终点号观测高差(m) 路线长(km)改正数(mm)平差高差(m)中误差(m

29、m)n);for(i=0;inn;i+)fprintf(fp, %3d%3d%8.4lf%8.4lf%8.2lf%8.4lf%8.2lfn,n1i,n2i,hi,Si,Vi*1000,phi,SIGLii*1000);fprintf(fp,nnfor(i=0;ine;i+)已知点已知高程(m)n);fprintf(fp,%10s%10.4lfn,dmi,Hi);fprintf(fp,n待定点平差高程(m)高程中误差(mm)n);for(i=0;inw;i+)fprintf(fp, %10s%10.4lf%5.2lfn,dmi+ne,Xi,sqrt(DXii)*1000);for(i=0;inw

30、;i+)14测量程序设计上机指导书辽宁工程技术大学测绘与地理科学学院测绘工程系delete Nbbi;delete Nbb;fclose(fp);/菜单驱动打开文件源代码(放在 View 中)void CSurveyView:OnMenuGcwpc()CGckzwpc m_pc;C(TRUE,NULL,*.txt,OFN_HIDEREADONLY|OFN_OVERWRITEPROMPT,水准网平差数据文件名(*.txt)|*.txt|所有文件(*.*)|*.*|);打开平差数据文件;if()=IDOK)CString Str();m_pc.ReadData(StrFile);m_pc.pc()

31、;m_pc.jdpd();AfxMessageBox(平差、精度评定完毕!);/程序运行结果,生成 out.txt 文件如下:*水准网间接平差结果*总点数4未知点数3测段数5验后单位权中误差3.24(mm)起点号终点号观测高差(m) 路线长(km)改正数(mm)平差高差(m)12141233345.83503.78209.64007.38402.27003.50002.70004.00003.00002.500011.889.16-1.96-8.71-7.265.84693.79129.63807.37532.262715测量程序设计上机指导书已知点A已知高程(m)237.4830辽宁工程技术

32、大学测绘与地理科学学院测绘工程系6待定点BCD例子 2(P58)平差高程(m)243.3299247.1210239.7457高程中误差(mm)4.664.214.25in.txt 文件的编排如下:可以使用上面的程序对这个水准网进行平差!4241 A 12.0132 B 10.0133C04D013233444-1.0041.5162.5121.5202.01.02.01.5实验 5 矩阵转置与求逆运算一、实验名称:矩阵转置与求逆运算。二、实验目的和任务:1、掌握矩阵转置的编写;2、会调用矩阵求逆函数;3、设计矩阵运算类。三、实验要求:1、每人独立编写出矩阵转置的程序,并上机调试通过;2、每人

33、独立完成矩阵求逆函数的调用,并调试通过;3、采用 VC+6.0 开发平台,C 或者 C+语言编写程序;4、写出矩阵运算的结果。四、实验内容:i.矩阵的转置示例函数(C 语言)double JZzhuanzhi(double a1515, double b1515, int m,int n)for(int i=0;im;i+)for(int j=0;jn;j+)bji=aij;return 0.0;16测量程序设计上机指导书辽宁工程技术大学测绘与地理科学学院测绘工程系ii.矩阵求逆的示例函数(C 语言)int invGJ(double *a,int n)int *is,*js,i,j,k,l,u

34、,v;double d,p;is=(int *)malloc(n*sizeof(int);js=(int *)malloc(n*sizeof(int);for(k=0;k=n-1;k+)d=0.0;for(i=k;i=n-1;i+)for(j=k;jd)d=p;isk=i;jsk=j;if(d+1.0=1.0)free(is);free(js);printf(error not invn);return (0);if(isk!=k)for(j=0;j=n-1;j+)u=k*n+j;v=isk*n+j;p=akj;akj=aiskj;aiskj=p;if(jsk!=k)for(i=0;i=n-1

35、;i+)u=i*n+k;v=i*n+jsk;p=aik;aik=aijsk;aijsk=p;l=k*n+k;akk=1.0/akk;for(j=0;j=n-1;j+)if(j!=k)u=k*n+j;akj=akj*akk;17测量程序设计上机指导书辽宁工程技术大学测绘与地理科学学院测绘工程系for(i=0;i=n-1;i+)if(i!=k)for(j=0;j=n-1;j+)if(j!=k)u=i*n+j;aij=aij-aik*akj;for(i=0;i=0;k-)if(jsk!=k)for(j=0;j=n-1;j+)u=k*n+j;v=jsk*n+j;p=akj;akj=ajskj;ajsk

36、j=p;if(isk!=k)for(i=0;i=n-1;i+)u=i*n+k;v=i*n+isk;p=aik;aik=aiisk;aiisk=p;free(is);free(js);return (1); int invGJ(double *a,int n)int *is,*js,i,j,k,l,u,v;double d,p;is=(int *)malloc(n*sizeof(int);js=(int *)malloc(n*sizeof(int);for(k=0;k=n-1;k+)d=0.0;for(i=k;i=n-1;i+)for(j=k;jd)d=p;isk=i;jsk=j;if(d+1.

37、0=1.0)free(is);free(js);printf(error not invn);return (0);if(isk!=k)for(j=0;j=n-1;j+)u=k*n+j;v=isk*n+j;p=akj;akj=aiskj;aiskj=p;if(jsk!=k)for(i=0;i=n-1;i+)u=i*n+k;v=i*n+jsk;p=aik;aik=aijsk;aijsk=p;l=k*n+k;akk=1.0/akk;for(j=0;j=n-1;j+)if(j!=k)u=k*n+j;akj=akj*akk;for(i=0;i=n-1;i+)if(i!=k)for(j=0;j=n-1;

38、j+)if(j!=k)u=i*n+j;aij=aij-aik*akj;for(i=0;i=0;k-)19测量程序设计上机指导书辽宁工程技术大学测绘与地理科学学院测绘工程系if(jsk!=k)for(j=0;j=n-1;j+)u=k*n+j;v=jsk*n+j;p=akj;akj=ajskj;ajskj=p;if(isk!=k)for(i=0;i=n-1;i+)u=i*n+k;v=i*n+isk;p=aik;aik=aiisk;aiisk=p;free(is);free(js);return (1);iii.矩阵求逆函数的调用(C 语言,此程序有漏洞,注意发现)#include #include

39、 #include int invGJ(double *a,int n);void main()int i,j;double *AA;/首先对二维指针 Naa 分配内存,采用 C 语言的方法/* AA=(double *)malloc(sizeof(double)*2);for(i=0;i2;i+)AAi=(double *)mallo(sizeof(double)*2);*/首先对二维指针 Naa 分配内存,采用 C+语言的方法AA=new double * 2;for(i=0;i2;i+)AAi=new double2;double BB22=1,2,3,4;20测量程序设计上机指导书辽宁

40、工程技术大学测绘与地理科学学院测绘工程系for(i=0;i2;i+)for(j=0;j2;j+)AAij=BBij;/调用矩阵求逆函数invGJ(AA,2);printf(矩阵 AA 的逆阵如下n);for(i=0;i2;i+)for(j=0;j2;j+)printf(%10.4lf,AAij);printf(n);double CC22;printf(AA 与其逆阵的乘积如下(理论上是单位阵)n);for(i=0;i2;i+)for(j=0;j2;j+)CCij=0.0;for(int k=0;k2;k+)CCij+=AAik*BBkj;printf(%10.4lf,CCij);printf

41、(n);/C 语言释放 AA 二维指针的方法/* for(i=0;i2;i+)free(AAi);free(AA);*/C+语言释放 AA 二维指针的方法for(i=0;i2;i+)delete AAi;21测量程序设计上机指导书辽宁工程技术大学测绘与地理科学学院测绘工程系delete AA;实验 6 附合导线计算一、实验名称:附合导线计算二、实验目的和任务:以坐标方位附合导线为例,掌握导线数据结构设计,掌握近似坐标推算程序编写。三、实验要求:1、每人独立设计导线计算菜单;2、每人独立设计导线数据处理类,编写成员函数;3、采用 VC+6.0 开发平台,C 或者 C+语言编写程序;4、给出简易平

42、差结果。四、实验内容:1、导线数据结构设计,参考水准网平差数据结构的设计方法。2、文本方式导线数据的读入。3、导线点坐标的推算与简易平差计算。4、导线点成果输出到文本文件。五、实验原理:参考导线简易平差知识。测量程序设计实验教学大纲(09 计划)一、课程基本情况总学时:56实验学时:12课程类别:专业考核方式:考试适用对象:测绘工程参考教材:面向对象的测量程序设计二、实验的目的和要求1掌握 VC软件的编程开发环境。2掌握测量典型函数的设计方法。3掌握附合导线和水准网平差程序的设计。三、实验内容序号实验项目名称内容提要实验 每组 实验学时 人数 类型实验要22测量程序设计上机指导书辽宁工程技术大

43、学测绘与地理科学学院测绘工程系四、实验方法和手段实验方法:分组进行实验,完成实验所要求的各项内容。注意事项:1实验前,学生要认真预习,明确实验目的和要求,掌握与实验相关的理论知识,尤其提前写出程序,进行上机调试。2根据项目的要求,结合给定的数据,进行编程实现,并输出结果;3对所做实验进行总结,编写实验报告。五、成绩评定根据实验学时所占该课程总学时的比例计算,从 5%到 75%按 5%递增。23求1VC+编程环境的熟悉VC+软件的基本操作21演示必做2测量典型函数设计理解计算程序设计21验证必做3附合导线计算掌握导线数据处理函数41综合设计必做4水准网间接平差程序设计水准数据处理框架设计41综合设计必做

展开阅读全文
温馨提示:
1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
2: 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
3.本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们

copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!