四川管理职业学院 四川成都 611732
【摘 要】为了实现对试题进行程序化编制,需要操作Word文档。本文试验并给出了一种算法,可以实现用软件操作Word文档的目的。
【关键词】自动化组卷;Word文档的组织;组卷算法
1.引言
利用网络平台进行在线考试时,经常需要重新对试题进行组织。为了实现自动化组题,多数课题基于传统的数据库组卷系统进行研究。
研究的对象大多数是建立在试题库的基础上通过选题、组题和组卷算法而实现组卷。为了实现对试卷进行程序化编制,本文试验并给出了一种操作Word文档的算法,达到组卷的目的。
期刊文章分类查询,尽在期刊图书馆
2.合并Word文档算法的实现
下面是合并Word文档中的表格的主要代码,跳过表头和空行进行复制:
首先计算表的数目
intTables=docCopy.Tables.Count
'如果文档中至少有一张表格
Do While intTables>=1
With docCopy.Tables(intTables)'在 intTables表中
'在表格末尾添加新行
For Each rowTable In.Rows
'对每行单元格数组分配空间
intCells=rowTable.Cells.Count
'默认数组的下标从0开始
'DimstrCells(intCells),则声明了intCells+1个空间的数组
'读每行中的单元格
For Each celRow In rowTable.Cells
intI=celRow.ColumnIndex
'删除多余回车符
strCells(intI)=Replace(strCells(intI),ChrW(7),"",1,-1,vbBinaryCompare)
'删除单元格内结尾字符:
AscW(Right(strCells(intI),1))=7
'设置非空行标志strCells(0)
ElseIf strCells(intI)<>""Then
strCells(0)="NotEmptyLine"
End If
'复制行
If rowLast.Cells.Count<intCells Then
'在新行的末单元格写入复制表格所在的文件名
rowLast.Cells(rowLast.Cells.Count).Range.Text=_
Replace(docCopy.Name,strExtFileName,"",1,-1,vbBinaryCompare)
'写每行中的单元格
For Each celRow In rowLast.Cells
'因集合循环的下标从1开始,所以使用
数组索引从1开始较方便
intI=celRow.ColumnIndex
'列下标计数器
'注意输入数据行存储的数组下标是由数据列数和标志确定的
If intI>UBound(strCells)Then
'如果输入数组中的值已复制完,不再写入新行中
Exit For
End If
celRow.Range.Text=strCells(intI)
Next celRow
'设置格式:不加粗
rowLast.Range.Bold=False
End If
Next rowTable
'复制行
End With
intTables=intTables-1
Loop
'读表格的一行
3.结语
经过试验,使用这种算法,能得到我们所需要的结果试题。
参考文献:
[1]陈运财.在线考试系统中随机抽题算法研究[J].中小企业管理与科技.2009.(4):244.
[2]杨峰.基于遗传算法的试题库管理及自动组卷系统的研究[D].泰安:山东农业大学.2008.
[3]蒲静.岳森.傅饶.通用试卷生成系统的设计与实现[J].合肥:电脑知识与技术.2010.6(7):60.
[4]陈海波.陈虎.试卷生成与测试系统的设计与实现[DB/OL].https://wenku.baidu.com/view/4e72fb7cf46527 d3240ce0ad.html.
[5]李勇.基于决策支持技术的自动组卷系统研究[D].秦皇岛:燕山大学.2001.
中图分类号:TP301.6
文献标志码:A
注:本文属四川管理职业学院科研资助项目。
论文作者:谈云康 瞿荣华 李 娟 尹小辉
论文发表刊物:《成功》2018年第11期
论文发表时间:2019/7/5
标签:算法论文; 数组论文; 下标论文; 文档论文; 表格论文; 系统论文; 单元格论文; 《成功》2018年第11期论文;