亚洲激情专区-91九色丨porny丨老师-久久久久久久女国产乱让韩-国产精品午夜小视频观看

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

如何構建網上ASP.NET考試系統

發布時間:2021-07-15 10:56:33 來源:億速云 閱讀:152 作者:chen 欄目:編程語言

這篇文章主要講解了“如何構建網上ASP.NET考試系統”,文中的講解內容簡單清晰,易于學習與理解,下面請大家跟著小編的思路慢慢深入,一起來研究和學習“如何構建網上ASP.NET考試系統”吧!

一、ASP.NET考試系統數據庫的設計:

建立數據庫netexam,在庫中添加考生信息表StuInfo,分別建立以下字段:考號ExamId(c)(主鍵)、考生姓名Name(c)、是否登錄考試LogYn(c)、得分Score(c)、隨機生成的試題答案mca(c)(注:此處以多選題為例,單選題、判斷題同理)。添加多選題題庫表mc,建立以下字段:題目question(c)、四個選choice1(c)、choice2(c)、choice3(c)、choice4(c)、答案answer(c)(注:多選題答案用0表示未選,1表示選擇,如選擇ABD就用1101表示)。

二、考生登錄:

在此處將考生信息插入表StuInfo,此處要防止考生重復登錄!給指定***的考號,并將考號字段ExamId(c)設為主鍵,當重復登錄時,用Catch捕獲錯誤,給出相應提示,部分代碼如下(login.aspx):

