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

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

?? matrix.cpp

?? 一個bp的VC源碼
?? CPP
?? 第 1 頁 / 共 3 頁
字號:
/////////////////////////////////////////////////////////////////////////////
// Matrix.cpp : Implementation of the class Matrix
//
/////////////////////////////////////////////////////////////////////////////

#include "stdafx.h"
#include "Matrix.h"
#include <math.h>
#include <stdlib.h>

#include <conio.h>
#include <stdio.h>

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


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

CMatrix::CMatrix()
{
	m_nRow = 0;
	m_nCol = 0;

	m_pTMatrix.resize (m_nRow);
	for(unsigned int i=0; i < m_nRow; i++)
	{
		for(unsigned int j=0; j < m_nCol; j++)
		{
			m_pTMatrix[i].resize (m_nCol);
			m_pTMatrix[i][j] = (double) 0;
		}
	}
}


CMatrix::~CMatrix()
{	
 
}


CMatrix::CMatrix(unsigned int nRow,unsigned int nCol)
{
	// 動態分配二維數組
	TMatrix tMatrix;
	tMatrix.resize (nRow);

	for(unsigned int i=0; i < nRow; i++)
	{
		for(unsigned int j=0; j < nCol; j++)
		{
	        tMatrix[i].resize(nCol);
			tMatrix[i][j] = (double) 0;
		}
	}

	// 對對象變量賦值
	m_nRow	= nRow;
	m_nCol	= nCol;
	m_pTMatrix = tMatrix;

}


CMatrix::CMatrix(CMatrix& cMatrixB)
{
	// Initialize the variable
	m_nRow = cMatrixB.m_nRow ;
	m_nCol = cMatrixB.m_nCol ;
	m_pTMatrix = cMatrixB.m_pTMatrix ;

	// Copy Data
	for(unsigned int i=0; i< cMatrixB.m_nRow; i++)
	{
		for(unsigned int j=0; j < cMatrixB.m_nCol; j++)
		{
			m_pTMatrix [i][j] = cMatrixB.m_pTMatrix [i][j];
		}
	}
	
}


/////////////////////////////////////////////////////////////////////////////
// CMatrix member functions
//

CMatrix CMatrix::operator +(CMatrix& cMatrixB)
{
	// 要滿足矩陣相加的條件: 行列數目相等!
	if(m_nRow != cMatrixB.m_nRow || m_nCol != cMatrixB.m_nCol )
	{
		::AfxMessageBox (TEXT("執行相加的兩個矩陣維數不相等!"),MB_OK | MB_ICONERROR);
	}

	CMatrix	cMatrix = *this;

	for(unsigned int i=0; i < m_nRow; i++)
	{
		for(unsigned int j=0; j < m_nCol; j++)
		{
			cMatrix.m_pTMatrix [i][j] = m_pTMatrix [i][j] + cMatrixB.m_pTMatrix [i][j];
		}
	}

	return	cMatrix;

}


CMatrix CMatrix::operator -(CMatrix& cMatrixB)
{
	// 要滿足矩陣相加的條件: 行列數數目相等!
	if(m_nRow != cMatrixB.m_nRow || m_nCol != cMatrixB.m_nCol )
	{
		::AfxMessageBox (TEXT("執行相減的兩個矩陣維數不相等!"),MB_OK | MB_ICONERROR);
	}

	CMatrix cMatrix = *this;

	for(unsigned int i=0; i < m_nRow; i++)
	{
		for(unsigned int j=0; j < m_nCol; j++)
		{
			cMatrix.m_pTMatrix [i][j] = m_pTMatrix [i][j] - cMatrixB.m_pTMatrix [i][j];
		}
	}

	return	cMatrix;

}


CMatrix CMatrix::operator *(CMatrix& cMatrixB)
{
	if( m_nCol != cMatrixB.m_nRow )
	{
		::AfxMessageBox (TEXT("執行相乘的兩個矩陣維數不滿足相乘的條件!"),MB_OK | MB_ICONERROR);
	}
	
	CMatrix cResultMatrix(m_nRow,cMatrixB.m_nCol);

	for(unsigned int i=0; i < m_nRow; i++)
	{
		for(unsigned int j=0; j < cMatrixB.m_nCol; j++)
		{
			for(unsigned int m=0; m < m_nCol; m++)
			{
				cResultMatrix.m_pTMatrix [i][j] +=  m_pTMatrix [i][m] * cMatrixB.m_pTMatrix [m][j];
			}
		}
	}

	return cResultMatrix;
}


