
测绘程序设计—实验八-水准网平差程序设计报告.docx
18页《测绘程序设计(VC.net)》上机试验报告(Visual C++.Net)班 级: 测绘0901班 学 号: 0405090204 姓 名: 代娅琴 2012年4月29日试验八 平差程序设计基础一、 试验目的• 巩固过程的定义与调用• 巩固类的创建与运用• 巩固间接平差模型及平差计算• 驾驭平差程序设计的基本技巧与步骤二、 试验内容水准网平差程序设计设计一个水准网平差的程序,要求数据从文件中读取,计算部分与界面无关1. 水准网间接平差模型:2. 计算示例:近似高程计算:3. 水准网平差计算一般步骤(1)读取观测数据和已知数据;(2)计算未知点高程近似值;(3)列高差观测值误差方程;(4)依据水准路途长度计算高差观测值的权;(5)组成法方程;(6)解法方程,求得未知点高程改正数及平差后高程值;(7)求高差观测值残差及平差后高差观测值;(8)精度评定;(9)输出平差结果4. 水准网高程近似值计算算法 5. 输入数据格式示例试验代码:#pragma onceclass 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){}#pragma once#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
