999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

Windows環(huán)境下利用VFP編程實現(xiàn)帶背景音樂的無紙化考試系統(tǒng)

2010-01-01 00:00:00夏建華
電腦知識與技術(shù) 2010年5期

摘要:該文給出了一種在Windows環(huán)境下利用Visual Foxpro編制無紙化考試系統(tǒng)的實現(xiàn)方案,同時介紹了利用系統(tǒng)的一個動態(tài)鏈接庫Foxtools.fll巧妙地為系統(tǒng)添加背景音樂的技巧,一改以往使用OLE控件嵌套的繁瑣方法,效果更好,占用資源更少。

關(guān)鍵詞:背景音樂;動態(tài)鏈接庫;數(shù)據(jù)庫;控件;表單;Visual FoxPro(VFP)

中圖分類號:TP311文獻標識碼:A 文章編號:1009-3044(2010)05-1118-03

Use VFP Programming to Implementation a Nonpaperlized System with Background Music Based on Windows Operating System

XIA Jian-hua

(Shaoxing county vocational education center, Shaoxing 312030,China)

Abstract: This article presents a Windows environment using Visual FoxPro compilation of the nonpaperlized system of implementation, at the same time describes the use of a dynamic-link library Foxtools.fll neatly to add background music and desist using the OLE controls nested cumbersome method will work better, less resource-intensive.

Key words: background music; Dynamic-link library; Datebase; Control; Form; Visual Foxpro(VFP)

當今世界最先進、最省事的考試方法莫過于無紙化考試方式,即利用微機進行自動化出題、改卷、統(tǒng)計分數(shù)等代替手工操作的考試方式,現(xiàn)已廣泛應(yīng)用于如機動車駕駛員理論科目考試等場合。微機無紙化考試系統(tǒng)的應(yīng)用使得各類考試逐漸趨向規(guī)范化和標準化,而在各類標準化考試中選擇題、是非判斷等客觀題所占的比例越來越大,本文就以單項選擇、多項選擇和是非判斷題為例粗淺地探討一下怎樣利用數(shù)據(jù)庫技術(shù)完成題目的生成、顯示、操作和計分方法,以求拋磚引玉,同時希望能對利用Visval Foxpro 進行這方面編程開發(fā)的朋友有一定幫助。

關(guān)于無紙化考試的微機實現(xiàn),是探討得比較多的一個話題,以前曾有一少作者提出過見仁見智的方案,然而大都是建立在DOS這個早期操作系統(tǒng)環(huán)境下的,且離不開UCDOS漢字系統(tǒng),這種利用Foxbase或FoxPro編寫出來的程序不但代碼冗長、界面粗糙,而且操作不方便。而今在Windows 環(huán)境下,利用功能強大的面向?qū)ο箝_發(fā)工具如Visual FoxPro可以十分方便地開發(fā)出界面美觀、操作方便的考試系統(tǒng),并且我們還可以利用VFP的動態(tài)鏈接庫foxtools.fll給系統(tǒng)加上美妙的背景音樂。

1 背景音樂的實現(xiàn)

在利用Visual Foxpro 編制應(yīng)用程序時,如果能給應(yīng)用程序添加背景音樂,無疑是件錦上添花的事,背景音樂能給應(yīng)用程序增色不少。不般的方法是利用OLE(對象嵌入與鏈接)進行嵌套。具體方法是選擇“表單控件”上的“OLE容器控件”,將其拖到表單上,再在“插入對象(Insert Object)”窗口中選擇“媒體剪輯”,調(diào)用“媒體播放機”,利用它來播放出音樂,同時把播放任務(wù)條隱藏起來。利用這種方法要占用大量系統(tǒng)資源,且要利用到外部程序“媒體播放機”,不是一個好方法。其實我們可以利用VFP的動態(tài)鏈接庫foxtools.fll來輕松實現(xiàn)背景音樂,而且極少占用系統(tǒng)資源。foxtools.fll位于VFP的安裝目錄中,默認安裝時可以在C:\\Program Files\\VFP5目錄下找到它,你可以把它單獨拷貝到你的考試系統(tǒng)項目的主目錄內(nèi),這里我們假定C:\\Quiz為我們考試系統(tǒng)的主目錄,把foxtools.fll拷貝到其內(nèi)。接著要準備一WAV格式的背景音樂文件(這里以back.wav這例),放于主目錄C:\\Quiz中;現(xiàn)在我們可以為系統(tǒng)添加背景了,在考試系統(tǒng)項目的第一個表單(這里為Form1)的Activate事件中加入如下代碼:

