📄 fun.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 + -