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

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

?? clientexamview.cpp

?? 基于組件的考試系統(tǒng),基于組件(構(gòu)件)的分布式應用系統(tǒng)的研究與開發(fā)是國內(nèi)軟件未來開發(fā)方向
?? CPP
字號:
// ClientExamView.cpp : implementation of the CClientExamView class
//

#include "stdafx.h"
#include "ClientExam.h"

#include "ClientExamDoc.h"
#include "ClientExamView.h"

#include "Login.h"

#include "Exam.h"
#include "QuestionInfo.h"
//#include "UserInfo.h"

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

/////////////////////////////////////////////////////////////////////////////
// CClientExamView

IMPLEMENT_DYNCREATE(CClientExamView, CFormView)

BEGIN_MESSAGE_MAP(CClientExamView, CFormView)
	//{{AFX_MSG_MAP(CClientExamView)
	ON_BN_CLICKED(IDC_NEXT, OnNext)
	ON_BN_CLICKED(IDC_FINISH, OnFinish)
	ON_BN_CLICKED(IDC_PRIOR, OnPrior)
	ON_COMMAND(ID_LOGIN, OnLogin)
	ON_BN_CLICKED(IDC_RADIO1, OnRadio1)
	ON_BN_CLICKED(IDC_RADIO2, OnRadio2)
	ON_BN_CLICKED(IDC_RADIO3, OnRadio3)
	ON_BN_CLICKED(IDC_RADIO4, OnRadio4)
	//}}AFX_MSG_MAP
END_MESSAGE_MAP()

/////////////////////////////////////////////////////////////////////////////
// CClientExamView construction/destruction

CClientExamView::CClientExamView()
	: CFormView(CClientExamView::IDD)
{
	//{{AFX_DATA_INIT(CClientExamView)
	m_chkAnswer1 = FALSE;
	m_chkAnswer2 = FALSE;
	m_chkAnswer3 = FALSE;
	m_chkAnswer4 = FALSE;
	m_chkAnswer5 = FALSE;
	m_strContent = _T("");
	m_strNumber = _T("");
	//}}AFX_DATA_INIT
	// TODO: add construction code here

}

CClientExamView::~CClientExamView()
{
}

void CClientExamView::DoDataExchange(CDataExchange* pDX)
{
	CFormView::DoDataExchange(pDX);
	//{{AFX_DATA_MAP(CClientExamView)
	DDX_Control(pDX, IDC_CHECK5, m_chkA5);
	DDX_Control(pDX, IDC_CHECK4, m_chkA4);
	DDX_Control(pDX, IDC_CHECK3, m_chkA3);
	DDX_Control(pDX, IDC_CHECK2, m_chkA2);
	DDX_Control(pDX, IDC_CHECK1, m_chkA1);
	DDX_Check(pDX, IDC_CHECK1, m_chkAnswer1);
	DDX_Check(pDX, IDC_CHECK2, m_chkAnswer2);
	DDX_Check(pDX, IDC_CHECK3, m_chkAnswer3);
	DDX_Check(pDX, IDC_CHECK4, m_chkAnswer4);
	DDX_Check(pDX, IDC_CHECK5, m_chkAnswer5);
	DDX_Text(pDX, IDC_CONTENT, m_strContent);
	DDX_Text(pDX, IDC_NUMBER, m_strNumber);
	//}}AFX_DATA_MAP
}

BOOL CClientExamView::PreCreateWindow(CREATESTRUCT& cs)
{
	// TODO: Modify the Window class or styles here by modifying
	//  the CREATESTRUCT cs

	return CFormView::PreCreateWindow(cs);
}

void CClientExamView::OnInitialUpdate()
{
	CFormView::OnInitialUpdate();
	GetParentFrame()->RecalcLayout();
	ResizeParentToFit();
	MakeInvisibleAll();

	if(!AfxOleInit())
	{
		AfxMessageBox("Error in ole initalized!");
	}

}

/////////////////////////////////////////////////////////////////////////////
// CClientExamView diagnostics

#ifdef _DEBUG
void CClientExamView::AssertValid() const
{
	CFormView::AssertValid();
}

void CClientExamView::Dump(CDumpContext& dc) const
{
	CFormView::Dump(dc);
}

CClientExamDoc* CClientExamView::GetDocument() // non-debug version is inline
{
	ASSERT(m_pDocument->IsKindOf(RUNTIME_CLASS(CClientExamDoc)));
	return (CClientExamDoc*)m_pDocument;
}
#endif //_DEBUG

