汪彥 譚新良 何建新
摘 要: 針對機房實驗教學(xué)難于管理和組織的問題,設(shè)計和實現(xiàn)了一個機房實驗教學(xué)管理系統(tǒng)。該系統(tǒng)基于C/S模式,采用VC6.0和SQL Server 2000數(shù)據(jù)庫實現(xiàn)。系統(tǒng)成功解決了基于數(shù)據(jù)庫的多媒體文件共享、電子考勤的時間確定、屏幕共享的靈活設(shè)置等技術(shù)問題。實際應(yīng)用表明,該系統(tǒng)功能合理、性能穩(wěn)定,有助于提高機房實驗教學(xué)的質(zhì)量。
關(guān)鍵詞: 實驗教學(xué)管理系統(tǒng); C/S模式; SQL Server; 多媒體文件; 電子考勤; 屏幕共享
中圖分類號:TP311 文獻(xiàn)標(biāo)志碼:A 文章編號:1006-8228(2014)08-73-03
Design and implementation of experiment teaching system of computer room based on C/S model
Wang Yan, Tan Xinliang, He Jianxin
(Department of Information Science and Engineering, Hunan City University, Yiyang, Hunan 413000, China)
Abstract: Focusing on the issue that the experiment teaching in computer room is difficult to manage and organize, an experimental teaching management system is designed and implemented in this paper. The C/S model and VC6.0 are utilized in this system, whose database is SQL Server 2000. The system successfully solves some technical problems, such as multimedia file sharing based on database, electronic attendance time determination, screen sharing flexible setting etc. The practical application shows that the system has reasonable performance, and stable function, and it is helpful to improve the quality of lab experimental teaching.
Key words: experimental teaching system; C/S model; SQL Server; multimedia file sharing; electronic attendance; screen sharing
0 引言
高校招生規(guī)模的不斷擴大使計算機實驗室實驗教學(xué)活動不斷面臨新的問題和挑戰(zhàn),主要表現(xiàn)在大班教學(xué)、參差不齊的學(xué)生基礎(chǔ)以及缺乏新的有效的機房實驗教學(xué)技術(shù)手段[1]。機房實驗教學(xué)受到這些不利因素的影響和制約,教學(xué)質(zhì)量和教學(xué)效果的提升遭遇了瓶頸。教師面對龐大的學(xué)生群體,既要充當(dāng)課堂紀(jì)律的維護(hù)者和管理者,又要充當(dāng)實驗教學(xué)的組織者和學(xué)生的輔導(dǎo)者,而缺乏高效的新型實驗教學(xué)平臺的支持,往往疲于奔命。學(xué)生在實驗過程中,當(dāng)碰到難于解決的問題時,很難在第一時間得到來自教師或者其他同學(xué)的幫助;當(dāng)解決了某個問題時,學(xué)生也難于及時獲得來自教師的關(guān)于解決方案優(yōu)劣、實驗結(jié)果對錯等相關(guān)反饋評價。學(xué)生在實驗過程中,由于缺乏自覺性和自我控制能力,往往會進(jìn)行網(wǎng)絡(luò)聊天、打游戲、看電影等與當(dāng)前實驗無關(guān)的活動,也難于及時被教師發(fā)現(xiàn)而得到提醒[2]。長此以往,教師和學(xué)生的積極性都必然受挫。因此,如何改革計算機實驗室實驗教學(xué)模式,探索和創(chuàng)造新的實驗教學(xué)技術(shù)和手段,切實提高實驗教學(xué)的質(zhì)量與效率,成為高校實驗教師和相關(guān)計算機工作者迫切需要面對的課題。
事實上,高校機房實驗教學(xué)改革正如火如荼。眾多的高校教師已紛紛展開機房實驗教學(xué)改革研究與實踐活動,而不少的研究者和公司研發(fā)了用于機房實驗教學(xué)的軟件系統(tǒng)[3,4]。本文針對機房實驗教學(xué)的現(xiàn)狀,結(jié)合現(xiàn)存機房實驗教學(xué)系統(tǒng)的優(yōu)缺點,基于C/S模式、自定義應(yīng)用層網(wǎng)絡(luò)協(xié)議[5]、網(wǎng)絡(luò)數(shù)據(jù)庫訪問技術(shù)、套接字網(wǎng)絡(luò)通信技術(shù),設(shè)計和實現(xiàn)了一個機房實驗教學(xué)管理系統(tǒng)。該系統(tǒng)采用Visual C++6.0作為開發(fā)工具,后臺數(shù)據(jù)庫使用SQL Server 2000實現(xiàn)。
1 系統(tǒng)設(shè)計
1.1 系統(tǒng)架構(gòu)設(shè)計
機房實驗教學(xué)系統(tǒng)的總體框架結(jié)構(gòu)可劃分為后臺網(wǎng)絡(luò)數(shù)據(jù)庫、教師端軟件和學(xué)生端軟件三部分,這三者通過局域網(wǎng)聯(lián)系在一起。后臺網(wǎng)絡(luò)數(shù)據(jù)庫采用 SQL Server 2000,運行在Windows Server 2003等服務(wù)器版操作系統(tǒng)上。教師端軟件運行在教師機上,學(xué)生端軟件則運行在學(xué)生機上,教師端軟件與學(xué)生端軟件之間、運行于不同學(xué)生機的學(xué)生端軟件之間通過Socket進(jìn)行網(wǎng)絡(luò)通信,兩者均采用ADO(Active Data Object,活動數(shù)據(jù)對象)技術(shù)訪問后臺數(shù)據(jù)庫。系統(tǒng)整體架構(gòu)如圖1所示。
實際上,在高校計算機實驗室中,學(xué)生機數(shù)目從數(shù)十臺至數(shù)百臺不等,為了減低系統(tǒng)架構(gòu)圖的復(fù)雜性,圖1中僅列出了兩臺學(xué)生機。
1.2 系統(tǒng)功能設(shè)計
如前所示,機房實驗教學(xué)系統(tǒng)劃分為后臺數(shù)據(jù)庫、教師端軟件、學(xué)生端軟件三部分。教師通過教師端軟件設(shè)置機房實驗教學(xué)任務(wù),上傳多媒體教學(xué)資料,對學(xué)生基本信息進(jìn)行增刪查改操作,查看學(xué)生簽到、簽離等考勤信息,實時查看并批閱學(xué)生實驗作答情況,通過屏幕組播的方式向?qū)W生機廣播教師機屏幕,方便學(xué)生觀看教師的演示操作與講解,通過在線討論室與學(xué)生交流,并可允許或禁止學(xué)生發(fā)言,還可對學(xué)生機進(jìn)行遠(yuǎn)程控制和設(shè)置,如同步設(shè)置學(xué)生機系統(tǒng)時間、遠(yuǎn)程關(guān)閉學(xué)生電腦等等。學(xué)生通過學(xué)生端軟件登錄系統(tǒng)后,可以進(jìn)行簽到、簽離等操作,可以查看機房實驗教學(xué)任務(wù)并作答,可以查看參考答案、參考解題過程、系統(tǒng)自動判卷以及教師手動判卷結(jié)果,并可下載多媒體教學(xué)資料進(jìn)行自學(xué),可接收教師機屏幕畫面并顯示,以觀看教師演示操作和講解,可通過文字與教師和學(xué)生在線交流和討論,修改自己的登錄口令。
1.3 數(shù)據(jù)庫設(shè)計
機房實驗教學(xué)系統(tǒng)的后臺數(shù)據(jù)庫主要包括8張表:①教師信息表(工號、姓名、口令、性別、院系編號、教研室編號等);②在線教師信息表(工號、姓名、開始上課時間、教師機系統(tǒng)實時時間);③學(xué)生基本信息表(學(xué)號、姓名、口令、班號、性別、電子照片等);④學(xué)生實驗記錄表(實驗任務(wù)編號、實驗項目編號、教師工號、學(xué)號、主機名、IP地址、簽到時間、簽離時間、實驗成績、考勤狀態(tài)、備注等);⑤實驗任務(wù)信息表(實驗任務(wù)編號、實驗任務(wù)名稱、實驗指導(dǎo)教師工號、實驗班級班號、當(dāng)前實驗任務(wù)標(biāo)志等);⑥實驗項目信息表(項目編號、所屬實驗任務(wù)編號、指導(dǎo)教師工號、實驗項目名稱、實驗?zāi)康摹嶒炚n時、實驗性質(zhì)、實驗環(huán)境、當(dāng)前實驗項目標(biāo)志等);⑦實驗題目信息表(實驗任務(wù)編號、實驗項目編號、授課教師工號、題號、題目內(nèi)容、參考答案、答案公開標(biāo)志、參考解答過程、解答過程公開標(biāo)志、多媒體教學(xué)文件、多媒體教學(xué)文件類型、多媒體教學(xué)文件公開標(biāo)志、自動判卷標(biāo)志);⑧學(xué)生實驗作答信息表(實驗任務(wù)編號、實驗項目編號、指導(dǎo)教師工號、題號、學(xué)生學(xué)號、學(xué)生答案、學(xué)生解題過程說明、首次提交時間、最后提交時間、提交時間、教師判卷結(jié)果、教師評語、教師評卷信息公開標(biāo)志等)。
2 系統(tǒng)實現(xiàn)的關(guān)鍵技術(shù)
由于本系統(tǒng)開發(fā)所采用的socket通信技術(shù)、應(yīng)用層自定義協(xié)議、ADO數(shù)據(jù)庫訪問技術(shù)均是非常成熟、流行的技術(shù),在此不再贅述。下面,主要介紹系統(tǒng)實現(xiàn)中涉及的多媒體數(shù)據(jù)的存儲、電子考勤、局域網(wǎng)屏幕共享方案等關(guān)鍵技術(shù)。
2.1 多媒體數(shù)據(jù)的存儲與共享技術(shù)
機房實驗教學(xué)系統(tǒng)中,牽涉到種類豐富的多媒體數(shù)據(jù)。為了更好地鑒別學(xué)生身份并加強監(jiān)督,在后臺SQL Server數(shù)據(jù)庫中保存了學(xué)生的電子照片,在學(xué)生登錄系統(tǒng)后,在學(xué)生端軟件的主界面上將一直顯示該生照片。在教師通過教師端軟件對實驗題目的具體內(nèi)容進(jìn)行設(shè)置時,允許教師上傳有關(guān)的多媒體輔導(dǎo)教學(xué)文件,譬如演示文稿、圖片文件、音頻文件、視頻文件等等,并允許教師在恰當(dāng)時機進(jìn)行設(shè)置,便于學(xué)生通過學(xué)生端軟件下載文件并自由學(xué)習(xí)。
對于這些多媒體文件可僅在數(shù)據(jù)庫中保存它們的存放路徑,文件本身儲存在操作系統(tǒng)指定路徑的指定文件夾中。不過,當(dāng)多媒體文件很多時,這種管理很不方便,尤其是在機房實驗教學(xué)系統(tǒng)的實際運行環(huán)境中,不通過數(shù)據(jù)庫服務(wù)器共享這些資源,尋求其他途徑在教師機和學(xué)生機之間共享和傳輸資源,將大大增加系統(tǒng)設(shè)計與實現(xiàn)的復(fù)雜度和工作量。
實際上,SQL Server 2000中提供的image數(shù)據(jù)類型能夠使問題迎刃而解。不少文獻(xiàn)[6-7]指出image字段可存放圖像數(shù)據(jù),并介紹了具體方法。其實,image字段可存放任意的多媒體文件。為了便于image字段內(nèi)容的理解和便捷處理,還應(yīng)設(shè)置字段指明image字段所存儲內(nèi)容對應(yīng)的文件類型。
現(xiàn)假設(shè)對于1.3節(jié)所述的數(shù)據(jù)庫中的實驗題目信息表,多媒體教學(xué)文件字段命名為HintFile,多媒體教學(xué)文件類型字段命名為HintFileType,現(xiàn)欲將C盤根目錄下的1.mp3文件上傳至數(shù)據(jù)庫的實驗題目信息表中。在VC6.0中利用ADO的_Connection對象已建立與后臺數(shù)據(jù)庫的連接,_RecordSet對象已打開實驗題目信息表,則利用_StreamPtr接口上傳文件的核心代碼如下:
CString HintFileName=”C:\\1.mp3”;
CString HintFileSuffix=” mp3”;
m_pRecordset->AddNew(); //添加新行
_StreamPtr pStm;
pStm.CreateInstance( "ADODB.Stream");
variant_t varOptional(DISP_E_PARAMNOTFOUND,VT_ERROR);
pStm->PutType(adTypeBinary);
pStm->Open( varOptional, adModeUnknown,
adOpenStreamUnspecified, _bstr_t(), _bstr_t());
pStm->LoadFromFile((_bstr_t)HintFileName); //讀入文件
variant_t varBLOB=pStm->Read(adReadAll);
pStm->Close();
pStm.Release();
m_pRecordset->GetFields()->GetItem("HintFile")->Value
=varBLOB;
m_pRecordset->GetFields()->GetItem("HintFileType")->Value
=(_bstr_t)HintFileSuffix;
m_pRecordset->Update();
教師上傳多媒體教學(xué)文件至后臺數(shù)據(jù)庫之后,根據(jù)實驗教學(xué)實際需要,可在實驗過程中的恰當(dāng)時機通過教師端軟件設(shè)置該多媒體文件為公開狀態(tài)。學(xué)生通過學(xué)生端軟件即可查詢到該多媒體文件已公開,可通過_StreamPtr接口下載。需要注意的是,學(xué)生端軟件將數(shù)據(jù)庫中多媒體文件下載并保存為本地磁盤文件時,文件擴展名由該文件對應(yīng)的HintFileType字段的值指定。
2.2 電子考勤的實現(xiàn)
機房實驗教學(xué)系統(tǒng)提供了較為完善的電子考勤功能。學(xué)生登錄系統(tǒng)后,可進(jìn)行電子簽到,即將簽到時間寫入后臺數(shù)據(jù)庫學(xué)生實驗記錄表的簽到時間字段中。學(xué)生結(jié)束實驗后,可進(jìn)行電子簽離,即將簽離時間寫入后臺數(shù)據(jù)庫學(xué)生實驗記錄表的簽離時間字段中。此外,系統(tǒng)還允許學(xué)生查看自己本實驗課程的所有考勤信息,教師能查看所有學(xué)生的考勤信息并導(dǎo)出。
簽到時間和簽離時間是決定學(xué)生某次實驗課考勤結(jié)果為遲到、早退、曠課還是正常的關(guān)鍵因素。在局域網(wǎng)環(huán)境中,簽到和簽離時間如何確定至關(guān)重要。若學(xué)生孫某在實驗課開始10分鐘后進(jìn)入機房,篡改學(xué)生機上的系統(tǒng)時間,啟動學(xué)生端軟件,進(jìn)行電子簽到操作,若此時簡單地將學(xué)生機系統(tǒng)時間作為學(xué)生的簽到時間寫入數(shù)據(jù)庫,顯然將使得考勤結(jié)果喪失客觀性。由此可見,為使電子考勤機制無懈可擊,應(yīng)將教師機的系統(tǒng)時間作為學(xué)生進(jìn)行考勤操作的時間。
學(xué)生簽到的整個工作流程可描述如下:
⑴ 學(xué)生登錄學(xué)生端軟件,點擊“簽到”按鈕;
⑵ 學(xué)生端軟件利用socket向教師端軟件發(fā)送時間同步請求;
⑶ 教師端軟件收到請求,獲取系統(tǒng)時間,將該時間轉(zhuǎn)化為字符串,通過socket回送給學(xué)生端軟件;
⑷ 學(xué)生端軟件收到教師機發(fā)送的系統(tǒng)時間,將該時間值作為自己的簽到時間寫入數(shù)據(jù)庫;
⑸ 禁用“簽到“按鈕,提示學(xué)生簽到成功。
教師端軟件獲取系統(tǒng)時間并轉(zhuǎn)化為字符串的代碼如下:
SYSTEMTIME locTm;
GetLocalTime(&locTm); //獲取系統(tǒng)時間
CString st;
st.Format("%d-%d-%d %d:%d:%d",(int)locTm.wYear,
locTm.wMonth,locTm.wDay,locTm.wHour,locTm.wMinute,
locTm.wSecond); //轉(zhuǎn)為為字符串
2.3 局域網(wǎng)屏幕共享方案
本文所采用的局域網(wǎng)屏幕共享方案是在文獻(xiàn)[8]的基礎(chǔ)上改進(jìn)得到的。文獻(xiàn)[8]采用套接字廣播的方式實現(xiàn)屏幕共享,本文則采取組播的方式實現(xiàn)屏幕共享。教師端軟件按指定時間間隔定時抓取本機屏幕圖像,形成位圖數(shù)據(jù)流,采用GDI+壓縮為JPEG文件,然后采用套接字組播圖像數(shù)據(jù)。學(xué)生端軟件創(chuàng)建套接字,加入多播組,接收圖像數(shù)據(jù)后在本機顯示,從而實現(xiàn)屏幕共享。
為適應(yīng)不同的軟硬件和網(wǎng)絡(luò)環(huán)境,教師端軟件允許教師對屏幕廣播的抓屏?xí)r間間隔、屏幕壓縮的質(zhì)量等參數(shù)進(jìn)行設(shè)置,并將用戶的這些設(shè)置保存在ini配置文件中,以便軟件下次啟動后能根據(jù)歷史設(shè)置數(shù)據(jù)自動進(jìn)行配置。屏幕廣播參數(shù)設(shè)置的界面如圖3所示。
3 結(jié)束語
結(jié)合高校機房實驗教學(xué)管理的現(xiàn)狀,利用Visual C++6.0作為開發(fā)工具、SQL Server 2000為后臺數(shù)據(jù)庫平臺,本文設(shè)計和實現(xiàn)了一個基于C/S模式的機房實驗教學(xué)管理系統(tǒng),實現(xiàn)了各項功能。該系統(tǒng)已在我校推廣,應(yīng)用到各專業(yè)的機房實驗教學(xué)的實踐中,反響良好。實踐證明,該系統(tǒng)結(jié)構(gòu)簡單合理,界面友好,功能豐富,性能穩(wěn)定可靠。該系統(tǒng)適應(yīng)了新形勢下高校機房實驗教學(xué)的實際需要,為實驗教學(xué)質(zhì)量的切實提高提供了堅實的技術(shù)保障,并將必然促進(jìn)我校實驗教學(xué)改革的健康發(fā)展。
本文實現(xiàn)的機房實驗教學(xué)系統(tǒng)還有進(jìn)一步拓展和完善的空間。教師與學(xué)生之間、學(xué)生與學(xué)生之間更好的交互方式的支撐技術(shù),協(xié)作學(xué)習(xí)方式的系統(tǒng)支持,實驗學(xué)習(xí)競賽平臺的開發(fā)與集成,結(jié)合具體課程特點的實驗作答自動判卷技術(shù)等,將是我們進(jìn)一步研究和設(shè)計的重點。
參考文獻(xiàn):
[1] 汪彥,譚新良,何建新,費雄偉.高校C語言程序設(shè)計實驗教學(xué)改革研
究與實踐[J].電腦編程技巧與維護(hù),2013.9(18):138-139
[2] 馬星光,宋亦旭,張文苑.運用技術(shù)手段消除機房教學(xué)的干擾因素[J].
計算機教育,2008.12:146-148
[3] 路芳瑞,石何太,張揚.基于C/S與RIA的實驗教學(xué)管理系統(tǒng)的設(shè)計
與實現(xiàn)[J].實驗室科學(xué),2012.6(15):97-99
[4] 唐存東,全上克,王志平.高校實驗室教學(xué)管理系統(tǒng)設(shè)計與實現(xiàn)[J].計
算機與現(xiàn)代化,2013.9:113-116
[5] 李志淮,周曉瑋.網(wǎng)絡(luò)通信中自定義協(xié)議的一種制定方法[J].大連理
工大學(xué)學(xué)報,2005.10(45):272-274
[6] 段群.基于VC存取SQL Server中BLOB數(shù)據(jù)的方法[J].咸陽師范學(xué)
院學(xué)報,2010.6(25):43-45
[7] 古凌嵐.用ADO技術(shù)實現(xiàn)數(shù)據(jù)庫圖像字段的存取[J].計算機工程與
設(shè)計,2004.8(25):1388-1389
[8] 汪彥,黃雪華,涂立.一種改進(jìn)的應(yīng)用于機房教學(xué)的屏幕共享方案[J].
計算機與現(xiàn)代化,2011.9:82-85