当前位置: 代码迷 >> Java Web开发 >> 求考试系统答案的比较?该如何解决
  详细解决方案

求考试系统答案的比较?该如何解决

热度:5227   发布时间:2013-02-25 21:15:26.0
求考试系统答案的比较???
做一个非常简单的考试系统,就是不知道如何比较答案,看到别人说用什么数组啊,集合啊 ,都说了太空泛了,希望各位能给出实际一点的建议。小弟在这里非常的感谢了。

create table question
(
qid int identity(1,1) primary key, --题目的编号
title varchar(60), --题目的标题
options_A varchar(30), --题目的选项
options_B varchar(30),
options_C varchar(30),
options_D varchar(30),  
answer varchar(10) --题目的答案
)

create table score
(
sid int identity(1,1) primary key, --分数编号
qscore int, --题目的分数
qid int references question(qid) --连接到question表的qid字段
)

--.jsp页面

<s:iterator id="i" value="#session.quList" status="status">
 
<tr>
<td><s:property value="#status.count"/>.<s:property value="#select[0]" />${i.title }</td>
</tr>
<tr>
<td>
<input type="radio" name="answer${status.index}" value="A" />${i.options_A }
</td>
</tr>
<tr>
<td><input type="radio" name="answer${status.index}" value="B" />${i.options_B }</td>
</tr>
<tr>
<td><input type="radio" name="answer${status.index}" value="C" />${i.options_C }</td>
</tr>
<tr>
<td><input type="radio" name="answer${status.index}" value="D" />${i.options_D }</td>
</tr>

  </s:iterator>
 







------解决方案--------------------------------------------------------
就是一个question,score两张表???
应该还有试卷表,记录哪些question对应哪一张试卷对不
应该还有记录考生答案的表对不,
没有考生的答案的记录,拿什么东西跟比较答案呀。。。。
------解决方案--------------------------------------------------------
每一道题提交以后能获得的数据是:题目编号[qid],考生答案[A/B/C/D]

到数据库查sql:select 1 from question q where q.qid = ? and q.answer=?
查询结果有记录,说明此题答对了,没记录说明答错了

------解决方案--------------------------------------------------------
如果有单独的选项表,则答案应该保存的是:选项ID
其次,答案的话,可以用:indexOf()
------解决方案--------------------------------------------------------
上面的方法比较慢,一次比较一个题目,效率比较低

可以考虑再加一张考生答题表

student_answer{
st_id,//学生ID
qid,//题目ID
answer//答案
}

1.考生每答完一题,记录当前题目号,考生ID,答案到List
2.考生答完所有题目,将list使用批处理方式一次性insert到考生答题表
3.得到考生答对的所有题目:
SQL code
select q.*,sa.st_id from question q     join (select * from student_answer s where s.st_id = ?) sa    on (q.qid = sa.qid and q.answer = sa.answer)
------解决方案--------------------------------------------------------
探讨
上面的方法比较慢,一次比较一个题目,效率比较低

可以考虑再加一张考生答题表

student_answer{
st_id,//学生ID
qid,//题目ID
answer//答案
}

1.考生每答完一题,记录当前题目号,考生ID,答案到List
2.考生答完所有题目,将list使用批处理方式一次性insert到考生答题表
3.得到考生答对的所有题目:

……
  相关解决方案