⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 studyhelper.java

📁 采用Eclispe开发平台
💻 JAVA
📖 第 1 页 / 共 2 页
字号:
            Hashtable h = (Hashtable) choices[i];

            Object seq = h.get("QuestionSeq");
            if (questions.containsKey(seq))
            {
                TreeMap cs = (TreeMap) questions.get(seq);
                cs.put(h.get("ChoiceId"), h.get("ChoiceContent"));

            } else
            {
                TreeMap cs = new TreeMap();
                cs.put(h.get("ChoiceId"), h.get("ChoiceContent"));
                questions.put(seq, cs);
            }
        }

        String[][] allChoices = new String[questions.size()][];
        while (!questions.isEmpty())
        {
            Object key = questions.firstKey();
            TreeMap values = (TreeMap) questions.remove(key);
            String[] cc = new String[values.size()];
            for (int i = 0; i < cc.length; i++)
            {
                cc[i] = values.remove(values.firstKey()).toString();
            }

            allChoices[((Integer) key).intValue() - 1] = cc;
        }
        session.setAttribute("Choices", allChoices);
    }

    public static Hashtable setSubmitExam(Integer submit_id, HttpSession session)
    {
        Hashtable h = null;

        Object[] objs = UserSQLExecuter.executeQuery(
                "select * " +
                "from " +
                "t_exam_submit " +
                "where " +
                "SubmitId = " + submit_id
        );

        if (objs.length > 0)
        {
            h = (Hashtable) objs[0];

            QuerySQLExecuter sql = new QuerySQLExecuter();

            sql.appendTableName("t_exam", "a");
            sql.appendTableName("t_exam_assigned", "b");

            sql.appendColumn("a.ExamId", "ExamId");
            sql.appendColumn("a.QuestionType", "QuestionType");
            sql.appendColumn("a.ExamType", "ExamType");
            sql.appendColumn("a.ExamName", "ExamName");
            sql.appendColumn("a.Duration", "Duration");
//            sql.appendColumn("b.StartTime", "StartTime");
            sql.appendColumn("b.EndTime", "EndTime");
            sql.appendColumn("b.AssignmentId", "AssignmentId");
            sql.appendColumn("a.InstanceLimit", "InstanceLimit");


            sql.appendWhereClause(
                    "a.ExamId = b.ExamId AND " +
                    "b.AssignmentId = " + h.get("AssignmentId")
            );

            objs = sql.executeQuery();

            if (objs.length > 0)
            {
                h.putAll((Hashtable) objs[0]);
                session.setAttribute("ExamSubmit", h);
                setQuestions( submit_id, ( (Integer)h.get("QuestionType")).intValue(), session);
            }
        }

        return h;
    }

    public static void setSubmittedAnswers(Integer submit_id, HttpSession session)
    {

        Object[] objs = UserSQLExecuter.executeQuery(
                "SELECT QuestionSeq, Answer " +
                "FROM t_exam_question_submit " +
                "WHERE " +
                "SubmitId = " + submit_id + " " +
                "ORDER BY " +
                "QuestionSeq"
        );

        Integer[] answers = new Integer[objs.length];

        for (int i = 0; i < objs.length; i++)
        {
            Hashtable temp = (Hashtable) objs[i];
            int j = ((Integer) temp.get("QuestionSeq")).intValue();
            answers[j - 1] = Integer.valueOf(temp.get("Answer").toString());
        }

        session.setAttribute("SubmittedAnswers", answers);

        objs = UserSQLExecuter.executeQuery(
                "SELECT * from t_exam_submit where SubmitId = " + submit_id
        );

        if ( objs.length>0)
        {
            session.setAttribute("Submit", objs[0]);
        }

    }

    public static Integer[] getRightAnswers(Integer submit_id, t_user user)
    {

        Object[] objs = UserSQLExecuter.executeQuery(
                "SELECT " +
                    "e.QuestionSeq QuestionSeq, " +
                    "g.ChoiceId ChoiceId " +
                "FROM " +
                    "t_exam_submit a, " +
                    "t_exam_assigned c, " +
                    "t_exam_question e, " +
                    "t_question_choice g " +
                "WHERE " +
                    "a.AssignmentId = c.AssignmentId AND " +
                    "a.UserId = " + user.UserId + " AND " +
                    "c.ExamId = e.ExamId AND " +
                    "a.PaperId = e.PaperId AND " +
                    "e.QuestionId = g.QuestionId AND " +
                    "g.IsAnswer = 'Y' AND " +
                    "a.SubmitId = " + submit_id
        );

        Integer[] right_answers = new Integer[objs.length];

        for (int i = 0; i < objs.length; i++)
        {
            int seq = ((Integer) ((Hashtable) objs[i]).get("QuestionSeq")).intValue();
            right_answers[seq - 1] = (Integer) ((Hashtable) objs[i]).get("ChoiceId");
        }

        return right_answers;

    }

    public static int mark(Integer submit_id, t_user user, Integer[] submitted_answers, HttpSession session)
    {

        int right_number = 0;

        Integer[] right_answers = getRightAnswers(submit_id, user);

        for (int i = 0; i < right_answers.length; i++)
        {
            if (right_answers[i].equals(submitted_answers[i]))
            {
                right_number++;
            }
        }

        Integer single_mark = new Integer(100 / right_answers.length);

        for (int i = 0; i < submitted_answers.length; i++)
        {
            InsertSQLExecuter sql = new InsertSQLExecuter();
            sql.appendTableName("t_exam_question_submit");
            sql.appendValue("SubmitId", submit_id);
            sql.appendValue("QuestionSeq", new Integer(i + 1));
            sql.appendValue("Answer", submitted_answers[i].toString());
            if (right_answers[i].equals(submitted_answers[i]))
            {
                sql.appendValue("Mark", single_mark);
            } else
            {
                sql.appendValue("Mark", new Integer(0));
            }

            sql.executeUpdate();
        }


        session.setAttribute("RightAnswers", right_answers);

        return 100 - (right_answers.length - right_number) * single_mark.intValue();

    }

    public static void updateAssignmentMark(Integer submit_id, int mark)
    {

    }

    public static Date getUnsubmittedInstance(Integer submit_id)
    {
        Object[] objs = UserSQLExecuter.executeQuery(
                "SELECT StartTime FROM t_exam_submit " +
                "WHERE SubmitId = " + submit_id + " AND " +
                "State = 1"
        );

        if (objs.length == 0)
        {
            return null;
        } else
        {
            return (Date) ((Hashtable) objs[0]).get("StartTime");
        }

    }

    public static Integer getAnsweredNumber(Integer submit_id)
    {
        Object[] objs = UserSQLExecuter.executeQuery(
                "SELECT count(*) count from t_exam_question_submit where SubmitId = " + submit_id
        );

        if (objs.length > 0)
        {
            return (Integer) ((Hashtable) objs[0]).get("count");
        } else
        {
            return new Integer(0);
        }
    }

    public static void setQuestionUploadedFiles(Integer submit_id, Integer question_seq, HttpSession session )
    {
        Object[] objs = UserSQLExecuter.executeQuery(
                "SELECT  " +
                    "UploadId, " +
                    "FileName, " +
                    "FileType, " +
                    "FileSize " +
                "FROM " +
                    "t_exam_question_upload " +
                "WHERE " +
                    "SubmitId = " + submit_id + " AND " +
                    "QuestionSeq = " + question_seq
        );

        session.setAttribute("UploadedFiles", objs);


    }

    public static void setPaperResult(Integer submit_id, HttpSession session)
    {

        setPaper(submit_id, session);
        GradePaperHelper.setGradingQuestions(submit_id, session);

    }

    public static void setPaper ( Integer submit_id, HttpSession session)
    {
        t_user user = (t_user) session.getAttribute("User");

        StringBuffer sb = new StringBuffer( GradePaperHelper.SP.toString() );

        sb.append( "a.UserId = " + user.UserId);

        if ( submit_id != null )
        {
            sb.append(" AND a.SubmitId = " + submit_id );
        }

        Object[] objs = UserSQLExecuter.executeQuery(sb.toString());

        if ( objs.length > 0 )
        {
            session.setAttribute("Paper", objs[0]);
        }

    }



}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -