文档详情

测绘程序设计—实验八 水准网平差程序设计报告.doc

发布:2017-05-21约1.43万字共18页下载文档
文本预览下载声明
《测绘程序设计(VC.net)》 上机实验报告 (Visual C++.Net) 班 级: 测绘0901班 学 号: 0405090204 姓 名: 代娅琴 2012年4月29日 实验八 平差程序设计基础 实验目的 ? 巩固过程的定义与调用 ? 巩固类的创建与使用 ? 巩固间接平差模型及平差计算 ? 掌握平差程序设计的基本技巧与步骤 实验内容 水准网平差程序设计。设计一个水准网平差的程序,要求数据从文件中读取, 计算部分与界面无关。 水准网间接平差模型: 计算示例: 近似高程计算: 水准网平差计算一般步骤 (1)读取观测数据和已知数据; (2)计算未知点高程近似值; (3)列高差观测值误差方程; (4)根据水准路线长度计算高差观测值的权; (5)组成法方程; (6)解法方程,求得未知点高程改正数及平差后高程值; (7)求高差观测值残差及平差后高差观测值; (8)精度评定; (9)输出平差结果。 水准网高程近似值计算算法 输入数据格式示例 实验代码: #pragma once class 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 #includeLevelControlPoint.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(CMatr
显示全部
相似文档