日韩黑丝制服一区视频播放|日韩欧美人妻丝袜视频在线观看|九九影院一级蜜桃|亚洲中文在线导航|青草草视频在线观看|婷婷五月色伊人网站|日本一区二区在线|国产AV一二三四区毛片|正在播放久草视频|亚洲色图精品一区

分享

淺談網(wǎng)上考試系統(tǒng)中自動抽題的實現(xiàn)

 天落雨 2006-04-12
摘   要】文章主要介紹了在基于TCP/IP協(xié)議的B/S網(wǎng)上考試系統(tǒng)中,自動抽取試題的一種方法。網(wǎng)上考試系統(tǒng)由老師設(shè)置考試時間、試卷結(jié)構(gòu),然后根據(jù)設(shè)置的試卷結(jié)構(gòu)從試題庫中隨機(jī)抽取試題組織成試卷,學(xué)生可在網(wǎng)上進(jìn)行考試及成績查詢,系統(tǒng)中關(guān)鍵的技術(shù)之一是在大量題目中抽取適當(dāng)試題組成試卷,為網(wǎng)上正??荚囂峁┝藞詫嵉幕A(chǔ)。
  【關(guān)鍵詞】網(wǎng)上考試;算法;二分查找;插入排序
      【中圖分類號】 G434                          【文獻(xiàn)標(biāo)識碼】 A                    【文章編號】 1008-1151(2006)03-0102-02

      傳統(tǒng)的考試系統(tǒng)依賴于紙張,考試完畢之后,紙張不利于長期保存,成績的查詢和公布也很困難,而且造成了很大的浪費(fèi)。本考試系統(tǒng)利用現(xiàn)有的計算機(jī)資源,將傳統(tǒng)的考試應(yīng)用到網(wǎng)絡(luò)上,既可以組織注重理論知識的集中式閉卷考試,也可以組織注重實際動手能力的長期開卷考試。試卷的題型包括填空題、單項選擇題、判斷題、讀程序題和編程題,并且分別建立了這幾種題型數(shù)據(jù)庫。如何抽選題庫中的題目組成試卷,是網(wǎng)上考試的關(guān)鍵技術(shù)之一。下面將介紹各種題型組成試卷過程中應(yīng)用的算法。
  一、實現(xiàn)流程
      網(wǎng)上考試系統(tǒng)中自動抽取試題、組織試卷的過程需要借助數(shù)組來完成,具體思想是,將抽取出來的沒有重復(fù)試題編號寫入數(shù)組中,試題編號按順序存儲,然后一次性到數(shù)據(jù)庫中選擇試題。這樣可以保證試題抽選的唯一性,又可以提高數(shù)據(jù)庫的訪問效率。其操作流程如圖1所示:


圖1  試題抽選流程圖
  二、主要涉及的關(guān)鍵技術(shù)
 ?。ㄒ唬?shù)據(jù)庫的連接
  本網(wǎng)上考試系統(tǒng)使用ASP+SQL SERVER 2000進(jìn)行設(shè)計和開發(fā),SQL SERVER 2000數(shù)據(jù)庫中存儲各種類型的試題,首先建立一個名稱為tk_c的數(shù)據(jù)源,然后使用ASP腳本連接數(shù)據(jù)庫,將連接數(shù)據(jù)庫的代碼寫入一個共有的文件中,其他需要連接數(shù)據(jù)庫的文件直需要引入這個文件即可,引入文件的代碼如下:
  <!--#include file="opendatabase.asp"-->
  連接數(shù)據(jù)庫的代碼如下:
  set conn=Server.CreateObject("ADODB.Connection")
  conn.open"dsn=tk_c;uid=sa;pwd=sql;"
  登錄SQL SERVER使用sa,密碼為sql。
  連接成功后,需要將數(shù)據(jù)庫中符合要求的試題首先提取出來,使用SQL語句查找符合指定考點、指定難度的試題放入集合strecordset中,并計算試題的個數(shù)count,為產(chǎn)生正確的隨機(jī)試題編號使用。
  (二)二分查找
  將產(chǎn)生的沒有重復(fù)的隨機(jī)題目編號存入數(shù)組st中,使用成熟的二分查找方法判斷數(shù)組中是否已經(jīng)存在此試題編號,二分法查找比順序查找處理效率高,具體代碼如下:
  Function BinarySearch(st,n,x)
  var i=0,j=n-1,t;
  Do While(i<=j)
  t=(i+j)/2;
  if(st(t)=x) then BinarySearch =true;
  else if(st(t)>x) then
  j=t-1;
  t=(i+j)/2;       //左查找
  else
  i=t+1;
  t=(i+j)/2;       //右查找
  end if
  end if
  loop
  BinarySearch=false;
  End Function
 ?。ㄈ┎迦肱判?br>  為了能夠?qū)崿F(xiàn)二分查找需要首先將數(shù)組中的數(shù)據(jù)按從小到大的順序存儲,當(dāng)產(chǎn)生一個隨機(jī)編號后,將此隨機(jī)隨機(jī)編號按插入排序法插入數(shù)組。實現(xiàn)代碼如下:
  Function InsertSort(st, n, x)
  var i=n-1;
  Do While(x<st(i))
  st(i+1)=st(i);
  i=i-1;
  loop  //查找并插入排序
  st(i)=x;
  End Function
  (四)自動抽題的實現(xiàn)
  通過調(diào)用上述兩個函數(shù)可自動產(chǎn)生試題,首先判斷試題是否存在,不存在插入數(shù)組st;否則重新產(chǎn)生試題編號。重復(fù)操作,直到滿足試題總數(shù)為止,其具體實現(xiàn)代碼如下:
      Function rndnum()
      randomize
      num=cint(fix(rnd*count))        //產(chǎn)生隨機(jī)編號
      n=0
      Do While(n<=‘試題總數(shù)‘)
    if (!BinarySearch(st,n,num)) then
  InsertSort(st, n, num);
  n=n+1;
      else
      randomize
      num=cint(fix(rnd*count))
      end if
  loop   //查找并插入排序
  End Function
  (五)試卷顯示及特殊字符處理
  產(chǎn)生的沒有重復(fù)的試題編號按照從小到大順序放入數(shù)組中后,從頭開始選擇一個試題編號存入變量num中,然后將strecordset的指針放置在開始位置,在移動到num位置,再將指定位置的試題內(nèi)容顯示在網(wǎng)頁上,重復(fù)讀取數(shù)組的試題編號并繼續(xù)顯示在網(wǎng)頁上。
  在顯示試題的時候,有很多特殊的字符不能夠正常顯示,需要經(jīng)過處理才能夠按照正常的效果顯示,這些特殊的字符包括空格、“<”,“>”,回車,換行等,可通過下列代碼實現(xiàn):
  server.htmlencode(st);
  或者調(diào)用下列函數(shù):
  Function trans_code(str)
      if isNULL(str) then
      trans_code=""
      exit function
      end if
      l=len(str)
      result=""
  for iii = 1 to l
  select case mid(str,iii,1)
  case "<"  result =result+"<"
  case ">"  result=result+">"
  case chr(13)  result=result+"<br>"
  case chr(34) result=result+"""
  case "&" result=result+"&"
  case chr(32)
  if iii+1<=l and iii-1>0 then
  if mid(str,iii+1,1)=chr(32) or mid(str,iii+1,1)=chr(9) or mid(str,iii-1,1)=chr(32) or mid(str,iii-1,1)=chr(9)  then result=re?鄄sult+" "
  else  result=result+" "
  end if
  else  result=result+" "
  end if
  case chr(9)  result=result+"    "
  case else   result=result+mid(str,iii,1)
  end select
  next
  trans_code=result
  End Function
  三、結(jié)論
  本抽取試題的實現(xiàn)方法可應(yīng)用在大量試題的數(shù)據(jù)庫中,能夠快速、高效地從題庫中選擇出符合要求的題目并組成試卷,為考試提供了堅實的基礎(chǔ)。此抽題方法已在省級精品課程“基于C++的面向?qū)ο蟪绦蛟O(shè)計”網(wǎng)上考試系統(tǒng)中應(yīng)用,使用效果良好。

    本站是提供個人知識管理的網(wǎng)絡(luò)存儲空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點。請注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購買等信息,謹(jǐn)防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請點擊一鍵舉報。
    轉(zhuǎn)藏 分享 獻(xiàn)花(0

    0條評論

    發(fā)表

    請遵守用戶 評論公約

    類似文章 更多