privatevoidButOk_Click(objectsender,System.EventArgse)  {  ...  SqlConnectionStuConn=newSqlConnection("DataSource=localhost;IntegratedSecurity=SSPI;  InitialCatalog=netexam");  SqlCommandLoginCmd=StuConn.CreateCommand();//可根據不同情況選擇不同的數據庫連接  ...  LoginCmd.CommandText="InsertintoStuInfo(ExamId,Name)values('"+TxtId.Text.Trim()+"','"+TxtName.Text.Trim()+"')";  //將考號、姓名插入相應字段,其中TxtId,TxtName分別是輸入考號和姓名的文本框  try  {  ...  Session["Id"]=TxtId.Text.Trim();  StuConn.Open();  LoginCmd.ExecuteReader();  Response.Redirect("test.aspx");  }  catch(Exception)//捕獲相應錯誤  {  Response.Write("<scriptlanguagescriptlanguage=\"javascript\">"+"\n");  Response.Write("alert(\"不能重復登錄,或考號、姓名、密碼是否有誤!\")"+"\nscript>");  }  ...  }

三、試題生成:

1、防止考生刷新頁面:

由于加載試題頁面時將從數據庫中隨機抽取試題,所以應防止考生刷新面頁(刷新頁面會重新生成新的試題)。方法是將表StuInfo中的LogYn字段默認值設為0,加載試題后設為1,交卷評分后設為2,加載試題頁面時進行相應檢查,以防止頁面的刷新,代碼如下(test.aspx):

privatevoidPage_Load(objectsender,System.EventArgse)  {  if(!IsPostBack)  {  ...  QuestCmd.CommandText="selectLogYnfromStuInfowhereExamId='"+Session["Id"].ToString()+"'";  QuestConn.Open();  SqlDataReaderQuestRd=QuestCmd.ExecuteReader();  QuestRd.Read();  if(QuestRd["LogYn"].ToString().Trim().Equals("1")||QuestRd["LogYn"].ToString().Trim().Equals("2"))  //判斷是否已加載試題或是否已評分  {  ...  Response.Write("<scriptlanguagescriptlanguage=\"javascript\">"+"\n");  Response.Write("alert(\"不能刷新!請與管理員聯系,重新登錄。\")"+"\nscript>");  ...  }  else  {  ...  QuestCmd.CommandText="updateStuInfosetLogYn='1'";//已成功加載試題  QuestCmd.ExecuteReader();  ...  }  }  ...  }

2、隨機生成試題:

ASP.NET考試系統的關鍵是試題的隨機生成,即對于不同的計算機訪問系統時將從題庫中隨機地抽取不同的試題。

在此我們可使用SQL語句"selecttopn*frommcorderbynewid()"從題庫中隨機抽取n條記錄,其中newid()生成uniqueidentifier值(若是ACCESS數據庫則用"selecttopn*frommcorderbyrnd(id)",其中id為自動編號字段)。

在test.aspx頁面上放置一個Panel容器控件,以便動態生成綁定到試題的控件,并將從表mc中隨機生成的試題答案寫入表StuInfo表中的mca字段,代碼如下(test.aspx):

privatevoidPage_Load(objectsender,System.EventArgse)  {  if(!IsPostBack)  {  ...  QuestCmd.CommandText="selecttop10*frommcorderbynewid()";//以隨機生成10道題為例  QuestConn.Open();  QuestRd=QuestCmd.ExecuteReader();  while(QuestRd.Read())  {  LiteralLitTxt=newLiteral();  LiteralLitBl=newLiteral();  CheckBoxListChkMc=newCheckBoxList();  ChkMc.ID="ChkMc"+i.ToString();  LitTxt.Text=i.ToString()+"、"+Server.HtmlEncode(QuestRd["Question"].ToString())+"<BR><Blockquote>";  LitBl.Text="";  ChkMc.Font.Size=11;  for(intj=1;j<=4;j++)  {  ChkMc.Items.Add(Server.HtmlEncode(QuestRd["Choice"+j.ToString()].ToString()));  ChkMc.Items[j-1].Value=j.ToString();  }  mcStr+=QuestRd["Answer"].ToString().Trim();//mcStr是存儲隨機生成試題答案的字符串變量  MyPanel.Controls.Add(LitTxt);  MyPanel.Controls.Add(ChkMc);  MyPanel.Controls.Add(LitBl);  i++;  }  ...  QuestCmd.CommandText="updateStuInfosetMca='"+mcStr+"'whereExamId='"+Session["Id"].ToString()+"'";//將隨機生成試題答案寫入數據表  QuestConn.Open();  QuestRd=QuestCmd.ExecuteReader();  ...  }  ...  }

四、交卷評分

當用戶點擊交卷按鈕后,應將用戶的答題結果與試題答案進行比對,并給出相應的分值寫入數據表,最后將表StuInfo中的LogYn字段設置為2,顯示考試得分,代碼如下(test.aspx):

privatevoidButSend_Click(objectsender,System.EventArgse)  {  ...  for(inti=1;i<=10;i++)//由于隨機生成了10道題,所以循環10次  {  for(intj=0;j<4;j++)  if(Request.Form["ChkMc"+i.ToString()+":"+j.ToString()]!=null)  mcs+="1";//mcs是存儲考生所選答案的字符串變量,已選用"1"表示,未選用"0"表示  else  mcs+="0";  }  ...  QuestCmd.CommandText="selectmcafromStuInfowhereExamId='"+Session["Id"].ToString()+"'";  QuestConn.Open();  SqlDataReaderQuestRd=QuestCmd.ExecuteReader();  QuestRd.Read();  intStuScore=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="updateStuInfosetscore="+StuScore.ToString()+",LogYn='2'whereExamId='"+Session["Id"].ToString()+"'andLogYn='1'";//設置已評分標志  QuestRd=QuestCmd.ExecuteReader();  ...  Response.Redirect("score.aspx");//顯示考試得分頁面  ...  }

限于篇幅,在此只列出了實現網上ASP.NET考試系統的幾個要點,讀者可根據自已的需要進一步完善相應的數據驗證、后臺管理及界面設計。

感謝各位的閱讀,以上就是“如何構建網上ASP.NET考試系統”的內容了,經過本文的學習后,相信大家對如何構建網上ASP.NET考試系統這一問題有了更深刻的體會,具體使用情況還需要大家實踐驗證。這里是億速云,小編將為大家推送更多相關知識點的文章,歡迎關注!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

团风县| 保德县| 阳谷县| 马公市| 富川| 永善县| 黄石市| 舟山市| 安徽省| 伊吾县| 永顺县| 广灵县| 达州市| 蛟河市| 阳东县| 台北市| 日照市| 全州县| 香格里拉县| 鹤峰县| 盈江县| 和田县| 凌云县| 奉节县| 峨眉山市| 隆德县| 安康市| 勐海县| 兴文县| 遂昌县| 定州市| 治多县| 扶沟县| 金坛市| 连南| 淅川县| 清水河县| 庆阳市| 丽水市| 大足县| 外汇|