• 
    

    
    

      99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看

      ?

      Authorware結(jié)合數(shù)據(jù)庫(kù)制作在線考試系統(tǒng)

      2012-04-29 18:05:01蔣維黃紹龍
      電腦知識(shí)與技術(shù) 2012年26期

      蔣維 黃紹龍

      摘要:從目前Authorware的實(shí)際應(yīng)用來(lái)看,大多數(shù)人還僅限于制作一些比較簡(jiǎn)單的多媒體課件。但是很多軟件在開發(fā)時(shí)都需要和數(shù)據(jù)庫(kù)等軟件結(jié)合,來(lái)對(duì)數(shù)據(jù)進(jìn)行大量快速地處理。該文介紹了如何將Authorware和Access二者進(jìn)行有效的結(jié)合,來(lái)開發(fā)制作在線考試系統(tǒng)。

      關(guān)鍵詞:在線考試系統(tǒng);Authorware;Access;ODBC

      中圖分類號(hào):TP37文獻(xiàn)標(biāo)識(shí)碼:A文章編號(hào):1009-3044(2012)26-6363-04

      1建立數(shù)據(jù)庫(kù)

      我們采用Access數(shù)據(jù)庫(kù)來(lái)建立數(shù)據(jù)表,然后讓Authorware使用ODBC技術(shù)去訪問(wèn)表中的內(nèi)容。在Access中建立信息庫(kù)和試題庫(kù),庫(kù)中各表的建立如下:

      信息庫(kù):學(xué)生信息表(編號(hào),姓名(文本),學(xué)號(hào)(文本),成績(jī)(數(shù)字))

      試題庫(kù):(在試題庫(kù)中亦可根據(jù)需要添加試題表)

      試題一表(編號(hào),題目類型(文本),題目(備注),答案(文本),分值(數(shù)字),標(biāo)志(數(shù)字))

      試題二表(編號(hào),題目類型(文本),題目(備注),答案(文本),分值(數(shù)字),標(biāo)志(數(shù)字))

      試題三表(編號(hào),題目類型(文本),題目(備注),答案(文本),分值(數(shù)字),標(biāo)志(數(shù)字))

      要訪問(wèn)數(shù)據(jù)庫(kù)首先要連接數(shù)據(jù)庫(kù),通過(guò)ODBC接口連接數(shù)據(jù)庫(kù),必須先設(shè)置數(shù)據(jù)源。本設(shè)計(jì)中設(shè)置數(shù)據(jù)源的方法是利用Au? thorware提供的外部函數(shù)文件tMsDSN.u32,這是32位的動(dòng)態(tài)連接庫(kù)文件。tMsDSN.u32中只有一個(gè)函數(shù)tMsDBRegister(),可以自動(dòng)在32位ODBC控制面板中注冊(cè)數(shù)據(jù)庫(kù)。tMsDSN.u32文件在Authorware的安裝目錄中,用戶在使用其函數(shù)tMsDBRegister()前要對(duì)其函數(shù)進(jìn)行裝載,并且要將該文件和程序文件一起打包發(fā)布。其次是操作數(shù)據(jù)庫(kù),在Authorware中提供了一個(gè)odbc.u32文件,此文件中提供了對(duì)數(shù)據(jù)庫(kù)進(jìn)行操作的幾個(gè)函數(shù),將其中的三個(gè)函數(shù)ODBCOpen、ODBCClose、ODBCExecute導(dǎo)入即可運(yùn)用。ODBCOpen用于打開數(shù)據(jù)庫(kù),ODBCClose用于關(guān)閉數(shù)據(jù)庫(kù),ODBCExecute用于向ODBC的SQL解釋程序發(fā)送一條SQL命令。對(duì)于數(shù)據(jù)庫(kù)的各種操作均通過(guò)SQL語(yǔ)句去執(zhí)行。

      2 Authorware中界面的制作

      圖1

      2.1登錄系統(tǒng)界面的制作

      連接信息數(shù)據(jù)庫(kù)計(jì)算圖標(biāo)內(nèi)容如下:

      ODBChandle:=ODBCOpen(WindowHandle,"error","信息庫(kù)","","")

      if ODBChandle=0 then

      dbType:= "Microsoft Access Driver (*.mdb) " --ODBC數(shù)據(jù)源驅(qū)動(dòng)程序

      DSN:= "DSN=信息庫(kù); "--指定數(shù)據(jù)源名

      description:= "學(xué)生信息庫(kù); "--數(shù)據(jù)源描述

      FIL:= "FIL= MS Access; "--指定數(shù)據(jù)源的數(shù)據(jù)庫(kù)類型

      DBQ:= "DBQ="^FileLocation^"信息庫(kù).mdb; " --指定數(shù)據(jù)庫(kù)文件

      dblist:=DSN^description^FIL^DBQ--指定ODBC數(shù)據(jù)源名、描述以及與之相關(guān)聯(lián)的數(shù)據(jù)庫(kù)文件

      result:=tMsDBRegister(4,dbType,dblist) --配置數(shù)據(jù)源打開數(shù)據(jù)庫(kù)源程序

      end if

      用顯示圖標(biāo)制作一個(gè)登錄界面,用交互圖標(biāo)作文本輸入,需定義變量name、num,用來(lái)記錄輸入的名字和學(xué)號(hào)。利用系統(tǒng)變量EntryText和NumEntry把用戶輸入的姓名和學(xué)號(hào)分別儲(chǔ)存到name、num中,代碼為:name:=EntryText,num:=NumEntry。用戶輸入完信息后點(diǎn)擊界面上的確定或重新輸入按鈕。

      確定計(jì)算圖標(biāo)內(nèi)容如下:

      if name<>"" & num<>"" then--輸入的姓名、學(xué)號(hào)若不為空

      ODBChandle:=ODBCOpen(WindowHandle,"error","信息庫(kù)","","") --打開信息庫(kù)

      sqlstr:="insert into學(xué)生信息表(姓名,學(xué)號(hào))values("^name^", "^num^")"

      student:=ODBCExecute(ODBChandle,sqlstr) --把剛才輸入的學(xué)生的姓名、學(xué)號(hào)寫入數(shù)據(jù)庫(kù)中

      ODBCClose(ODBChandle)--關(guān)閉數(shù)據(jù)庫(kù)

      else--輸入的姓名、學(xué)號(hào)若為空

      SystemMessageBox(WindowHandle, "輸入不能為空!", "Warning", 48) --給出提示GoTo(IconID@"登錄界面")

      框需重新輸入

      end if

      重新輸入計(jì)算圖標(biāo)內(nèi)容如下:GoTo(IconID@"登錄界面")

      2.2試題系統(tǒng)界面的制作

      為了統(tǒng)計(jì)做題分值,需用到兩個(gè)外部函數(shù)baSysFolder和CopyFile在本機(jī)建立臨時(shí)數(shù)據(jù)庫(kù)文件。建立臨時(shí)數(shù)據(jù)庫(kù)文件計(jì)算圖標(biāo)的內(nèi)容如下:

      Result:=baSysFolder("temp")--獲取本機(jī)上的臨時(shí)文件夾路徑,函數(shù)在Budapi.u32中

      CopyFile(FileLocation^"試題庫(kù).mdb", Result^"試題庫(kù).mdb",0) --建立臨時(shí)文件,函數(shù)在Winapi.u32中

      連接試題數(shù)據(jù)庫(kù)計(jì)算圖標(biāo)的內(nèi)容如下:

      與連接信息庫(kù)一樣,只需把DBQ:= "DBQ="^FileLocation^"信息庫(kù).mdb; "改寫成DBQ:= "DBQ="^ Result ^"試題庫(kù).mdb; "即可。隨機(jī)抽取試題分支中每套試題的界面如下:

      圖2

      2.2.1試題界面的制作(如圖2)

      初始總成績(jī)和題號(hào)計(jì)算圖標(biāo)的內(nèi)容如下:

      score:=0

      n:=1

      用顯示圖標(biāo)制作一個(gè)做題的界面,再利用交互圖標(biāo)在界面上制作3個(gè)交互按鈕,各分支按鈕內(nèi)容的設(shè)置如下:

      提交計(jì)算圖標(biāo)的內(nèi)容如下:

      hh:=SystemMessageBox(WindowHandle, "提交成績(jī)后即將退出系統(tǒng)!確定要提交嗎?", "Confirmation", 292)--點(diǎn)擊提交按鈕,會(huì)彈出提示框詢問(wèn)用戶是否確定提交成績(jī)

      if hh=6 then--用戶若選的是yes按鈕

      ODBChandle:=ODBCOpen(WindowHandle,"error","信息庫(kù)","","") --打開信息庫(kù)

      sqlstr:="insert into學(xué)生信息表(成績(jī))values("^score^")"

      student:=ODBCExecute(ODBChandle,sqlstr) --把做題總成績(jī)寫信息庫(kù)

      ODBCClose(ODBChandle)--關(guān)閉信息庫(kù)

      DeleteFile(Result^"信息庫(kù).mdb")--刪除臨時(shí)數(shù)據(jù)庫(kù)

      GoTo(IconID@"退出系統(tǒng)")--進(jìn)入退出系統(tǒng)

      end if

      下一題計(jì)算圖標(biāo)的內(nèi)容如下:

      n:=n+1

      if (n>=1) & (n<=20) then GoTo(IconID@"填空題")

      else if (n>=21) & (n<=40) then GoTo(IconID@"單選題")

      else if (n>=41) & (n<=50) then GoTo(IconID@"多選題")

      else if (n>=51) &( n<=70) then GoTo(IconID@"判斷題")

      else SystemMessageBox(WindowHandle, "已完成全部測(cè)試題!可點(diǎn)擊提交按鈕提交成績(jī)!", "Information", 64)

      --完成全部測(cè)試,提示用戶可提交成績(jī)

      end if

      上一題計(jì)算圖標(biāo)的內(nèi)容如下:

      n:=n-1

      if……end if--與下一題計(jì)算圖標(biāo)中的內(nèi)容一樣,但沒有else分句;在此分支中設(shè)置按鈕的激活條件為n>=2,當(dāng)題目號(hào)為1時(shí),此按鈕不可用

      接著系統(tǒng)根據(jù)n值在題型框架圖標(biāo)中選擇相應(yīng)的題型。

      2.2.1.1題型界面的制作

      每種題型的交互界面可根據(jù)此題型來(lái)制作,如填空題的界面制作如上圖2,圖中各圖標(biāo)的內(nèi)容設(shè)置如下:

      讀題計(jì)算機(jī)圖標(biāo)的內(nèi)容如下:

      ODBChandle:=ODBCOpen(WindowHandle,"error","試題庫(kù)","","") --打開試題庫(kù)

      sqlstring:="select題目from試題一where編號(hào)="^n^""

      timu:=ODBCExecute(ODBChanlde,sqlstring)--根據(jù)n值讀取題目

      ODBCClose(ODBChandle)--關(guān)閉試題庫(kù)

      在顯示填空題目的顯示圖標(biāo)中用文本輸入工具輸入:{timu},利用交互圖標(biāo)作文本輸入交互,用戶根據(jù)顯示的題目答題。以下計(jì)算圖標(biāo)中的flag變量是用于記錄此題分值是否被加入過(guò)總分,flag:=0表示未被加入過(guò),flag:=1表示加入過(guò),題目原標(biāo)志段中的值為0。

      做題交互分支中計(jì)算圖標(biāo)的內(nèi)容如下:

      answer:=Entrytext --把輸入內(nèi)容儲(chǔ)存在answer變量中

      ODBChandle:=ODBCOpen(WindowHandle,"error","試題庫(kù)","","")--打開試題庫(kù)

      sqlstr:="select標(biāo)志from試題一where編號(hào)="^n^""

      flag:=ODBCExecute(ODBChanlde,sqlstr) --據(jù)n值取出該題目對(duì)應(yīng)的標(biāo)志值放在flag變量中

      sqlstr:="select答案from試題一where編號(hào)="^n^""

      daan:=ODBCExecute(ODBChanlde,sqlstr)--據(jù)n值取出該題目對(duì)應(yīng)的答案值放在daan變量中

      sqlstr:="select分值from試題一where編號(hào)="^n^""

      fenzhi:=ODBCExecute(ODBChanlde,sqlstr)--據(jù)n值取出該題目對(duì)應(yīng)的分值值放在fenzhi變量中

      if flag=1 then--若flag為1

      score:=score-fenzhi --先從總分中減掉該題的分值

      end if

      if answer=daan then--若用戶輸入的答案與題目答案一致

      score:=score+fenzhi --在總分中加入該題分值

      setflag:="update試題一set標(biāo)志=1 where編號(hào)="^n^"" --把該題的標(biāo)志值置成1

      ODBCExecute(ODBChanlde, setflag)

      end if

      ODBCClose(ODBChandle) --關(guān)閉數(shù)據(jù)庫(kù)

      2.3退出系統(tǒng)界面的制作

      用顯示圖標(biāo)制作一個(gè)退出的界面,利用quit()函數(shù)退出即可。

      3網(wǎng)絡(luò)發(fā)布

      將程序打包為text.a7r文件,再用Authorware的Web Packager打包生成用于網(wǎng)絡(luò)上瀏覽的text.aam,將生成的text.aam流文件放在服務(wù)器的考試系統(tǒng)目錄下,最后使用任何文本編輯軟件編寫簡(jiǎn)單的html[2]詹慧靜.用Authorware7.0制作多媒體課件[M].北京:高等教育出版社,2009.

      [3]李智鑫.Authorware7.0中文版多媒體制作教程[M].北京:中國(guó)水利水電出版社,2006.

      [4]繆亮,付邦道.Authorware多媒體課件制作實(shí)用教程[M]. 2版.北京:清華大學(xué)出版社,2008.

      临桂县| 泸水县| 宜昌市| 湛江市| 利辛县| 鄂尔多斯市| 望谟县| 垣曲县| 墨竹工卡县| 贡觉县| 长汀县| 东乡族自治县| 溧水县| 嘉鱼县| 芷江| 莱州市| 清涧县| 额尔古纳市| 黑河市| 闸北区| 理塘县| 阜宁县| 漯河市| 浦县| 来宾市| 灵寿县| 丰台区| 锡林浩特市| 泗水县| 潮安县| 巴南区| 绥阳县| 临泽县| 开阳县| 晴隆县| 百色市| 海南省| 惠东县| 临清市| 义乌市| 缙云县|