/////////////////////////////////////////////////////////////////////////////
// CClientExamView message handlers

void CClientExamView::OnNext() 
{
	// TODO: Add your control notification handler code here
	CheckAnswer();
	SaveAnswer(1);

	if(m_nCurrentQuestion >= 80)
	{
		return;
	}
	else
	{
		m_nCurrentQuestion++;
	}
	ShowExam();
	
}

void CClientExamView::OnFinish() 
{
	// TODO: Add your control notification handler code here
	ICaculateScore m_CalculateScore;
	m_CalculateScore.CreateDispatch("Exam.CaculateScore.1");
	m_CalculateScore.CaculateScore(m_nSID);
	m_nScore=m_CalculateScore.GetScore(m_nSID);
	m_CalculateScore.ReleaseDispatch();
	ShowScore();
}

void CClientExamView::OnPrior() 
{
	// TODO: Add your control notification handler code here
	CheckAnswer();
	SaveAnswer(0);
	if(m_nCurrentQuestion <= 1)
	{
		return;
	}
	else
	{
		m_nCurrentQuestion--;
	}
	ShowExam();
}

void CClientExamView::OnLogin() 
{
	// TODO: Add your command handler code here
	CLogin m_dlgLogin;
	if (m_dlgLogin.DoModal() != IDOK)
		return;
	m_strStudentNo = m_dlgLogin.m_strStudentNo;
	m_nSID = m_dlgLogin.m_nSID;
	//m_strStudentNo = "44444444";
	//m_strName = "TEST";
	//m_nSID =4;

	//GetStudentInfo();

	if (!CheckExamExist())
	{
		GenerateExam();
	}
	if(CheckFinish())
	{
		m_nScore = GetScore();
		ShowScore();
		return;
	}

	m_nCurrentQuestion = GetCurrentQuestionNumber();
	if (m_nCurrentQuestion == -1)
		return;


	ShowExam();

	
}

void CClientExamView::GenerateExam()
{
	IGenerateExam m_GenerateExam;
	if(!m_GenerateExam.CreateDispatch("Exam.GenerateExam.1"))
	{
		::AfxMessageBox("Couldn't Create component");
		return;
	}
	AfxMessageBox(m_GenerateExam.GenerateExam(m_nSID));
	m_GenerateExam.ReleaseDispatch();
}

void CClientExamView::ShowExam()
{
	GetAnswer();

	IExamState m_ExamState;
	if(!m_ExamState.CreateDispatch("Exam.ExamState.1"))
	{
		AfxMessageBox("Couldn't create Check component!");
		return ;
	}
	m_ExamState.GetExamDetail(m_nSID, m_nCurrentQuestion);
	m_nType=m_ExamState.GetQType();
	m_nQID=m_ExamState.GetQid();
	m_ExamState.ReleaseDispatch();

	GetQuestionInfo();

	MakeUnvisible();
	MakeVisible();
	
	switch(m_nType)
	{
	case 0:
		ShowLogicQuestion();
		break;
	case 1:
		ShowSingleQuestion();
		break;
	case 2:
		ShowMultiplyQuestion();
		break;
	}

}

void CClientExamView::ShowLogicQuestion()
{
	ShowHeader();
	((CButton *)GetDlgItem(IDC_RADIO1))->SetWindowText(m_strQ1);
	((CButton *)GetDlgItem(IDC_RADIO2))->SetWindowText(m_strQ2);

	if (m_nAnswer == 1)
		((CButton *)GetDlgItem(IDC_RADIO1))->CheckRadioButton(IDC_RADIO1, IDC_RADIO2, IDC_RADIO1);

	if (m_nAnswer == 2)
		((CButton *)GetDlgItem(IDC_RADIO2))->CheckRadioButton(IDC_RADIO1, IDC_RADIO2, IDC_RADIO2);

	((CButton *)GetDlgItem(IDC_RADIO1))->ShowWindow(SW_SHOW);
	((CButton *)GetDlgItem(IDC_RADIO2))->ShowWindow(SW_SHOW);



}

