用ASP開發一個在線考試程序(六)
測驗代碼
Exam.asp 提供一系列的題目和以單選按鈕為格式的選項。為了使測驗更具挑戰性,還要有時間限制。我設置了一個裝載時自動啟動的時鐘,將其時間設為20秒。剩余的時間在屏幕底部的狀態窗口中顯示。時間因素同題目個數一樣可以改變。為了在每次會員想要參加考試時,都從數據庫中選擇不同的題目,我使用了隨機函數。在數據庫中,題目的個數固定為10個,每次會員回答5個問題。所有的題目都一起顯示出來,然后開始計時。以下代碼是計時器的函數:
< script language="JavaScript" >
var ck=0;
var tf=0;
var timeUp=0;
var timeLeft=0;
var tcount=0;
TimerFunc();
function TimerFunc() {
tf=window.setTimeout("TimerFunc();",1000);
tcount++;
timeLeft=20 - tcount;
window.status = timeLeft + " Seconds remaining";
}
< /script >
要注意,沒有時間限制的測驗是沒有樂趣的。
這頁的查詢是這樣的:
id = Request.QueryString ("section")
session("id") = id
sql_tblname = "select tbl_name from paper where id="&id
Set RS_tblname = Application("Conn").Execute(sql_tblname)
subject= RS_tblname(0)
MyString = Split(subject,"tbl",-1,1)
查詢字符串存儲在一個 session("id")中, 按順序啟動查詢。這個SQL聲明的目的是從試卷表格中找到表格名。使用split 函數的目的是從結果中去掉tbl。(我使用了表格名前加tbl前綴的命名慣例)。一旦找到了表格名,就開始了向指定表格的查詢。為了使應用程序更有意思,我使用了隨機函數,生成從1到10之間的任意數字。這些數字用來從指定的科目表格中選取id:
sql_details = "select a.id, a.question, a.choice1, a.choice2,a.choice3, " &_
" a.choice4 from " & subject & " a where a.id="&MyArray(Counter)
在這個查詢中,id,question、 choice1、 choice2、 choice3、 choice4 都是科目表格中的域名。
MyArray(Counter) 是已經生成的隨機數字。
Exam.asp 提供一系列的題目和以單選按鈕為格式的選項。為了使測驗更具挑戰性,還要有時間限制。我設置了一個裝載時自動啟動的時鐘,將其時間設為20秒。剩余的時間在屏幕底部的狀態窗口中顯示。時間因素同題目個數一樣可以改變。為了在每次會員想要參加考試時,都從數據庫中選擇不同的題目,我使用了隨機函數。在數據庫中,題目的個數固定為10個,每次會員回答5個問題。所有的題目都一起顯示出來,然后開始計時。以下代碼是計時器的函數:
< script language="JavaScript" >
var ck=0;
var tf=0;
var timeUp=0;
var timeLeft=0;
var tcount=0;
TimerFunc();
function TimerFunc() {
tf=window.setTimeout("TimerFunc();",1000);
tcount++;
timeLeft=20 - tcount;
window.status = timeLeft + " Seconds remaining";
}
< /script >
要注意,沒有時間限制的測驗是沒有樂趣的。
這頁的查詢是這樣的:
id = Request.QueryString ("section")
session("id") = id
sql_tblname = "select tbl_name from paper where id="&id
Set RS_tblname = Application("Conn").Execute(sql_tblname)
subject= RS_tblname(0)
MyString = Split(subject,"tbl",-1,1)
查詢字符串存儲在一個 session("id")中, 按順序啟動查詢。這個SQL聲明的目的是從試卷表格中找到表格名。使用split 函數的目的是從結果中去掉tbl。(我使用了表格名前加tbl前綴的命名慣例)。一旦找到了表格名,就開始了向指定表格的查詢。為了使應用程序更有意思,我使用了隨機函數,生成從1到10之間的任意數字。這些數字用來從指定的科目表格中選取id:
sql_details = "select a.id, a.question, a.choice1, a.choice2,a.choice3, " &_
" a.choice4 from " & subject & " a where a.id="&MyArray(Counter)
在這個查詢中,id,question、 choice1、 choice2、 choice3、 choice4 都是科目表格中的域名。
MyArray(Counter) 是已經生成的隨機數字。
測驗結束后,結果被存儲起來并被增加到數據庫的細節表格中。這樣會員就能看到測驗的結果了。(在本例中,我只保留了科目的一個記錄和百分制的分數。還可以有一個時間-日期標志。)