在线考试数据的提交方法及装置与流程

文档序号:11251819阅读:2099来源:国知局
在线考试数据的提交方法及装置与流程

本发明涉及在线考试领域,特别涉及一种在线考试数据的提交方法及装置。



背景技术:

在线考试是指通过计算机在网络媒体上进行考试过程的一种考试形式,因为计算机故障或网络异常会导致用户在考试过程中出现异常中断情况,所以需要实时的记录用户的考试过程,以便在考试中断的情况发生时能够快速的恢复用户的答题记录,确保用户在线考试成绩的准确性。

传统的在线考试在实时记录用户答题数据的时候,通常会采用在用户修改答案的时候实时记录答题数据信息,但是这样会导致对服务器的http请求急剧上升,而且可能会存在用户快速随意切换答案选项,导致对服务器的恶意攻击,当请求连续超出一定数量的时候,很容易导致系统崩溃。另一种实时记录的思路是采用定时器定时提交答题数据信息的方法,通过设置间隔阈值,如10~30秒,当间隔时间到达设定阈值的时候,统一提交考试表单,并更新考试记录。该方法虽然可以防止因快速切换答案选项而导致对服务的恶意攻击,但同样只是治标不治本,首先如果阈值设置太短,则请求并没有减少,因为每次更新答题记录都需要提交所有试题的答案数据,如果题目数据过多,这时请求并没有减少,而且会增加大并发的风险,其次如果阈值设置过大,则会导致记录的答题数据不准确。



技术实现要素:

本发明要解决的技术问题在于,针对现有技术的上述缺陷,提供一种能有效防止用户频繁的修改答题结果或恶意的提交操作、最大限度减少对服务器端的请求数量、降低服务器端的并发压力、能有效保证用户在线考试成绩的准确性的在线考试数据的提交方法及装置。

本发明解决其技术问题所采用的技术方案是:构造一种在线考试数据的提交方法,包括如下步骤:

a)用户进入在线考试系统;

b)初始化堆栈管理器;所述堆栈管理器用于负责堆栈和定时任务的管理;

c)所述用户对试卷中的试题进行作答;

d)判断当前试题是否为第一次作答,如是,执行步骤e);否则,执行步骤f);

e)所述堆栈管理器为所述试题创建一个独立的堆栈和定时器,并使用所述堆栈存储所述当前试题的答题记录,执行步骤h);

f)更新堆栈数据,执行步骤g);

g)当所述定时器达到设定的时间间隔阈值,且所述堆栈中存在所述试题的答题记录时,则执行步骤h);

h)将所述堆栈中当前试题的答题记录提交至服务器端进行保存,执行步骤i);

i)所述用户答完试卷中的所有试题,点击提交试卷;

j)遍历所述堆栈管理器中的堆栈列表,找到还未提交的答题记录,并将其提交至所述服务器端进行保存,并完成所有试题的答题记录的更新;

k)关闭定时任务,并销毁所述堆栈管理器;

l)完成交卷。

在本发明所述的在线考试数据的提交方法中,所述步骤f)进一步包括:

f1)将当前试题的第二次及后续的答题记录插入到所述堆栈中;

f2)当所述堆栈中存在所述当前试题的答题记录时,则修改所述堆栈中的答题记录。

在本发明所述的在线考试数据的提交方法中,所述设定的时间间隔阈值为10~15秒。

本发明还涉及一种实现上述在线考试数据的提交方法的装置,包括:

考试系统进入单元:用于使用户进入在线考试系统;

初始化单元:用于初始化堆栈管理器;所述堆栈管理器用于负责堆栈和定时任务的管理;

试题作答单元:用于使所述用户对试卷中的试题进行作答;

作答判断单元:用于判断当前试题是否为第一次作答;

堆栈定时器创建单元:用于使所述堆栈管理器为所述试题创建一个独立的堆栈和定时器,并使用所述堆栈存储所述当前试题的答题记录;

堆栈数据更新单元:用于更新堆栈数据;

条件判断单元:用于当所述定时器达到设定的时间间隔阈值,且所述堆栈中存在所述试题的答题记录时,则转到答题记录定时提交单元;

答题记录定时提交单元:用于将所述堆栈中当前试题的答题记录提交至服务器端进行保存;

试卷提交单元:用于使所述用户答完试卷中的所有试题,点击提交试卷;

遍历更新单元:用于遍历所述堆栈管理器中的堆栈列表,找到还未提交的答题记录,并将其提交至所述服务器端进行保存,并完成所有试题的答题记录的更新;

堆栈定时关闭单元:用于关闭定时任务,并销毁所述堆栈管理器;

交卷完成单元:用于完成交卷。

在本发明所述的装置中,所述堆栈数据更新单元进一步包括:

答题记录插入模块:用于将当前试题的第二次及后续的答题记录插入到所述堆栈中;

