📄 cfile.cpp
字号:
#include "main.h"
/**************************************************
* 函数名: SetNum
* 参数:
* 形参:
* int _nNum : 获取合格的试卷号
* 返回值: 无
* 功能:
* 函数的用途,作用,意义说明
* 作者: 作者名
* 编写明细:
* 完成时间 Created 作者名
* 修改时间 Modify 修改者 修改位置或修改明细
**************************************************/
void CMyFile::SetNum(int _nNum)
{
m_nNum = _nNum;
for (int i = 0; i < 10; ++i)
{
COption[i].SetNum(m_nNum);
}
}
/**************************************************
* 函数名: ReadAnswer()
* 参数:
* 形参:
* 返回值: 无
* 功能:
* 从文件中读取正确答案
* 作者: 张燕飞
* 编写明细:
* 完成时间 09.2.11 作者名 张燕飞
**************************************************/
void CMyFile::ReadAnswer()//读取答案
{
int nCnt=0;//计数器
const int CNT=1024;
char szRead[CNT];
char szBuf[10];
memset(szBuf,'\0',10);
memset(szRead,'\0',1024);
itoa(m_nNum,szBuf,10);
ifstream Fr(READEXAM,ios::in|ios::binary);
if(Fr.fail()) return;
do
{
Fr.getline(szRead,CNT);
if(szRead[31]==szBuf[0]||(szRead[31]==szBuf[0]&&szRead[32]==szBuf[1]))//选择到相应的试卷
{
do
{
Fr.getline(szRead,CNT);
if(!strcmp(szRead,"[QAnswer]\r"))
{
Fr.getline(szRead,CNT);
strcpy(m_QAnswer[nCnt],szRead);
++nCnt;
}
}while(szRead[0]!='#');
}
} while(!Fr.eof());
Fr.close();
}
/**************************************************
* 函数名: ReadScore()
* 参数:
* 形参:
* 返回值: 无
* 功能:
* 从文件中读取分数
* 作者: 张燕飞
* 编写明细:
* 完成时间 09.2.11 作者名 张燕飞
**************************************************/
void CMyFile::ReadScore()//读取分数
{
int nCnt=0;
const int CNT=1024;
char szRead[CNT];
char szBuf[10];
memset(szBuf,'\0',10);
memset(szRead,'\0',1024);
itoa(m_nNum,szBuf,10);
ifstream Fr(READEXAM,ios::in|ios::binary);
if(Fr.fail()) return;
do
{
Fr.getline(szRead,CNT);
if(szRead[31]==szBuf[0]||(szRead[31]==szBuf[0]&&szRead[32]==szBuf[1]))
{
do
{
Fr.getline(szRead,CNT);
if(!strcmp(szRead,"[QScore]\r"))
{
Fr.getline(szRead,CNT);
strcpy(m_QScore[nCnt],szRead);
++nCnt;
}
}while(szRead[0]!='#');
}
} while(!Fr.eof());
Fr.close();
}
/**************************************************
* 函数名: ReadContent()
* 参数:
* 形参:
* 返回值: 无
* 功能:
* 从文件中读取题干
* 作者: 张燕飞
* 编写明细:
* 完成时间 09.2.11 作者名 张燕飞
**************************************************/
void CMyFile::ReadContent()//读取题干
{
int nCnt=0;
const int CNT=1024;
char szRead[CNT];
char szBuf[10];
memset(szBuf,'\0',10);
memset(szRead,'\0',1024);
itoa(m_nNum,szBuf,10);
ifstream Fr(READEXAM,ios::in|ios::binary);
if(Fr.fail()) return;
do
{
Fr.getline(szRead,CNT);
if(szRead[31]==szBuf[0]||(szRead[31]==szBuf[0]&&szRead[32]==szBuf[1]))
{
do
{
Fr.getline(szRead,CNT);
if(!strcmp(szRead,"[QContent]\r"))
{
Fr.getline(szRead,CNT);
strcpy(m_QContent[nCnt],szRead);
++nCnt;
}
}while(szRead[0]!='#');
}
} while(!Fr.eof());
Fr.close();
}
/**************************************************
* 函数名: SetItem()
* 参数:
* 形参:
* 返回值: 无
* 功能:
* 从内存获取相应题目选项
* 作者: 张燕飞
* 编写明细:
* 完成时间 09.2.11 作者名 张燕飞
**************************************************/
void CMyFile::SetItem()//读取选项
{
for (int i = 0; i < 10; ++i)
{
COption[i].ReadItem(i+1);
}
}
/**************************************************
* 函数名: ShowQues
* 参数:
* 形参: int _nQuesNum_1 : 当前题目号-1
* 返回值: 无
* 功能:
* 显示各题的分值,题干和选项
* 作者: 张燕飞
* 编写明细:
* 完成时间 09.2.11 作者名 张燕飞
**************************************************/
void CMyFile::ShowQues(int _nQuesNum_1)
{
cout<<"分值:"<<m_QScore[_nQuesNum_1];
cout<<endl;
cout<<_nQuesNum_1+1<<" "<<m_QContent[_nQuesNum_1];
cout<<endl;
for (int i = 0; i < COption[i].GetnNum(); ++i)//COption[i].m_nCnt为第i道题的最大选项数
{
cout<<COption[_nQuesNum_1].GetItem(i)<<endl;
}
cout<<endl;
cout<<"请输入选择的答案为:";
}
/**************************************************
* 函数名: ShowHead
* 参数:
* 形参: 无
* 返回值: 无
* 功能:
* 显示各题提示信息及时间
* 作者: 张燕飞
* 编写明细:
* 完成时间 09.2.11 作者名 张燕飞
**************************************************/
void CMyFile::ShowHead()
{
system("cls");
cout<<"━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━";
cout<<"**提示信息** ╭─────╮";
cout<<"【Backspace】键:删除 【F1】键:帮助 剩余时间为:│ │";
cout<<"【PageUp】键:上一题 【PageDown】键:下一题 【ENTER】键:确认。 ╰─────╯";
cout<<"━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━";
cout<<endl;
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -