



摘 要: 介紹了常見的三種電子作業上傳方式,分析了這三種方式的不足之處,并提出了解決辦法,同時設計和實現了相應的作業上傳管理軟件。該軟件分為三個子模塊:學生作業上傳模塊、教師管理模塊和配置文件加密模塊。該軟件經過兩年的使用,結果證明可以有效地避免電子作業抄襲現象,提高了學生的作業質量,減輕了教師的工作量,達到了預期目的。
關鍵詞: 作業上傳; 管理系統; C/S模式; FTP
中圖分類號:TP315 文獻標志碼:A 文章編號:1006-8228(2013)11-74-03
0 引言
我院旅游電子商務和酒店信息管理專業的課程主要由旅游軟件開發技術、數據庫技術等骨干課程和多門選修課程組成,根據高職院校的特點,教學形式主要采用課堂講授和機房實驗相結合,必修課和選修課均是如此,學生在每次機房實驗結束后,均需要將當堂課的作業以文件形式提交給教師,供教師批改和打分。過去,學生提交作業主要有以下幾種方式[1]。
⑴ 文件夾共享方式
這種方式最簡單,只需要將教師機的某一文件夾設為共享,然后再指定共享連接數,學生把作業直接復制到共享文件夾即可。但這種方式也最容易導致抄襲作業:因為權限完全開放,學生可以把其他同學的作業復制到自己機器上,然后修改后再復制到共享文件夾,“輕松”地抄襲作業;另外,由于共享文件夾有固定連接數的限制,如果有些同學打開共享文件夾后,不及時關閉,占用連接不釋放,會導致其他同學不能打開共享文件夾。
⑵ 電子郵件提交作業方式
這種方式需要機房連接互聯網,學生直接將作業通過電子郵件的方式發送至教師信箱,教師每次上完課,要打開信箱,下載學生的作業,并按照班級進行分類,存儲在本地計算機中,操作比較麻煩。這種方式和文件夾共享方式一樣,無法避免抄襲作業:如學生A完成作業發給教師,同時,發一份作業給學生B,學生B把作業修改一下,再發給教師,即可以“輕松”抄襲作業。
⑶ FTP方式
這種方式似乎比較好,學生借助瀏覽器即可完成作業的提交;實現起來也很容易,只需架設FTP服務器即可。但是,最大的問題仍然是無法完全防止學生“抄襲”作業。在每次的隨堂實驗中,一般不方便給每個學生都分配一個賬號,而是采用統一的賬號和密碼,雖然操作上方便,但是,所有學生都可以看到其他同學上傳的作業,也可以下載別人的作業,然后修改后作為自己的作業上傳,這樣就可以直接抄襲作業;有些學生惡作劇,故意刪除別人的作業。雖然可以通過權限設置,防止刪除和下載,但也造成學生不能對自己以前上傳的文件進行修改,如果要上傳修改后的文件,只能臨時請教師開放權限,這樣操作非常不方便。另外,權限設置不能防止學生主動“幫助”式的抄襲方式:如學生A自己上傳作業后,把文件名改成學生B的姓名,再上傳一次,就可以輕松騙過服務器,提交了A、B兩個人的作業。
總之,以上三種作業提交方式都存在不少缺點,無論對于學生還是教師使用起來都不方便,更主要的問題是很難避免學生互相抄襲作業。本文設計和實現一種基于C/S模式的電子作業提交工具軟件,可以解決以上問題,并且可以避免學生抄襲作業。
1 系統設計
1.1 設計思路
本文采用的防止學生抄襲作業的方式是,上實驗課時,學生座位固定,將學生與其使用的計算機的網卡物理地址綁定,因為網卡的物理地址是全球惟一的,所以可以把網卡的物理地址作為提交作業者的身份識別標志。具體的算法思路是:對于通過A網卡提交的文件,首先在數據庫中查找該網卡是否是首次提交文件,如果是首次提交,則直接通過FTP服務器上傳文件,如果不是首次提交,則先刪除原來提交的文件,再將新文件上傳至服務器,這樣即可以防止學生幫別人上傳作業,也不禁止學生重新上傳自己的作業:假設A同學已經上傳自己的作業,如果他將文件改為B同學的上傳,則根據前述算法,會刪除A同學之前上傳的作業,再將改過的作業提交到服務器,所以A同學“幫助”B同學結果是:自己的作業被刪除,只剩B同學的作業。但如果A同學只是重新提交自己的作業則無妨,算法只是刪除了A同學之前的作業,新提交的作業會繼續保留在服務器上。
根據算法思想,前臺程序使用Delphi開發,數據庫系統采用MySQL,設計和實現了一套管理信息系統,可以對學生提交的作業進行有效的管理。
雖然快速開發工具Delphi目前已經不流行了,但本次開發還是了選擇Delphi,其原因主要是:Delphi可以直接編譯生成原生機代碼,而不是虛擬機代碼,所以可以在Windows操作系統下直接運行,不需要像Java和C#那樣事先安裝虛擬機環境,學生只要把軟件拷貝到學生機就可以直接運行,非常方便。并且Delphi編譯器采用了條件編譯和選擇鏈接技術,使用它生成的執行文件更加精煉,運行速度更快。
在開發管理信息系統應用程序時,對數據庫的操作是必不可少的,所以先要選擇一個合適的數據庫管理系統產品。對于學校來說,選用的數據庫最好是免費的,這樣可以節約學校的經費。本系統選用了MySQL數據庫,MySQL是使用最廣泛的開源數據庫系統,其突出的優點有以下[2-3]。
⑴ 適用面廣,可在多種操作系統上運行。
⑵ 性能優異,運行穩定。使用MySQL的成功案例很多,另外MySQL對硬件性能的要求也不苛刻,完全可以在一般的教師機上運行。
⑶ 性價比高。MySQL是一個開源軟件產品,一般非商業項目均可以免費使用MySQL數據庫。
1.2 數據庫設計
1.2.1 表設計
如表1和表2所示,這兩張表是系統中最重要的表,用來保存當次課的學生登錄情況和上傳文件情況,每次系統啟動時,先將這兩張表的數據(前次課的上傳數據)轉移到歷史表中去,然后清空兩張表,以備寫入本節課的作業數據。另外的表格,限于篇幅,不再詳細介紹。
1.2.2 存儲過程設計
前臺程序訪問數據庫時,如果是簡單的業務操作,盡量利用一條SQL語句完成;如果是需要用多條SQL語句來完成比較復雜的業務操作,一般可以通過MySql的存儲過程來完成,以提高效率[2]。調用存儲過程時,只需要提供若干個參數(有時也可以不用參數),就可以在存儲過程中集中完成多條SQL語句,并且在數據庫服務器端直接執行完成,可以節省數據在網絡上反復傳輸的時間,從而獲得更快的速度,提高業務處理效率。另外,存儲過程可以實現數據庫回滾等操作,提高了數據的安全性和程序的健壯性。電子作業上傳管理系統在進行數據庫操作時,有些SQL操作在失敗的情況下,需要進行回滾操作,故在數據庫設計時,需要引入存儲過程。
例如,清空上節課的數據,并將其復制到歷史表的存儲過程代碼如下:
CREATE DEFINER=`root`@`localhost`
PROCEDURE `SP_Clear`(out v_msg varchar(1))
BEGIN
declare v_error integer default 0;
declare continue handler for sqlexception set v_error =1;
set autocommit =0;
start transaction;
insert into tb_history_rz select * from tb_rz;
delete from tb_rz;
delete from tb_loginfo;
if v_error =1 then
rollback;
else
commit;
end if;
set autocommit=1;
END;
1.3 功能設計
1.3.1 配置文件加密模塊
訪問數據庫和FTP服務器的用戶名和密碼以配置文件的形式保存在客戶端,為了不讓學生看到用戶名和密碼,故不能以明文的形式保存用戶名和密碼,而要先進行加密處理。加密功能的界面如圖1所示,手工輸入數據庫和FTP服務器的用戶名及密碼,即可對明文加密為密文,并可以進行預覽,按下“保存”,可以將密文寫入配置文件。該模塊的加密算法采用DES(Data Encryption Standard,數據加密標準)算法,這是一種對稱加密算法,該算法由IBM公司于1975年研發成功,并公開發表,其算法思想與第二次世界大戰時期的德國恩格瑪密碼機類似。DES算法屬于密碼學中的分組密碼算法,DES的分組是64位的,密鑰是56位的(因為要去掉每個第8位的校驗碼)。在DES算法中,用到了兩個加密的基本技術[4]:混亂和擴散。其基本組建分組是這兩種技術的組合,同時密鑰作用于明文,形成輪。DES共有16輪。其設計著重于盡可能快地使密文的每一位依賴明文和密鑰的每一位。DES采用了標準的算術和邏輯運算,系統的安全性全由密鑰保證。使用Delphi編程,可以比較方便地實現DES加密算法[5]。
1.3.2 作業上傳模塊
學生先要下載客戶端軟件,如圖2所示,該軟件界面十分簡單,操作非常簡單,實驗時,一臺機器只允許一個學生使用,實驗期間不得隨意更換機器,以避免學生互相“幫助”完成作業。由于電子作業文件可能很大,所以需要采用FTP方式上傳。由于課程不一樣,所以文件的類型可能是多種多樣的,為了提高效率,要求學生先將文件壓縮,默認文件類型是RAR格式,以學生的姓名為主文件名,界面中的姓名無需學生填寫,由系統自動從文件名中解析,模塊中使用了nmftp控件,以方便實現FTP功能。
當按下提交按鈕后,執行以下算法。
⑴ 獲取本地機名稱及網卡物理地址。
⑵ 執行SQL語句,檢查本地機是否已經提交過文件(通過檢查本地機的網卡物理地址是否已經存在于表中)。
⑶ 如果是首次提交文件,則調用相應的存儲過程,向tb_loginfo表中插入當前網卡物理地址、當前機器名、學生姓名,向tb_rz表中插入當前網卡地址、當前時間、文件名。執行存儲過程成功后,執行FTP控件的上傳文件功能。
⑷ 如果不是首次提交文件,則調用相應的存儲過程,修改tb_loginfo表中的相應的學生姓名,向tb_rz表中插入當前網卡地址、當前時間、文件名。執行存儲過程成功后,先刪除服務器已經存在的該學生的文件,然后重新上傳文件。
1.3.3 管理端
管理端模塊如圖3所示。該模塊的主要功能是監控學生上傳作業。
按下“刷新”按鈕后,從tb_loginfo表讀取信息,并在網格控件中顯示。當選中某一行時,則可以顯示相應的細節,上傳次數是通過統計tb_rz表中以網卡物理地址為主鍵的相應的元組出現的次數得到的。
2 結束語
本文所介紹的作業上傳管理系統已經運行了兩年,主要為我校電子商務專業和酒店信息管理專業,以及全校計算機應用公共基礎課提供教學服務。目前該系統運行穩定,學生和教師使用反饋良好,有效地避免了抄襲作業現象,提高了學生作業質量,減輕了教師的工作量,達到設計要求。
參考文獻:
[1] 劉瑞冰.基于Asp的計算機上機作業上傳系統研究[J].軟件導刊,2012.12:119-120
[2] 王新宇,陳婕.旅游電子商務專業“旅游管理軟件開發技術”課程教學設計——以“小型客房管理系統”學習情境設計為例[J].電子商務,2012.7:78-80
[3] Michael Kofler.MySQL 5權威指南[M].人民郵電出版,2008.
[4] 王立勝,王磊,顧訓穰.數據加密標準DES分析及其攻擊研究[J].計算機工程,2003.8:130-132