答题记录修改模块:用于当所述堆栈中存在所述当前试题的答题记录时,则修改所述堆栈中的答题记录。

在本发明所述的装置中,所述设定的时间间隔阈值为10~15秒。

实施本发明的在线考试数据的提交方法及装置,具有以下有益效果:由于在用户进入在线考试系统时,会初始化堆栈管理器,当用户对某道试题第一次作答时,堆栈管理器会为该试题创建一个堆栈,同时立即将试题的答题记录提交至服务器端保存。用户在第二次进行作答时不会立即将试题的答题记录提交至服务器端保存,而是通过将试题的答题记录保存至该堆栈中,同时启动一个定时任务,设置时间间隔阈值,在时间间隔阈值内,用户再次作答,试题的答题记录只会更新至该试题的堆栈中,当定时任务达到间隔阀值,再取出堆栈中的试题的答题记录提交至服务器端进行保存;当用户完成所有试题的作答,点击提交试卷时,堆栈管理器会遍历堆栈列表,将未保存的试题答题记录提交至服务器端进行保存,同时关闭定时任务,销毁堆栈管理器,完成交卷;通过堆栈管理器实现对用户答题数据的管理,能有效防止用户频繁的修改答题结果或恶意的提交操作、最大限度减少对服务器端的请求数量、降低服务器端的并发压力、能有效保证用户在线考试成绩的准确性。

附图说明

为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。

图1为本发明在线考试数据的提交方法及装置一个实施例中方法的流程图;

图2为所述实施例中更新堆栈数据的具体流程图;

图3为所述实施例中装置的结构示意图。

具体实施方式

下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。

在本发明在线考试数据的提交方法及装置实施例中,其在线考试数据的提交方法的流程图如图1所示。图1中,该在线考试数据的提交方法包括如下步骤:

步骤s01用户进入在线考试系统:本步骤中,用户点击开始考试,打开考试页面,也就是进入在线考试系统。

步骤s02初始化堆栈管理器:本步骤中,初始化堆栈管理器,堆栈管理器用于负责堆栈和定时任务的管理。

步骤s03用户对试卷中的试题进行作答:本步骤中,用户对试卷中的试题进行作答。

步骤s04判断当前试题是否为第一次作答:本步骤中,判断当前试题是否为第一次作答,如果判断的结果为是,则执行步骤s05;否则,执行步骤s06。

步骤s05堆栈管理器为试题创建一个独立的堆栈和定时器,并使用堆栈存储当前试题的答题记录:如果上述步骤s04的判断结果为是,即当前试题是第一次作答,则执行本步骤。本步骤中,堆栈管理器为试题创建一个独立的堆栈和定时器(即定时任务),并使用堆栈存储该当前试题的答题记录。执行完本步骤,执行步骤s08。

步骤s06更新堆栈数据:如果上述步骤s04的判断结果为否,即当前试题不是第一次作答,则执行本步骤。本步骤中,更新堆栈数据。执行完本步骤,执行步骤s07。

步骤s07当定时器达到设定的时间间隔阈值,且堆栈中存在试题的答题记录时:本步骤中,当定时器达到设定的时间间隔阈值,且堆栈中存在试题的答题记录时,则执行步骤s08。值得一提的是,本实施例中,上述设定的时间间隔阈值为10~15秒。当然,在本实施例的一些情况下,设定的时间间隔阈值也可以为其他值。

步骤s08将堆栈中当前试题的答题记录提交至服务器端进行保存:本步骤中,堆栈将当前试题的答题记录提交至服务器端进行保存,也就是更新答题记录。执行完本步骤,执行步骤s09。

步骤s09用户答完试卷中的所有试题,点击提交试卷:本步骤中,用户答完试卷中的所有试题,点击提交试卷,这时需要更新考试结果。为了保证数据的准确性,需要再次遍历堆栈管理器中的堆栈列表,即执行步骤s10。

步骤s10遍历堆栈管理器中的堆栈列表,找到还未提交的答题记录,并将其提交至服务器端进行保存,并完成所有试题的答题记录的更新:本步骤中,遍历堆栈管理器中的堆栈列表,找到还未提交的答题记录,并将其提交至服务器端进行保存,并完成所有试题的答题记录的更新。当所有试题的答题记录更新完成时,则执行步骤s11。

步骤s11关闭定时任务,并销毁堆栈管理器:本步骤中,关闭定时任务,并销毁堆栈管理器。

步骤s12完成交卷:本步骤中,完成交卷。

