欢迎来到课桌文档! | 帮助中心 课桌文档-建筑工程资料库
课桌文档
全部分类
  • 党建之窗>
  • 感悟体会>
  • 百家争鸣>
  • 教育整顿>
  • 文笔提升>
  • 热门分类>
  • 计划总结>
  • 致辞演讲>
  • 在线阅读>
  • ImageVerifierCode 换一换
    首页 课桌文档 > 资源分类 > DOCX文档下载  

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

    • 资源ID:1496972       资源大小:123.25KB        全文页数:24页
    • 资源格式: DOCX        下载积分:5金币
    快捷下载 游客一键下载
    会员登录下载
    三方登录下载: 微信开放平台登录 QQ登录  
    下载资源需要5金币
    邮箱/手机:
    温馨提示:
    用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)
    支付方式: 支付宝    微信支付   
    验证码:   换一换

    加入VIP免费专享
     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

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

    测量程序设计上机指导书辽宁工程技术高校测绘与地理科学学院测绘匚程系2011-08-23Ij录VisualC+6.0开发平台简介2MFC概述2试验1VC+编程环境的熟识4试验2测量:典型函数设计6试验3误差椭圆元素计算7试验4水准网间接平差程序设计.9试验5矩阵转世与求逆运算16试验6附合导线”,算22测量程序设计试脸教学大纲(09安排)22VisualC+6.O开发平台简介VisualC+供应了一个支持可视化编程的集成开发环境:VisualStUdi。(乂名DeveloperStudio)oDeveloperStudio是一个通用的应用程序集成开发环境,它不仅支持VisualC+.还支持VisualBasicjVisualJ+,VisualInterDev等Microsoft系列开发工具。Devel。PerStudio包含了一个文本编辑器、资源编辑器、工程编译工具、一个增量连接器、源代码阅读器、集成调试工具,以与一套联机文档。运用DeveloperStudio,可以完成创建、调试、修改应用程序等的各种操作。DeveloperStudio采纳标准的多窗口Windows用户界面,并增加了一些新特性,使得开发环境更易于运用,用户很简洁学会它的运用方法。由JDeveloperStudio是一个可视化的开发工具,在介绍DeveloperStudio的各个组成部分之前,首先r解一下可视化编程的概念.可视化技术是当前发展快速并引人注目的技术之一,它的特点是把原来抽象的数字、表格、功能逻辑等用直观的图形、图象的形式表现出来“可视化编程是它的重要应用之所谓可视化编程,就是指:在软件开发过程中,用直观的具有肯定含义的图标按钮、图形化的对象取代原来手工的抽象的编辑、运行、阅读操作,软件开发过程表现为鼠标点击按钮和施放图形化的对象以与指定对象的属性、行为的过程。这种可视化的编程方法易学易用,而且大大提高了工作效率。VisualC+的集成开发环境DeveloperStudio供应了大量的好用工具以支持可视化编程特性,它们包括:项目工作区、ClassWizard.AppWizard,WizardBar%ComponentGallery等。MFC秘MFC是一个编程框架。MFC(MicrosoftFoundationClass1.ibrary)中的各种类结合起来构成了一个应用程序框架,它的目的就是让程序员在此基础上来建立Windows下的应用程序,这是一种相对SDK来说更为简洁的方法。因为总体上,MEC框架定义了应用程序的轮廓,并供应了用户接口的标准实现方法,程序员所要做的就是通过预定义的接口把详细应用程序特有的东西填入这个轮廓。MicrosoftVisualC+供应了相应的工具来完成这个工作:AppWizard可以用来生成初步的框架文件(代码和资源等);资源编辑器用帮助宜观地设计用户接:ClassWizard用来帮助添加代码到框架文件:最终,编译,则通过类库实现了应用程序特定的逻辑。I封装构成MFC框架的是MFC类库。MFC类库是C+类库。这些类或者封装了Win32应用程序编程接口,或者封装了应用程序的概念,或者封装了O1.E特性,或者封装了ODBC和DAO数据访问的功能,等等。2维承首先,MFC抽象出众多类的共同特性,设计出一些基类作为实现其他类的基础。这些类中,最重要的类是CObject和CCmdTargetoCObject是MFC的根类,绝大多数MFC类是其派生的,包括CCmdTargeteCObject实现了一些重要的特性,包括动态类信息、动态创建、对象序列化、对程序调试的支持,等等。全部从CObjeCt派生的类都将具备或者可以具备CObjeCt所拥有的特性。CCmdTarget通过封装一些屈性和方法,供应了消息处理的架构。MFC中,任何可以处理消息的类都从CCmdTarget派生。针对每种不同的对象,MFC都设计了一组类对这些对象进行封装,每一组类都有个基类,从基类派生出众多更详细的类。这些对象包括以卜种类:窗口对象,基类是CWnd:应用程序对象,基类是CwinThread;文档对象,基类是Cdocument,等等。程序员将结合自己的实际,从适当的MFC类中派生出自己的类,实现特定的功能,达到自己的编程目的。3虚拟函数和动态的束MFC以“C+”为基础,白然支持虚拟函数和动态约束。但是作为一个编程框架,有一个问题必需解决:假如仅仅通过虚拟函数来支持动态约束,必定导致虚拟函数表过于臃肿,消耗内存,效率低下。例如,CWnd封装WindoWS窗口对象时,每条Windows消息对应个成员函数,这些成员函数为派生类所继承。假如这些函数都设计成虚拟函数,由数量太多,实现起来不现实。是,MFC建立了消息映射机制,以一种'富有效率、便于运用的手段解决消息处理函数的动态约束问题,这样,通过虚拟函数和消息映射,MFC类供应了丰富的编程接口。程序员继承基类的同时,把白已实现的虚拟函数和消息处理函数嵌入MFC的编程框架。MFC编程框架将在适当的时候、适当的地方来调用程序的代码。4MFC的宏观框架体系如前所述,MFC实现了对应用程序概念的封装,把类、类的继承、动态约束、类的关系和相互作用等封装起来。这样封装的结果对程序员来说,是套开发模板(或者说模式)。针对不同的应用和目的,程序员采纳不同的模板。例如,SDI应用程序的模板,MDl应用程序的模板,规则D1.1.应用程序的模板,扩展D1.1.应用程序的模板,O1.E/ACTIYEX应用程序的模板,等等.这些模板都采纳了以文档-视为中心的思想,每个模板都包含组特定的类。为了支持对应用程序概念的封装,MFC内部必需作大量的工作。例如,为了实现消息映射机制,MFC编程框架必须要保证首先得到消息,然后按既定的方法进行处理。又如,为了实现对D1.1.编程的支持和多线程编程的支持,MFC内部使用了特殊的处理方法,运用模块状态、线程状态等来管理一些重要信息。虽然,这些内部处理对程序员来说是透亮的,但是,懂得和理解MFC内部机制有助于写出功能敏捷而强大的程序。总之,MFC封装/Win32API,O1.EAPI,ODBCAPI等底层函数的功能,并供应更高一层的接口,简化了Windows编程.同时,MFC支持对底层API的干脆调用。MFC供应了个Windows应用程序开发模式,对程序的限制主要是由MFC框架完成的,而且MFC也完成了大部分的功能,预定义或实现了很多事务和消息处理,等等。框架或者由其本身处理事务,不依靠程序员的代码;或者调用程序员的代码来处理应用程序特定的事务。MEC是C+类库,程序员就是通过运用、继承和扩展适当的类来实现特定的目的。例如,继承时,应用程序特定的事务由程序员的派生类来处理,不感爱好的由基类处理.实现这种功能的基础是C+对继承的支持,对虚拟函数的支持,以与MFC实现的消息映射机制。试验1VC+编程环境的熟识一、试验名称:VC+编程环境的熟见二、试验目的:熟识VC+6.O编程环境与MFC程序框架。三、试验任务:基于单文档、多文档,基于对话框等MFC应用程序框架的流程;MFC生成的数据处理类。四、试验要求:1每人独立完成MFC框架程序的建立;五、试验内容参考:建立一个MFC应用程序框架启动VisualC+6.O主程序如F:点File->new->project,选择MFCAppWizard(exe),工程名字白己输入Adjust,如下:点击OK,出现卜面界面:选择rtSingledocument,点击“Finish”,出现下面界面:三<wFrojcotIvorantionAppWIzard*IMcreatenewkelelonprocctwllthefollowingapcc<11ctic>no:*f>lIcationtypeE<lct.San9lnDacunterntInlerlaceAfapIicaUaratarqHitt<!Win32ClMMCMt«»b«?fc/l<r<l:/VppllCf*tl<:CA<1jntAppIn<1<fit.ha»«1Ad>ftt.crptamm:CMslr>fvr>m*InM*lnrm.hxVMIMnlnrm.rppl)omv*rnt:(miuntl)o11ir»Adu*M)nc.hnnriAriju*l()nr.cpView;Cdjuo<Vk>winAdjMQtViov.honddjuotV1ew.cppff:4tnrcn:InlilrtlUMiIIiArinttalfMte Inltlnl%tntab»rIn11Mef<amr Priatlaumib11llnlI,tpvwHupn>llitvlw 30ConlrolQ U«c«bre<lD1.1.IfnplefncntetionMfC4?.O1.1.| ActtvoXControlncupport0e4>bWd 1.ucmIIxable0。Xtin:中文中ShProjectDlrccf<»ry:匚:VVliSQOK-jjCcrl点击“OK”按钮,出现下面界面:选择面板下面的“Classview”,可以查看MFC自动生成的类,点击“ResourceVieW”,可以增加菜单、对话框等,点击“Fileview”,可以看到MFC生成的每一个类对应的“.h”和“.cpp”文件。试验2测量典型函数设计、试验名称:测量典型函数设计二、试验目的:驾驭常用角弧度互化函数设计与实现。三、试蛉任务:设计数据处理类,编写角弧互化函数,设计函数类型与返回值,设计带参数的函数。四、试验要求:每人独立完成角弧度互化程序编写与调试;五、试验内容参考:1、角度化弧度的例程函数(此代码会有异样):doubleradiotoangle(doublealfa)(doublealfal,alfa2;doublealfa3,alfa4;alfa=alfa*180PI:化为角度值alfal=floor(alfa):/整度alfa2=floor(alfa-alfal)*60);/整分alfa3=(alfaalfal)*60-alfa2)*60;剩余的秒a1fa4=alfal+alfa2l00+a1fa3l0000;return(alfa4);)2、弧度化角度的例程函数:(此代码会有异样)doubleangletoradio(doublealfa)doublealfal,alfa2,alfa3,alfa4;alfal=floor(alfa):整度alfa2=f100r(alfa-floor(alfa)*100);整分a1fa3=(alfa*100-floor(aIfa*100)*100;整秒a1fa4=alfal+alfa260+a1fa33600;return(alfa4180*PI);以上两个程序存在漏洞,须要进一步完善”试验3误差椭HI元素计算一、试脸名称:误差椭圆元素计算。二、试验目的和任务:驾驭误差椭圆和相秒误差椭圆元素的计算公式,并采纳C或者C+语言变成实现。三、试验要求:1每人独立编写出误差椭圆和相对误差椭圆元素的计算程序,并调试通过;2采纳VC+÷6.0开发平台,C或者C+语言编写程序;3写出计算的结果。4本试验属于综合性,设计性试验,对学生的要求比较高,会综合运用矩阵加法,乘法以与转置和求逆的程序。5留意事项:坐标方位角计算时必需考虑X与Y所在的象限。四、试验内容:参考教材测量平差P103-PU2。详细的例子可以参考Plll页的例题,进行程序的调试。(一)误差椭圆元素计算公式:KQXX-QYYf2a1-2OFF-K)妹QXXQXY昕QXXQXY(二)相对误差椭圆元素计算公式:如必X0/1/1QX2X2-20XX2如JAYQY1Y10Y2Y2-2QY1Y2Q1.QQXYl012V2-QXIV2-QX2Y1K(M.lX-Q1.必Y)24处2必Y1QEEbM心*M必'K)QFF.tXQ1.Y1.Y-K)VE'八。QEEFTTQFFQEE-Q1.lXf必KQFF-Q1.必.1五、例子(Plll)在某三角网中插入Pl与P2两个新点。设用间接平差法平差。平差之后这两点之间的协因数阵如下:01020304场304(81<82(8346402030卜10.0010.00020.00100.000560.00240.00060.00060.0021Oool0.00080.00030,00080,0.00030.00240.0005依据以上的公式,分别计算出未知点Pl和P2的误差椭圆元素以与这两点之间的相对误差椭恻元素。试验4水准网间接平差程序设计一、试脸名称:水准网间接平差程序设计二、试验目的:驾驭用间接平差法对随意网形的水准网进行平差的算法设计以与程序编制;并学习采纳读文件处理数据的方法,并设计水准数据处理类。三、试验任务:用C/C+编写水准网间接平弟程序,并调试通过,用实测数据实算分析:同时评定精度。四、试验要求:1个人独立编写程序,原始数据存放于文本文件或者数据库文件中;2程序应当具有通用性,即随意网形都可以平差;3用实测的数据进行计算分析。4评定待定点的高程精度。五、试验内容1数据文件的编制格式总点数未知点数测段数(观测高差的个数)已知点1点名高程已知点2点名高程未知点3点名0未知点4点名0未知点5点名0起点点号起点点号起点点号终点点号终点点号心占占号观测高差路途长度(km)观测高差路途长度(km)观测高差路途长度(km)2平差原理由观测值的起始和终点号或者水准网网形,形成误垄方程的系数矩阵B(也叫设计矩阵),山观测的路途长度形成观测高差的权阵P(观测值O.0002独立,P为对角阵),原理如卜.:Pi-.(C为随意常数)SiVNbb8T*BTxNbb-T-»,Bx-Ipbpi3法方程系数矩阵与闭合差的自动累加由于N和W具有可加性,即每读取一个高差观测值,即可得到一个误差方程的系数向量,然后累加到法方程系数矩阵与闭合差中;当高差观测值读取完毕的时候,法方程系数矩阵与闭合差也累加完毕;此时可用公式干脆计算待定点高程的改正数,加上高程近似值,就得到了高程的平差值。'VTPVn-4精度评定验后单位权中误差:O待定点高程(未知参数)的协因数阵:QK)CNbb-1待定点高程的方差:fX02qxr改正数V的协因数阵:QVVQ-BNbb-BT高差平差值的协因数阵:QI:BNbb-1BT5例子1(P79)(1)in.txt文件4351 237.4832 B0.03C0.04D0.0125.8353.5233.7822.7139.6404.0437.3843.0142.2702.5(2)源程序(部分代码有漏洞)/Gckzwpc.h头文件代码classCGckzwpc(public:CGckzwpcO;virtualCGckzwpc();public:boolReadData(CStringfi1ename);读水准网平差数据文件voidpc();平差函数voidjdpd();精度评定函数iniinvGJ(double*a,intn);求逆函数int文件头信息:总点数,未知点数,己知点数,测nz,nw,ne,nn:段数intnl20,n220;/存放高差起点与终点的点号doubleH50,h50,W20,X20,B5020,V50,VPV;double*Nbb,S50,150,P50,ph50:CStringdm20;限而底点名doubleSIGO,DX2020;):/Gckzwpc.cpp代码boolCGckzwpc:ReadData(CStringfilename)(inti;intMAX1.INE=512;charbff513,chl15;CStdioFilefp;if(!fp.0pcn(fiIcnamc1CFile:ImodeReadCFiIe:typeText,NU1.1.)(AfxGetApp()->m_pMainWnd->MessageBox(”数据文件不存在或数据文件错!”,”进程!*,MBOKMBICONSTOP);_exit(l);returnFA1.SE;)fp.ReadString(buff,MAX1.INE);sscanf(buff,*d%d%(,&nz,&nw,&nn):ne=nznw:intdh;doublegc;for(i=0;i<nz;i+)(fp.ReadString(buff;MAX1.INE);sscanf(buff,*%d%s%lf”,&dh,chl.&gc);dmi=chl;Hi=gc;for(i=0:i<nn:i+)fp.ReadString(buff,MX1.1NE);sscanf(buff,*%d%d%lf%l,&nli,&n2i,&hi,&Si);)fp.CloseO;returnTRIE:voidCGckzwpc:pcO(inti,j,k;/doubleNbb12020;Nbb=newdouble*nw;for(i=0:i<nw;i+)Nbbi=newdoublenw;for(i=0:i<nn;i+)(Pi=0.0;li=0.0;for(j=0;j<nw;J+)Bij=O.O;for(i=0:i<nn;i+)(if(nlfi>ne)Binli-ne-l=-l;if(n2i>ne)Bin2i-ne-l=+l;Pi=lSi;1i=11nlCi-l+hi-Cn2i-l;)for(i=0;i<nw;i+)(for(j=0:j<nw;J+)(Nbbij=0.0;for(k=0;k<nn;k+)Nbbij+=Bki*Bkj*Pk:)for(i=0:i<nw;i+)(Wi=O.O;for(k=0;k<nn;k+)Wi+=Bki*Pk*lk;invGJ(Nbb,nw);for(i=0:i<nw:i+)(Xi=0.0;for(k=0;k<nw;k+)(Xi+=Nbbik*Wk;)精度评定函数voidCGckzwpc:j<ipd0(inti,j,k;FI1.E*fp;fp=fopen("out.txt","w");VPV=0.0;lor(i=0:i<nn:i+)(Vi=0.0;for(k=0;k<nw;k+)(Vi+=Bik*Xk;)Vi+=-li;VPV+=Vi*Vi*Pi;phCi=hi+Vi;)计算验后单位权中误差SIG0=sqrt(VPV(nn-nw);/计算未知参数的方差for(i=0;i<nw:i+)(for(j=0:j<nwj+)(DXij=SIGO*SIGO*Nbbij;)doubleQ1.1.5050,SIG1.5050;计算观测值的平差值的中误差Q1.1.=B*inv(Nbb)*BTD1.1.=SIGO*SIGO*Q1.l.for(i=0;i<nn;i+)(for(j=0:j<nn;j+)(Q1.1.ij=0.0:SIG1.ij=O.O:for(k=0;k<nw;k+)(for(intm-0:m<nw;m+)(Q1.1.ij+=Nbbkm*Bik*Bjm:SIG1.ij=SIGO*sqrt(Q1.l.ij);)Iprinlf(fp,”*水准网间接平差结果*nn");fprintf(fp,”总点数未知点数=%3d测段数=%3dn”,=%3dnz,nw,nn);fprintf(fpn验后单位权中误差=%621f(mm)nnSlGO*1000);fprintf(fpn起终点号观测高差加)路途长(km)改正数表号(mm)平差高差(m)中误差(mm)n");for(i=0;i<nn;i+)(fprintf(fp%3d%3d%8.41f%8.41f%8.21f%8.41f%8.21fn*,nli,112i,hi,Si,Vi*1000,phi,SIG1.ii*1000);)fprintf(fp,n已知点已知高程(m)n*);nfor(i-0;i<ne;i+)(fprintf(fp,*%10%10.41fn*,dmi,Hi);)Sfprintf(fp,"待定点平差高程(m)高程中误差(11n)n");nfor(i=0:i<nw;i+)(fprintf(fp%10s%10.41f%5.21fn*,dmi+ne,Xi,sqrt(DXii)*1000);)for(i=0;i<nw:i+)14deleteNbbi;)deleteNbb:fclose(fp);/7菜单驱动打开文件源代码(放在View中)voidCSurvevView:OnMenuGcwpc()(CGckzwpcm_pc;CFileDialogFiIeDlg(TRIE,NlX1.,"*.txt",OFN_HIDEREDON1.YIOFN_OVERWRITEPROMPT,“水准网平差数据文件名(*.txt)I*.txtI全部文件(*)*.*);FileDlg.m_ofn.IpstrTitle="打开平差数据文件”;if(FileDlg.DoModalO=IDOK)(CStringStrFiIc=FilcDlg.GetPathNamcO;m_pc.ReadData(StrFile);m_pc.pc():m_pc.Jdpd():AfXMCSSagCBox("平差、精度评定完毕!”);)程序运行结果,生理。Ul.IXl文件如下:*水准网间接平差结果*总点数=4未知点数=3测段数=5验后单位权中误差=3.24(mm)起点号终点号观测高差(m)路途长(km)改正数(廊)平差高差125.83503.500011.885.8469233.78202.70009.163.7912139.64004.0000-1.969.6380437.38403.0000-8.717.3753142.27002.5000-7.262.2627(m)已知点已知高程(01)237.4830待定点平差高程(m)高程中误差(mm)B243.32994.66C247.12104.21D239.74574.256例子2(P58)in.txt文件的编排如下:可以运用上面的程序对这个水准网进行平差!4241 A12.0132 B10.0133C04D01 3-1.00-12.0341.5161.O2 42.5122.03 41.5201.5试验5矩阵转量与求逆运算一、试验名称:矩阵转置与求逆运算。二、试验目的和任务:1、驾驭矩阵转置的编写;2、会调用矩阵求逆函数:3、设计矩阵运算类。三、试验要求:1、每人独立编写出矩阵转置的程序,并上机调试通过;2、每人独立完成矩阵求逆函数的调用,并调试通过;3、采纳VC÷+6.0开发平价,C或者C+语言编写程序:4、写出矩阵运算的结果。四、成验内容:1 .矩阵的转置示例函数(C语言)doubleJZzhuanzhi(doublea1515,doubleb1515,intin,intn)for(inti=0;i<m;i+)for(intj=O;j<n:j+)bji=aij;1return0.0;)i矩阵求逆的示例函数(C语言)iiniinvGJ(double*a,intn),(int*is,*js,i,j,k,1,u,v;doubled,p;is=(int*)malloc(n*sizeof(int);js=(int*)malloc(n*sizeof(int);for(k0;k<=n-l;k+)(d=0.0;for(i=k:i<=n-l:i+)for(j=k:j<=n-l:j+)(l=i*n+jjp=fabs(aij);if(p>d)d=p:isk=i;jsk=j:)if(d+l.O=l.O)(free(is)free(js)printf(,errornotinvr);return(0);)if(isk!=k)for(j=0j<=n-l:j+)uk*n+j;v=isk*n+j;p=akjakj=aiskjaiskj=p:)if(jsk!=k)for(i=0;i<=n-l;i+)(u=i*n+kjv=i*n+jsk;p=aik;aik=aijsk;aijsk=p;)l=k*n+k:akk=l.0akk:for(j=0:j<=n-l;j+)if(j!=k)(=k*n+jakj=akj*akk;for(i=0:i<=n-l;i+)if(i!=k)for(j=0;j<=n-l;j+)if(j!=k)(u=i*n+j;aij=aij-aik*akj;for(i=0:i<=n-l:i+)if(i!=k)(u=i*n+kaik=-aik*akk;)for(k=n-l;k>=0:k一)(if(jsk!=k)for(j=0;j<=n-l;j+)(u=k*n+j;v=jsk*n+j;P=akj;akj=ajskjajskj=p;)if(isk!=k)for(i=0;i<=n-l;i+)(u=i*n+k:v=i*n+isk:P=aikaik=aiisk;aiisk=p;)free(is)jfree(js):return(1);intinvGJ(double*a,intn)(int*is,*js,i.j,k,1.,v:doubled,p;is=(int*)nalloc(n*sizeof(int);js=(int*)malloc(n*sizeof(int);for(k=0k<=n-l;k+)(d=0.0;for(i=k:i<=n-l:i+)for(j=k;j<=n-l;j+)(l=i*n+j;p=fabs(aij):if(p>d)d=p;isk=i;jsk=j;)if(d+l.0=1.0)(“free(is);free(js):printf(*errornotinvr);return(0):if(isk!=k)for(j=0:j<=n-l:j+)(u=k*n+j;v=isk*n÷j;p=akjakj=aiskjaiskj=p;if(jsk!三k)for(i=0;i<=n-l;i+)(u=i*n+k;v=i*n+jsk:pai11k;aifkaijskai11jskl=p;)l=k*n+k:akk=l.0akk;for(j=Ojj<=n-lJ+)if(j!=k)u=k*n+jjakj=akj*akk:for(i=0;i<=n-l;i+)if(i!=k)for(j=0;j<=n-l;j+)if(j!=k)(u=i*n+j:aij=aij-aik*akj:)for(i0ji<=n-lu+)if(i!=k)(u=i*n+k;aik>-aik>akk;)for(k=n-l;k>=O:k)if(jsk!=k)for(j=0;j<=n-l;j+)(u=k*n+j;v=jsk*n+j:P=akj:akj=ajskjajskj=p:)if(isk!=k)for(i=0;i<=n-l:i+)u=i*n+k:v=i*n+isk:p=aik;aik=aiisk;aiisk=p:)free(is):free(js);return(1);矩阵求逆函数的调用(C语言,此程序有漏洞,留意发觉)include<sldio.h>include<stdlib.h>Jtinclude<math.h>intinvGJ(double*a,intn);voidmain()(inti,j:double*AA:首先对二维指针Naa安排内存,采纳C语言的方法*=(double*)malloc(sizeof(doble)*2):for(i=0u<2i+÷)(AAi=(double*)malIo(sizeof(double)*2);)*/首先对二维指针Naa安排内存,采纳C+语言的方法AA=newdouble*2:for(i=0:i<2;i+)(AAi=newdouble2;)doubleBB22=1,2,3,4;for(i=0:i<2;i+)(for(j=0;j<2;j+)(AAij=BBij;)调用矩阵求逆函数invGJ(,2):Printfr矩阵AA的逆阵如下n");for(i=0:i<2:i+)(for(j=0:j<2:j+)(printf(*%10.41f*,AAij);printf(*n,);)doubleCC22:Printf("AA与其逆阵的乘积如下(理论上是单位阵)n");for(i=0:i<2;i+)(for(j=0:j<2:j+)CCij=O.O;for(intk=0;k<2;k+)(CCij+=AAik*BBkj;)printf(,%10.41f*,CCij):printf(*n");)/C语言释放A二维指针的方法*for(i=0:i<2;i+)(free(AAfil);)free(.,):*/C+语言释放AA二维指针的方法for(i=0:i<2;i+)deleteAi;)deleteAA;试验6附合导线计算一、试验名称:附合导线计算二、试验目的和任务:以坐标方位附合导线为例,驾驭导线数据结构设计,驾驭近似坐标推算程序编写。三、试验要求:1、每人独立设计导线计尊菜单:2、每人独立设计导线数据处理类,编写成员函数:3、采纳VC÷+6.O开发平台,C或者C+语言编写程序;4、给出简易平差结果。四、试验内容:1、导线数据结构设计,参考水准网平差数据结构的设计方法。2、文本方式导线数据的读入。3,导线点坐标的推算与简易平差计算。4、导线点成果输出到文本文件。五、试验原理:参考导线简易平差学问。测量程序设计试酶教学大纲(09安排)一、课程基本状况总学时:56试验学时:12课程类别:专业考核方式:考试适用对象:测绘工程参考教材:面对对象的测量程序设计二、试验的目的和要求1 .驾驭VC+软件的编程开发环境。2 .驾驭测量典型函数的设计方法。3 .驾X附合导线和水准网平差程序的设计。三、试验内容序号试验项目名称内容提要试验学时每组人数式验及型求IVC+编程环境的熟悉VC+软件的基本操作1演示必做2测量典型函数设计理解计算程序设计I验证必做3附合导线计算驾驭导线数据处理函数41综合设计必做4水准网间接平差程序设计水准数据处理框架设计4i综合设计必做四、试验方法和手段试验方法:分组进行试验,完成试验所要求的各项内容。留意事项:1 .试验前,学生要仔细预习,明确试验目的和要求,驾驭与试验相关的理论学问

    注意事项

    本文(《测量程序设计》上机指导书要点.docx)为本站会员(夺命阿水)主动上传,课桌文档仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知课桌文档(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    备案号:宁ICP备20000045号-1

    经营许可证:宁B2-20210002

    宁公网安备 64010402000986号

    课桌文档
    收起
    展开