📄 cpaper.cpp
字号:
#include "main.h"
/**************************************************
* 函数名: GetPaper ()
* 参数:
* 形参: 无
* 返回值: int
* 功能:
* 抽取随机数,保证系统所给的试卷是随机出来的,同时又是符合考试要求的,防止作弊。
* 作者: 范帅帅
* 编写明细:
* 完成时间 2009/02/18 范帅帅
* 修改时间 2009/02/21 范帅帅 试卷的查找方式
**************************************************/
void CPaper::RandGetPaper()//随机数
{
for (;;)
{
srand((unsigned)time(NULL));
int nNum=rand();
int m_nCur = nNum % 5;
m_nCurPaper = m_nCur;
++m_arrNum[m_nCurPaper];
for (int i = 0; i < 5; ++i)
{
if (m_arrNum[i] > 1)
{
--m_arrNum[i];
break;
}
}
if (i == 5)
{
nTestNum = m_nCur;
return;
}
}
}
/**************************************************
* 函数名: GetPaper ()
* 参数:
* 形参: 无
* 返回值: int
* 功能:
* 保证试卷时符合考试要求的。
* 作者: 范帅帅
* 编写明细:
* 完成时间 2009/02/18 范帅帅
* 修改时间 2009/02/21 范帅帅
**************************************************/
int CPaper::GetPaper ()//判断卷子是否合格
{
int nCnt=0;//计数器,判断是否满足10题要求
const int CNT=1024;
char szRead[CNT];//储存读取的文件,最大容量为CNT
char szBuf[10];//储存转换为char型m_nCurPaper
memset(szBuf,'\0',10);
memset(szRead,'\0',1024);
itoa(nTestNum+1,szBuf,10);
ifstream Fr(READEXAM,ios::in|ios::binary);
if(Fr.fail())
{
CShow* pTempCShow = new CShow;
pTempCShow->ShowFailRead();
delete pTempCShow;
exit(-1);
}
do
{
memset(szRead,'\0',1024);
Fr.getline(szRead,CNT);
if((szRead[31]==szBuf[0]&&szRead[32]==szBuf[1])||szRead[31]==szBuf[0])//找到该套卷子
{
do
{
memset(szRead,'\0',1024);
Fr.getline(szRead,CNT);
if(!strcmp(szRead,"[QScore]\r"))
{
memset(szRead,'\0',1024);
Fr.getline(szRead,CNT);
//nT[nCnt]=atoi((char*)&szRead[nCnt]);
//if(nT[nCnt]!=10)//试卷不符合要求
if (strcmp(szRead, "10\r") != 0)
{
RandGetPaper();
GetPaper();
return -1;
}
else
{
++nCnt;
}
}
}while(szRead[0]!='#');
if (nCnt == 10)
{
return m_nCurPaper;
}
}
} while(!Fr.eof());
Fr.close();
return -2;
}
/**************************************************
* 函数名: GetPaper ()
* 参数:
* 形参: 无
* 返回值: int
* 功能:
* 返回随机数。
* 作者: 范帅帅
* 编写明细:
* 完成时间 2009/02/18 范帅帅
* 修改时间 2009/02/21 范帅帅
**************************************************/
int CPaper::GetCurPaper()
{
if(m_nCurPaper==1)
{
return m_nCurPaper;
}
else
{
return 0;
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -