以文本方式查看主题

-  Foxtable(狐表)  (http://www.foxtable.com/bbs/index.asp)
--  专家坐堂  (http://www.foxtable.com/bbs/list.asp?boardid=2)
----  [求助]多选题得分自动生成  (http://www.foxtable.com/bbs/dispbbs.asp?boardid=2&id=184410)

--  作者:miaoqingqing
--  发布时间:2022/12/6 15:08:00
--  [求助]多选题得分自动生成
根据多选题得分规则,做题选项vs正确答案,求助自动,录入得分

得分规则;
1、考试中多选题只选对部分,每选对一条给0.5分,最多2分,有5个选项,只要选择错一条,本题得0分!
2、如果多项选择题只有2个正确(最少2个),你全选对,则得2分,有1个选对,其余未选得0.5分,选错一个就为0分啦!
3、如果多项选择题有3个正确,你全选对,则得2分,有1个选对,其余未选得0.5分,选对2个其余未选得1分,选错一个就为0分啦!
4、如果多项选择题有4个正确(最多4个),你全选对,则得2分,有1个选对,其余未选得0.5分,选对2个其余未选得1分,选对3个其余未选得1.5分,选错一个就为0分啦!

 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:多选题得分.table


版本,不能升级,辛苦蓝总把代码贴出来,感谢

--  作者:有点蓝
--  发布时间:2022/12/6 15:14:00
--  
这种业务问题请自行解决。一般遍历处理即可
--  作者:miaoqingqing
--  发布时间:2022/12/6 15:58:00
--  回复:(有点蓝)这种业务问题请自行解决。一般遍历处...
蓝总,论坛里,有类似参考案例吗?
--  作者:有点蓝
--  发布时间:2022/12/6 16:41:00
--  
没有。

1、遍历每一行,
2、这行正确答案放入集合根据集合(正确答案)个数使用不同的规则。
3、遍历用户的答案,判断是否在集合内,如果在,计数+1
4、根据计数值计算分数

--  作者:y2287958
--  发布时间:2022/12/7 10:08:00
--  
For Each dr As DataRow In DataTables("表A").DataRows
    Dim 答案() As String = dr("正确答案").split(",")
    Dim 答题() As String = dr("做题选项").split(",")
    If 答题.Except(答案).Count > 0 Then
        dr("得分") = 0
    ElseIf dr("正确答案") = dr("做题选项") Then
        dr("得分") = 2
    ElseIf 答题.Intersect(答案).Count > 0 Then
        dr("得分") = 答题.Intersect(答案).Count * 0.5
    End If 
Next