CMatrix CMatrix::operator * (double nValue)
{
	CMatrix cMatrix = *this;

	for(unsigned int i=0; i < m_nRow; i++)
	{
		for(unsigned int j=0; j < m_nCol; j++)
		{
			cMatrix.m_pTMatrix [i][j] =m_pTMatrix [i][j] * nValue;
		}
	}

	return cMatrix;
}


CMatrix& CMatrix::operator =(CMatrix& cMatrixB)
{
	if( (m_nRow != cMatrixB.m_nRow) || (m_nCol != cMatrixB.m_nCol) )
	{
		::AfxMessageBox(TEXT("等號左右兩邊的矩陣的維數不相等!"),MB_OK | MB_ICONERROR);
		return *this;	// return invalid value
	}	

	// 給變量賦值
	m_nRow = cMatrixB.m_nRow ;
	m_nCol = cMatrixB.m_nCol ;
	m_pTMatrix = cMatrixB.m_pTMatrix ;

	// 賦值操作
	for(unsigned int i=0; i < cMatrixB.m_nRow; i++)
	{
		for(unsigned int j=0; j< cMatrixB.m_nCol; j++)
		{
			m_pTMatrix [i][j] = cMatrixB.m_pTMatrix [i][j];
		}
	}
	
	return *this;
}


CMatrix& CMatrix::operator += (CMatrix& cMatrixB)
{
	if(m_nRow != cMatrixB.m_nRow || m_nCol != cMatrixB.m_nCol )
	{
		//printf("錯誤!執行相加的兩個矩陣維數不相等!\n");
		::AfxMessageBox (TEXT("運算符的兩邊矩陣的維數不相等!"),MB_OK | MB_ICONERROR);
		return *this;	// return invalid value
	}
	
	// 賦值操作
	for(unsigned int i=0; i < cMatrixB.m_nRow; i++)
	{
		for(unsigned int j=0; j< cMatrixB.m_nCol; j++)
		{
			m_pTMatrix [i][j] += cMatrixB.m_pTMatrix [i][j];
		}
	}
	
	return *this;

}


CMatrix CMatrix::Transpose()
{
	CMatrix cMatrix(m_nCol,m_nRow);

	for(unsigned int i=0; i < m_nRow; i++)
	{
		for(unsigned int j=0; j < m_nCol; j++)
		{
			cMatrix.m_pTMatrix [j][i] = m_pTMatrix [i][j];
		}
	}

	return cMatrix;
}

/////////////////////////////////////////////////////////////////////////////
// 將矩陣的所有的元素按列合成一列
//	例如:
//		matrix = [
//			1	2	3
//			4	5	6
//			7	8	9
//				]
//		CMatrix cMatrix = matrix.MergeColumnsToColumnVector();
//		cMatrix = 
//			[	1
//				4	
//				7
//				2
//				5
//				8
//				3
//				6
//				9	]
/////////////////////////////////////////////////////////////////////////////

//DEL CMatrix CMatrix::MergeColumnsToColumnVector()
//DEL {
//DEL 	CMatrix cMatrix(m_nRow * m_nCol,(unsigned int)1);
//DEL 
//DEL 	// 對矩陣賦值
//DEL 	for(unsigned int j=0; j < m_nCol; j++)
//DEL 	{
//DEL 		for(unsigned int i=0; i < m_nRow; i++)
//DEL 		{
//DEL 			cMatrix.m_pTMatrix [i + j * m_nRow][(unsigned int)0] = m_pTMatrix [i][j];
//DEL 		}
//DEL 	}
//DEL 
//DEL 	return cMatrix;
//DEL 
//DEL }

/////////////////////////////////////////////////////////////////////////////
// Get the total value of the matrix
/////////////////////////////////////////////////////////////////////////////

//DEL double CMatrix::GetTotalElementValue()
//DEL {
//DEL 	double	nTotalValue = 0;
//DEL 
//DEL 	for(unsigned int i=0; i < m_nRow; i++)
//DEL 	{
//DEL 		for( unsigned int j=0; j < m_nCol; j++)
//DEL 		{
//DEL 			nTotalValue += m_pTMatrix [i][j];
//DEL 		}
//DEL 	}
//DEL 
//DEL 	return nTotalValue;
//DEL }

/////////////////////////////////////////////////////////////////////////////
// Get System Error
/////////////////////////////////////////////////////////////////////////////

double	CMatrix::GetSystemError() const
{
	double	nSystemError = 0;

	for(unsigned int i=0; i < m_nRow; i++)
	{
		for( unsigned int j=0; j < m_nCol; j++)
		{
			nSystemError += m_pTMatrix [i][j] * m_pTMatrix [i][j];
		}
	}

	return nSystemError;

}

/////////////////////////////////////////////////////////////////////////////
// Make all the matrix elements to be changed into absolute value
/////////////////////////////////////////////////////////////////////////////

//DEL CMatrix CMatrix::AbsoluteValue ()
//DEL {
//DEL 	CMatrix cMatrix = *this;
//DEL 
//DEL 	for(unsigned int i=0; i < m_nRow; i++)
//DEL 	{
//DEL 		for(unsigned int j=0; j < m_nCol; j++)
//DEL 		{
//DEL 			cMatrix.m_pTMatrix [i][j] = fabs( m_pTMatrix [i][j]);
//DEL 
//DEL 		}
//DEL 
//DEL 	}
//DEL 
//DEL 	return cMatrix;
//DEL 
//DEL }


