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

📄 cfile.cpp

📁 考试管理系统
💻 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 + -