亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? wzjarray.cpp

?? 在工程交通行業如測繪部門經常用到角度單位的轉換
?? CPP
?? 第 1 頁 / 共 2 頁
字號:
// WzjArray.cpp: implementation of the CWzjArray class.
//
//////////////////////////////////////////////////////////////////////

#include "stdafx.h"
#include "WzjArray.h"
#include "math.h"

#ifdef _DEBUG
#undef THIS_FILE
static char THIS_FILE[]=__FILE__;
#define new DEBUG_NEW
#endif

//////////////////////////////////////////////////////////////////////
// Construction/Destruction
//////////////////////////////////////////////////////////////////////

//無參構造 
CWzjArray::CWzjArray()
{
	m_szUnitData = NULL;
	m_dUnitData = NULL;
	m_nRow = m_nColumn = 0;
}

//用字符串構造矩陣對象,獲取每一個值放到字符串數組中
CWzjArray::CWzjArray(CString str, CString szInterStr /*= ","*/, BOOL bAutoDel /*=FALSE*/)
{
	m_szUnitData = NULL;
	m_dUnitData = NULL;
	SetArrayData(str, szInterStr, bAutoDel);	
}

//用二維指針(數組)構造矩陣對象
CWzjArray::CWzjArray(double **pdArrayData,int nRow,int nCol, BOOL bAutoDel /*= FALSE*/)
{
	m_szUnitData = NULL;
	m_dUnitData = NULL;
	SetArrayData(pdArrayData, nRow, nCol, bAutoDel);
}

CWzjArray::~CWzjArray()
{
	if (TRUE == m_bAutoDelete)
	{
		if (m_szUnitData)
		{
			Delete2Array(m_szUnitData, m_nRow);
		}
		if (m_dUnitData)
		{
			Delete2Array(m_dUnitData, m_nRow);
		}
	}	
}

//獲得整體字符串數據
CString CWzjArray::GetTotalArrayStr() const
{
	return m_WzjArrayData;
}

//用字符串設置距陣對象
void CWzjArray::SetArrayData(CString strSource, CString szInterStr /*=" ,"*/, BOOL bAutoDel /*=FALSE*/)
{
	m_WzjArrayData = strSource;
	m_szInterStr = szInterStr;
	GetUnitStr();	
	m_bAutoDelete = bAutoDel;
}

//用指針數組設置距陣對象
void CWzjArray::SetArrayData(double **pdArrayData, int nRow, int nCol, BOOL bAutoDel /*=TRUE*/)
{
	New2Array(m_dUnitData,nRow,nCol);	
	m_dUnitData = pdArrayData;
	m_nRow = nRow;
	m_nColumn = nCol;
	m_bAutoDelete = bAutoDel;
}

//字符串時獲得行
int CWzjArray::GetRow() const
{
	CString strArray = m_WzjArrayData;
	strArray.TrimLeft();
	strArray.TrimRight();
	int nOneRowStrCount = 0;
	int row = 0;
	nOneRowStrCount = strArray.Find('\r\n');
	if (nOneRowStrCount == -1)
	{
		row = 1;
	}
	else
	{
		while (nOneRowStrCount!=-1)
		{
			row++;
			strArray=strArray.Right(strArray.GetLength() - nOneRowStrCount);
			strArray.TrimLeft();
			nOneRowStrCount = strArray.Find('\r\n');//獲得一行的個數		
		}
		row++;
	}
	return row;
}

//字符串時獲得列
int CWzjArray::GetColumn() const
{
	CString strArray = m_WzjArrayData;
	int nOnceStrCount = 0;
	int column = 0;
    int nOneRowStrCount = 0;

	nOneRowStrCount=strArray.Find('\r\n');
	if (nOneRowStrCount != -1)
		strArray = strArray.Left(nOneRowStrCount);
	strArray.TrimLeft();
	strArray.TrimRight();
	nOnceStrCount=strArray.Find(m_szInterStr);
	if(nOnceStrCount==-1)
	{
		column=1;
	}
	else
	{
		while(nOnceStrCount!=-1)   //比較用m_szInterStr和"\r\n"得到的字符個數
		{
			column++;
			strArray = strArray.Right(strArray.GetLength()-(nOnceStrCount+1));
			nOnceStrCount=strArray.Find(m_szInterStr);// 逐個地提取m_szInterStr號,看包含幾個數
		}
		column++;
	}
	return column;
}

//字符串設置數組自動調用,獲取每一個單元數據和行,列數值
void CWzjArray::GetUnitStr() 
{
	CString	strArray = m_WzjArrayData;
	m_nRow = GetRow();
	m_nColumn = GetColumn();
	int r = m_nRow;
	int c = m_nColumn;
	int i,j;
	int nOnceStrCount=0;
//根據得到的維數定義二維數組來存放每一個數據
	New2Array(m_szUnitData, r, c);
//得到每一個數據
	for (i=0; i<r-1; i++)//前r-1行的數據
	{
		for (j=0; j<c-1; j++) //前c-1列數據提取的時候是","前的數據
		{
			nOnceStrCount = strArray.Find(m_szInterStr);////////////
			m_szUnitData[i][j] = strArray.Left(nOnceStrCount);
			m_szUnitData[i][j].TrimLeft();
			m_szUnitData[i][j].TrimRight();
			strArray = strArray.Right(strArray.GetLength()-(nOnceStrCount+1));
		}
		nOnceStrCount = strArray.Find('\r\n'); //每一行最后一個數據是"\r\n"之前的數據
		m_szUnitData[i][c-1] = strArray.Left(nOnceStrCount);
		m_szUnitData[i][c-1].TrimLeft();
		m_szUnitData[i][c-1].TrimRight();
		strArray = strArray.Right(strArray.GetLength() - nOnceStrCount);		
		strArray.TrimLeft();//去掉提取數據后最前面的回車符
	}
//提取最后一行數據
	for (j=0; j < c-1; j++)//
	{
		nOnceStrCount = strArray.Find(m_szInterStr);
		m_szUnitData[r-1][j]= strArray.Left(nOnceStrCount);
		m_szUnitData[r-1][j].TrimLeft();
		m_szUnitData[r-1][j].TrimRight();
		strArray = strArray.Right(strArray.GetLength()-(nOnceStrCount+1));
	}
	strArray.TrimRight();//如果有回車符,清除
	m_szUnitData[r-1][c-1] = strArray;
	m_szUnitData[r-1][c-1].TrimLeft();
	m_szUnitData[r-1][c-1].TrimRight();		
}

//兩個矩陣相加
CWzjArray CWzjArray::operator + (CWzjArray arr2)
{
	double** dArray;
	New2Array(dArray, m_nRow, m_nColumn);
	CWzjArray arr(dArray, m_nRow, m_nColumn);
	arr.Reset();
	if((m_nRow != arr2.m_nRow) || (m_nColumn != arr2.m_nColumn))
	{
		AfxMessageBox("兩個相加的矩陣行或列不一致,將返回一個個元素為0的矩陣");
		return arr; 
	}
	for (int i = 0; i < m_nRow; i++)
	{
		for (int j = 0; j < m_nColumn; j++)
		{
			arr.m_dUnitData[i][j] = m_dUnitData[i][j] + arr2.m_dUnitData[i][j];
		}
	}
	return arr;	
}

//兩個矩陣相加
CWzjArray CWzjArray::operator - (CWzjArray arr2)
{
	double** dArray;
	New2Array(dArray, m_nRow, m_nColumn);
	CWzjArray arr(dArray, m_nRow, m_nColumn);
	if((m_nRow != arr2.m_nRow) || (m_nColumn != arr2.m_nColumn))
	{
		AfxMessageBox("兩個相減的矩陣行或列不一致,將返回一個個元素為0的矩陣");
		return arr; 
	}
	for (int i = 0; i < m_nRow; i++)
	{
		for (int j = 0; j < m_nColumn; j++)
		{
			arr.m_dUnitData[i][j] = m_dUnitData[i][j] - arr2.m_dUnitData[i][j];
		}
	}
	return arr;	
}

