填空题答题工具
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界面的,但是出现了有好多问题,争取下次把它和选择题的答题工具搞定。
以上是关于填空题答题工具的主要内容,如果未能解决你的问题,请参考以下文章
Java项目:在线考试系统(单选,多选,判断,填空,简答题)(java+Springboot+ssm+mysql+html+maven)