Asp.net源码专业站
首页->学教实践->在线考试系统源码(毕业设计)>>createTest.aspx.cs>>源码在线查看
温馨提示:代码在线浏览功能只能做为源码浏览参考,如果想更进一步了解该代码请下载:在线考试系统源码(毕业设计)
当前文件:文件类型 HBDGI338O5Y15/createTest.aspx.cs[7K,2009-6-12 11:43:44]打开代码结构图
普通视图
		            
1using System; 2using System.Collections; 3using System.ComponentModel; 4using System.Data; 5using System.Drawing; 6using System.Web; 7using System.Web.SessionState; 8using System.Web.UI; 9using System.Web.UI.WebControls; 10using System.Web.UI.HtmlControls; 11using System.Data.SqlClient; 12using System.Data.SqlTypes; 13using System.Configuration; 14 15namespace TestOnline 16{ 17 /// <summary> 18 /// createTest 的摘要说明。 19 /// </summary> 20 public class createTest : System.Web.UI.Page 21 { 22 protected System.Web.UI.WebControls.Label lbl_stuId; 23 protected System.Web.UI.WebControls.Label lbl_stuName; 24 protected System.Web.UI.WebControls.Label lbl_courseName; 25 protected System.Web.UI.WebControls.ImageButton Ibtn_submit; 26 protected System.Web.UI.WebControls.ImageButton Ibtn_createTest; 27 protected System.Web.UI.WebControls.Panel Panel2; 28 protected System.Web.UI.WebControls.LinkButton LinkButton2; 29 protected System.Web.UI.WebControls.Panel Panel1; 30 31 private void Page_Load(object sender, System.EventArgs e) 32 { 33 // 在此处放置用户代码以初始化页面 34 if(Session["stuId"]==null) 35 { 36 Response.Redirect("login.aspx"); 37 }else 38 { 39 Ibtn_submit.Attributes.Add("OnClick","return confirm('你的确要交卷吗?交卷后将不能再考试!');"); 40 string courseId=Convert.ToString(Session["courseId"]); 41 string stuId=Convert.ToString(Session["stuId"]); 42 string stuName=(new projClass()).getUserName(stuId); 43 string courseName=(new projClass()).getCourseNameAsCourseId(courseId); 44 lbl_stuId.Text=stuId; 45 lbl_stuName.Text=stuName; 46 lbl_courseName.Text=courseName; 47 /* 48 以下生成试题的思路: 49 通过存储过程在试题库里随机的选择出50道题,一旦生成后即往分数表里面添加记录,分数为0. 50 试题生成后,将试题的ID都存入一个哈希表,如果用户刷新,就判断分数表里面是否有记录,有则从哈希表里取出试题的ID, 51 再次生成,从而达到了防刷新的目的.(传统的考试系统在刷新之后能 再次生成试题) 52 53 */ 54 55 //ifCreate表示是否已经生成过试题 56 int ifCreate=(new projClass()).ifCourseHasTest(stuId,courseId); 57 if(ifCreate!=1) 58 //if(!Page.IsPostBack) 59 { 60 SqlDataReader reader=(new projClass()).createTest(courseId); 61 //一旦生成的试题就向分数表score里面添加记录,分数为0,并且在学生表student里面改学生的状态 62 int count=(new projClass()).insertStuStatusToScore(stuId,courseId,0,0); 63 int count1=(new projClass()).updateStuStatus(stuId,courseId,1); 64 if(count==0||count1==0) 65 Response.Write("<script>alert(\"更新状态错误!\");</script>"); 66 Hashtable ht_rightAnswer=new Hashtable(); 67 Hashtable ht_stuTest=new Hashtable();//存储学生第一次进入页面时产生的题目ID,以免刷新时题目改变. 68 int num=1; 69 while(reader.Read()) 70 { 71 Literal lit_testContent=new Literal(); 72 RadioButtonList rbtnList=new RadioButtonList(); 73 rbtnList.ID="rbtnList"+num.ToString(); 74 //rbtnList.RepeatDirection=RepeatDirection.Horizontal; 75 lit_testContent.Text="<br>"+num.ToString()+""+Server.HtmlEncode(reader["testContent"].ToString())+"<br>"; 76 rbtnList.Items.Add("A. "+Server.HtmlEncode(reader["testAns1"].ToString())); 77 rbtnList.Items.Add("B. "+Server.HtmlEncode(reader["testAns2"].ToString())); 78 rbtnList.Items.Add("C. "+Server.HtmlEncode(reader["testAns3"].ToString())); 79 rbtnList.Items.Add("D. "+Server.HtmlEncode(reader["testAns4"].ToString())); 80 //得到题目的正确答案,并添加到哈希表中 81 string testId=reader["testId"].ToString(); 82 ht_stuTest.Add(num.ToString(),testId.ToString()); 83 int rightAns=(new projClass()).getRightAnsAsTestId(testId); 84 ht_rightAnswer.Add(num.ToString(),rightAns); 85 // Response.Write(rightAns.ToString()); 86 for(int j=1;j<=4;j++) 87 { 88 rbtnList.Items[j-1].Value=j.ToString(); 89 } 90 if(num<=25) 91 { 92 Panel1.Controls.Add(lit_testContent); 93 Panel1.Controls.Add(rbtnList); 94 } 95 else 96 { 97 Panel2.Controls.Add(lit_testContent); 98 Panel2.Controls.Add(rbtnList); 99 } 100 num++; 101 } 102 Session["rightAnswer"]=ht_rightAnswer; 103 Session["stuTest"]=ht_stuTest; 104 } 105 106 //不是第一次进入页面 107 else 108 { // int num=1; 109 //if(Session["ht_stuTest"]==null) 110 //Response.Write("<script>alert(\"由于刷新产生了错误!请重新登录或联系管理员!\");</script>"); 111 112 Hashtable ht_stuTest=(Hashtable)Session["stuTest"]; 113 string testId=""; 114 115 DataSet ds; 116 bool find; 117 for(int num=1;num<=50;num++) 118 { 119 find=false; 120 IDictionaryEnumerator myEnumerator = ht_stuTest.GetEnumerator(); 121 while(myEnumerator.MoveNext()&&!find) 122 123 if(myEnumerator.Key.Equals(num.ToString())) 124 { 125 testId=myEnumerator.Value.ToString(); 126 find=true; 127 ds=(new projClass()).getTestInfoAsId(testId); 128 DataTable dt=ds.Tables["testInfo"]; 129 DataRow dataRow=dt.Rows[0]; 130 Literal lit_testContent=new Literal(); 131 RadioButtonList rbtnList=new RadioButtonList(); 132 rbtnList.ID="rbtnList"+num.ToString(); 133 lit_testContent.Text="<br>"+num.ToString()+""+Server.HtmlEncode(Convert.ToString(dataRow["testContent"]))+"<br>"; 134 rbtnList.Items.Add("A. "+Server.HtmlEncode(Convert.ToString(dataRow["testAns1"]))); 135 rbtnList.Items.Add("B. "+Server.HtmlEncode(Convert.ToString(dataRow["testAns2"]))); 136 rbtnList.Items.Add("C. "+Server.HtmlEncode(Convert.ToString(dataRow["testAns3"]))); 137 rbtnList.Items.Add("D. "+Server.HtmlEncode(Convert.ToString(dataRow["testAns4"]))); 138 //得到题目的正确答案,并添加到哈希表中 139 140 //ht_stuTest.Add(num.ToString(),testId.ToString()); 141 int rightAns=(new projClass()).getRightAnsAsTestId(testId); 142 for(int j=1;j<=4;j++) 143 { 144 rbtnList.Items[j-1].Value=j.ToString(); 145 } 146 if(num<=25) 147 { 148 Panel1.Controls.Add(lit_testContent); 149 Panel1.Controls.Add(rbtnList); 150 } 151 else 152 { 153 Panel2.Controls.Add(lit_testContent); 154 Panel2.Controls.Add(rbtnList); 155 } 156 } 157 } 158 159 160 } 161 } 162 163 } 164 165 Web 窗体设计器生成的代码 186 187 private void Ibtn_submit_Click(object sender, System.Web.UI.ImageClickEventArgs e) 188 { 189 Hashtable ht_stuAnswer=new Hashtable(); 190 /*RadioButtonList list1=(RadioButtonList)Panel1.FindControl("rbtnList1"); 191 string ans1=""; 192 if(Page.IsPostBack) 193 ans1+="back"; 194 if(list1!=null) 195 ans1=list1.SelectedValue.ToString(); 196 197 //RadioButtonList list; 198 string ans=""; 199 ans=ans1;*/ 200 string ans=""; 201 for(int i=1;i<=50;i++) 202 {RadioButtonList list; 203 if(i<=25) 204 { 205 list=(RadioButtonList)Panel1.FindControl("rbtnList"+i.ToString()); 206 }else list=(RadioButtonList)Panel2.FindControl("rbtnList"+i.ToString()); 207 if(list!=null) 208 { ans=list.SelectedValue.ToString(); 209 if(!ht_stuAnswer.Contains(i.ToString())) 210 ht_stuAnswer.Add(i.ToString(),ans); 211 }else ans+=i.ToString()+"null"; 212 } 213 Session["stuAnswer"]=ht_stuAnswer; 214 Session["ans"]=ans; 215 Response.Redirect("result.aspx?stuId="+Convert.ToString(Session["stuId"])+"courseId="+Convert.ToString(Session["courseId"])); 216 } 217 218 219 } 220} 221
还没有找到您心仪的内容?请用.net源码大搜捕
代码片断 打包下载该项目完整源码:在线考试系统源码(毕业设计)
51Aspx.com 版权所有 CopyRight © 2006-2010. 京ICP备06046876号 本站法律顾问:ITlaw-庄毅雄律师
返回顶部
客户服务:点击这里进行客户咨询 业务合作:点击这里洽谈业务合作 合作热线:010-68880146