//距陣乘法
CWzjArray CWzjArray::operator * (CWzjArray array2)
{
	double **dArray; 
	New2Array(dArray, m_nRow, array2.m_nColumn);
	CWzjArray arr(dArray, m_nRow, array2.m_nColumn);
	arr.Reset();
	if (m_nColumn != array2.m_nRow)
	{
		AfxMessageBox("兩個相乘的矩陣左矩陣列和右矩陣的行不一致,將返回一個個元素為0的元素");
		return arr;
	}
	int lrow = m_nRow;//左邊距陣的行
	int column = m_nColumn;//同時也是右邊距陣的行
	int rcolumn = array2.m_nColumn;
	int lr,theSame,rc;
	double fSum,fTemp;
	// 返回CWzjArray數據 的成員變量
	for (lr=0; lr < lrow; lr++)
	{
		for (rc=0; rc<rcolumn; rc++)
		{
			fSum=0.0;
			for (theSame = 0; theSame < column; theSame++)
			{
				fTemp = m_dUnitData[lr][theSame] * array2.m_dUnitData[theSame][rc];
				fSum += fTemp;
			}
			arr.m_dUnitData[lr][rc]=fSum;	
		}		
	}
	return arr;
}


//矩陣和一個數相加
CWzjArray CWzjArray::operator + (double dAdd)
{
	double** dArray;
	New2Array(dArray, m_nRow, m_nColumn);
	for (int i = 0; i < m_nRow; i++)
	{
		for (int j = 0; j < m_nColumn; j++)
		{
			dArray[i][j] = m_dUnitData[i][j] + dAdd;
		}
	}
	return CWzjArray(dArray, m_nRow, m_nColumn);
}


//矩陣和一個數相減
CWzjArray CWzjArray::operator - (double dSub)
{
	double** dArray;
	New2Array(dArray, m_nRow, m_nColumn);
	for (int i = 0; i < m_nRow; i++)
	{
		for (int j = 0; j < m_nColumn; j++)
		{
			dArray[i][j] = m_dUnitData[i][j] - dSub;
		}
	}
	return CWzjArray(dArray, m_nRow, m_nColumn);
}

//矩陣和一個數相乘
CWzjArray CWzjArray::operator *(double dTimes)
{
	double** dArray;
	New2Array(dArray, m_nRow, m_nColumn);
	for (int i = 0; i < m_nRow; i++)
	{
		for (int j = 0; j < m_nColumn; j++)
		{
			dArray[i][j] = m_dUnitData[i][j] * dTimes;
		}
	}
	return CWzjArray(dArray, m_nRow, m_nColumn);
}

//矩陣除以一個數
CWzjArray CWzjArray::operator /(double dDiv)
{
	
	double** dArray;
	New2Array(dArray, m_nRow, m_nColumn);
	CWzjArray arr(dArray, m_nRow, m_nColumn);
	arr.Reset();
	if (fabs(dDiv) < 1e-8)
	{
		AfxMessageBox("矩陣除以0無意義,即將返回一個所有元素為0的矩陣");
		return arr;
	}
	for (int i = 0; i < m_nRow; i++)
	{
		for (int j = 0; j < m_nColumn; j++)
		{			
			arr.m_dUnitData[i][j] = m_dUnitData[i][j] / dDiv;
		}
	}
	return arr;
}

//一個數減去矩陣
CWzjArray CWzjArray::Sub(double dBySub)
{
	double** dArray;
	New2Array(dArray, m_nRow, m_nColumn);
	CWzjArray arr(dArray, m_nRow, m_nColumn);
	arr.Reset();
	for (int i = 0; i < m_nRow; i++)
	{
		for (int j = 0; j < m_nColumn; j++)
		{			
			arr.m_dUnitData[i][j] = dBySub - m_dUnitData[i][j];
		}
	}
	return arr;
}