public sound

set defa to C:\\Quiz

set Library to foxtools.fll指定FoxPro 動態(tài)鏈接庫

sound=regfn(\"SndplaySound\",\"CI\",\"I\",\"Mmsystem\")

=callfn(sound,\"back.wav\",1)播放背景音樂back.wav

為了在表單釋放時關(guān)閉音樂,同時在LostFocus事件中加入代碼:

=Callfn(sound,\" \",0)

set library to

同理你可以為系統(tǒng)內(nèi)的任一個表單添加不同的背景音樂,方法是在表單的Activate和LostFocus事件中分別加入以上的代碼,如果指定音樂文件back.wav為其它wav,則可以播放出不同的背景音樂了。

2 考試系統(tǒng)的前期準備——數(shù)據(jù)庫準備

系統(tǒng)中要建立兩類數(shù)據(jù)庫:考生名冊庫與題庫。每個考試班級應(yīng)建立單獨的考生名冊數(shù)據(jù)庫,注意它在Visual foxPro中稱為表,即DBF文件。接著把考生班級放在登錄界面的下拉列表框中供考生選擇。這里建立三個樣例班級考生名冊表:97建經(jīng).DBF、97水電.DBF和97計中.DBF,每班人數(shù)不限,庫結(jié)構(gòu)如下表所示:

接著建立題庫,本無紙化考試系統(tǒng)包括三種題型:單項選擇題、多項選擇題、是非判斷題,故系統(tǒng)應(yīng)包括這三個測試模塊,三種題型的數(shù)據(jù)庫結(jié)構(gòu)如下:

單項選擇.dbf多項選擇.dbf是非判斷.dbf

建立完了數(shù)據(jù)庫后,輸入班級學(xué)生名冊和各類題目,準備工作即告結(jié)束。這里以20個單項選擇題(每題2分)、10個多項選擇題(每題4分)、10個是非判斷題(每題2分)為例進行考試,當然你也可以改變各類題目數(shù)量,但評分標準亦要進行相應(yīng)改變。

3 總體設(shè)計

首先要確定設(shè)計目標:系統(tǒng)能實現(xiàn)考生登錄、題目讀取、答題、成績統(tǒng)計和顯示等。

其中單項選擇和多項選擇同屬于選擇題型,但因多項選擇有多個正確答案,所以在設(shè)計上應(yīng)有所區(qū)別,剛好在Visual FoxPro中有單選框與復(fù)選框等控件與之相對應(yīng)。

各模塊功能如下:

1)登錄模塊:考生登錄功能;選擇班級、輸入學(xué)號后,系統(tǒng)打開考生名冊庫,把指針定位到與輸入學(xué)號相符的考生記錄,同時顯示該考生的姓名供考生核對,無誤后隨即進入測試模塊。

2)測試模塊:分為“單項選擇”、“多項選擇”、和“是非判斷”三個標準模塊。每個模塊界面大同小異,有“上一題”、“下一題”等按鈕,同時顯示題目總數(shù)和剩余量。

3)成績模塊:成績的統(tǒng)計與顯示功能。考生一旦登錄系統(tǒng),首先初化成績(Scores)為0,隨后每做一題即自動累加計分,待到考生按下“交卷”按鈕后,彈出一個顯示該考生成績的表單窗口,然后退出系統(tǒng),考試即告完成。

4 源代碼舉例

4.1 Form“考生登錄”(Activate事件)代碼

SET EXACT ON

set defa to sys(5)+\"\\quiz\"

modi window screen title\"紹興工業(yè)學(xué)校計算機考試系統(tǒng)\"

zoom window screen max 使運行窗口最大化

SET SYSMENU OFF 關(guān)閉窗口內(nèi)的系統(tǒng)菜單

