填空题答题工具

Posted 宏远小七

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了填空题答题工具相关的知识,希望对你有一定的参考价值。

填空题答题工具


你是不是在复习的时候,有很多复习题,那么多题目你是不是要测试一下自己是否真的记住了?你是用什么方法来检验自己的复习结果的(可以在下方投票)。
这次期末考复习,我同学给我用了他用C语言写的复习工具,我觉得很nice,我们学计算机的,自己写个工具方便自己学习,这样才叫学以致用。我习惯用java,所以我向他取经之后,自己做了一个 填空题的答题工具(选择题的正在努力)。功能和他一样,但是思路和他有些区别。

设计思路

结合我同学的思路以及我自己的理解构思了这么一张图。代码都是根据这幅图写的。

运行效果

可以去下载我放在资源上的演示视频,下载地址:填空题答题工具演示视频

关键代码

整个工具分为5个类外加一个文本文件(存放题目)。

获得完整题目类

通过文件流按行读取整个题目文件,再把行作为键,题目为值存放到map集合中,然后返回整个map集合。
关键代码:

 Map<Integer,String> questionMap=new HashMap<>();
 questionMap.put(line,question[line]);//将题目放入questionMap 行数为键 内容为值
 return questionMap;

截取答案类

调用完整题目类获得题目,然后通过关键词截取答案,然后再把答案存放到二维数组中,map集合的键为二维数组的行,列为答案的个数。返回二维数组。
关键代码:

 Map<Integer, String> map = new AllQuestion().question();//调用方法 取得题目
int[] size = new int[10];//存放关键词的数组,如果关键词过多要扩展数组
String substring =null;//截取答案
String[][] rr=new String[map.size()][];//存放答案的二维数组
(tempString.charAt(i)=='_') && (tempString.charAt(i+1)!='_')//关键词的判断
 rr[j][two]=substring;//将答案存入二维数组中
 return rr;

清除答案后的题目类

调用完整题目类获得题目,调用答案类获取答案,用通过map键和二维数组的行相匹配,替换完整题目中的答案,生成没有答案的题目,再将完整题目中map的键和没有答案的题目组成一个新的map集合,再将其返回。
关键代码:

Map<Integer, String> question = new AllQuestion().question();//完整问题
String[][] answer = new Answer().hasQuestion();//答案
String tempString;//获取问题
Map<Integer,String> CleanQuestionMap=new HashMap<>();//存放没有答案的题目的map

tempString.replaceAll(answer[i][j], "");

随机数类

这个类就没什么了,就只是随机生成数,然后存放到数组中,再返回该数组。

做题类

调用没有答案的题目类、答案类已经随机数类。然后先输出题目,在从键盘输入答案,接着把输入的答案和正确答案匹配。

String[][] answer = new Answer().hasQuestion();//获取答案
Map<Integer, String> question = new CleanQuestion().getCleanQuestion();//获取题目
int[] rNum = new RondomNum().RNum();//获得随机生成的数组

(s.equals(answer[i][j])//匹配答案
(flag == rNum.length)//结束答题

题目文件

题目文件就每一个题目都为一行且关键词都是 “_”。


以上就是这个填空题答题工具的设计,如果有需要源码的可以点击这个链接:填空题答题工具源码下载


小吐槽:想着把这个工具搞成GUI界面的,但是出现了有好多问题,争取下次把它和选择题的答题工具搞定。

以上是关于填空题答题工具的主要内容,如果未能解决你的问题,请参考以下文章

填空题答题工具

WPF,制作填空题

梦龙_C语言作业10

Ubuntu Linux操作系统与实验教程(第二版)答案

58集团2017校招笔试-前端岗

大一军事理论名词解释填空题问答题