16,549
社区成员
发帖
与我相关
我的任务
分享
'只有确定一开始答卷 此代码才有效 前面需加判断
'由此开始 根据考试题目查询答案
'记录分数
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
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;
}