//DEL CMatrix CMatrix::Inverse()
//DEL {
//DEL 	/////////////////////////////////////////////////////////////////////////
//DEL 	// Using Gauss - Jordan Method
//DEL 	// 參考書目: 計算機數值方法 --->施吉林 陳桂枝
//DEL 	/////////////////////////////////////////////////////////////////////////
//DEL 
//DEL 	/////////////////////////////////////////////////////////////////////////
//DEL 	// 判斷是否是可逆陣:
//DEL 	//		可逆陣一定是方陣!!!
//DEL 
//DEL 	if ( m_nRow != m_nCol)
//DEL 	{
//DEL 		//printf("錯誤!矩陣的行列數不相等,是非可逆陣!\n");
//DEL 		::AfxMessageBox (TEXT("矩陣的行列數不相等,是非可逆陣!"),MB_OK | MB_ICONERROR);
//DEL 	}
//DEL 
//DEL 	CMatrix cMatrix = *this;
//DEL 
//DEL 	//***********************************************************************
//DEL 	// 思路:(非常規思維!)
//DEL 	//		動態分配整型數組(2*m_nCol)來存儲每次交換的行坐標的值
//DEL 	//		不論有沒有行交換都記錄在數組中,
//DEL 	//		1.沒進行行交換的兩個數據相等,在SwapMatrixRow()函數中
//DEL 	//		檢測到兩個值相等立即返回,在SwapMatrixCol()函數中也一樣,
//DEL 	//		檢測到兩個值相等立即返回,不占用系統資源;
//DEL 	//		2.不相等的就交換
//DEL 	//***********************************************************************
//DEL     
//DEL 	//	分配內存
//DEL 	int *pIntArray = new int [2*m_nCol];
//DEL 
//DEL 	// nSetp --- 約化步數,按列展開	
//DEL 	for(unsigned int k=0; k < cMatrix.m_nCol; k++)
//DEL 	{
//DEL 		/////////////////////////////////////////////////////////////////////
//DEL 		// 進行行交換 ---> 游戲規則:
//DEL 		// 為保證計算過程的數值穩定性,在第k步約化時,先在{a(ik)}|i=k->n中選按
//DEL 		// 模最大者作為約化主元素,并交換矩陣相應的行
//DEL 
//DEL 		// 標記主元素
//DEL 		double nMaxElement = cMatrix.m_pTMatrix [k][k];
//DEL 		// 標記主元素所在的行數
//DEL 		unsigned int nMainRow = k;
//DEL 
//DEL 		for(unsigned int nCount = k+1; nCount < cMatrix.m_nCol; nCount++)
//DEL 		{
//DEL 			if( fabs(nMaxElement) < fabs(cMatrix.m_pTMatrix [nCount][k]) )
//DEL 			{
//DEL 				nMaxElement = cMatrix.m_pTMatrix [nCount][k];
//DEL 				nMainRow = nCount;
//DEL 			}
//DEL 		}
//DEL 
//DEL 		// 將欲交換的行數存在數組中
//DEL 		pIntArray [2*k] = k;
//DEL 		pIntArray [2*k+1] = nMainRow;
//DEL 	
//DEL 
//DEL 		// 交換行
//DEL 		cMatrix.SwapMatrixRow(k,nMainRow);
//DEL 
//DEL 		//Display();
//DEL 
//DEL 		//	判斷是否是可逆陣
//DEL 		if(cMatrix.m_pTMatrix [k][k] == 0)
//DEL 		{
//DEL 			//printf("錯誤!此矩陣為非可逆陣!\n");
//DEL 			::AfxMessageBox (TEXT("此矩陣為非可逆陣,沒有逆矩陣!"),MB_OK | MB_ICONERROR);
//DEL 		}
//DEL 
//DEL 		cMatrix.m_pTMatrix [k][k] = 1/(cMatrix.m_pTMatrix [k][k]);
//DEL 		
//DEL 
//DEL 		// 算主列
//DEL 		for(unsigned int i=0; i < cMatrix.m_nRow; i++)
//DEL 		{	
//DEL 			if( i != k)
//DEL 				cMatrix.m_pTMatrix [i][k] = -(cMatrix.m_pTMatrix [k][k]) * (cMatrix.m_pTMatrix [i][k]); 
//DEL 			
//DEL 			//int nTempValue = m_pTMatrix [i][k];
//DEL 			
//DEL 		}
//DEL 		
//DEL 		//printf("\n");
//DEL 
//DEL 		// 約化非主行
//DEL 		for(unsigned int m=0; m < cMatrix.m_nRow; m++)
//DEL 		{
//DEL 			if ( m == k)
//DEL 				continue;
//DEL 
//DEL 			for(unsigned int n=0; n < cMatrix.m_nCol; n++)
//DEL 			{
//DEL 				if ( n == k)
//DEL 					continue;
//DEL 
//DEL 				cMatrix.m_pTMatrix [m][n] += cMatrix.m_pTMatrix [m][k] * cMatrix.m_pTMatrix [k][n];
//DEL 
//DEL 				//printf("%10f ",m_pTMatrix [m][n]);
//DEL 
//DEL 			}
//DEL 
//DEL 			//printf("\n");
//DEL 
//DEL 		}
//DEL 
//DEL 		// 算主行
//DEL 		for(unsigned int j=0; j < cMatrix.m_nCol; j++)
//DEL 		{
//DEL 			if( j != k)
//DEL 				cMatrix.m_pTMatrix [k][j] = (cMatrix.m_pTMatrix [k][k]) * (cMatrix.m_pTMatrix [k][j]);
//DEL 
//DEL 		}
//DEL 
//DEL 	}
//DEL 
//DEL 	
//DEL 	/////////////////////////////////////////////////////////////////////////
//DEL 	// 進行列交換 ---> 對交換行后的矩陣進行列交換 ---> 還原矩陣
//DEL 	// 游戲規則:
//DEL 	// 將開始矩陣中進行的行交換 ---> 現用相對應的列交換進行還原,即可得到所求的
//DEL 	// 逆矩陣
//DEL 
//DEL 	for(int i=2*m_nCol-1; i > 0; i--)
//DEL 	{
//DEL 		cMatrix.SwapMatrixCol(pIntArray[i],pIntArray[i-1]);
//DEL 		i--;
//DEL 	}
//DEL 
//DEL 	delete []pIntArray;
//DEL 
//DEL 	return cMatrix;
//DEL 
//DEL }


void CMatrix::SwapMatrixRow(unsigned int nRow1,unsigned int nRow2)
{
	if( nRow1 == nRow2)
		return;

	double *pArray = new double;

	for(unsigned int i=0; i < m_nCol; i++)
	{
		// Swap the datum of the two rows
		pArray[0] = m_pTMatrix [nRow1][i];
		m_pTMatrix [nRow1][i] = m_pTMatrix [nRow2][i];
		m_pTMatrix [nRow2][i] = pArray[0];
	}

	delete pArray;
}