void CClientExamView::ShowSingleQuestion()
{
	ShowHeader();
	((CButton *)GetDlgItem(IDC_RADIO1))->SetWindowText(m_strQ1);
	((CButton *)GetDlgItem(IDC_RADIO2))->SetWindowText(m_strQ2);
	((CButton *)GetDlgItem(IDC_RADIO3))->SetWindowText(m_strQ3);
	((CButton *)GetDlgItem(IDC_RADIO4))->SetWindowText(m_strQ4);

	if (m_nAnswer == 1)
		((CButton *)GetDlgItem(IDC_RADIO1))->CheckRadioButton(IDC_RADIO1, IDC_RADIO4, IDC_RADIO1);

	if (m_nAnswer == 2)
		((CButton *)GetDlgItem(IDC_RADIO2))->CheckRadioButton(IDC_RADIO1, IDC_RADIO4, IDC_RADIO2);

	if (m_nAnswer == 4)
		((CButton *)GetDlgItem(IDC_RADIO3))->CheckRadioButton(IDC_RADIO1, IDC_RADIO4, IDC_RADIO3);

	if (m_nAnswer == 8)
		((CButton *)GetDlgItem(IDC_RADIO4))->CheckRadioButton(IDC_RADIO1, IDC_RADIO4, IDC_RADIO4);

	((CButton *)GetDlgItem(IDC_RADIO1))->ShowWindow(SW_SHOW);
	((CButton *)GetDlgItem(IDC_RADIO2))->ShowWindow(SW_SHOW);
	((CButton *)GetDlgItem(IDC_RADIO3))->ShowWindow(SW_SHOW);
	((CButton *)GetDlgItem(IDC_RADIO4))->ShowWindow(SW_SHOW);

}

void CClientExamView::ShowMultiplyQuestion()
{
	ShowHeader();
	m_chkA1.SetWindowText(m_strQ1);
	m_chkA2.SetWindowText(m_strQ2);
	m_chkA3.SetWindowText(m_strQ3);
	m_chkA4.SetWindowText(m_strQ4);
	m_chkA5.SetWindowText(m_strQ5);

	m_chkA1.ShowWindow(SW_SHOW);
	m_chkA2.ShowWindow(SW_SHOW);
	m_chkA3.ShowWindow(SW_SHOW);
	m_chkA4.ShowWindow(SW_SHOW);
	m_chkA5.ShowWindow(SW_SHOW);

	int m_nTemp = m_nAnswer;
	if(m_nTemp >= 16)
		m_chkA5.SetCheck(1);
	else
		m_chkA5.SetCheck(0);


	m_nTemp = m_nAnswer % 16;
	if(m_nTemp >= 8)
		m_chkA4.SetCheck(1);
	else
		m_chkA4.SetCheck(0);

	m_nTemp = m_nAnswer % 8;
	if(m_nTemp >= 4)
		m_chkA3.SetCheck(1);
	else
		m_chkA3.SetCheck(0);

	m_nTemp = m_nAnswer % 4;
	if(m_nTemp >= 2)
		m_chkA2.SetCheck(1);
	else
		m_chkA2.SetCheck(0);

	m_nTemp = m_nAnswer % 2;
	if(m_nTemp >= 1)
		m_chkA1.SetCheck(1);
	else
		m_chkA1.SetCheck(0);
	
}

BOOL CClientExamView::CheckExamExist()
{
	IExamState m_CheckExist;
	BOOL m_bResult = FALSE;

	if(!m_CheckExist.CreateDispatch("EXAM.ExamState.1"))
	{
		::AfxMessageBox("Create Component failed");
		return true;
	}
	CString m_strResult = m_CheckExist.CheckExist(m_nSID);
	if(m_strResult.GetAt(0) == 'Y')
		m_bResult = TRUE;
	else
		m_bResult = FALSE;
	m_CheckExist.ReleaseDispatch();
	return m_bResult;
}

BOOL CClientExamView::CheckFinish()
{
	IExamState m_CheckFinish;
	BOOL m_bResult;

	if(!m_CheckFinish.CreateDispatch("Exam.ExamState.1"))
	{
		AfxMessageBox("Couldn't create Check component!");
		return TRUE;
	}
	CString m_strResult = m_CheckFinish.CheckFinish(m_nSID);
	if (m_strResult.GetAt(0) == 'Y')
		m_bResult = TRUE;
	else
	{
		AfxMessageBox(m_strResult.GetBuffer(2));
		m_bResult = FALSE;
	}
	m_CheckFinish.ReleaseDispatch();
	return m_bResult;

}

void CClientExamView::GetStudentInfo()
{
	IUser m_StudentInfo;
	if(!m_StudentInfo.CreateDispatch("UserInfo.User.1"))
	{
		AfxMessageBox("Couldn't create studentinfo component!");
		return;
	}
	m_StudentInfo.GetUserInfo(0,m_nSID);
	m_strName = m_StudentInfo.GetUsername();
	m_StudentInfo.ReleaseDispatch();
	
}

