zoukankan      html  css  js  c++  java
  • 一个多选题设计引发的“血案”

      我们在做某某调查问卷,试卷等类型的开发的时候,总会避免不了多选题。然而很多时候,一个多选题的设计,会引来不同的开发结果,这个因人而异。

    以下是我对多选题的设计,提出的解决方法。

     

      我们在高中时代,想必大家对集合的概念都很熟悉吧。下面就来介绍集合是如何解决多选题统分的。

     

     有差集,不给分

     无交集,不给分(排除上一个后这个是考虑空白答卷的情况,如果确认不会有白卷这句可以不用)

     无差集,有交集,交集数量!=答卷,半分

     无差集,有交集,交集数量=答卷,满分(这个可以不写逻辑,直接用else也行,因为排除上面几种情况剩下就是交集相等)

     附上Linq差集、交集、并集的计算

    List<string> ListA = new List<string>();
    
    List<string> ListB = new List<string>();
    
    List<string> ListResult = new List<string>();
    
    
    ListResult = ListA.Distinct().ToList();//去重
    
    ListResult = ListA.Except(ListB).ToList();//差集
    
    ListResult= ListA.Union(ListB).ToList();  //并集
    
    ListResult = ListA.Intersect(ListB).ToList();//交集

     (2)位运算

    可以用位运算来计算

    A:1 B:2 C:4 D:8

    如何选择AB 则为3

    如何选择ABCD 则为15

    比如正确为4 则 看看选择的结果为N跟4比

    if(N==4) 3分

    if 4&N==N 2分
    其他 0分

      位运算是不错的选择,很方便。可是位运算有个取值只能在2^64范围之中,想必超过64个选项的话,就不符合有些项目的实际需求了。

  • 相关阅读:
    MidPayinfoVO
    IPayablebillItf
    预算oracle
    oracle怎么查看表字段的类型
    orcale授权
    ORCAL
    【转】Oracle
    其他网站api
    生成pdf入门
    有关一个java项目到eclipse中运行
  • 原文地址:https://www.cnblogs.com/david1989/p/4249055.html
Copyright © 2011-2022 走看看