三主要模块说明 3.1 考试平台 http://www.paper51.com
3.1.1 ExamManageSystem.FrmMain程序主窗口 copyright paper51.com
文件名:FrmMain.frm copyright paper51.com 本块功能说明:是考试平台的主要界面。 copyright paper51.com
paper51.com 窗口界面 copyright paper51.com 模块名:Init http://www.paper51.com
参数: 无 内容来自www.paper51.com 功能:窗口初始化 copyright paper51.com 设计构思: 内容来自www.paper51.com
考试平台运行时初始化,通过查找ExamBak.bak文件来判断程序运行时是否要读取备份文件如果则说明考生有异常退出发生,已经登录过则UserLogin = True在读取备份文件 http://www.paper51.com 模块名: LockPC copyright paper51.com 参数: (locked AsBoolean) http://www.paper51.com
功能:锁定系统桌面 copyright paper51.com
设计构思: 内容来自www.paper51.com 通过访问API函数FindWindow找到任务栏上的开始按钮,任务拦等句柄,并同过ShowWindow来隐藏显示窗口. 通过SystemParametersInfo禁用CTRL+ALT+Del ALT+F4 等系统键 内容来自www.paper51.com 模块名: BakStudentInfo http://www.paper51.com 参数: 无 copyright paper51.com 功能:备份学生信息 内容来自www.paper51.com 设计构思: http://www.paper51.com 通过WinAPI函数WritePrivateProfileString将学生信息以INI文件格式写入ExamBak.bak文件中. 内容来自论文无忧网 www.paper51.com 模块名: ResumeStudentInfo 内容来自论文无忧网 www.paper51.com
参数: 无 内容来自论文无忧网 www.paper51.com 功能:还原学生信息 内容来自www.paper51.com 设计构思: 内容来自www.paper51.com 通过WinAPI函数GetPrivateProfileString将学生信息以INI文件格式从ExamBak.bak文件中读取出来给系统变量 paper51.com 模块名: Winsock1_DataArrival(Winsock事件 内容来自论文无忧网 www.paper51.com 参数: (ByVal bytesTotalAs Long)系统给定 内容来自论文无忧网 www.paper51.com 功能:获得服务器传送来的信息 内容来自论文无忧网 www.paper51.com 设计构思: 内容来自www.paper51.com
服务器发送过来的信息是以 命令+内容 发送过来,此模块先读取命令部分 在依据是先约定好的命令决定做哪步操作,命令详解如下: http://www.paper51.com
命令名 内容来自www.paper51.com 含义 http://www.paper51.com |StudenEr| copyright paper51.com 考生验证失败 http://www.paper51.com |StudenOk| copyright paper51.com 考生验证成功 http://www.paper51.com |GetExamI| http://www.paper51.com
获得考试信息 由模块GetExamInfo获得内容 http://www.paper51.com |SendMsgs| copyright paper51.com 提示信息 paper51.com
|EXOverOK| http://www.paper51.com
考试正常结束(服务器已将成绩保存) 内容来自www.paper51.com |EXOverEr| copyright paper51.com 考试结束异常(服务器未将成绩保存) copyright paper51.com |CheatMsg| 内容来自论文无忧网 www.paper51.com 作弊处理 http://www.paper51.com 模块名: Winsock1_ Error (Winsock事件) paper51.com 参数: (ByVal Number AsInteger, Description As String, ByVal Scode As Long, ByVal Source As String,ByVal HelpFile As String, ByVal HelpContext As Long, CancelDisplay As Boolean)系统给定 copyright paper51.com 功能:捕捉与服务器连接的错误 http://www.paper51.com 设计构思: paper51.com
此事件的得到出发是从FrmLogon(登录窗口)中输入IP地址及准考证后连接服务器。TryHost是FrmMain中的全局变量是连接服务器次数的关键字.只要未连接到服务器并TryHost未满6次则不停的连接服务器 copyright paper51.com 3.1.2 ExamManageSystem.FrmLogin考试登录 copyright paper51.com
文件名:FrmLogin.frm 内容来自论文无忧网 www.paper51.com
本块功能说明:对考生进行验证。如果已经进入考试状态服务器监考老师可公布服务器的IP地址给考生考生输入服务器地址和准考证号进行登录考试。 copyright paper51.com
内容来自www.paper51.com 窗口界面 copyright paper51.com
模块名: CmdLogin_Click (CommandButton事件) 内容来自www.paper51.com 参数: 无 内容来自www.paper51.com
功能:登录服务器 内容来自www.paper51.com
设计构思: http://www.paper51.com 通过主窗口的WINSOCK控件连接服务器,如果未连接到服务器则尝试连接7次 内容来自www.paper51.com 3.1.3 ExamManageSystem.FrmDownLoad下载考题窗口 内容来自论文无忧网 www.paper51.com 文件名:FrmDownLoad.frm copyright paper51.com 本块功能说明:本块主要功能是从服务器端下载题库。通过向服务器发送题库下载请求,进行第一次握手。服务器做出应答后,获得服务器开通端口连接到服务器并进行文件传输。 http://www.paper51.com
copyright paper51.com 窗口界面 http://www.paper51.com 模块名: Init copyright paper51.com 参数: 无 http://www.paper51.com 功能:初始化窗口 http://www.paper51.com 设计构思: 内容来自www.paper51.com
通过查找Exambak.bak来 和比较Exambak.bak大小来判断是否已经下载过考题库,如果未下载则向服务器发送下载文件请求,服务器获得请求并分配端口,即发送下载考题库文件请求到服务器;否则则跳过。 paper51.com
模块名: WskFileComm_DataArrival(Winsock事件) http://www.paper51.com 参数: 无 内容来自www.paper51.com 功能:获得服务器发来的文件流并写入文件 内容来自论文无忧网 www.paper51.com 设计构思: paper51.com 服务器发送文件流(文件内容)来时触发该事件,由于通讯非连续性的所以要通过CurrentFileLen全局变量来记录文件写入的当前位置,以便下次数据流来时从CurrentFileLen位置开始写入知道CurrentFileLen>= DownFileLenCount(文件总大小)改值在考生登录时已经获得。 内容来自www.paper51.com 3.1.4 ExamManageSystem.FrmBulid随机生成考题窗口 paper51.com 文件名:FrmBulid.frm http://www.paper51.com
本块功能说明:考试题目初始化,根据有无备份文件来判断,是随机生成题目还是还原从备份文件中还原题目信息 paper51.com
paper51.com 没有备份文件时 内容来自论文无忧网 www.paper51.com copyright paper51.com 有备份文件时 paper51.com 模块名: RndSubject http://www.paper51.com 参数: 无 http://www.paper51.com 功能:随机出题 内容来自论文无忧网 www.paper51.com
设计构思: 内容来自www.paper51.com 通过已经分配好大小的数组FillSubject()填空题SingleChoiceSubject()单选题MultiChoiceSubject()多选题OperationSubject()操作题 分别从题库中找取相应的表单随机抽取表单中的记录的位置分别放入数组中形成索引。 内容来自论文无忧网 www.paper51.com 模块名: ResumeSubject 内容来自www.paper51.com 参数: 无 http://www.paper51.com
功能:还原题目 copyright paper51.com 设计构思: copyright paper51.com 通过已经分配好大小的数组FillSubject()填空题SingleChoiceSubject()单选题MultiChoiceSubject()多选题OperationSubject()操作题 分别从备份文件中提取出来放入数组中形成索引。 copyright paper51.com |