(裝備指揮技術(shù)學(xué)院信息裝備系,北京101416)
[摘 要] 本文介紹了基于Web模式的“裝備財(cái)務(wù)自評(píng)自測(cè)網(wǎng)絡(luò)系統(tǒng)”的設(shè)計(jì)方案#65380;功能實(shí)現(xiàn)等關(guān)鍵技術(shù)和方法,供后續(xù)系統(tǒng)開(kāi)發(fā)者借鑒#65377;
[關(guān)鍵詞] 裝備財(cái)務(wù);管理系統(tǒng);Web模式;評(píng)測(cè)
[中圖分類號(hào)]F270.7;TP302.1[文獻(xiàn)標(biāo)識(shí)碼]A[文章編號(hào)]1673-0194(2008)22-0065-03
一#65380;引 言
網(wǎng)絡(luò)技術(shù)在全球范圍內(nèi)已得到了飛速的發(fā)展,網(wǎng)絡(luò)信息已成為人類社會(huì)最重要的資源#65377;如何有效地開(kāi)發(fā)和利用網(wǎng)絡(luò)信息資源,使之能更好地為裝備現(xiàn)代化服務(wù),是擺在裝備財(cái)務(wù)工作者面前的一個(gè)重大課題#65377;裝備財(cái)務(wù)工作比較煩雜,各種規(guī)章制度也較多,對(duì)會(huì)計(jì)人員的業(yè)務(wù)水平和素質(zhì)要求也相應(yīng)較高#65377;裝備財(cái)務(wù)自評(píng)自測(cè)網(wǎng)絡(luò)系統(tǒng)為財(cái)務(wù)人員提供了集自學(xué)#65380;測(cè)評(píng)和提高業(yè)務(wù)素質(zhì)于一體的一個(gè)有效平臺(tái)#65377;
系統(tǒng)收集了大量有關(guān)財(cái)務(wù)會(huì)計(jì)基礎(chǔ)知識(shí)#65380;裝備財(cái)務(wù)#65380;財(cái)務(wù)法規(guī)#65380;預(yù)算會(huì)計(jì)和企業(yè)會(huì)計(jì)的信息,采用選擇題#65380;判斷題和綜合題等題型,組成具有3 000多道題的試題庫(kù)#65377;用戶以隨機(jī)抽題#65380;自動(dòng)組卷的方式,在規(guī)定時(shí)間內(nèi)實(shí)施試題考核,測(cè)試個(gè)人的業(yè)務(wù)水平,測(cè)試結(jié)束后系統(tǒng)自動(dòng)給出成績(jī)及相應(yīng)的參考答案#65377;通過(guò)自評(píng)自測(cè),財(cái)務(wù)人員能綜合和補(bǔ)充個(gè)人的業(yè)務(wù)知識(shí),不斷提高自己的業(yè)務(wù)水平和技能#65377;
二#65380;系統(tǒng)的結(jié)構(gòu)
裝備財(cái)務(wù)自評(píng)自測(cè)系統(tǒng)(以下簡(jiǎn)稱“系統(tǒng)”),由若干客戶瀏覽器#65380;Web服務(wù)器和后臺(tái)數(shù)據(jù)庫(kù)服務(wù)器三級(jí)結(jié)構(gòu)組成,客戶瀏覽器和Web服務(wù)器之間采用B/S(瀏覽器/服務(wù)器)結(jié)構(gòu)#65377;每個(gè)客戶通過(guò)瀏覽器向Web服務(wù)器發(fā)送請(qǐng)求,訪問(wèn)Web服務(wù)器提供的信息#65377;為了保證“系統(tǒng)”數(shù)據(jù)的安全,數(shù)據(jù)獨(dú)立于數(shù)據(jù)庫(kù)服務(wù)器內(nèi),數(shù)據(jù)庫(kù)服務(wù)器為SQL Server 2000 系統(tǒng)#65377;Web服務(wù)器和數(shù)據(jù)庫(kù)服務(wù)器之間通過(guò)ADO方式連接,具體如圖1所示#65377;ASP文件內(nèi)嵌VB Script語(yǔ)言#65377;
三#65380;系統(tǒng)的功能模塊組成
系統(tǒng)主要由兩大功能組成:一是試題庫(kù)的構(gòu)建和管理功能;二是自評(píng)自測(cè)功能#65377;按功能的使用權(quán)限將系統(tǒng)用戶劃分為管理員和普通用戶#65377;管理員主要完成試題庫(kù)的構(gòu)建和管理功能,普通用戶主要完成自評(píng)自測(cè)功能#65377;
1. 管理員權(quán)限
(1)構(gòu)建#65380;管理試題庫(kù):包括創(chuàng)建試題庫(kù)結(jié)構(gòu),試題的增加#65380;修改#65380;刪除,通過(guò)分科分類瀏覽和按關(guān)鍵字查詢來(lái)獲取題庫(kù)信息#65377;
(2)新聞編輯和管理:包括查看新聞#65380;發(fā)布新聞#65380;作廢新聞等功能#65377;
(3)會(huì)計(jì)法規(guī)的發(fā)布#65377;
(4)系統(tǒng)用戶的管理:包括注冊(cè)用戶的審核和撤銷,修改密碼等#65377;
2. 普通用戶權(quán)限
(1)用戶注冊(cè)及登錄#65377;
(2)設(shè)置試卷參數(shù)#65380;抽題組卷#65380;進(jìn)行測(cè)試#65380;查看成績(jī)和核對(duì)答案#65377;
(3)查看新聞#65377;
(4)查看會(huì)計(jì)法規(guī)#65377;
(5)修改密碼#65377;
四#65380;數(shù)據(jù)庫(kù)設(shè)計(jì)
主要數(shù)據(jù)表如下:
(1)試題表:該表用來(lái)存儲(chǔ)試題的詳細(xì)信息,包括試題ID#65380;試題內(nèi)容#65380;章號(hào)#65380;節(jié)號(hào)#65380;類型#65380;圖表文件名#65380;標(biāo)準(zhǔn)答案#65377;其中圖表文件名為可變長(zhǎng)字符,有圖為文件名;無(wú)圖,則為空#65377;這樣設(shè)計(jì)數(shù)據(jù)庫(kù),除了選擇題的選項(xiàng),其他試題信息就都已經(jīng)包括了#65377;
(2)試題選擇項(xiàng)表:該表用于存放選擇題的供選答案,包括試題選擇號(hào)ID#65380;所屬試題ID#65380;選擇題選項(xiàng)答案#65377;每個(gè)選擇類型的試題有4~6個(gè)供選答案,其他類型試題不存入該表#65377;其中,所屬試題ID與試題ID 對(duì)應(yīng)#65377;這兩張表可以通過(guò)這個(gè)對(duì)應(yīng)關(guān)系進(jìn)行自然連接,進(jìn)行數(shù)據(jù)的讀寫(xiě)#65380;修改等操作#65377;這樣設(shè)計(jì)的好處是,因?yàn)轭}庫(kù)管理經(jīng)常要根據(jù)關(guān)鍵字查詢,把試題的選項(xiàng)再建一個(gè)表,有利于查詢速度和效率的提高#65377;
(3)用戶信息表:該表存儲(chǔ)用戶信息,包括用戶身份ID#65380;用戶姓名#65380;用戶密碼#65380;用戶單位#65380;所在部門#65380;用戶的職務(wù)以及使用權(quán)限#65377;目的就是要檢測(cè)用戶的身份和合法性,維護(hù)系統(tǒng)安全,防止非法用戶登錄使用#65377;
五#65380;功能實(shí)現(xiàn)
1. 以管理員身份登錄后使用的主要功能是“題庫(kù)管理”
進(jìn)入“題庫(kù)管理”,看到的是科目名稱#65380;類型#65377;通過(guò)選擇科目#65380;題型,對(duì)題庫(kù)信息進(jìn)行分類瀏覽#65377;也可以根據(jù)科目#65380;題型及題目中的關(guān)鍵字來(lái)查詢?yōu)g覽#65377;如果管理員要得到更詳細(xì)的信息,可以點(diǎn)擊“查看/編輯”按鈕,將得到題目的所有內(nèi)容及選項(xiàng),并可以即時(shí)修改#65377;同樣,管理員可以添加和刪除任何科目和類型的題目#65377;
2. 以普通用戶登錄后使用的主要功能是“評(píng)測(cè)”
系統(tǒng)提供了試卷個(gè)性化設(shè)置功能,以滿足用戶不同需求#65377;設(shè)置項(xiàng)包括試卷單選#65380;多選#65380;判斷#65380;綜合題的題目個(gè)數(shù)和每道題的分值,同時(shí)還可設(shè)置試卷答題時(shí)間等#65377;如此個(gè)性化設(shè)置,目的在于在有限的業(yè)余時(shí)間內(nèi),根據(jù)個(gè)人的實(shí)際水平,有針對(duì)性地#65380;有范圍地和有時(shí)間性地設(shè)置個(gè)性化試卷#65377;
默認(rèn)的試卷模式是:單選題20個(gè),每個(gè)2分;多選題15個(gè),每個(gè)2分;判斷題10個(gè),每個(gè)1分;綜合題2個(gè),每個(gè)10分#65377;答題時(shí)間為2小時(shí)#65377;
在用戶確定所需的試卷類型和題量后,系統(tǒng)將隨機(jī)從題庫(kù)中按照用戶的選擇抽取題目來(lái)組成試卷,供用戶測(cè)試#65377;
在抽題組卷時(shí),如何選擇隨機(jī)函數(shù),使得抽題出現(xiàn)重復(fù)的概率為零或者達(dá)到最小,是一個(gè)難點(diǎn)#65377;
本系統(tǒng)使用哈希函數(shù)來(lái)控制題目的選擇#65377;哈希函數(shù)有多種構(gòu)造方法,如直接定址法#65380;數(shù)字分析法#65380;平方取中法#65380;折疊法#65380;除留余數(shù)法#65380;隨機(jī)數(shù)法等#65377;其中比較常用的是除留余數(shù)法和隨機(jī)數(shù)法#65377;由于本系統(tǒng)只是從題庫(kù)中隨機(jī)抽取題目,強(qiáng)調(diào)隨機(jī)性,故采用隨機(jī)數(shù)法(H(key)=random(key))#65377;
我們希望的是有一個(gè)完美的哈希函數(shù),使得在題庫(kù)中取題不會(huì)發(fā)生沖突,即不會(huì)重復(fù)取題#65377;但是,所有的哈希函數(shù)都可能遇到?jīng)_突,我們只能將沖突降到最小#65377;
一般處理沖突的方法有3種:開(kāi)放定址法#65380;再哈希法#65380;鏈地址法#65377;
本系統(tǒng)使用其中最簡(jiǎn)單的也最常用的開(kāi)放定址法:
Hi =(H(key)+ di) MOD m,i=1,2,…,k (k≤m-1)#65377;
其中:H(key)為哈希函數(shù);m為哈希表表長(zhǎng);di為增量序列,可有下列3種取法:
(1)di =1,2,3,…,m-1,稱線性探測(cè)再散列;
(2)di =1×1,-1×1,2×2,-2×2,3×3,…,± k×k,(k≤m/2)稱為二次探測(cè)再散列#65377;
(3)di =偽隨機(jī)數(shù)序列,稱為隨機(jī)探測(cè)再散列#65377;
本系統(tǒng)采用線性探測(cè)再散列,則完整的哈希函數(shù)為:
count=(Int(total*Rnd+count))mod total+1
經(jīng)過(guò)反復(fù)測(cè)試,該函數(shù)能夠完成系統(tǒng)隨機(jī)抽題的任務(wù),而且沖突很少,是此類算法中一個(gè)不可多得的好函數(shù)#65377;
具體抽題實(shí)現(xiàn)核心程序如下:
<%
randomize
SQL=\"select * from STB where(STLB=' \"subject\"' or STLB='通用試題') and STLX='單選題'\"
set rs=server.createobject(\"adodb.recordset\")
rs.open sql,conn,3,2
if not rs.eof then
rsArr=rs.getRows()
total=Ubound(rsArr,2)
else
total=0
end if
rs.close
dim test(100)
if cint(total)>0 then
if cint(total)>=singlecountthen
count=Int(total/2)
for i=1 to singlecount
test(i)=0
next
for j=1 to singlecount
randomize
do
count=(Int(total * Rnd + count)) mod total + 1
loop while InArr(test,rsArr(0,count))
test(j)=rsArr(0,count)
%>
(<%=rsArr(0,count)%>)<%=j%>#65380;<%=rsArr(1,count)%>
<%
SQL=\"select * from STXZXB where STID=\" rsArr(0,count) \" order by STXZXID\"
set rs=server.createobject(\"adodb.recordset\")
rs.open sql,conn,3,2
if rs.eof then
response.write \"
else
k=1
do
if rs(\"STXZXNR\")<>\"\" then
response.write \"
rs.movenext
else
response.write \"
end if
k=k+1
loop while not(rs.eof)
end if
%>
<%
next
rs.close
else
response.write(\"抱歉,題庫(kù)內(nèi)容不足,請(qǐng)與管理員聯(lián)系\")
end if
end if
%>
其中,對(duì)于數(shù)據(jù)庫(kù)操作可能出現(xiàn)的錯(cuò)誤都做了提示,這樣加強(qiáng)了系統(tǒng)的健壯性和交互功能,使用戶能夠發(fā)現(xiàn)自己在抽題時(shí)所犯的錯(cuò)誤,同時(shí)也為系統(tǒng)管理員對(duì)數(shù)據(jù)庫(kù)的維護(hù)提供了參考#65377;
答題交卷后,系統(tǒng)根據(jù)題庫(kù)中提供的標(biāo)準(zhǔn)答案,自動(dòng)對(duì)此次測(cè)試判分#65377;之后,用戶可以看到自己的成績(jī)和標(biāo)準(zhǔn)答案,并可以單擊前面的題號(hào)來(lái)顯示整個(gè)題目,這樣就利于用戶在測(cè)試之后及時(shí)總結(jié)和學(xué)習(xí)#65377;當(dāng)然主觀題很難制定判分標(biāo)準(zhǔn),只能提供標(biāo)準(zhǔn)答案讓用戶自己判斷#65377;
六#65380;結(jié)束語(yǔ)
“系統(tǒng)”經(jīng)過(guò)全軍裝備財(cái)務(wù)部門的試用,從功能和實(shí)用角度滿足了用戶的要求,并作為一個(gè)專用軟件投入使用#65377;在此功能基礎(chǔ)上,“系統(tǒng)”可進(jìn)一步擴(kuò)展用途,成為通用的網(wǎng)絡(luò)考試系統(tǒng),如增設(shè)考試科目和試題類型,來(lái)組成不同科目的試卷,經(jīng)過(guò)擴(kuò)展完全可以成為功能強(qiáng)大#65380;應(yīng)用廣泛的以網(wǎng)絡(luò)為基礎(chǔ)的考試系統(tǒng),具有很高的應(yīng)用價(jià)值#65377;
主要參考文獻(xiàn)
[1] Mike Gunderloy. Visual Basic 開(kāi)發(fā)指南——ADO篇[M]. 張光霞,
等,譯. 北京:電子工業(yè)出版社,2000.
[2] 席一凡,劉培奇. Web 網(wǎng)頁(yè)設(shè)計(jì)簡(jiǎn)明教程[M]. 西安:西安電子科技大學(xué)出版社,2000.
[3] 孫麗君,吳紅普. ASP編程基礎(chǔ)及應(yīng)用實(shí)例集錦[M]. 北京:人民郵電出版社,2001.
[4] 李迎春,朱詩(shī)兵. Visual Basic 6.0網(wǎng)絡(luò)編程[M]. 北京:北京希望電子出版社,2001.