void CMatrix::SwapMatrixCol(unsigned int nCol1,unsigned int nCol2)
{
	if( nCol1 == nCol2)
		return;

	double *pArray = new double;
	for(unsigned int i=0; i < m_nRow; i++)
	{
		// Swap the datum of the two columns
		pArray[0] = m_pTMatrix [i][nCol1];
		m_pTMatrix [i][nCol1] = m_pTMatrix [i][nCol2];
		m_pTMatrix [i][nCol2] = pArray[0];
	}
	
	delete pArray;
}


bool CMatrix::LoadDataFromFile(CString& strFileName)
{
	CStdioFile dataFile;
	LPCTSTR	lpszFileName = "";

	// CString convert to LPCTSTR
	strFileName.TrimLeft ();
	strFileName.TrimRight ();
	//strFileName.Format (lpszFileName);

	lpszFileName = (LPCTSTR)strFileName;

	if(!dataFile.Open (lpszFileName,CFile::modeRead | CFile::typeText))
	{
		::AfxMessageBox (TEXT("文件打開失敗!"),MB_OK | MB_ICONERROR);
		dataFile.Close ();
		return FALSE;
	}

	// 用來存儲提取文本文件中一行的數據
	CString	strData;				 
	// 用來記錄文本文件中一共有多少行數據?
	unsigned int	nRow = 0;		

	/////////////////////////////////////////////////////////////////////////
	// Step 1: 得到文件的行列數目并根據文本文件的行列數目來設置對象(矩陣)的行
	// 列數目
	//

	while(dataFile.ReadString (strData) != FALSE)

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
日本不卡高清视频| 国产精品影视在线| 欧美亚洲国产bt| 中文字幕av不卡| 国产资源在线一区| 日韩免费福利电影在线观看| 日韩精品色哟哟| 欧美精品久久99| 视频一区在线播放| 欧美久久久久久蜜桃| 五月婷婷色综合| 欧美日韩精品欧美日韩精品| 亚洲国产另类精品专区| 欧美日韩另类一区| 天堂久久一区二区三区| 欧美肥大bbwbbw高潮| 日韩精品免费专区| 5858s免费视频成人| 日本在线播放一区二区三区| 日韩一区二区电影网| 乱一区二区av| 精品国产乱码久久久久久免费 | 1000精品久久久久久久久| 懂色av中文一区二区三区| 中文字幕一区二区三区在线观看 | 成人免费av资源| 亚洲视频免费在线观看| 欧美在线视频日韩| 日韩精品一区第一页| 精品久久一区二区三区| 国产精品白丝av| 自拍偷拍亚洲欧美日韩| 欧美亚洲国产一区二区三区| 日本va欧美va瓶| 精品福利av导航| 国产成人超碰人人澡人人澡| 国产精品久久久爽爽爽麻豆色哟哟 | 青青草国产精品亚洲专区无| 精品奇米国产一区二区三区| 国产精品夜夜嗨| 日韩一区欧美一区| 欧美日韩一区在线| 精品一二三四区| 欧美韩国日本综合| 欧日韩精品视频| 日韩高清不卡一区二区三区| 久久人人97超碰com| av毛片久久久久**hd| 亚洲国产成人va在线观看天堂| 69堂成人精品免费视频| 久国产精品韩国三级视频| 中文字幕不卡一区| 欧美日韩亚洲综合一区| 激情久久五月天| 国产精品国产三级国产专播品爱网 | 韩国精品免费视频| 国产精品久久久久久久久快鸭| 欧美性猛交xxxx乱大交退制版| 麻豆91在线观看| 亚洲欧洲国产日韩| 在线播放/欧美激情| 国产iv一区二区三区| 亚洲国产精品一区二区www | 日韩欧美亚洲另类制服综合在线| 国产福利一区二区三区视频| 亚洲精品日日夜夜| 欧美草草影院在线视频| 91亚洲永久精品| 男人的j进女人的j一区| 国产精品短视频| 日韩一区二区免费电影| 不卡的av中国片| 日韩高清在线观看| 中文字幕一区二区三区蜜月| 在线播放视频一区| caoporen国产精品视频| 裸体歌舞表演一区二区| 一区二区三区在线视频观看58| 欧美大片一区二区| 色噜噜狠狠成人中文综合 | 国内精品视频666| 一区二区三区在线不卡| 久久久久久久久久久电影| 在线精品亚洲一区二区不卡| 国产精品888| 日韩中文字幕一区二区三区| 国产精品美日韩| 日韩欧美的一区二区| 在线观看日韩毛片| 懂色av一区二区三区免费观看| 日本成人在线一区| 亚洲欧美一区二区三区国产精品| 久久亚区不卡日本| 91麻豆精品国产91久久久久久久久 | 日本一道高清亚洲日美韩| 亚洲区小说区图片区qvod| 久久久精品免费网站| 欧美一区二区成人6969| 色悠久久久久综合欧美99| 国产精品综合av一区二区国产馆| 五月激情六月综合| 亚洲最大色网站| 国产精品热久久久久夜色精品三区| 91精品婷婷国产综合久久| 91啪亚洲精品| 成人在线视频首页| 国产一区三区三区| 麻豆91在线播放免费| 亚洲成人动漫av| 亚洲精品美国一| 国产精品网友自拍| 国产欧美日韩三级| 久久久久久综合| 日韩欧美一二三| 欧美一级在线观看| 欧美高清视频不卡网| 色欧美乱欧美15图片| 成人av在线资源网站| 国产91富婆露脸刺激对白| 久久草av在线| 久久99精品久久久久婷婷| 日本欧美加勒比视频| 天堂va蜜桃一区二区三区漫画版| 亚洲伊人伊色伊影伊综合网| 自拍偷拍欧美精品| 亚洲视频你懂的| 日韩伦理av电影| 国产精品高潮久久久久无| 国产精品久99| 最新日韩av在线| 国产精品麻豆欧美日韩ww| 国产欧美日韩亚州综合| 国产欧美一区二区在线| 欧美激情一区二区三区四区| 欧美国产一区二区| 中文久久乱码一区二区| 国产精品国产自产拍在线| 自拍偷在线精品自拍偷无码专区| 中文字幕在线不卡| 亚洲色图一区二区| 亚洲综合在线免费观看| 亚洲aaa精品| 日本视频一区二区| 九九精品一区二区| 国产精品一区二区视频| 风流少妇一区二区| 99久久伊人网影院| 色综合久久88色综合天天| 91福利视频在线| 欧美喷潮久久久xxxxx| 欧美一区在线视频| 精品1区2区在线观看| 久久精品免视看| 国产精品视频线看| 亚洲欧美日韩在线不卡| 亚洲午夜av在线| 免费观看成人鲁鲁鲁鲁鲁视频| 麻豆精品在线播放| 国产不卡在线播放| 91丨porny丨国产入口| 欧美亚洲综合网| 日韩一区二区三区在线观看| 26uuu欧美日本| 国产精品视频免费看| 一区二区久久久久久| 日本中文字幕不卡| 国产成人自拍网| 91在线视频播放地址| 欧美三电影在线| 精品国产一区二区三区av性色 | 国产精品美女久久久久久久网站| 亚洲精品久久久蜜桃| 免费观看在线综合色| 国产成人aaa| 欧美性大战久久久久久久| 日韩欧美色综合网站| 欧美国产1区2区| 亚洲国产日韩一区二区| 久久99九九99精品| 色综合久久六月婷婷中文字幕| 91精品欧美福利在线观看| 久久久精品免费观看| 一区二区免费视频| 国内精品视频一区二区三区八戒| 99精品欧美一区二区蜜桃免费| 欧美日韩性生活| 久久精品一区蜜桃臀影院| 亚洲尤物视频在线| 国产一区二区不卡| 欧美日韩你懂得| 国产女人水真多18毛片18精品视频 | 日韩国产高清影视| 99久久婷婷国产综合精品| 91精品国产综合久久香蕉的特点| 日本一区二区成人| 日本欧美加勒比视频| 91麻豆视频网站| 久久这里只有精品首页| 亚洲午夜免费视频| 成人h精品动漫一区二区三区|