一种基于ssh的在线教育网站的试题批量上传方法
【技术领域】
[0001]本发明属于软件可靠性领域,具体地说是基于SSH开发的在线教育网站中,在后台批量上传试题时的一种智能解析方法。
【背景技术】
[0002]随着网络技术的发展,在线教育模式也不断普及,为了巩固知识点,在每个章节后都会有相应的试题,试题是在服务器端添加的。传统的试题上传模式有两种,一种是逐题上传,即通过填写题目信息一题一题地添加;另一种模式是批量上传,该种模式又分为两种,第一种是excel上传方式,即把题目的各个部分按照事先规定好的规则放入excel表格中并上传到服务器,第二种是word上传方式,即编辑格式符合要求的word文档,并上传。显而易见,逐题上传模式效率低下,现在已经很少使用;批量上传中excel上传方式并不符合大部分试题的编辑模式,电子试题一般是用word来编辑,所以word上传方式在试题上传方法中更加普遍,但是该方式中存在一个问题,即需要按照固定的规则来编辑文档,对文档的格式有很高的要求,如果文档中的某个部分不符合要求,则会导致服务器无法解析该部分而上传失败,大大影响了工作效率。
【发明内容】
[0003]本发明为现有技术存在的不足之处,提出一种基于SSH的在线教育网站的试题批量上传方法,在word上传方式的基础上,不需要规定上传文档的格式,就可以智能、准确地解析文档中的试题,完成上传工作,从而减少编辑人员的工作量,提高效率。
[0004]本发明为解决技术问题采用如下技术方案:
[0005]本发明一种基于SSH的在线教育网站的试题批量上传方法,所述在线教育网站中包含题库和服务器,其特点是,所述试题批量上传方法是按如下步骤进行:
[0006]步骤1、在word文档中编辑四种试题类型,包括:选择题、填空题、判断题和问答题;
[0007]所述选择题包括选择题干和选项;
[0008]所述填空题包括填空题题干和特殊字符;所述特殊字符包括下划线和圆括号;
[0009]所述判断题包括判断题题干和末尾圆括号;
[0010]所述问答题包括问答题题干;
[0011 ]步骤2、所述服务器存储四种解析模式,包括:第一解析模式、第二解析模式、第三解析模式和第四解析模式;
[0012]所述第一解析模式是以字母和标点符号的组合为首或以括号和字母的组合为首或字母和空格为首的形式,表示选择题的选项;
[0013]所述第二解析模式是带有多个空格的括号且句尾为标点符号或包含下划线且句尾为标点符号的形式,表示填空题题干;
[0014]所述第三解析模式是以带有多个空格的括号作为句尾的形式,表示判断题题干;
[0015]所述第四种解析模式是字母或以字母和标点符号的组合或以括号和字母的组合的形式,表示选择题的选项字母;
[0016]步骤3、将所述word文档上传至所述在线教育网站中;
[0017]步骤4、所述服务器读取所述word文档并进行分段处理,获得η个段落并依次存入数组arr [η]中;
[0018]步骤5、定义循环变量i和j、选项变量C、分隔符W、试题类型链表Τ、试题题干链表S、试题选项链表L和标识符flag;定义flag=l表示选择题、£]^〖=2表示填空题、£]^〖=3表示判断题、f lag = 4表示问答题;
[0〇19]步骤6、初始化i = l;
[0020]步骤7、所述服务器读取arr [ i ],并判断i = 1是否成立,若成立,则将arr [ i ]存入所述试题题干链表S中;并执行步骤8,否则,执行步骤11;
[0021 ]步骤8、利用所述第二解析模式判断arr [ i ]是否为填空题题干;若为填空题题干,则flag = 2;并执行步骤10;否则,执行步骤9;
[0022]步骤9、利用第三解析模式判断arr[i]是否为判断题题干,若是判断题题干,则令flag = 3;否贝1J,令 flag = 4;
[0023]步骤10、将i+1赋值给i后,返回步骤7执行,直到i>n为止后,执行步骤19;
[0024]步骤11、利用第一解析模式判断arr[i ]是否为选择题的选项,若是,则令flag = 1,并执行步骤12;否则,执行步骤17;
[0025]步骤12、根据空格将arr[i]进行分割,获得m个语段dia[m];
[0026]步骤13、初始化j = l;
[0027]步骤14、利用第四解析模式判断第j个语段dia[j]是否为选择题的选项字母;若是,则将分隔符W和第j个语段dia[j]—起添加到选项变量C中;否则,将第j个语段dia[j]添加到选项变量C中;
[0028]步骤15、将j+Ι赋值给j后,返回步骤14执行,直到j >m为止;
[0029]步骤16、将i+1赋值给i后,返回步骤7执行,直到i>n为止后,执行步骤19;
[0030]步骤17、将flag存入试题类型链表T中,并判断flag= 1是否成立,若成立,则将选项变量C存入所述试题选项链表L中,否则,将空值存入所述试题选项链表L中;
[0031 ] 步骤18、将arr [ i ]存入所述试题题干链表S中,并返回步骤8执行;
[0032]步骤19、遍历试题类型链表T、试题题干链表S和试题选项链表L,分别获得各个试题的类型、题干和选项并存入所述题库中,从而完成试题的批量上传。
[0033]与现有技术相比,本发明的有益效果在于:
[0034]1、本发明通过读取文档到服务器,获得所有段落,根据段落是否匹配定义好的解析模式,来判断题目的类型,并存储到数据库里面;从而克服了传统方法中逐题上传的低效率问题,减少了上传试题的时间,同时克服了excel上传方式中编辑不便的问题,解决了现有word上传方式中文档必须遵守一定规则的问题,智能地解析了文档,提高了效率。
[0035]2、本发明通过总结所有题型的特征,定义全面的解析模式,判断每个段落匹配哪个模式,从而准确地判断题目的类型,实现了智能、准确地解析文档。
[0036]3、本发明通过以空格作为分隔符分割包含多个选项的段落,得到语段数组,并通过解析模式来判断各个语段是否是选项的字母部分,从而做出相应的处理,进而得到正确的选项部分,解决了 word文档中多个选项放在一个段落的情况以及单个选项中出现空格的情况,保证了解析的正确性。
【具体实施方式】
[0037]本实施例中的在线教育网站中包含题库和服务器,一种基于SSH的在线教育网站的试题批量上传方法是:首先,定义四种解析模式;其次,上传文档并获得所有段落;接着,通过解析模式判断试题类型,若是判断题,解析选择题选项部分;再次,把每道试题的类型、题干、选项(若有)放到相应链表中,最后遍历链表并存储到数据库。具体的说,是按如下步骤进行:
[0038]步骤1、在word文档中编辑四种试题类型,包括:选择题、填空题、判断题和问答题;
[0039]选择题包括选择题干和选项;
[0040]填空题包括填空题题干和特殊字符;特殊字符包括下划线和圆括号;
[0041 ] 判断题包括判断题题干和末尾圆括号;
[0042]问答题包括问答题题干;
[0043]步骤2、服务器存储四种解析模式,包括:第一解析模式、第二解析模式、第三解析模式和第四解析模式;
[0044]第一解析模式是以字母和标点符号的组合为首或以括号和字母的组合为首或字母和空格为首的形式,表示选择题的选项;
[0045]第二解析模式是带有多个空格的括号且句尾为标点符号或包含下划线且句尾为标点符号的形式,表示填空题题干;
[0046]第三解析模式是以带有多个空格的括号作为句尾的形式,表示判断题题干;
[0047]第四种解析模式是字母或以字母和标点符号的组合或以括号和字母的组合的形式,表示选择题的选项字母;
[0048]经分析,选择题的选项是以形如“A.”、“A、”、“A)”和“(A)”四种形式开头的,因此第一解析模式用来判断选择题的选项;填空题中会包含形如“()”或“____”的形式,所以可以利用第二解析模式来判断是否是为填空题题干;判断题是以形如“()”的形式结尾的,所以,可以利用第三解析模式来判断是否判断题;而第四种解析模式会在步骤12中解释。
[0049]步骤3、将word文档上传至在线教育网站中;
[0050]步骤4、服务器读取word文档并进行分段处理,获得η个段落并依次存入数组arr[η]中;
[0051]步骤5、定义循环变量i和j、选项变量
C、分隔符W、试题类型链表Τ、试题题干链表S、试题选项链表L和标识符flag;定义flag=l表示选择题、£]^〖=2表示填空题、£]^〖=3表示判断题、f lag = 4表示问答题;
[0052]选择题的各个选项通过分隔符W连接并存入选项变量C中,在从题库中读取试题并显示时,通过分隔符W分割选项变量C便可得到各个选项。
[0053]步骤6、初始化i = l;
[0054]步骤7、服务器读取arr[i],并判断i= l是否成立,若成立,则将arr[i]存入试题题干链表S中;并执行步骤8,否则,执行步骤11;
[0055]Word文档的第一段落一定是第一题的题干部分,所以可以直接把第一段落存入试题题干链表里,并判断其类型,如步骤8,9所示;若不是第一段落,则可能是选择题选项部分或者是一道试题的题干,所以要进行判断,如步骤11所示。
[0056]步骤8、利用第二解析模式判断arr[i]是否为填空题题干;若为填空题题干,则flag = 2;并执行步骤10;否则,执行步骤9 ;
[0057]步骤9、利用第三解析模式判断arr[i]是否为判断题题干,若是判断题题干,则令flag = 3;否贝1J,令 flag = 4;
[0058]步骤10、将i+Ι赋值给i后,返回步骤7执行,直到i > η为止后,执行步骤19;
[0059]步骤11、利用第一解析模式判断arr[i ]是否为选择题的选项,若是,则令flag = 1,并执行步骤12;否则,执行步骤17;
[0060]步骤12、根据空格将arr[i]进行分割,获得m个语段dia[m];
[0061]因一个段落中可能包含多个选项,各个选项之间又是通过空格来分割的,所以通过空格来分割数组arr [ i ],得到多个语段,并进行相应的处理。
[0062]步骤13、初始化j = l;
[0063]步骤14、利用第四解析模式判断第j个语段dia[j]是否为选择题的选项字母;若是,则将分隔符W和第j个语段dia[j]—起添加到选项变量C中;否则,将第j个语段dia[j]添加到选项变量C中;
[0064]因为在一个选项中可能会有空格,所以不能简单的把多个语段连接到一起,而是通过判断是不是一个选项的选项字母来做相应的处理。步骤2中的第四种解析模式就是来判断选项字母的,如果dia[ j]是以形如“A)”、“(A”、“(A)”、“A、”、“A.”作为开头或只是一个字母,则认为是选项字母,则把分隔符W和dia[j]—同添加到选项变量C,否则dia[j]不是选项字母,而是一个选项的内容部分,则直接将dia[ j ]添加到选项变量C。例如,在如下试题中
[0065]11.取出关系中的某些列,并消去重复的元组的关系运算称为()
[0066]A.取列运算B.投影运算C.连接运算D.选择运算
[0067]利用空格进行分割后得到的语段数组为{[A.取列运算],[B],[.投影运算],[C.连接运算],[D.],[选择运算]},通过第四种解析模式,可知[A.取列运算]、[B]、[C.连接运算]和[D.]是选项字母,而[.投影运算]和[选择运算]不是,所以得到的选项变量C为WA.取列运算W B.投影运算W C.连接运算W D.选择运算,从而正确地解析各个选项。
[0068]步骤15、将j+Ι赋值给j后,返回步骤14执行,直到j >m为止;
[0069]步骤16、将i+1赋值给i后,返回步骤7执行,直到i>n为止后,执行步骤19;
[0070]步骤17、将flag存入试题类型链表T中,并判断flag= 1是否成立,若成立,则将选项变量C存入试题选项链表L中,否则,将空值存入试题选项链表L中;
[0071 ] 如果该试题是选择题,则把选项变量放入选项链表L中,否则,把空值放入选项链表L中,以保证在步骤19中同时遍历三个链表时正确获得每一试题的各个部分。
[0072]步骤18、将arr[i]存入试题题干链表S中,并返回步骤8执行;
[0073]步骤19、遍历试题类型链表T、试题题干链表S和试题选项链表L,分别获得各个试题的类型、题干和选项并存入题库中,从而完成试题的批量上传,克服了传统方法中逐题上传的低效率问题,减少了上传试题的时间,同时克服了excel上传方式中编辑不便的问题,解决了现有word上传方式中文档必须遵守一定规则的问题。
【主权项】
1.一种基于SSH的在线教育网站的试题批量上传方法,所述在线教育网站中包含题库和服务器,其特征是,所述试题批量上传方法是按如下步骤进行: 步骤1、在word文档中编辑四种试题类型,包括:选择题、填空题、判断题和问答题; 所述选择题包括选择题干和选项; 所述填空题包括填空题题干和特殊字符;所述特殊字符包括下划线和圆括号; 所述判断题包括判断题题干和末尾圆括号; 所述问答题包括问答题题干; 步骤2、所述服务器存储四种解析模式,包括:第一解析模式、第二解析模式、第三解析模式和第四解析模式; 所述第一解析模式是以字母和标点符号的组合为首或以括号和字母的组合为首或字母和空格为首的形式,表示选择题的选项; 所述第二解析模式是带有多个空格的括号且句尾为标点符号或包含下划线且句尾为标点符号的形式,表示填空题题干; 所述第三解析模式是以带有多个空格的括号作为句尾的形式,表示判断题题干; 所述第四种解析模式是字母或以字母和标点符号的组合或以括号和字母的组合的形式,表示选择题的选项字母; 步骤3、将所述word文档上传至所述在线教育网站中; 步骤4、所述服务器读取所述word文档并进行分段处理,获得η个段落并依次存入数组arr[n]中; 步骤5、定义循环变量i和j、选项变量C、分隔符W、试题类型链表T、试题题干链表S、试题选项链表L和标识符flag;定义flag=l表示选择题、£]^〖=2表示填空题、£]^〖=3表示判断题、f lag = 4表示问答题; 步骤6、初始化i = l; 步骤7、所述服务器读取arr [ i ],并判断i = 1是否成立,若成立,则将arr [ i ]存入所述试题题干链表S中;并执行步骤8,否则,执行步骤11; 步骤8、利用所述第二解析模式判断arr[i]是否为填空题题干;若为填空题题干,则flag = 2;并执行步骤10;否则,执行步骤9 ; 步骤9、利用第三解析模式判断arr[i]是否为判断题题干,若是判断题题干,则令flag=3;否则,令 flag = 4; 步骤10、将i+1赋值给i后,返回步骤7执行,直到i>n为止后,执行步骤19; 步骤11、利用第一解析模式判断arr[i]是否为选择题的选项,若是,则令flag=l,并执行步骤12;否则,执行步骤17; 步骤12、根据空格将arr [ i ]进行分割,获得m个语段dia[m]; 步骤13、初始化j = l; 步骤14、利用第四解析模式判断第j个语段dia[j]是否为选择题的选项字母;若是,则将分隔符W和第j个语段dia[j]—起添加到选项变量C中;否则,将第j个语段dia[j]添加到选项变量C中; 步骤15、将j+Ι赋值给j后,返回步骤14执行,直到j>m为止; 步骤16、将i+Ι赋值给i后,返回步骤7执行,直到i>n为止后,执行步骤19; 步骤17、将flag存入试题类型链表T中,并判断flag=l是否成立,若成立,则将选项变量C存入所述试题选项链表L中,否则,将空值存入所述试题选项链表L中; 步骤18、将arr[i]存入所述试题题干链表S中,并返回步骤8执行; 步骤19、遍历试题类型链表T、试题题干链表S和试题选项链表L,分别获得各个试题的类型、题干和选项并存入所述题库中,从而完成试题的批量上传。
【专利摘要】本发明公开了一种基于SSH的在线教育网站的试题批量上传方法是按如下步骤进行:1定义四种解析模式;2上传文档并获得所有段落;3通过解析模式判断试题类型,若是判断题,解析选择题选项部分;4把每道试题的类型、题干、选项(若有)放到相应链表中5遍历链表并存储到数据库。本发明克服了传统方法中逐题上传的低效率问题,减少了上传试题的时间,同时克服了excel上传方式中编辑不便的问题,解决了现有word上传方式中文档必须遵守一定规则的问题,能够智能地解析文档,提高效率。
【IPC分类】G06F17/21, G06F17/30
【公开号】CN105488171
【申请号】CN201510859847
【发明人】顾乃杰, 刘思婷, 任开新, 林传文
【申请人】合肥康捷信息科技有限公司
【公开日】2016年4月13日
【申请日】2015年11月26日