⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 datamtnce.cpp

📁 一个在线考试系统的代码。功能包括考试科目管理
💻 CPP
📖 第 1 页 / 共 3 页
字号:
{
	m_eQstnType=jdg;
}

int DataMtnce::GetQstionType()
{
	return m_eQstnType;
}

void DataMtnce::IncrsCurQstionSeq()
{
	if(m_eQstnType==sel)
		IncreaseSel();
	else if(m_eQstnType==blk)
		IncreaseBlk();
	else
		IncreaseJdg();
}

void DataMtnce::DecrsCurQstionSeq()
{
	if(m_eQstnType==sel)
		DecreaseSel();
	else if(m_eQstnType==blk)
		DecreaseBlk();
	else
		DecreaseJdg();
}

void DataMtnce::SetSelAns()
{
	CString sql;
	sql.Format("select * from %s where 试题ID=%d",m_strSelBaseName,GetSelID());
	ADOConn Adoconn;
	Adoconn.OnInitADOConn();
	if(m_iSlctNum==0)
	{
		m_strSlctAnsA="";
		m_strSlctAnsB="";
		m_strSlctAnsC="";
		m_strSlctAnsD="";
		m_strQstnAns="";
	}

	//设置当前选择题的四个选项
	else
	{
		Adoconn.m_pRecordset=Adoconn.GetRecordSet((_bstr_t)sql);
		m_strSlctAnsA=(char *)(_bstr_t)Adoconn.m_pRecordset->GetCollect("选项1");
		m_strSlctAnsB=(char *)(_bstr_t)Adoconn.m_pRecordset->GetCollect("选项2");
		m_strSlctAnsC=(char *)(_bstr_t)Adoconn.m_pRecordset->GetCollect("选项3");
		m_strSlctAnsD=(char *)(_bstr_t)Adoconn.m_pRecordset->GetCollect("选项4");
		m_strQstnAns=(char *)(_bstr_t)Adoconn.m_pRecordset->GetCollect("答案");
	}
	Adoconn.ExitConnect();
}


CString DataMtnce::GetAnsA()
{
	return m_strSlctAnsA;
}

CString DataMtnce::GetAnsB()
{
	return m_strSlctAnsB;
}

CString DataMtnce::GetAnsC()
{
	return m_strSlctAnsC;
}

CString DataMtnce::GetAnsD()
{
	return m_strSlctAnsD;
}

void DataMtnce::SetSAns(int selct)
{
	if(m_eQstnType==0)
	{
		if(selct==0)
		{
			m_strSAns=m_strSlctAnsA;
			m_bSelCmplted[GetSelSeqnce()]=TRUE;
		}
		else if(selct==1)
		{
			m_strSAns=m_strSlctAnsB;
			m_bSelCmplted[GetSelSeqnce()]=TRUE;
		}
		else if(selct==2)
		{
			m_strSAns=m_strSlctAnsC;
			m_bSelCmplted[GetSelSeqnce()]=TRUE;
		}
		else if(selct==3)
		{
			m_strSAns=m_strSlctAnsD;
			m_bSelCmplted[GetSelSeqnce()]=TRUE;
		}
		else if(selct==-1)
		{
			m_strSAns="";
			m_bSelCmplted[GetSelSeqnce()]=FALSE;
		}
	}
}

int DataMtnce::GetJdgNum(CString subject)
{
	CString sql;
	sql.Format("select * from titleamount where 科目名称='%s'",subject);
	ADOConn Adoconn;
	Adoconn.OnInitADOConn();
	Adoconn.m_pRecordset=Adoconn.GetRecordSet((_bstr_t)sql);
	CString strblknum=(char*)(_bstr_t)Adoconn.m_pRecordset->GetCollect("判断题数量");
	int Jdgnumtemp=atoi(strblknum);
	m_iJdgNum=Jdgnumtemp;
	Adoconn.ExitConnect();
	return m_iJdgNum;
}

void DataMtnce::InitCmpltedArr()
{
	m_bSelCmplted=new BOOL[GetSelNum(SGetsubjct())];
	m_bBlkCmplted=new BOOL[GetBlkNum(SGetsubjct())];
	m_bJdgCmplted=new BOOL[GetJdgNum(SGetsubjct())];

	for(int i=0;i<GetSelNum(SGetsubjct());i++)
	{
		m_bSelCmplted[i]=FALSE;
	}
	for (i=0;i<GetBlkNum(SGetsubjct());i++)
	{
		m_bBlkCmplted[i]=FALSE;
	}
	for (i=0;i<GetJdgNum(SGetsubjct());i++)
	{
		m_bJdgCmplted[i]=FALSE;
	}
}



BOOL DataMtnce::CheckCmplted(CString & temp)
{
	for(int i=0;i<GetSelNum(SGetsubjct());i++)
	{
		if(m_bSelCmplted[i]==FALSE)
		{
			temp.Format("选择第%d题未完成!确定交卷吗?");
			return FALSE;
		}
	}
	/*
	for (i=0;i<GetBlkNum(SGetsubjct());i++)
	{
		;
	}
	for (i=0;i<GetJdgNum(SGetsubjct());i++)
	{
		;
	}
	*/
	return TRUE;
}