int CClientExamView::GetScore()
{
	ICaculateScore m_GetScore;
	int m_nResult;
	m_GetScore.CreateDispatch("Exam.CaculateScore.1");
	m_nResult = m_GetScore.GetScore(m_nSID);
	m_GetScore.ReleaseDispatch();
	return m_nResult;

}

void CClientExamView::ShowScore()
{
	CString m_strResult;
	m_strResult = m_strName;
	m_strResult += "'s score is :";
	char m_szBuf[10];
	_itoa(m_nScore, m_szBuf, 10);
	m_strResult += m_szBuf;

	AfxMessageBox(m_strResult);

}

int CClientExamView::GetCurrentQuestionNumber()
{
	IExamState m_ExamState;
	if(!m_ExamState.CreateDispatch("Exam.ExamState.1"))
	{
		AfxMessageBox("Couldn't create Check component!");
		return TRUE;
	}
	m_nCurrentQuestion = m_ExamState.GetCurrentQuestion(m_nSID);
	//m_ExamState.GetCurrentQuestion(m_nSID);
	m_ExamState.ReleaseDispatch();
	return m_nCurrentQuestion;
}


int CClientExamView::GetAnswer()
{
	IExamState m_ExamState;
	if(!m_ExamState.CreateDispatch("Exam.ExamState.1"))
	{
		AfxMessageBox("Couldn't create Check component!");
		return TRUE;
	}
	m_nAnswer = m_ExamState.GetAnswer(m_nSID, m_nCurrentQuestion);
	m_ExamState.ReleaseDispatch();
	return m_nAnswer;

}

void CClientExamView::ShowHeader()
{
	char m_szBuf[10];
	_itoa(m_nCurrentQuestion, m_szBuf, 10);

	CString m_strTemp(m_szBuf);

	m_strNumber = "No. " + m_strTemp;
	UpdateData(FALSE);

}

void CClientExamView::GetQuestionInfo()
{
	IQuestion m_Question;
	if(!m_Question.CreateDispatch("QuestionInfo.Question.1"))
	{
		::AfxMessageBox("Create Component failed");
		return;
	}
	m_Question.GetQuestion(m_nType, m_nQID);
	m_strContent = m_Question.GetContent();
	if(m_nType == 0)
	{
		m_strQ1 = "TRUE";
		m_strQ2 = "FALSE";
	}
	else
	{
		if(m_nType >= 1)
		{
			m_strQ1 = m_Question.GetQ1() ;
			m_strQ2 = m_Question.GetQ2() ;
			m_strQ3 = m_Question.GetQ3() ;
			m_strQ4 = m_Question.GetQ4() ;
		}
		if (m_nType == 2)
		{
			m_strQ5 = m_Question.GetQ5() ;
		}
		
	}
	m_Question.ReleaseDispatch();

}

void CClientExamView::OnRadio1() 
{
	// TODO: Add your control notification handler code here
	m_nAnswer = 1;
	
}

void CClientExamView::OnRadio2() 
{
	// TODO: Add your control notification handler code here
	m_nAnswer = 4;
	
}

void CClientExamView::OnRadio3() 
{
	// TODO: Add your control notification handler code here
	m_nAnswer = 8;
	
}

void CClientExamView::OnRadio4() 
{
	// TODO: Add your control notification handler code here
	m_nAnswer = 16;
}

void CClientExamView::CheckAnswer()
{
	if (m_nType != 2)
		return;
	m_nAnswer = 0;
	if (m_chkA1.GetCheck() == 1)
		m_nAnswer += 1;

	if (m_chkA2.GetCheck() == 1)
		m_nAnswer += 2;

	if (m_chkA3.GetCheck() == 1)
		m_nAnswer += 4;

	if (m_chkA4.GetCheck() == 1)
		m_nAnswer += 8;

	if (m_chkA5.GetCheck() == 1)
		m_nAnswer += 16;

}


void CClientExamView::SaveAnswer(int  x_nForward)
{
	ISaveCurrentAnswer m_SaveCurrentAnswer;
	if(!m_SaveCurrentAnswer.CreateDispatch("Exam.SaveCurrentAnswer.1"))
	{
		::AfxMessageBox("Create Component failed");
		return;
	}
	m_SaveCurrentAnswer.SaveAnswer(m_nSID, m_nCurrentQuestion, m_nAnswer, 120, x_nForward);
	m_SaveCurrentAnswer.ReleaseDispatch();

}

