背 景:
有些机构有word文档格式的试题,就好比一张试卷样子,有各类型的题目,有答案。而目前系统录入试题的方式是手动添加,并且一次只能添加一道题。所以,做个word试题录入。
需 求:
word格式的试题录入数据库。保留word格式,比如上下脚标,以及字体颜色之类的。
难 点:
word格式多,并且相当灵活,用户可以随时录入回车符,空行等。这就造成解析word文档逻辑很麻烦,因为不无法控制用户怎样录入试题进入word文档。
最终设计:
开源软件比如poi无法做到读取word格式,也就是poi做不到读字体颜色和上下脚标。而且设计的word模板无图片、音频、解析、大纲、知识点等内容。
思路一:标识一道题的所有信息。
题型:单选回车符
题干:你是在做自己喜欢的事情吗?回车符
知识点:做自己回车符
难度:0.2回车符
分值:3回车符
大纲:做自己回车符
选项-A:是的,一直这样回车符
答案:A回车符
解析:是因为........回车符
说明:别的机构就是这样做的,比如把关键字加上中括号标识。那么这么做,应用程序将会非常繁琐,系统必须对每一行信息进行比对,比如系统是否有这样的知识点和大纲,验证每一项内容。如果解析不符合,则立即反馈。这种思维方式,也是我面对事情一种常规思维方式,就是一套完整的试题信息,然后进行解析并存储。但是这样的格式,word文档看起来其实很繁琐,并且每一道题都有这些关键标识信息。也挺麻烦的。
一种处理方式:利用poi的HWPFDocument转word文档为html文档,然后利用Jsoup工具操作Document(操作DOM),是可以做的,但是得找到规律,并自己也要适当构造一种规律。这样子就用操作String了。
思路二:
##TX##单选回车符
你是在做自己喜欢的事情吗?回车符
A.是的,一直这样回车符
B.是的,一直这样回车符
C.是的,一直这样回车符
D.是的,一直这样回车符
##TX##多选回车符
##Answer##回车符
##AN##单选回车符
A回车符
说明:word文档试题简洁,每一类题型都有一个标识,并且整篇word文档唯一。有答案分割,各题型分割,各题型答案分割。这种设计格式简单,将一件事分成两部分做。把word文档中的试题取出来,set到试题这个对象中,然后带到页面展示,在页面中有试题相关信息,大纲、知识点、分值、难度、图片、音频、试题解析都可以继续修改,并且当前试题的答案以及各选项和题干都可以再次修改。当点击保存编辑时,把当前题保存了,并且把第二题响应到页面,直到最后一题。
优化word模板:把答案放在试题后面这样子就少了很多解析内容,并且操作起来很简单。
更多推荐
word试题模板设计总结
发布评论