误差理论与测量平差
课程设计报告
? 课程名称:误差理论与测量平差 ? 课程题目: 平差计算器
一、 实验目的与要求
1) 实验目的:此次的课程设计可以用任何一种计算机语言来编写,这
样给我们每个人很多的选择。同时这样也是为了练习同学们对于一
门语言的掌握和运用,大大的提高了我们的编程能力。同时,通过对测量数据的误差处理,增强学生对《误差理论与测量平差基础》课程的理解,使学生牢固掌握测量数据处理的基本原理和公式,熟悉测量数据处理的基本技能和计算方法。要求学生综合运用测绘知识、测量平差知识、数学知识和计算机知识,设计数学模型和程序算法,编制程序实现测量数据的自动化处理。
2) 实验要求:要求每位同学独立完成给定测量数据处理的数学模型和
算法的设计,编写程序,调测程序,并编写程序设计文档。要求数
学模型和算法正确、程序运行正确、设计文档完备。
二、 课程设计主要内容
课程设计的主要内容主要有:
1. 新建一个基于单文档的MFC应用程序。
这只是基本的框架结构,里面包含了几个已知的类,在这些类的基础上,可以增加对象和变量。
然后是增加一个操作矩阵的类 CMatrix 的实现文件,
Matrix.cpp和Matrix.h文件是从网上下载的,然后添加工程,
word文档 可自由复制编辑
创建了一个类,进行矩阵的计算。通过运算符的重载,可以进行加减乘除计算,还可以进行矩阵的转置和求逆等运算。现将该程序的Matrix.cpp文件附录如下:
// Matrix.cpp
#include \#include \#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) {
word文档 可自由复制编辑
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,存储
word文档 可自由复制编辑