误差理论与测量平差课程设计实验报告
- 格式:doc
- 大小:1.23 MB
- 文档页数:31
误差理论与测量平差课程设计报告
●课程名称:误差理论与测量平差●课程题目:平差计算器
一、实验目的与要求
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,存储