用ASP實(shí)現(xiàn)網(wǎng)上考試系統(tǒng)_ASP教程

      編輯Tag賺U幣
      教程Tag:暫無(wú)Tag,歡迎添加,賺取U幣!

      推薦:ASP 3.0高級(jí)編程(三十六)
      第8章 ADO基礎(chǔ) 在本書前7章中,已經(jīng)講述了ASP的有關(guān)內(nèi)容,以及ASP如何為Web站點(diǎn)帶來(lái)動(dòng)態(tài)的內(nèi)容。已經(jīng)見(jiàn)到其腳本程序允許自定義Web頁(yè)面,使我們能夠構(gòu)建功能更為強(qiáng)大的ASP頁(yè)面。 現(xiàn)在,將研究ASP

      隨著互連網(wǎng)技術(shù)的發(fā)展網(wǎng)上教學(xué)將成為人們接受再教育和終身教育的主要形式。在網(wǎng)上學(xué)校中,人們可以不受時(shí)間和空間的限制,隨時(shí)隨地選學(xué)任何地方的任何課程。網(wǎng)上學(xué)校的發(fā)展對(duì)網(wǎng)上考試的發(fā)展提出了迫切的要求。這里是我用Asp和Access數(shù)據(jù)庫(kù)實(shí)現(xiàn)的一個(gè)網(wǎng)上考試系統(tǒng)。當(dāng)用戶憑用戶名和口令登錄時(shí),系統(tǒng)首先檢查該用戶是否已參加過(guò)考試,若是則進(jìn)行成績(jī)查詢,若否則從題庫(kù)中提取考題供用戶解答。等用戶提交答卷后,系統(tǒng)進(jìn)行評(píng)分并將成績(jī)登記入庫(kù)。

      一. 數(shù)據(jù)庫(kù)設(shè)計(jì)

      首先建立一數(shù)據(jù)庫(kù)exercise.mdb,其中包括兩個(gè)表:user和test,user表中有包括三個(gè)字段:

      字段名稱:user;字段類型:文本;字段大小:20。存儲(chǔ)用戶名

      字段名稱:passwd;字段類型:文本;字段大小:20。存儲(chǔ)用戶密碼

      字段名稱:score;字段類型:數(shù)字;字段大小:整型。存儲(chǔ)用戶成績(jī)
      test表中有五個(gè)字段:
      字段名稱:question;字段類型:文本;字段大小:255。存儲(chǔ)考試題目

      字段名稱:a;字段類型:文本;字段大小:100。存儲(chǔ)選項(xiàng)A的答案

      字段名稱:b;字段類型:文本;字段大小:100。存儲(chǔ)選項(xiàng)B的答案

      字段名稱:c;字段類型:文本;字段大小:100。存儲(chǔ)選項(xiàng)C的答案

      字段名稱:d;字段類型:文本;字段大小:100。存儲(chǔ)選項(xiàng)D的答案

      字段名稱:ans;字段類型:文本;字段大小:2。存儲(chǔ)正確答案

      二.程序原代碼
        
      下面是該系統(tǒng)中較核心的三段原程序,希望對(duì)開(kāi)發(fā)類似系統(tǒng)的讀者取到拋磚引玉的作用,讀者也可對(duì)其進(jìn)行改進(jìn)以適應(yīng)自己的系統(tǒng)。

      以下為引用的內(nèi)容:
      ‘Login.asp源程序,檢驗(yàn)用戶是否合法
      < %@ Language=VBScript % >
      < %
      name=trim(request("name"))
      passwd=trim(request("passwd"))
      ‘檢查用戶是否輸入信息
      if name< >"" and passwd< >"" then
      Set conn = Server.CreateObject
      ("ADODB.Connection")
      conn.Open "driver={Microsoft Access
      Driver (*.mdb)};dbq=" &
      Server.MapPath("exercise.mdb")
      set rs= server.createobject("adodb.recordset")
      sql= "select * from user where user='" &name&
      "' and passwd='" & passwd & "'"
      ‘檢查用戶的合法性
      Set rs= conn.Execute(sql)
      if not(rs.eof) then
      檢查用戶是否已參加過(guò)考試,
      若是則進(jìn)行成績(jī)查詢
      if rs(“score”)< >0 then
      response.write rs(“user”)&
      “的考試成績(jī)是”&rs(“score”)
      else
      session("pass")=1
      session(“user”)=name
      response.redirect “test.asp”
      end if
      else
      Response.Write "對(duì)不起,
      用戶或口令不正確!!!"
      end if
      else
      end if
      % >
      < HTML >
      < HEAD >
      < META NAME="GENERATOR"
      Content="Microsoft Visual Studio 6.0" >
      < TITLE >用戶口令檢查< /TITLE >
      < /HEAD >
      < BODY >
      < FORM action="login.asp" id=FORM1
      method=post name=FORM1 >
      < P title="" > < /P >
      < P title="" > < /P >
      < P title="" align=center >用戶:
      < INPUT id=text1 name=name
      style="HEIGHT: 22px; WIDTH: 103px" >< /P >
      < P title="" align=center >口令:
      < INPUT id=password1 name=passwd
      style="HEIGHT: 23px; WIDTH: 101px"
      type=password >< /P >
      < P title="" align=center >
      < INPUT id=submit1 name=submit1
      type=submit value=" 進(jìn)入 " style="FONT-SIZE:
      medium; FONT-STYLE: normal;
      FONT-VARIANT: normal; FONT-WEIGHT:
      bold" title="" >< /P >
      < P title="" align=center >
      < /P >
      < /FORM >
      < /BODY >
      < /HTML >

      ‘test.asp源程序,從題庫(kù)中提取試題供解答
      < %@ Language=VBScript % >
      < %
      if session(“pass”)< >1 then
      response.redirect “login.asp”
      else
      end if
      Set conn = Server.CreateObject("ADODB.Connection")
      conn.Open "driver={Microsoft Access Driver
      (*.mdb)};dbq=" &
      Server.MapPath("exercise.mdb")
      ‘提取試題
      sql="select * from test"
      Set rs = conn.Execute( sql )
      % >
      ‘計(jì)時(shí)函數(shù)
      < SCRIPT LANGUAGE="JavaScript" >
      var isn1=null;
      var isn2=false;
      today=new Date();

      function stopit(){
      if(isn2){
        clearTimeout(isn1);
        }
      isn2 = false;
      }
      function startit(){
      stopit();
      isnclock();
      }

      function isnclock(){
      var now=new Date();
      var hrs=now.getHours();
      var min=now.getMinutes();
      var sec=now.getSeconds();
      document.clckh.disp.value="" ((hrs >12) ?
      hrs-12 : hrs);
      document.clckm.disp.value=((min< 10) ? "0" : "") min;
      document.clcks.disp.value=((sec< 10) ? "0" : "") sec;
      document.clck.disp.value=(hrs >=12) ? "p.m." : "a.m.";
      isn1=setTimeout("isnclock()",1000);
      isn2=true;
      }
      < /SCRIPT >

      < HTML >
      < HEAD >
      < META NAME="GENERATOR"
      Content="Microsoft Visual Studio 6.0" >
      < /HEAD >
      < BODY onLoad="startit()" BGCOLOR="FFFFFF" >
      < center >
      ‘調(diào)用計(jì)時(shí)函數(shù)顯示時(shí)間
      < TABLE BORDER=2 >
      < TR >
      < TD >Time< /TD >< TD >Hour< /TD >< TD >Min
      < /TD >< TD >Sec< /TD >< TD >< /TD >
      < /TR >
      < TR >
      < TD >< /TD >
      < TD VALIGN=TOP >< FORM NAME="clckh" onSubmit="0" >
      < INPUT TYPE="text" NAME="disp" SIZE=2 VALUE ="" >
      < /FORM >< /TD >
      < TD VALIGN=TOP >< FORM NAME="clckm" onSubmit="0" >
      < INPUT TYPE="text" NAME="disp" SIZE=2 VALUE ="" >
      < /FORM >< /TD >
      < TD VALIGN=TOP >< FORM NAME="clcks" onSubmit="0" >
      < INPUT TYPE="text" NAME="disp" SIZE=2 VALUE ="" >
      < /FORM >< /TD >
      < TD VALIGN=TOP >< FORM NAME="clck"
      onSubmit="0" >
      < INPUT TYPE="text" NAME="disp" SIZE=4 VALUE ="" >
      < /FORM >< /TD >< /TR >
      < /center >
      ‘顯示試題供解答
      < FORM action="result.asp" id=FORM1
      method=post name=FORM1 >
      < P > < /P >
      < P >
        < %
        i=1
        rs.movefirst
        do while not rs.eof% >
        < P > < %=rs("question")% >< /P >
      < TABLE align=center border=1 cellPadding=1
      cellSpacing=1
      width="80%" >
        < TR >
         < TD style="WIDTH: 50%" width="50%"
      < INPUT name=ans< %=i% > type=radio value="A" >
      < %=rs("a")% >< /TD >
         < TD >< INPUT name=ans< %=i% >
      type=radio value="B" >
         < %=rs("b")% >< /TD >< /TR >
        < TR >
         < TD >< INPUT name=ans< %=i% >
      type=radio value="C" >
         < %=rs("c")% >< /TD >
         < TD >< INPUT name=ans< %=i% >
      type=radio value="D" >
         < %=rs("d")% >< /TD >
        < /TR >
      < /TABLE >
      < %
      i=i 1
      rs.movenext
      loop
      % >
      < /P >
      < P > < /P >
      < P align=center >< INPUT id=submit1 name=submit1
      type=submit
      value=Submit >< INPUT id=reset1 name=reset1
      type=reset value=Reset >< /P >< /FORM >
      < /BODY >
      < /HTML >

      分享:ASP進(jìn)階:用ASP制作統(tǒng)計(jì)餅圖、柱狀圖等
      我們工作中經(jīng)常需要將數(shù)據(jù)轉(zhuǎn)化成柱狀圖,餅圖等,以方便直觀的分析數(shù)據(jù), 這里給大家介紹一個(gè)ASP中制作餅圖、柱狀圖的組件:csDrawGraph,csdgt.zip,因?yàn)槭墙M件,所以我們?cè)谑褂弥靶枰肦EGSV

      共2頁(yè)上一頁(yè)12下一頁(yè)
      來(lái)源:模板無(wú)憂//所屬分類:ASP教程/更新時(shí)間:2008-08-22
      相關(guān)ASP教程