四、交卷评分: 当用户点击交卷按钮后,应将用户的答题结果与试题答案进行比对,并给出相应的分值写入数据表,最后将表StuInfo中的LogYn字段设置为2,显示考试得分,代码如下(test.aspx):private void ButSend_Click(object sender, System.EventArgs e){ ... for(int i=1;i<=10;i++) //由于随机生成了10道题,所以循环10次 { for(int j=0;j<4;j++) if(Request.Form["ChkMc"+i.ToString()+":"+j.ToString()]!=null) mcs+="1"; //mcs是存储考生所选答案的字符串变量,已选用"1"表示,未选用"0"表示 else mcs+="0"; } ... QuestCmd.CommandText="select mca from StuInfo where ExamId= '" +Session["Id"].ToString()+"'"; QuestConn.Open(); SqlDataReader QuestRd=QuestCmd.ExecuteReader(); QuestRd.Read(); int StuScore=0; //存储得分的变量 for(i=0;i<10;i+=4) { if(QuestRd["mca"].ToString().Substring(i,4).Equals(mcs.Substring(i,4))) StuScore+=2; //从字段mca和mcs中每次取四个字符进行比对,如相等则加上2分 } ... QuestCmd.CommandText="update StuInfo set score="+StuScore.ToString()+",LogYn='2' where ExamId= '" + Session["Id"].ToString()+"'and LogYn='1'"; //设置已评分标志 QuestRd=QuestCmd.ExecuteReader(); ... Response.Redirect("score.aspx"); //显示考试得分页面 ...} 限于篇幅,在此只列出了实现网上考试系统的几个要点,读者可根据自已的需要进一步完善相应的数据验证、后台管理及界面设计。
private void ButSend_Click(object sender, System.EventArgs e){ ... for(int i=1;i<=10;i++) //由于随机生成了10道题,所以循环10次 { for(int j=0;j<4;j++) if(Request.Form["ChkMc"+i.ToString()+":"+j.ToString()]!=null) mcs+="1"; //mcs是存储考生所选答案的字符串变量,已选用"1"表示,未选用"0"表示 else mcs+="0"; } ... QuestCmd.CommandText="select mca from StuInfo where ExamId= '" +Session["Id"].ToString()+"'"; QuestConn.Open(); SqlDataReader QuestRd=QuestCmd.ExecuteReader(); QuestRd.Read(); int StuScore=0; //存储得分的变量 for(i=0;i<10;i+=4) { if(QuestRd["mca"].ToString().Substring(i,4).Equals(mcs.Substring(i,4))) StuScore+=2; //从字段mca和mcs中每次取四个字符进行比对,如相等则加上2分 } ... QuestCmd.CommandText="update StuInfo set score="+StuScore.ToString()+",LogYn='2' where ExamId= '" + Session["Id"].ToString()+"'and LogYn='1'"; //设置已评分标志 QuestRd=QuestCmd.ExecuteReader(); ... Response.Redirect("score.aspx"); //显示考试得分页面 ...}
(编辑:aniston)
·2024年12月目录 ·2024年11月目录 ·2024年10月目录 ·2024年9月目录 ·2024年8月目录 ·2024年7月目录 ·2024年6月目录 ·2024年5月目录 ·2024年4月目录 ·2024年3月目录 ·2024年2月目录 ·2024年1月目录 ·2023年12月目录 ·2023年11月目录