📄 datamtnce.cpp
字号:
{
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 + -