📄 studyhelper.java
字号:
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 + -