一个用于刷题的软件,从Word题库转换并导入,即可开始刷题
演示地址:https://yuannancheng.com/demo/刷题软件/
使用这个工具从 Word 文件解析题库数据:https://gitee.com/yuannancheng/tktq
要求:
- 需按照该仓库中
题库文件/*.docx
规定的格式准备 Word 题库文件 - Python 3.x 环境及安装相关依赖包
- 详细操作步骤请查阅该仓库说明文档 https://gitee.com/yuannancheng/tktq/blob/master/README.md
自己编辑脚本解析 Word 题库文件,并输出符合以下格式的 json
数据文件:
[
{
// 标记是否默认题库
// 如果是放在 static/TestData.json 中打包,则应该填写该字段
// 同时是题库的下标,应该从0开始递增使用,不允许和其他题库重复
"defaultData": 2,
// 题库版本号,允许是小数或整数,每次更新该题库之后需要更改为一个更大的数值
"version": 0.1,
// 题库名称,用于在列表中显示,允许和其他题库名称相同,但不建议这样做
"title": "2021《水利工程造价》理论题库",
// 声明本题库的学科类型,每个学科下面再细分题型及题目id范围
"class": {
// 学科名字可以任意取,但下面的属性名必须用学科名做前缀
"<学科1>": {
// 该学科的题型及对应的题号范围
// 属性名格式:<学科名>_(判断题|单选题|多选题)
// 需要带学科前缀,并使用题型后缀
// 只能是"判断题"、"单选题"、"多选题"三种题型之一
"<学科1>_判断题": [0, 3],
"<学科1>_单选题": [4, 8]
},
"<学科2>": {
"<学科2>_判断题": [9, 12],
"<学科2>_单选题": [13, 16],
"<学科2>_多选题": [17, 22]
},
"<学科3>": {
"<学科3>_判断题": [23],
// 该学科其他题型...
},
// 该题库其他学科及题型范围...
},
// 该题库下所有题目数据,使用 "id" 属性作为唯一下标
// id 从 0 开始,在本题库 "data" 属性内不允许重复
"data": [
// "data" 属性内的每一项数据表示一道题目
{
// 该题的id,必须,不允许同题库内重复
"id": 0,
// 该题的题目,必须
"title": "建筑石膏自生产之日算起,储存期为三个月。()",
// 题型,必须,只能是"判断"、"单选"、"多选"
"题型": "判断",
// 该题选项,如果是判断题,留空数组,如果是选择题,查看下面示例
"选项": [],
// 该题答案,必须,如果是判断题,存入"对"、"错"中的一个
"正确答案": ["对"],
// 学科名,必须,与前面学科、题型声明要一致
"class": "<学科1>"
},
// 学科1其他判断题...
{
"id": 4,
"title": "硅酸盐水泥适用于()。",
"题型": "单选",
// 其他属性要求与判断题一致,选项则填入选择题的所有选项
"选项": [
"A. 大体积混凝土",
"B.快硬高强混凝土",
"C.压力水作用的构筑物",
"D.配制砌筑砂浆"
],
"正确答案": ["B"],
"class": "<学科1>"
},
{
"id": 9,
"title": "由于坝体是散粒材料组成,不会出现整体滑动或倾覆失稳,只可能是局部失稳破坏。",
"题型": "判断",
"选项": [],
"正确答案": ["对"],
// 所有学科的题目数据是并列的
"class": "<学科2>"
},
// 其他题目数据...
{
// 多选题示例
"id": 17,
"title": "橡胶坝一般由( )组成。",
"题型": "多选",
// 选项前缀需要有 [A-Z] 字母,方便查看
// 判分是按照选项下标来判定的,因此需要按字母排序
"选项": [
"A.坝基土建工程",
"B.挡水坝体",
"C.控制系统",
"D.观测系统"
],
// 正确答案属性把该多选题所有答案填入
// 答案只允许是 [A-Z] 字母
"正确答案": ["A", "B", "C", "D"],
"class": "<学科3>"
},
// 其他题目数据...
]
},
// 其他题库数据...
]
使用上面任一种方法生成符合规则的题库数据之后需要将题库数据打包到软件中:
- 克隆本仓库
git clone [email protected]:yuannancheng/tiku.git
- 安装依赖
npm install
- 将生成的题库数据重命名并替换源码中的
static/TestData.json
- 运行该命令打开开发预览
npm run start
- 运行该命令进行打包
npm run build
- 软件能满足一些基本的刷题功能,部分功能有待优化
- 如果你能为项目贡献你的代码,欢迎提交PR