「已注销」 2008-08-12 15:30
浏览 245
已采纳

批改多项选择题问题.

被这个问题烦很久了.
希望大家能帮忙解答下.

数据库中答案那里是这样的.
A&B&D

从用户那里得到一个数组.
["A", "B", "D"]
也可能是其子集.
也可能是["A", "B", "C"]

怎样判断正确,部分正确,错误呢.

不胜感激.

  • 写回答

2条回答 默认 最新

  • iteye_14762 2008-08-12 16:15
    关注

    贴一个Java的:
    [code="java"]
    public class TTG extends TestCase {

    public void testCase() {
        assertEquals("right", check("A&B&D", new String[] { "A", "B", "D" }));
        assertEquals("partRight", check("A&B&D", new String[] { "A" }));
        assertEquals("partRightPartError", check("A&B&D", new String[] { "A", "C" }));
        assertEquals("partRightPartError", check("A&B&D", new String[] { "A", "C", "G", "S" }));
        assertEquals("error", check("A&B&D", new String[] { "C", "E" }));
    }
    
    private String check(String answer, String[] userAnswer) {
        boolean isAllRight = true;// 用户给的答案是不是全对, 如果是, 比较个数
        boolean hasOptionRight = false; // 用户给的答案有没有对的
        for (String item : userAnswer) {
            if (answer.contains(item.trim())) {
                hasOptionRight = true;
            } else {
                if (isAllRight) {
                    isAllRight = false;
                }
            }
        }
        // 全对, 比较个数
        if (isAllRight) {
            if ((userAnswer.length * 2 - 1) == answer.length()) {
                return "right";
            } else {
                return "partRight";
            }
        }
        // 错误答案 , 是否有正确答案
        if (hasOptionRight) {
            return "partRightPartError";// 部分对, 部分错
        } else {
            return "error";
        }
    }
    

    }
    [/code]

    ps;e文比较乱, 不会翻译, 哈哈!

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(1条)

报告相同问题?

悬赏问题

  • ¥15 HLs设计手写数字识别程序编译通不过
  • ¥15 Stata外部命令安装问题求帮助!
  • ¥15 从键盘随机输入A-H中的一串字符串,用七段数码管方法进行绘制。提交代码及运行截图。
  • ¥15 TYPCE母转母,插入认方向
  • ¥15 如何用python向钉钉机器人发送可以放大的图片?
  • ¥15 matlab(相关搜索:紧聚焦)
  • ¥15 基于51单片机的厨房煤气泄露检测报警系统设计
  • ¥15 Arduino无法同时连接多个hx711模块,如何解决?
  • ¥50 需求一个up主付费课程
  • ¥20 模型在y分布之外的数据上预测能力不好如何解决