好文档就是一把金锄头!
欢迎来到金锄头文库![会员中心]
电子文档交易市场
安卓APP | ios版本
电子文档交易市场
安卓APP | ios版本

测绘程序设计—(vc.net)上机试验报告-平差程序设计.doc

14页
  • 卖家[上传人]:鲁**
  • 文档编号:485416754
  • 上传时间:2023-12-03
  • 文档格式:DOC
  • 文档大小:59KB
  • / 14 举报 版权申诉 马上下载
  • 文本预览
  • 下载提示
  • 常见问题
    • ...wd...?测绘程序设计(VC.net)?上机实验报告〔Visual C++.Net〕班 级: 测绘0901班学 号: 0405090204姓 名:代娅琴2012年4月29日实验八 平差程序设计根基一、 实验目的•稳固过程的定义与调用•稳固类的创立与使用•稳固间接平差模型及平差计算•掌握平差程序设计的 基本技巧与步骤二、 实验内容水准网平差程序设计设计一个水准网平差的程序,要求数据从文件中读取,计算局部与界面无关1. 水准网间接平差模型:2. 计算例如:近似高程计算:3. 水准网平差计算一般步骤(1)读取观测数据和数据;(2)计算未知点高程近似值;(3)列高差观测值误差方程;(4)根据水准路线长度计算高差观测值的权;(5)组成法方程;(6)解法方程,求得未知点高程改正数及平差后高程值;(7)求高差观测值残差及平差后高差观测值;(8)精度评定;(9)输出平差结果4. 水准网高程近似值计算算法5. 输入数据格式例如实验代码:#pragmaonceclass LevelControlPoint{public: LevelControlPoint(void); ~LevelControlPoint(void);public: CString strName;//点名 CString strID;//点号float H;bool flag;//标记是否已经计算出近似高程值,假设计算出那么为,否那么为};class CDhObs{public: CDhObs(void); ~CDhObs(void);public: LevelControlPoint* cpBackObj;//后视点 LevelControlPoint* cpFrontObj;//前视点double ObsValue;//高差值double Dist;//测站的距离};#include"StdAfx.h"#include"LevelControlPoint.h"LevelControlPoint::LevelControlPoint(void){ strName=_T(""); strID=_T(""); H=0; flag=0;}LevelControlPoint::~LevelControlPoint(void){}CDhObs::CDhObs(void){}CDhObs::~CDhObs(void){}#pragmaonce#include"LevelControlPoint.h"#include"Matrix.h"class AdjustLevel{public: AdjustLevel(void); ~AdjustLevel(void);public: LevelControlPoint* m_pKnownPoint;//点数组int m_iKnownPointCount;//点个数 LevelControlPoint* m_pUnknownPoint;//未知点数组int m_iUnknownPointCount;//未知点个数 CDhObs* m_pDhObs;//高差观测值数组int m_iDhObsCount;//高差观测值个数public:void SetKnownPointSize(int size);//创立大小为size的点数组void SetUnkonwnPointSize(int size);//创立大小为size的未知点数组void SetDhObsSize(int size);//创立大小为size的观测值数组bool LoadObsData(const CString& strFile);//读入观测文件 CString* SplitString(CString str, char split, int& iSubStrs);void ApproHeignt(void);//计算近似值private: LevelControlPoint* SearchKnownPointUsingID(CString ID); LevelControlPoint* SearchUnknownPointUsingID(CString ID); LevelControlPoint* SearchPointUsingID(CString ID); CMatrix LevleWeight(void);//计算权矩阵 public:void FormErrorEquation(CMatrix &B, CMatrix &L);//组成误差方程void EquationCompute(CMatrix &x);//计算法方程void Accuracy_Assessment(double &r0,CMatrix &Qxx);//精度评定void CompAdjust(double &r0,CMatrix Qx[]);};#include"StdAfx.h"#include"AdjustLevel.h"#include#include"LevelControlPoint.h"#include"math.h"AdjustLevel::AdjustLevel(void){ m_pKnownPoint=NULL;//点数组 m_iKnownPointCount=0;//点个数 m_pUnknownPoint=NULL;//未知点数组 m_iUnknownPointCount=0;//未知点个数 m_pDhObs=NULL;//高差观测值数组 m_iDhObsCount=0;//高差观测值个数}AdjustLevel::~AdjustLevel(void){if(m_pKnownPoint!=NULL) {delete[] m_pKnownPoint; m_pKnownPoint=NULL; }if(m_pUnknownPoint!=NULL) {delete[] m_pUnknownPoint; m_pUnknownPoint=NULL; }if(m_pDhObs!=NULL) {delete[] m_pDhObs; m_pDhObs=NULL; }}void AdjustLevel::SetKnownPointSize(int size){ m_pKnownPoint=new LevelControlPoint[size];//创立动态指针 m_iKnownPointCount=size;}void AdjustLevel::SetUnkonwnPointSize(int size){ m_pUnknownPoint=new LevelControlPoint[size]; m_iUnknownPointCount=size;}void AdjustLevel::SetDhObsSize(int size){ m_pDhObs=new CDhObs[size]; m_iDhObsCount=size;//高差观测值个数}bool AdjustLevel::LoadObsData(const CString& strFile){ CStdioFile sf;if(!sf.Open(strFile,CFile::modeRead)) returnfalse;//创立并翻开文件对象 CString strLine;bool bEOF=sf.ReadString(strLine);//读取第一行,即点的数目 SetKnownPointSize(_ttoi(strLine));//根据点的数目,创立点数组;int n=0;for(int i=0;i

      点击阅读更多内容
      关于金锄头网 - 版权申诉 - 免责声明 - 诚邀英才 - 联系我们
      手机版 | 川公网安备 51140202000112号 | 经营许可证(蜀ICP备13022795号)
      ©2008-2016 by Sichuan Goldhoe Inc. All Rights Reserved.