学生考试系统 怎么获取答案并且与数据库答案比对 自动阅卷呢?

isSaDAmu 2009-08-27 04:43:01
帮忙啊
...全文
207 13 打赏 收藏 转发到动态 举报
写回复
用AI写文章
13 条回复
切换为时间正序
请发表友善的回复…
发表回复
isSaDAmu 2009-08-27
  • 打赏
  • 举报
回复
数组多了个双引号吧
isSaDAmu 2009-08-27
  • 打赏
  • 举报
回复
谢谢 给你多分
xunis 2009-08-27
  • 打赏
  • 举报
回复
        '只有确定一开始答卷 此代码才有效 前面需加判断
'由此开始 根据考试题目查询答案
'记录分数
Dim point As Integer = 0
'题目的数组
Dim strTiMu() As String = {"lblXZ1.Text.trim", "lblXZ2.Text.trim", "lblXZ3.Text.trim", "lblPD1.Text.trim", _
"lblXZ1.Text.trim", "lblXZ1.Text.trim", "lblXZ1.Text.trim", "lblXZ1.Text.trim", "lblXZ1.Text.trim"}
'考生的答案数组 你自己写吧
Dim strDaAn() As String = {"", "", "", "", "", "", "", "", ""}
For i = 0 To 8
'查询正确答案与考试人答案
Dim strSql As String = " select b.选项内容" & _
" from 题目表 as a INNER JOIN 题目选项表 as b ON a.试题ID = b.试题ID" & _
" where 选项内容='" & strTiMu(i) & "'"
Dim ds As DataSet = GetDataSet(strSql)

'判断是否正确 如果正确 查询相应的分数相加
If strDaAn(i).Trim.ToString.Equals(ds.Tables(0).Rows(i)(3).ToString) Then

Dim strSql1 As String = " select a.试题分数" & _
" from 题目表 as a INNER JOIN 题目选项表 as b ON a.试题ID = b.试题ID" & _
" where 选项内容='" & strTiMu(i) & "'"
Dim ds1 As DataSet = GetDataSet(strSql)
point = point + CInt(ds.Tables(0).Rows(i)(2).ToString)
End If
Next

'可加入查看成绩代码
If MsgBox("确认交卷?", MsgBoxStyle.OkCancel, "警告:") = MsgBoxResult.Ok Then
MsgBox("你的考试成绩为" + point)
End If


如果是选择题 判断题 在比较之前 将你页面的值转换成跟数据库里面类型一致的就可以了 另外写个方法
isSaDAmu 2009-08-27
  • 打赏
  • 举报
回复
[Quote=引用 5 楼 forrest23 的回复:]
C# codetry
{//选取得这种题型的分值 mark=int.Parse(((Label)this.dlistxz.HeaderRow.FindControl("lblxztfz")).Text.Trim());//然后循环foreach (GridViewRow gyinthis.dlistxz.Rows)
{for (int ¡­
[/Quote]

这是什么代码啊 ? 不是vb 的 我才学习vb的 其他都不会 看不懂啊 能帮我结束下不
解释多余的 2009-08-27
  • 打赏
  • 举报
回复
[Quote=引用 5 楼 forrest23 的回复:]
C# codetry
{//选取得这种题型的分值 mark=int.Parse(((Label)this.dlistxz.HeaderRow.FindControl("lblxztfz")).Text.Trim());//然后循环foreach (GridViewRow gyinthis.dlistxz.Rows)
{for (int ¡­
[/Quote] 同意
isSaDAmu 2009-08-27
  • 打赏
  • 举报
回复
哦!
xunis 2009-08-27
  • 打赏
  • 举报
回复
可以参考下你另外的那个帖子
Forrest23 2009-08-27
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 xiezechang 的回复:]
结贴率为0~
[/Quote]

人家是新人,今天刚发帖子
Forrest23 2009-08-27
  • 打赏
  • 举报
回复


try
{
//选取得这种题型的分值
mark = int.Parse(((Label)this.dlistxz.HeaderRow.FindControl("lblxztfz")).Text.Trim());
//然后循环
foreach (GridViewRow gy in this.dlistxz.Rows)
{
for (int i = 0; i < 4; i++)
{
//获得学生填写的答案
if (((RadioButtonList)gy.FindControl("rblxzt")).Items[i].Selected == true)
{
st = ((RadioButtonList)gy.FindControl("rblxzt")).Items[i].Text;
break;
}

}
//和数据库中的答案比对,如果正确则加上相应的分值
if (st == ((Label)gy.FindControl("lblanswer")).Text)
{
score = score + mark;
}

}
}
catch
{
score = score;
}



水哥阿乐 2009-08-27
  • 打赏
  • 举报
回复
楼主这话概括性太强了,只能分步骤来吧。我只能说说我的思路
1先判断在试题标题数与答案表中的试题标题数一致情况下并且答案是否在答案表中
Select (答案列) from 表名1 as a in (select 答案列 from 答案表 and a.试题标题数=试题标题数)
2如果符合条件 Update 表名1 set 答案正确=1 where 试题标题数=XX
高手太多不敢装B,相信大家有更好的思路
xiezechang 2009-08-27
  • 打赏
  • 举报
回复
结贴率为0~
isSaDAmu 2009-08-27
  • 打赏
  • 举报
回复
不要说那种不着边的话 理论谁都会 谁能帮我想出比较得当的思路!
Forrest23 2009-08-27
  • 打赏
  • 举报
回复
一条一条的循环取 学生填写的答案 和 数据库中的答案 作对比啊

16,549

社区成员

发帖
与我相关
我的任务
社区描述
VB技术相关讨论,主要为经典vb,即VB6.0
社区管理员
  • VB.NET
  • 水哥阿乐
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