在本发明的方法中,由于在用户进入在线考试系统时,会初始化堆栈管理器,当用户对某道试题第一次作答时,堆栈管理器会为该试题创建一个堆栈,同时立即将试题的答题记录提交至服务器端保存。用户在第二次进行作答时不会立即将试题的答题记录提交至服务器端保存,而是通过将试题的答题记录保存至该堆栈中,同时启动一个定时任务,设置时间间隔阈值,在时间间隔阈值内,用户再次作答,试题的答题记录只会更新至该试题的堆栈中,当定时任务达到间隔阀值,再取出堆栈中的试题的答题记录提交至服务器端进行保存;当用户完成所有试题的作答,点击提交试卷时,堆栈管理器会遍历堆栈列表,将未保存的试题答题记录提交至服务器端进行保存,同时关闭定时任务,销毁堆栈管理器,完成交卷;通过堆栈管理器实现对用户答题数据的管理,能有效防止用户频繁的修改答题结果或恶意的提交操作、最大限度减少对服务器端的请求数量、降低服务器端的并发压力、能有效保证用户在线考试成绩的准确性。

对于本实施例而言,上述步骤s06还可进一步细化,其细化后的流程图如图2所示。图2中,上述步骤s06进一步包括:

步骤s61将当前试题的第二次及后续的答题记录插入到堆栈中:本实施例中,当前试题的第二次及后续答题记录都不会直接提交至服务器端,而是插入到堆栈中。本实施例中,将当前试题的第二次及后续的答题记录插入到堆栈中。

步骤s62当堆栈中存在当前试题的答题记录时,则修改堆栈中的答题记录:本步骤中,当堆栈中存在当前试题的答题记录时,则修改堆栈中的答题记录,因为只需要提交最后一次的答题记录即可。

本实施例还涉及一种实现上述在线考试数据的提交方法的装置,该装置的结构示意图如图3所示。图3中,该装置包括考试系统进入单元1、初始化单元2、试题作答单元3、作答判断单元4、堆栈定时器创建单元5、堆栈数据更新单元6、条件判断单元7、答题记录定时提交单元8、试卷提交单元9、遍历更新单元10、堆栈定时关闭单元11和交卷完成单元12;其中,考试系统进入单元1用于使用户进入在线考试系统;初始化单元2用于初始化堆栈管理器;该堆栈管理器用于负责堆栈和定时任务的管理;试题作答单元3用于使用户对试卷中的试题进行作答;作答判断单元4用于判断当前试题是否为第一次作答;堆栈定时器创建单元5用于使堆栈管理器为试题创建一个独立的堆栈和定时器,并使用堆栈存储当前试题的答题记录。

堆栈数据更新单元6用于更新堆栈数据;条件判断单元7用于当定时器达到设定的时间间隔阈值,且堆栈中存在试题的答题记录时,则转到答题记录定时提交单元;值得一提的是,本实施例中,上述设定的时间间隔阈值为10~15秒。当然,在本实施例的一些情况下,设定的时间间隔阈值也可以为其他值。

答题记录定时提交单元8用于将堆栈中当前试题的答题记录提交至服务器端进行保存;试卷提交单元9用于使用户答完试卷中的所有试题,点击提交试卷;遍历更新单元10用于遍历堆栈管理器中的堆栈列表,找到还未提交的答题记录,并将其提交至服务器端进行保存,并完成所有试题的答题记录的更新;堆栈定时关闭单元11用于关闭定时任务,并销毁堆栈管理器;交卷完成单元12用于完成交卷。

在本发明的装置中,由于在用户进入在线考试系统时,会初始化堆栈管理器,当用户对某道试题第一次作答时,堆栈管理器会为该试题创建一个堆栈,同时立即将试题的答题记录提交至服务器端保存。用户在第二次进行作答时不会立即将试题的答题记录提交至服务器端保存,而是通过将试题的答题记录保存至该堆栈中,同时启动一个定时任务,设置时间间隔阈值,在时间间隔阈值内,用户再次作答,试题的答题记录只会更新至该试题的堆栈中,当定时任务达到间隔阀值,再取出堆栈中的试题的答题记录提交至服务器端进行保存;当用户完成所有试题的作答,点击提交试卷时,堆栈管理器会遍历堆栈列表,将未保存的试题答题记录提交至服务器端进行保存,同时关闭定时任务,销毁堆栈管理器,完成交卷;通过堆栈管理器实现对用户答题数据的管理,能有效防止用户频繁的修改答题结果或恶意的提交操作、最大限度减少对服务器端的请求数量、降低服务器端的并发压力、能有效保证用户在线考试成绩的准确性。

本实施例中,堆栈数据更新单元6进一步包括答题记录插入模块61和答题记录修改模块62;其中,答题记录插入模块61用于将当前试题的第二次及后续的答题记录插入到堆栈中;答题记录修改模块62用于当堆栈中存在当前试题的答题记录时,则修改堆栈中的答题记录。

总之,本发明从数据并发请求和效率方面做了改进,用堆栈管理器对用户的答题结果进行管理,可以有效防止用户频繁的修改答题结果或者恶意的提交操作,最大限度减少对服务器的请求数量,降低服务器端的并发压力,同时能有效保证用户在线考试成绩的准确性。

以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1