BOOL DataMtnce::CheckSelResult()
{
	if ((m_strQstnAns==m_strSAns) && !m_strSAns.IsEmpty())
	{
		//m_iscore+=1;
		return TRUE;
	}
	else
		return FALSE;
}

void DataMtnce::WriteSelResult()
{
	ADOConn Adoconn;
	Adoconn.OnInitADOConn();
	CString sql;
	sql.Format("select * from titleamount where 科目名称='%s'",SGetsubjct());
	Adoconn.m_pRecordset=Adoconn.GetRecordSet((_bstr_t)sql);
	CString resultbasename=(char*)(_bstr_t)Adoconn.m_pRecordset->GetCollect("学生答题结果库");
	sql.Format("select * from %s where 学号=%d and 题目ID=%d and 题型=%d",resultbasename,m_iStdntID,GetSelID(),m_eQstnType);
	Adoconn.m_pRecordset=Adoconn.GetRecordSet((_bstr_t)sql);
	if (Adoconn.m_pRecordset->adoEOF)
	{
		sql.Format("insert into %s values(%d,'%s',%d,%d,'%s','%s','%s',%d)",resultbasename,m_iStdntID,m_strStdntNm,m_eQstnType,GetSelID(),m_strQstn,m_strQstnAns,m_strSAns,CheckSelResult());
		Adoconn.ExecuteSQL((_bstr_t)sql);
	}
	else
	{
		sql.Format("update %s set 学生答案='%s',是否正确=%d where 学号=%d and 题目ID=%d and 题型=%d",resultbasename,m_strSAns,CheckSelResult(),m_iStdntID,GetSelID(),m_eQstnType);
		Adoconn.ExecuteSQL((_bstr_t)sql);
	}


	Adoconn.ExitConnect();
}

void DataMtnce::SetSSelection(int sel)
{
	m_iSSelectionArr[m_iSelSqnce]=sel;
}

int DataMtnce::GetSSelection()
{
	return m_iSSelectionArr[m_iSelSqnce];
}

void DataMtnce::InitSSelectionArr()
{
	m_iSSelectionArr=new int[GetSelNum(SGetsubjct())];
	for (int i=0;i<GetSelNum(SGetsubjct());i++)
	{
		m_iSSelectionArr[i]=-1;
	}
}

CString DataMtnce::GetBlkQstion(int idblk)
{
	if (m_iBlkNum==0)
	{
		return "";
	}
	CString sql;
	sql.Format("select * from %s where 试题ID=%d",m_strBlkBaseName,idblk);
	ADOConn Adoconn;
	Adoconn.OnInitADOConn();
	Adoconn.m_pRecordset=Adoconn.GetRecordSet((_bstr_t)sql);
	m_strQstn=(char *)(_bstr_t)Adoconn.m_pRecordset->GetCollect("题目");
	Adoconn.ExitConnect();
	return m_strQstn;
}

int DataMtnce::GetBlkID()
{
	return m_iBlkIDs[m_iBlkSqnce];
}

void DataMtnce::SetBlkAns()
{
	CString sql;
	sql.Format("select * from %s where 试题ID=%d",m_strBlkBaseName,GetBlkID());
	ADOConn Adoconn;
	Adoconn.OnInitADOConn();
	if(m_iBlkNum==0)
	{
		m_strQstnAns="";
	}
	else
	{
		Adoconn.m_pRecordset=Adoconn.GetRecordSet((_bstr_t)sql);
		m_strQstnAns=(char *)(_bstr_t)Adoconn.m_pRecordset->GetCollect("答案");
	}
	Adoconn.ExitConnect();

}

void DataMtnce::InitBlkArr()
{
	m_iBlkIDs=new int[m_iBlkNum];
	for(int i=0;i<m_iBlkNum;i++)
		m_iBlkIDs[i]=0;
}

int * DataMtnce::GetBlkIDArr()
{
	return m_iBlkIDs;
}

void DataMtnce::SetSBlkAns(CString blkans)
{
	m_strSAns=blkans;
}

void DataMtnce::WriteBlkResult()
{
	ADOConn Adoconn;
	Adoconn.OnInitADOConn();
	CString sql;
	sql.Format("select * from titleamount where 科目名称='%s'",SGetsubjct());
	Adoconn.m_pRecordset=Adoconn.GetRecordSet((_bstr_t)sql);
	CString resultbasename=(char*)(_bstr_t)Adoconn.m_pRecordset->GetCollect("学生答题结果库");
	sql.Format("select * from %s where 学号=%d and 题目ID=%d and 题型=%d",resultbasename,m_iStdntID,GetBlkID(),m_eQstnType);
	Adoconn.m_pRecordset=Adoconn.GetRecordSet((_bstr_t)sql);
	if (Adoconn.m_pRecordset->adoEOF)
	{
		sql.Format("insert into %s values(%d,'%s',%d,%d,'%s','%s','%s',%d)",resultbasename,m_iStdntID,m_strStdntNm,m_eQstnType,GetBlkID(),m_strQstn,m_strQstnAns,m_strSAns,CheckBlkResult());
		Adoconn.ExecuteSQL((_bstr_t)sql);
	}
	else
	{
		sql.Format("update %s set 学生答案='%s',是否正确=%d where 学号=%d and 题目ID=%d and 题型=%d",resultbasename,m_strSAns,CheckBlkResult(),m_iStdntID,GetBlkID(),m_eQstnType);
		Adoconn.ExecuteSQL((_bstr_t)sql);
	}


	Adoconn.ExitConnect();
}