//一個數除以矩陣
CWzjArray CWzjArray::Divide(double dByDiv)
{
	double** dArray;
	New2Array(dArray, m_nRow, m_nColumn);
	CWzjArray arr(dArray, m_nRow, m_nColumn);
	arr.Reset();
	for (int i = 0; i < m_nRow; i++)
	{
		for (int j = 0; j < m_nColumn; j++)
		{
			if (fabs(m_dUnitData[i][j]) < 1e-8)
			{
				AfxMessageBox("一個數除以了矩陣一個為0的元素,無意義");
				return arr;
			}
			arr.m_dUnitData[i][j] = dByDiv / m_dUnitData[i][j];
		}
	}
	return arr;
}

//矩陣乘方或開放運算
CWzjArray CWzjArray::Pow(double dPow)
{
	double** dArray;

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
午夜一区二区三区视频| 国产酒店精品激情| 欧美亚洲一区二区在线观看| 中文字幕在线播放不卡一区| 国产成人午夜高潮毛片| 国产人成亚洲第一网站在线播放 | 成人国产在线观看| 欧美韩国日本综合| 成人激情午夜影院| 国产精品二区一区二区aⅴ污介绍| 成人免费va视频| 国产精品久久久久毛片软件| 99精品视频在线观看免费| 亚洲男人的天堂在线观看| 91亚洲午夜精品久久久久久| 亚洲男人天堂一区| 欧美性色综合网| 日韩成人一区二区| 久久一区二区三区四区| 国产成人午夜电影网| 国产精品美女一区二区在线观看| 岛国一区二区在线观看| 国产精品久久久久影院色老大| 成人精品小蝌蚪| 亚洲三级久久久| 欧美日韩在线不卡| 麻豆成人在线观看| 久久亚洲欧美国产精品乐播| fc2成人免费人成在线观看播放| 综合激情成人伊人| 欧美揉bbbbb揉bbbbb| 日本aⅴ免费视频一区二区三区| 欧美大片一区二区| 成人激情小说乱人伦| 一区二区三区四区精品在线视频| 欧美美女喷水视频| 精品在线你懂的| 国产精品久久久久久久久搜平片 | 看电视剧不卡顿的网站| 久久蜜桃香蕉精品一区二区三区| 成人av手机在线观看| 一区二区三区 在线观看视频| 6080午夜不卡| 国产成人在线色| 一区二区三区国产豹纹内裤在线| 日韩一区二区在线观看视频| 国产成人免费在线| 亚洲国产精品久久不卡毛片| 精品91自产拍在线观看一区| 99久久精品一区| 日本欧美肥老太交大片| 国产精品热久久久久夜色精品三区| 91精品1区2区| 精品亚洲成a人| 中文字幕在线不卡视频| 7777精品伊人久久久大香线蕉完整版 | 国产91丝袜在线观看| 亚洲国产美国国产综合一区二区| 精品国产一区a| 91麻豆免费看片| 捆绑变态av一区二区三区| 自拍偷拍国产精品| 日韩一区二区麻豆国产| 菠萝蜜视频在线观看一区| 肉色丝袜一区二区| 国产精品免费av| 欧美一区二区福利视频| av一区二区三区| 三级影片在线观看欧美日韩一区二区| 国产三级一区二区| 9191久久久久久久久久久| 成人app网站| 麻豆精品在线播放| 亚洲一区二区精品视频| 日本一区二区免费在线 | 色婷婷亚洲精品| 狠狠色2019综合网| 同产精品九九九| 国产精品九色蝌蚪自拍| 精品日韩欧美一区二区| 欧美日韩国产小视频| 成人免费毛片a| 久久精品国产亚洲aⅴ| 洋洋av久久久久久久一区| 久久久久久久综合日本| 欧美一级久久久久久久大片| 在线区一区二视频| 成人免费毛片片v| 狠狠v欧美v日韩v亚洲ⅴ| 亚洲成人综合网站| 综合欧美一区二区三区| 国产偷v国产偷v亚洲高清| 日韩三级在线免费观看| 欧美日韩国产大片| 色综合久久99| 成人黄色一级视频| 国产精品一色哟哟哟| 美女网站色91| 日韩激情视频网站| 亚洲国产一区在线观看| 亚洲欧美另类久久久精品2019| 国产亚洲污的网站| 精品久久免费看| 欧美日韩国产高清一区二区 | 国产亚洲欧美在线| 日韩亚洲欧美一区二区三区| 欧美色图一区二区三区| 色欧美日韩亚洲| 97精品电影院| 97精品国产97久久久久久久久久久久 | 日韩专区中文字幕一区二区| 亚洲一区二区三区四区不卡| 亚洲精品水蜜桃| 亚洲欧美另类在线| 亚洲免费大片在线观看| 亚洲欧洲日产国产综合网| 欧美国产亚洲另类动漫| 欧美国产日韩一二三区| 亚洲国产成人午夜在线一区| 欧美精品一区二区三区很污很色的 | 91色视频在线| 99精品欧美一区二区三区小说 | 中文无字幕一区二区三区| 久久久久久夜精品精品免费| 久久久亚洲综合| 色国产综合视频| 欧美影视一区在线| 欧美日韩中文字幕精品| 欧美色区777第一页| 欧美久久高跟鞋激| 欧美一区三区四区| 日韩一区二区在线观看| 精品日韩成人av| 国产午夜亚洲精品羞羞网站| 国产女人aaa级久久久级| 日本一二三不卡| 亚洲欧美日韩久久| 亚洲国产日韩在线一区模特| 午夜欧美视频在线观看| 琪琪久久久久日韩精品| 国产一区二区在线看| 国产成人啪免费观看软件| av成人免费在线| 欧美午夜精品理论片a级按摩| 欧美视频一二三区| 日韩精品中文字幕一区二区三区| 久久久亚洲午夜电影| 国产精品久久久久影院老司| 一区二区三区精品视频在线| 亚洲成人一区二区| 久久99精品国产.久久久久| 国产精品一区二区在线观看不卡| 不卡影院免费观看| 精品国产成人在线影院| 国产一区二区三区| 粉嫩嫩av羞羞动漫久久久| 99re热视频精品| 欧美性淫爽ww久久久久无| 4438x亚洲最大成人网| 久久久久久免费毛片精品| 一色屋精品亚洲香蕉网站| 亚洲综合一区二区三区| 美日韩一区二区| 成人一级片网址| 欧美性受xxxx黑人xyx性爽| 欧美电影免费观看高清完整版在 | 久久精品亚洲麻豆av一区二区| 亚洲国产成人午夜在线一区| 亚洲最大成人综合| 美腿丝袜一区二区三区| 成人教育av在线| 欧美美女激情18p| 国产亚洲一区二区三区四区| 亚洲精品高清在线| 久久99精品国产.久久久久 | kk眼镜猥琐国模调教系列一区二区| 欧美视频日韩视频| 久久久精品天堂| 亚洲一区二区三区视频在线播放| 国内外成人在线视频| 91黄视频在线观看| 精品国产成人系列| 悠悠色在线精品| 国产一区二区毛片| 欧美午夜精品久久久久久孕妇 | 欧美tickling挠脚心丨vk| 在线观看免费亚洲| 色偷偷成人一区二区三区91 | 欧美图区在线视频| 国产亚洲人成网站| 香蕉乱码成人久久天堂爱免费| 国产在线不卡一区| 欧美亚洲精品一区| 欧美激情在线一区二区| 午夜精品久久久久久久蜜桃app| 成人爽a毛片一区二区免费| 欧美久久久久久久久| 亚洲欧洲av一区二区三区久久| 免费精品99久久国产综合精品| 91蝌蚪porny九色|