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

📄 fun.cpp

📁 考试管理系统
💻 CPP
字号:
#include "main.h"

/**********************************************************************************************
* 函数名: Program	
* 参数:	  无
* 形参:   无
* 返回值:	void
* 功能:
*       该函数与学生答题相关,在计时的同时
*		线程函数,通过该函数设置创建线程
*       创建答题线程,与随机试卷号线程;
* 作者:		安财君
* 编写明细:
*		完成时间	Created		作者名		安财君
*		修改时间	Modify		修改者		修改位置或修改明细
************************************************************************************************/

void Program()
{	
	COORD size = {80, 25};
	
	SetConsoleScreenBufferSize(hCon, size);	//重新设置缓冲区大小

	HANDLE hThread1 = CreateThread(NULL, 0, StuExamThread, NULL, 0, NULL);//创建新进程

	Sleep(100);

	HANDLE hThread2 = CreateThread(NULL, 0, SrandExamNUMThread, NULL, 0, NULL);//创建新进程

	Sleep(100);

	CONSOLE_SCREEN_BUFFER_INFO bInfo;

	while (nSce>=0 && !bEnd)
	{

		if (bF5)
		{

			return;

		}

		SuspendThread(hThread1);//挂起进程

		SuspendThread(hThread2);	//挂起进程

		GetConsoleScreenBufferInfo(hCon, &bInfo );	//获取当前光标信息

		CurPos.X = 71;

		CurPos.Y = 2;

		SetConsoleCursorPosition(hCon, CurPos);	//移动光标

		cout << setfill('0') << setw(2) << nSce/60 << ":" << setw(2) << nSce%60;

		SetConsoleCursorPosition(hCon, bInfo.dwCursorPosition);	//恢复光标位置

		ResumeThread(hThread1);	//恢复进程

		ResumeThread(hThread2);	//恢复进程

		--nSce;

		Sleep(1000);	//暂停1秒

	}
	
	SuspendThread(hThread1);	//挂起进程

	SuspendThread(hThread2);

	CloseHandle(hThread1);

	CloseHandle(hThread2);

	CShow p;

	if (!bEnd)
	{

		p.ShowOvertime();
		
	}

}

/**********************************************************************************************
* 函数名: StuThread
* 参数:	  无
* 形参:   无
* 返回值: DWORD WINAPI 	
* 功能:
*       创建答题线程;
* 作者:		安财君
* 编写明细:
*		完成时间	Created		作者名		安财君
*		修改时间	Modify		修改者		修改位置或修改明细
************************************************************************************************/

DWORD WINAPI StuExamThread(LPVOID lpParameter)
{
	CStudentOpt* pStu=new CStudentOpt;
	
	if (pStu->StuOpt() == 0)
	{

		bEnd = true;

		delete pStu;

		return 0;

	} 	 
	
	delete pStu;

	return -1;

}

/**********************************************************************************************
* 函数名: SrandExamNUMThread	
* 参数:	  无
* 形参:   无
* 返回值: DWORD WINAPI 	
* 功能:
*       创建随机试卷号线程;
* 作者:		安财君
* 编写明细:
*		完成时间	Created		作者名		安财君
*		修改时间	Modify		修改者		修改位置或修改明细
************************************************************************************************/

DWORD WINAPI SrandExamNUMThread(LPVOID lpParameter)
{
	CPaper *FirstPaper= new CPaper;

	FirstPaper->RandGetPaper();

	FirstPaper->GetPaper();

	delete FirstPaper;

	return 0;
}

⌨️ 快捷键说明

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