BOOL DataMtnce::CheckBlkResult()
{
	CString tempsans=m_strSAns;
	CString tempqans=m_strQstnAns;
	CString temp="的";
	int locations=tempsans.Find(temp);
	int locationq=tempqans.Find(temp);
	tempsans.Delete(locations,2);
	tempqans.Delete(locationq,2);
	if ((tempqans.Find(tempsans)!=-1 && !tempsans.IsEmpty() && tempsans.GetLength()>=tempqans.GetLength()) ||
		(tempsans.Find(tempqans)!=-1 && !tempsans.IsEmpty()))
	{
		//m_iscore+=1;
		return TRUE;
	}
	else
		return FALSE;
}

CString DataMtnce::ReadSBlkAns()
{
	ADOConn Adoconn;
	Adoconn.OnInitADOConn();
	CString sql;
	sql.Format("select * from titleamount where 科目名称='%s'",SGetsubjct());
	Adoconn.m_pRecordset=Adoconn.GetRecordSet((_bstr_t)sql);
	CString resultbasename=(char*)(_bstr_t)Adoconn.m_pRecordset->GetCollect("学生答题结果库");
	sql.Format("select * from %s where 学号=%d and 题目ID=%d and 题型=%d",resultbasename,m_iStdntID,GetBlkID(),m_eQstnType);
	Adoconn.m_pRecordset=Adoconn.GetRecordSet((_bstr_t)sql);
	if (Adoconn.m_pRecordset->adoEOF)
	{
		m_strSAns="";
	}
	else
	{
		m_strSAns=(char *)(_bstr_t)Adoconn.m_pRecordset->GetCollect("学生答案");
	}

	Adoconn.ExitConnect();

	return m_strSAns;
}

int DataMtnce::GetJdgID()
{
	return m_iJdgIDs[m_iJdgSqnce];

}

CString DataMtnce::GetJdgQstion(int idJdg)
{
	if (m_iJdgNum==0)
	{
		return "";
	}
	CString sql;
	sql.Format("select * from %s where 试题ID=%d",m_strJdgBaseName,idJdg);
	ADOConn Adoconn;
	Adoconn.OnInitADOConn();
	Adoconn.m_pRecordset=Adoconn.GetRecordSet((_bstr_t)sql);
	m_strQstn=(char *)(_bstr_t)Adoconn.m_pRecordset->GetCollect("题目");
	Adoconn.ExitConnect();
	return m_strQstn;
}

void DataMtnce::SetJdgAns()
{
	ADOConn Adoconn;
	Adoconn.OnInitADOConn();
	CString sql;
	sql.Format("select * from %s where 试题ID=%d",m_strJdgBaseName,GetJdgID());
	if(m_iJdgNum==0)
	{
		m_strQstnAns="";
	}
	else
	{
		Adoconn.m_pRecordset=Adoconn.GetRecordSet((_bstr_t)sql);
		m_strQstnAns=(char *)(_bstr_t)Adoconn.m_pRecordset->GetCollect("答案");
	}
	Adoconn.ExitConnect();
}

void DataMtnce::InitSJudgementArr()
{
	m_iSJudgementArr=new int[GetJdgNum(SGetsubjct())];
	for (int i=0;i<GetJdgNum(SGetsubjct());i++)
	{
		m_iSJudgementArr[i]=-1;
	}
}

void DataMtnce::InitJdgArr()
{
	m_iJdgIDs=new int[m_iJdgNum];
	for(int i=0;i<m_iJdgNum;i++)
		m_iJdgIDs[i]=0;
}

int * DataMtnce::GetJdgIDArr()
{
	return m_iJdgIDs;
}

void DataMtnce::SetSJdgAns(int judgement)
{
	if(m_eQstnType==2)
	{
		if(judgement==0)
		{
			m_strSAns="错";
			m_bJdgCmplted[GetSelSeqnce()]=TRUE;
		}
		else if(judgement==1)
		{
			m_strSAns="对";
			m_bJdgCmplted[GetSelSeqnce()]=TRUE;
		}
		else if(judgement==-1)
		{
			m_strSAns="";
			m_bJdgCmplted[GetSelSeqnce()]=FALSE;
		}
	}
}

void DataMtnce::SetSJudgement(int judgement)
{
	m_iSJudgementArr[m_iJdgSqnce]=judgement;

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -