如何实现随机抽取考卷作答
场景/功能描述
随机抽取考题,考题分为多种类型,需求是实现随机抽取作答
思路流程
需要创建一个考卷基础表,用于录入不同考卷和考题,使用者可以用批量导入的方式快速导入考卷
创建考试应用,用代码块的方式对考题排序进行随机,再通过关联的方式拉取考题作答。
配置过程
表单设计
考卷基础表


其中:【考卷编号】、【正确答案】为单行文本,【题目类型】为下拉选择(包含单选、多选、不定项选择、判断题),【题目序号】为数字字段,【题干】是多行文字
考试应用






字段详情
【最终得分】

【得分等级】

【考试日期】

【考生】

【考卷编号】

【随机抽取考卷】

var num1 = qf_field.{单选题数量$$1876B9AB2$$}
var num2 = qf_field.{多选题数量$$1876B9AC8$$}
var num3 = qf_field.{不定项选择题数量$$1876B9AC9$$}
var num4 = qf_field.{判断题数量$$1876B9ACA$$}
var fullData = {
"单选": generate(num1),
"多选": generate(num2),
"不定项": generate(num3),
"判断": generate(num4)
}
function generate(num) {
var data = [];
var newData = [];
var table = {};
var result = [];
for (var i = 0; i < num; i++) {
var n = Math.random()
data.push(n)
}
newData = [...data];
// 升序排序
newData.sort();
// 结果降序
//newData.reverse();
for (var i = 0; i < newData.length; i++) {
table[newData[i]] = i + 1;
}
for (var i = 0; i < num; i++) {
var no = table[data[i]].toString()
result.push(
{
"排序号": no
}
)
}
return result;
}
qf_output = fullData



【单选题共计得分】

【单选题表格】


【表格.题干】

【表格.正确答案】

【表格.得分】

(其余题型类似)
实现效果
在考卷基础表中导入考卷
在考卷应用中选择考卷编号,选择考题数量,自动随机拉取考卷进行作答。


小计和总分会根据答题情况自动算分。
可以创建一个门户来展示考试报表数据

ps.根据具体场景修改字段权限和流程。