国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

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

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

蔣維 黃紹龍

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

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

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

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

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

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

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

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

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

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

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

2 Authorware中界面的制作

圖1

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

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

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

if ODBChandle=0 then

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

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

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

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

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

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

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

end if

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

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

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

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

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

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

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

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

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

框需重新輸入

end if

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

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

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

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

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

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

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

圖2

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

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

score:=0

n:=1

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

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

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

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

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

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

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

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

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

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

end if

下一題計算圖標(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, "已完成全部測試題!可點擊提交按鈕提交成績!", "Information", 64)

--完成全部測試,提示用戶可提交成績

end if

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

n:=n-1

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

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

2.2.1.1題型界面的制作

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

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

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

sqlstring:="select題目from試題一where編號="^n^""

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

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

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

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

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

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

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

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

sqlstr:="select答案from試題一where編號="^n^""

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

sqlstr:="select分值from試題一where編號="^n^""

fenzhi:=ODBCExecute(ODBChanlde,sqlstr)--據(jù)n值取出該題目對應(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編號="^n^"" --把該題的標(biāo)志值置成1

ODBCExecute(ODBChanlde, setflag)

end if

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

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

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

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

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

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

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

天门市| 尉氏县| 汾西县| 阿鲁科尔沁旗| 长垣县| 百色市| 苍山县| 和平区| 中西区| 包头市| 什邡市| 察哈| 太谷县| 溧阳市| 黎平县| 永济市| 象山县| 获嘉县| 开平市| 南充市| 阳朔县| 自贡市| 高要市| 老河口市| 上饶市| 大安市| 青龙| 天峻县| 武川县| 宜章县| 星座| 漳平市| 刚察县| 卢氏县| 依安县| 达尔| 乳山市| 留坝县| 和平区| 台中县| 芷江|