void CClientExamView::MakeUnvisible()
{
	m_chkA1.ShowWindow(SW_HIDE);
	m_chkA2.ShowWindow(SW_HIDE);
	m_chkA3.ShowWindow(SW_HIDE);
	m_chkA4.ShowWindow(SW_HIDE);
	m_chkA5.ShowWindow(SW_HIDE);

	((CButton *)GetDlgItem(IDC_RADIO1))->ShowWindow(SW_HIDE);
	((CButton *)GetDlgItem(IDC_RADIO2))->ShowWindow(SW_HIDE);
	((CButton *)GetDlgItem(IDC_RADIO3))->ShowWindow(SW_HIDE);
	((CButton *)GetDlgItem(IDC_RADIO4))->ShowWindow(SW_HIDE);

}

void CClientExamView::MakeInvisibleAll()
{
	MakeUnvisible();
	((CWnd *)GetDlgItem(IDC_NUMBER))->ShowWindow(SW_HIDE);
	((CWnd *)GetDlgItem(IDC_CONTENT))->ShowWindow(SW_HIDE);
	((CWnd *)GetDlgItem(IDC_NEXT))->ShowWindow(SW_HIDE);
	((CWnd *)GetDlgItem(IDC_PRIOR))->ShowWindow(SW_HIDE);
	((CWnd *)GetDlgItem(IDC_FINISH))->ShowWindow(SW_HIDE);
}