set path to sys(2004)

public scores 定義一個存放考生成績的公用變量scores

scores=0

thisform.text2.SetFocus 把光標定位到輸入學(xué)號文本框

4.2 登錄模塊窗口中,輸入學(xué)號顯示考生姓名,核對無誤,按“正確無誤”按鈕進入測試模塊

對此按鈕設(shè)置代碼如下:

*******Button“正確無誤”(Click事件)代碼*********

XH=thisform.text2.value

BJ=thisform.Combo1.value

select 1

use \\quiz\\data\\BJ 打開選中的班級名冊庫

select 2

use \\quiz\\data\\單項選擇 打開“單項選擇”題庫

select 4

use \\quiz\\data\\多項選擇 打開“多項選擇”題庫

select 6

use \\quiz\\data\\是非判斷 打開“是非判斷”題庫

ifXH!=0如果學(xué)號不空

select 1

locate all for 學(xué)號=XH把指針定位到與輸入學(xué)號相符的考生記錄

if found()

thisform.text4.value=姓名 顯示考生姓名以便核對

成績=scores

wait\"\"

release thisform

do form \\quiz\\forms\\單項選擇 打開“單項選擇”模塊窗口

else

messagebox(\"沒有找到你的名字,請重新輸入學(xué)號\")

thisform.text4.value=\"沒有相應(yīng)姓名\"

endif

else

thisform.text4.value=\"查無此人\"

endif

4.3 Form“單項選擇”(Activate事件)代碼

public num 定義一個存放題目數(shù)量的公用變量num

select 2

count all to num

replace all 對錯 with .F.

go top

thisform.text1.value=題目讀取單項選擇題目

this.optiongroup1.option1.caption=\"A、\"+選a讀取選項A,以此類推

this.optiongroup1.option2.caption=\"B、\"+選b

this.optiongroup1.option3.caption=\"C、\"+選c

this.optiongroup1.option4.caption=\"D、\"+選d

this.label1.caption=str(num)顯示單項選擇題目總數(shù)

thisform.label2.caption=str(1)顯示當前為第1題

4.4 各模塊中的“下一題”按鈕不但能更新題目,同時具有分數(shù)累加功能

其源代碼如下:

********Button“下一題”(Click事件)代碼***********

if recno()<=num 如果庫指針沒有到達最尾

if thisform.optiongroup1.value=答案 如果考生答案與標準答案相同

replace 對錯 with .T.

else

replace 對錯 with .F.

endif

thisform.label2.caption=str(recno()+1)

skip 題庫中指針下移

thisform.label7.caption=\"\"

thisform.label8.visible=.f.

thisform.text2.visible=.f.

thisform.text1.value=題目 顯示下一個題目內(nèi)容

thisform.optiongroup1.option1.caption=\"A、\"+選a

thisform.optiongroup1.option2.caption=\"B、\"+選b

thisform.optiongroup1.option3.caption=\"C、\"+選c

thisform.optiongroup1.option4.caption=\"D、\"+選d

thisform.optiongroup1.value=0

else

select 2

count for 對錯=.T. to sco分數(shù)統(tǒng)計,統(tǒng)計答對的題目數(shù)量

scores=sco*2單項選擇每題2分,故要*2

select 1

replace成績 with scores把單項選擇模塊的得分記入考生成績字段

messagebox(\"單項選擇已做完,下面進入多項選擇!\")

do form \\quiz\\forms\\多選

thisform.hide

endif

4.5 為了使考生能修改前面做過的題目,設(shè)置“上一題”按鈕

其源代碼如下:

********Button“上一題”(Click事件)代碼***********

if !bof()如果庫指針沒有達到首記錄

skip –1題庫中指針向上移一個記錄

thisform.label2.caption=str(recno())

thisform.text1.value=題目以下顯示上一個題目內(nèi)容

thisform.optiongroup1.option1.caption=\"A、\"+選a

thisform.optiongroup1.option2.caption=\"B、\"+選b

thisform.optiongroup1.option3.caption=\"C、\"+選c

thisform.optiongroup1.option4.caption=\"D、\"+選d

thisform.label8.visible=.f.

thisform.label7.caption=\"\"

thisform.text2.value=\"\"

else

messagebox(\"已到單項選擇題之首!\")

endif

4.6 當考生做完了三種類型的題目后,就可以交卷了,故設(shè)置一個“交卷”按鈕

代碼如下:

********Button“交卷”(Click事件)代碼***********

yn=messagebox(\"確定要交卷嗎?\",4)

select 6

count for 對錯=.T. to sco3

if yn=6如果按下“是”按鈕

select 1

replace成績 with 成績+sco3*2統(tǒng)計分數(shù)并記入考生成績字段

endif

thisform.command1.enabled=.F. 屏蔽“下一題”按鈕

do form \\quiz\\forms\\成績單打開“成績單”表單窗口,顯示考生成績

4.7 為了顯示考生成績,單獨設(shè)計一個“成績單”表單

設(shè)計代碼如下:

*******Form“成績單”(Activate事件)代碼**********

select 1 打開考生名冊庫

thisform.label4.caption=姓名+\":\" 顯示當前考生姓名

thisform.label1.caption=alltrim(str(成績)) 顯示考生最終成績

以上程序在中文Windows XP環(huán)境, Microsoft Visual Foxpro 6.0中文版下調(diào)試通過。

參考文獻:

[1] 木林森,高峰.中文 Visual FoxPro 6.0使用與開發(fā)[M].北京:清華大學(xué)出版社,2006.

主站蜘蛛池模板: 在线国产你懂的| 亚洲美女一区| 欧美精品二区| 福利国产微拍广场一区视频在线 | 精品国产成人三级在线观看 | a在线亚洲男人的天堂试看| 中文无码日韩精品| 精品欧美一区二区三区久久久| 国产人人乐人人爱| 国内精品视频| 亚洲色成人www在线观看| 996免费视频国产在线播放| 国产香蕉在线视频| 午夜国产不卡在线观看视频| 久久九九热视频| 亚洲国产综合精品一区| 免费无码AV片在线观看国产| 免费又爽又刺激高潮网址| 99ri精品视频在线观看播放 | 免费xxxxx在线观看网站| 久久久久国产一级毛片高清板| 免费xxxxx在线观看网站| 亚洲美女操| 色综合天天视频在线观看| 亚洲成人精品| 久久人午夜亚洲精品无码区| 亚洲aaa视频| 午夜一级做a爰片久久毛片| 欧洲欧美人成免费全部视频| 色偷偷男人的天堂亚洲av| 中文字幕 91| 精品国产网| 最新痴汉在线无码AV| 国产主播福利在线观看| 国产精品偷伦视频免费观看国产| 亚欧成人无码AV在线播放| 91区国产福利在线观看午夜| 亚洲第一区精品日韩在线播放| 国产在线自乱拍播放| 婷婷综合亚洲| av在线手机播放| 欧美97欧美综合色伦图| 91九色视频网| 91麻豆精品国产91久久久久| 国产区福利小视频在线观看尤物| 91精品国产91久久久久久三级| 一区二区日韩国产精久久| 国产精品一区在线麻豆| 国产精品视频3p| 在线免费观看AV| 毛片久久网站小视频| 亚洲无码日韩一区| 亚洲成a∧人片在线观看无码| 日韩在线视频网站| 久久婷婷五月综合97色| 国产欧美日韩va另类在线播放 | 久久五月天综合| 日本免费a视频| 丰满少妇αⅴ无码区| 国产区91| 在线观看网站国产| 日本一区高清| 国产精品美女免费视频大全| 中国精品自拍| 亚洲国产综合自在线另类| 国产精品毛片一区| 精品福利国产| 国内精品视频| 日本一本正道综合久久dvd| 天天操精品| 精久久久久无码区中文字幕| 国产真实二区一区在线亚洲| 国产综合欧美| 无码一区二区波多野结衣播放搜索| 色欲色欲久久综合网| 精品一區二區久久久久久久網站| 免费毛片网站在线观看| 91网站国产| 久热re国产手机在线观看| 国产91小视频| 婷婷六月在线| 国产在线精品美女观看|