误差理论与测量平差课程设计实验报告

  • 格式:doc
  • 大小:1.23 MB
  • 文档页数:31

下载文档原格式

  / 31
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

误差理论与测量平差课程设计报告

●课程名称:误差理论与测量平差●课程题目:平差计算器

一、实验目的与要求

1)实验目的:此次的课程设计可以用任何一种计算机语言来编写,这

样给我们每个人很多的选择。同时这样也是为了练习同学们对于一

门语言的掌握和运用,大大的提高了我们的编程能力。同时,通过

对测量数据的误差处理,增强学生对《误差理论与测量平差基础》

课程的理解,使学生牢固掌握测量数据处理的基本原理和公式,熟

悉测量数据处理的基本技能和计算方法。要求学生综合运用测绘知

识、测量平差知识、数学知识和计算机知识,设计数学模型和程序

算法,编制程序实现测量数据的自动化处理。

2)实验要求:要求每位同学独立完成给定测量数据处理的数学模型和

算法的设计,编写程序,调测程序,并编写程序设计文档。要求数

学模型和算法正确、程序运行正确、设计文档完备。

二、课程设计主要内容

课程设计的主要内容主要有:

1.新建一个基于单文档的MFC应用程序。

这只是基本的框架结构,里面包含了几个已知的类,在这些类的基础上,可以增加对象和变量。

然后是增加一个操作矩阵的类 CMatrix 的实现文件,Matrix.cpp和Matrix.h文件是从网上下载的,然后添加工程,

创建了一个类,进行矩阵的计算。通过运算符的重载,可以进行加减乘除计算,还可以进行矩阵的转置和求逆等运算。现将该程序的Matrix.cpp文件附录如下:

// Matrix.cpp

#include "StdAfx.h"

#include "Matrix.h"

#ifdef _DEBUG

#undef THIS_FILE

static char THIS_FILE[]=__FILE__;

#define new DEBUG_NEW

#endif

// Construction/Destruction

// 基本构造函数

CMatrix::CMatrix()

{

m_nNumColumns = 1;

m_nNumRows = 1;

m_pData = NULL;

BOOL bSuccess = Init(m_nNumRows, m_nNumColumns);

ASSERT(bSuccess);

}

// 指定行列构造函数

// 参数:

// 1. int nRows - 指定的矩阵行数

// 2. int nCols - 指定的矩阵列数

CMatrix::CMatrix(int nRows, int nCols)

{

m_nNumRows = nRows;

m_nNumColumns = nCols;

m_pData = NULL;

BOOL bSuccess = Init(m_nNumRows, m_nNumColumns);

ASSERT(bSuccess);

}

// 初始化函数

// 参数:

// 1. int nRows - 指定的矩阵行数

// 2. int nCols - 指定的矩阵列数

//

// 返回值:BOOL 型,初始化是否成功

BOOL CMatrix::Init(int nRows, int nCols)

{

if (m_pData)

{

delete[] m_pData;

m_pData = NULL;

}

m_nNumRows = nRows;

m_nNumColumns = nCols;

int nSize = nCols*nRows;

if (nSize < 0)

return FALSE;

// 分配内存

m_pData = new double[nSize];

if (m_pData == NULL)

return FALSE; // 内存分配失败if (IsBadReadPtr(m_pData, sizeof(double) * nSize)) return FALSE;

// 将各元素值置0

memset(m_pData, 0, sizeof(double) * nSize);

return TRUE;

}

// 指定值构造函数

// 参数:

// 1. int nRows - 指定的矩阵行数

// 2. int nCols - 指定的矩阵列数

// 3. double value[] - 一维数组,长度为nRows*nCols,存储矩阵各元素的值

CMatrix::CMatrix(int nRows, int nCols, double

value[])

{

m_nNumRows = nRows;

m_nNumColumns = nCols;

m_pData = NULL;

BOOL bSuccess = Init(m_nNumRows, m_nNumColumns);

ASSERT(bSuccess);

SetData(value);

}

// 设置矩阵各元素的值

// 参数:

// 1. double value[] - 一维数组,长度为

m_nNumColumns*m_nNumRows,存储