void CClientExamView::MakeVisible()
{
	((CWnd *)GetDlgItem(IDC_NUMBER))->ShowWindow(SW_SHOW);
	((CWnd *)GetDlgItem(IDC_CONTENT))->ShowWindow(SW_SHOW);
	((CWnd *)GetDlgItem(IDC_NEXT))->ShowWindow(SW_SHOW);
	((CWnd *)GetDlgItem(IDC_PRIOR))->ShowWindow(SW_SHOW);
	((CWnd *)GetDlgItem(IDC_FINISH))->ShowWindow(SW_SHOW);

}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
成人激情小说网站| 国产校园另类小说区| 一区视频在线播放| 麻豆国产91在线播放| 在线免费观看日本一区| 久久综合久久综合九色| 亚洲国产日产av| 91九色02白丝porn| 洋洋av久久久久久久一区| 欧美主播一区二区三区美女| 国产在线国偷精品产拍免费yy| 中文字幕国产一区| 欧美高清视频在线高清观看mv色露露十八 | 精品成人私密视频| 欧美探花视频资源| 92精品国产成人观看免费| 国产一区二区福利视频| 日韩不卡一区二区| 亚洲国产另类av| 日韩伦理av电影| 国产性色一区二区| 精品国产乱码久久久久久久久| 欧美日韩精品一区二区三区| caoporen国产精品视频| 国产精品亚洲专一区二区三区| 日本免费新一区视频| 五月婷婷另类国产| 亚洲成人综合网站| 亚洲伊人色欲综合网| 亚洲人成精品久久久久久| 中文字幕中文乱码欧美一区二区| 久久女同精品一区二区| 精品久久一区二区三区| 日韩欧美一区中文| 欧美一区午夜精品| 日韩一区二区三区高清免费看看| 欧美日韩大陆在线| 欧美精品色一区二区三区| 欧美日韩高清一区二区| 欧美日韩国产综合一区二区| 欧美性xxxxxxxx| 欧美日韩夫妻久久| 51精品秘密在线观看| 7878成人国产在线观看| 欧美一级二级三级蜜桃| 欧美tickling网站挠脚心| 欧美变态口味重另类| 色综合天天综合| 97se亚洲国产综合在线| 91啪亚洲精品| 国产精品1区二区.| 日韩精品一区第一页| 一区二区三区不卡在线观看| 国产欧美一区二区精品性色超碰| 中文字幕亚洲欧美在线不卡| 日韩欧美电影一区| 91精品国产欧美一区二区 | 国产精品三级av在线播放| 欧美在线高清视频| 欧美日韩高清一区| 精品国产免费久久| 国产蜜臀97一区二区三区| 亚洲欧美另类综合偷拍| 欧美在线一二三四区| 欧美日韩高清不卡| 国产欧美一区二区三区在线老狼| 久久新电视剧免费观看| 欧美高清一级片在线观看| 日韩毛片一二三区| 一区二区三区免费在线观看| 日韩中文字幕91| 国产精品自拍av| 91看片淫黄大片一级| 91精品午夜视频| 亚洲国产激情av| 亚洲日本丝袜连裤袜办公室| 亚洲一区二区三区视频在线播放 | 精品亚洲porn| 99久久精品免费精品国产| 欧美日韩亚洲综合在线 | 色婷婷av一区二区| 91精品国产综合久久福利| 欧美国产精品一区| 日韩精品色哟哟| 白白色 亚洲乱淫| 欧美男女性生活在线直播观看| 日韩精品在线一区| 亚洲精品成人少妇| 国产成人精品aa毛片| 欧美日韩1234| 国产精品黄色在线观看| 美腿丝袜亚洲综合| 粉嫩av一区二区三区粉嫩| 97aⅴ精品视频一二三区| 欧美国产日韩在线观看| 天天综合天天做天天综合| 国产91精品一区二区麻豆网站| 欧美日韩在线不卡| 欧美国产日韩亚洲一区| 免费成人小视频| 欧美日韩视频在线第一区| 国产精品沙发午睡系列990531| 韩国三级中文字幕hd久久精品| 激情欧美日韩一区二区| 成人性生交大片免费看视频在线| 制服视频三区第一页精品| 亚洲欧洲日韩在线| 国产主播一区二区三区| 欧美精品1区2区3区| 亚洲综合图片区| 99re8在线精品视频免费播放| 久久综合久久鬼色中文字| 日本欧美加勒比视频| 日本精品视频一区二区| 中文字幕一区二区三区不卡在线 | 老司机一区二区| 欧美在线短视频| 日韩伦理免费电影| 波多野结衣在线一区| www精品美女久久久tv| 美女视频免费一区| 欧美一区午夜精品| 五月天久久比比资源色| 在线国产电影不卡| 一区二区三区资源| 91蜜桃网址入口| 亚洲同性gay激情无套| av男人天堂一区| 国产精品久久久久久久久图文区| 国产精品一品二品| 久久精品综合网| 国产一区二区美女诱惑| 精品国产精品一区二区夜夜嗨| 蜜臀久久久久久久| 日韩小视频在线观看专区| 天天综合网 天天综合色| 6080午夜不卡| 美腿丝袜亚洲一区| 精品理论电影在线观看| 国产乱一区二区| 国产片一区二区| 99久久亚洲一区二区三区青草| 国产精品久99| 日本高清免费不卡视频| 亚洲午夜免费视频| 69精品人人人人| 国内精品写真在线观看| 国产日本欧美一区二区| 不卡视频免费播放| 亚洲人成7777| 欧美日本韩国一区| 精品一区免费av| 欧美激情一区不卡| 色狠狠色噜噜噜综合网| 午夜精品久久久久久久99樱桃| 51精品视频一区二区三区| 精东粉嫩av免费一区二区三区| 久久精品夜色噜噜亚洲aⅴ| 不卡影院免费观看| 亚洲一区二区视频在线观看| 91精品国产一区二区三区蜜臀 | 国产精品乱码久久久久久| 99国产精品视频免费观看| 亚洲成人你懂的| 久久综合九色综合欧美亚洲| 懂色av一区二区三区免费观看| 亚洲女性喷水在线观看一区| 欧美麻豆精品久久久久久| 国内精品自线一区二区三区视频| 国产精品美女www爽爽爽| 欧美日韩成人综合在线一区二区| 久久精品国产成人一区二区三区 | 国产亲近乱来精品视频| 91福利精品视频| 久久精品99国产精品| 国产精品国产三级国产三级人妇| 欧美性猛交xxxx乱大交退制版| 免费成人小视频| 亚洲图片激情小说| 精品欧美一区二区在线观看| 91首页免费视频| 狠狠v欧美v日韩v亚洲ⅴ| 亚洲精选在线视频| wwww国产精品欧美| 欧美亚洲一区二区三区四区| 国产精品一区二区在线观看不卡 | 韩国一区二区视频| 亚洲精品免费看| 久久噜噜亚洲综合| 欧美嫩在线观看| 99精品视频中文字幕| 久久国产精品72免费观看| 一区二区欧美视频| 国产精品无圣光一区二区| 日韩一区二区三区精品视频| 91在线国产观看| 国产不卡视频一区二区三区| 日韩电影一区二区三区四区| 综合在线观看色| 国产日韩欧美电影|