2.0版本参考地址: https://blog.csdn.net/qq_34457443/article/details/113742369
摘要:
用试题文档(.txt)随机组卷生成试卷文档(.doc),本次代码实现的难点在于扫描试题文档和调整小题在试卷文档中的格式。前者要识别小题题目,识别小题选项。为此需要提前对试题文档做处理,用固定的格式进行输入,如此才能保证在小题不被改变的情况下进行扫描。生成的试卷为Word文档,格式正确,可打印。
关键字:随机选题、调换选项
一:课题要求
课程设计题目:随机组卷程序
基本要求:完成50分。
1. 卷子内容可以任意专业内容。四项单选题。
2. 数据源为50题,随机选择30题。
3. 要求每套题生成后,要方便打印
高级要求:完成每一项10分,
1. 使用外部数据。JDBC
2. 自动输出。
3. 答案顺序随机
4 要基本对齐(4项1行,2项1行,1项1行)
5 要求生成正确答案,单独成1行。
二:课题思路
第一步:构造TheTitle类
作用:1. 存储小题题目、选项、答案;
2.随机调换选项;
3.返回题目,选项,答案;
3.用小题选项ABCD转换为正确选项内容。
第二步:建立main
作用:1. 生成随机选题的标号;
2.扫描试题文件;
3.生成试卷。
三:环境要求
JAVA代码编写软件eclipse + Word软件 + .txt文件
四:实现过程
1:试题文件格式
小题的题首部加上字符“#”,题末尾加上字符“$”;
选项ABCD在一行,D选项的结尾必须是换行符“ ”.
2:试卷文件描述
首先生成小题,而选项基本对齐(4项1行,2项1行,1项1行);然后生成小题答案(5个一行)。
3:设计类titles
题目单独存储于字符串(title),4个选项存储于字符串数组(option),选项存储于字符(abcd)。
成员函数:
StringsearchAnswer(char abcd)用选项abcd返回选项内容; charchangeOption()交换选项内容并返回交换选项后正确的选项;
StringprinTitle() String prinOptionA() String prinOptionB()
StringprinOptionC() StringprinOptionD()返回小题题目和选项字符串。
4:扫描试题文件
第一步:打开试题文件
第二部:读取试题文件
第三部:初始化对象数组
第四部:分析试题文件并将试题保存于对象数组中
5:随机选题
建立一个int数组sorting,长度为试题文件小题总数(50),sorting[0]-[49]分别存储数字0-49。然后借用Random()随机生成0-49内两个数字a,b,交换sorting[a],sorting[b]内存储的数字,交换1000次,目的是为了彻底打乱0-49在sorting中的排序。如此以来,直接选取对象数组titles[sorting[i]](0