淺析網絡招生錄取系統的設計與實現

論文類別:計算機論文 > 計算機應用論文
論文作者: 張明亮 張宗傑
上傳時間:2011/4/1 14:16:00

  論文關鍵詞:全自動投檔 VFP數據庫 網絡數據庫 安全性 顯式加鎖
  論文摘要:主要介紹了《網絡招生錄取系統》中全自動投檔的設計與實現;以及使用VFF數據庫作為網絡數據庫的缺點和改進方法。
  中招、高招的招生錄取工作已普遍采用計算機局域網或遠程網進行,實現了考生信息電子化及全程錄取信息的計算機管理,顯著提高了錄取工作的效率。但現階段的投檔多是將以前的人工投檔模式改為通過人工操作計算機進行,沒有利用計算機快速、強大的數據分檢處理能力將投檔工作交由計算機全自動完成。2000年本人為黑龍江省招生辦開發了中招《網絡招生錄取系統》和《考務管理系統》,首次實現了招生錄取的網絡全自動投檔,使招生錄取更加公平、公正,並大大地提高了工作效率。
  該系統的開發,考慮到適用對等網絡、數據的上報及下傳(當時的各地市招生辦均使用VFP或FOXPRO)、系統的梯度開發等因素采用了VFP數據庫。由於VFP數據庫是桌面型的關系數據庫,作為網絡數據庫使用存在保密性、安全性差,網絡數據流量大等缺點,系統在克服這些問題方面采用了諸多有效的方法,使得本系統的應用獲得了明顯的成功,系統一直應用至今。
  1、提高數據庫安全性、保密性的手段
  VFP數據庫的數據表是明碼的文件存儲方式,通過文件共享方式在網絡上使用,因此,其數據的安全性、保密性差。在系統中使用以下兩種手段配合來提高數據的安全性、保密性。
  (1)在應用系統中進行網絡鏈接,而不是在WINDOws啟動時進行網絡登錄鏈接,應用系統退出時斷開網絡鏈接,這樣可以隱藏網絡鏈接。網絡鏈接通過調用WINDOws的API函數實現,先用VFP的DECLARE命令聲明外部函數,調用WNetAddC:onnection)實現添加鏈接,用Wnet-CancelConnection()斷開鏈接等,具體使用方法可參見微軟的MSDN幫助文檔。
  (2)使應用系統總在前臺運行。實現方法包設置_screen. windowstate = 2使應用系統窗口最大化,自動充滿整個屏幕);一screen. AlwaysOn-Top= . t.(使應用系統始終處在前臺運行);_screen. minbutton= . f.(使用戶無法最小化應用系統窗口)等。這種用法本身與網絡無關,但是配合前項一起使用,使得用戶在系統運行時,無法在前臺運行其它任務,就無法在前臺查看網絡鏈接等,有效地隱蔽了網絡鏈接,能很好地保護服務器上的數據文件不被非法使用,比用其它方法簡單高效。再配合對各用戶分配不同的用戶名、密碼、操作權限(可動態設置並實時生效)、操作日誌(重要操作的操作軌跡全程記錄)等,實現了對數據的有效保護,應用效果很好。
  2、提高數據一致性,降低數據冗余及減少網絡數據傳輸量等
  (1)本系統的考生自然狀況、成績、誌願、錄取結果等全部信息放到一個考生數據表中,每個考生對應一條記錄,各項盡量使用代碼字段。另有歷史記錄表,保存考生投檔、錄取的軌跡等。各類學校的信息表,分類保存學校的詳細招生計劃等有關信息。還有各種代碼對照表,用戶管理表,操作日誌表等。將考生信息集中存放到一個表中能最大限度地保持數據一致性,在考生數據表中增加一標識字段,統一表示該考生的各種狀態(投檔狀態、錄取狀態、投檔後的退檔、錄取後的退檔、直接錄取、掛起狀態、死檔狀態等)。這樣考生的錄取處理很多情況下只需對此字段處理即可,數據處理量大大降低。
  (2) VFP的數據操作都是在本地機器上進行的,一般不能以過程提交的方式在服務器端進行,再將結果返回。如果每次操作都從服務器取數據然後在本機進行,則網絡數據傳輸量太大,網絡將不堪重負。對於在用戶權限內的投檔、錄取、退檔、檔案掛起、追加、修改、刪除等有關改變數據的操作采取了分兩步進行的方式,第一步在用戶機的臨時表中進行,第二步通過《提交》按鈕寫到服務器數據表中。分兩步進行使得只在提交時使用服務器上的數據庫,一方面大大降低了網絡數據流量,另一方面便於程序進行走向控制,可保留當前的編輯操作等待新的提交等。在提交時,根據情況系統中采用文件加鎖函數flock()和記錄加鎖函數rlock()對服務器上的數據表進行顯式加鎖,來解決數據寫沖突的問題。這裏采用顯式加鎖方式,不使用VFP的隱式加鎖機制,可確保一次數據編輯操作的提交為原語性操作(要麽完成,要麽全不做),提高數據的一致性。
  本系統在考生記錄100,000條左右,主數據表40MB大小,同時有幾十個用戶,10M局域網中使用時,沒有出現網絡阻塞現象。
  3、全自動投檔
  全自動投檔(或錄取)指根據考生的誌願和各院校的招生計劃(可具體到專業的招生計劃),按具體的投檔原則(分數等)進行排隊,以一定的比例投放考生檔案或直接錄取。確保按考生誌願公平投檔是其前提;對各種復雜的投檔原則的實現則是其中的難點;快速高效地實現並保存完整的投檔軌跡可查也是本系統實際應用的具體要求。另外,還需支持分批次投檔,分段投檔,投檔原則可調,個別院校的單獨投檔,能進行恢復等等。通過細致的調研分析,在確保對考生和招生院校公平的前提下,設計出了一個具有較強的適應性的全自動投檔方法(原則)如下:
  (1)同一批次(註:投檔一般按招生類別、院校類別、分數區間等分成多個類別,依次分別進行,對應多個批次)的誌願按誌願順序處理,在批次投檔分數線上的考生的同一順序誌願,依據各院校的總投檔人數等依次判斷處理完才進人後一誌願的處理。前一誌願未全部判別處理完,後續誌願不能先處理,以確保對考生和院校的公平性。
  (2)同一批次內可以設置按投檔分數等條件分段進行循環處理。同一段內同一誌願處理完畢轉同一段內下一誌願的處理,同一段內指定的所有誌願均處理完畢再轉入低一段的處理,循環此過程,直至該批次投檔底線。引人分段處理方式的目的是:通過設置不同的分段數值,將誌願的優先性和分數的優先性結合起來。分段區間取最大值,即該批次內不再分段,則主要體現誌願順序優先,同一順序誌願內的才以分數優先;如分段區間取最小值1,則主要體現分數優先,同分時才誌願順序優先;取其它值時采用分段優先處理,同一段內先以誌願順序優先,同一誌願順序再以分數優先。
  (3)對於同一段內、同一順序誌願、誌願為同一院校(或專業)並且投檔條件完全相同的考生,一律進行平等地投檔處理(可能超出某院校的應投檔人數)。
  (4)投檔比例不大於1為宜,盡量避免退檔現象。 免費論文下載中心 http://www.hi138.com   (5)一個批次可再分成多個小批次獨立進行投檔(不同於一個批次內的分段循環處理)。通過逐次降低投檔底線分多批次投檔,高於該批次未能投檔的考生可輔以人工投檔等方式在下一小批次之前處理,盡量避免高分者落榜。
  圖1為按該投檔原則實現的算法粗框圖。
浅析网络招生录取系统的设计与实现
  為了提高全自動投檔的速度,使用速度很快的SELECT SQL語句在主數據表中選取滿足條件的考生記錄至臨時表中;采用由需投檔院校管理表的記錄控制外層循環,一個院校在某誌願處理完,再進行下一個院校在該誌願的處理(由於是同一順序誌願的處理,沒有交集,不影響公平性),減少了記錄指針定位次數,有效地縮短了處理時間;在進入內循環時過濾考生記錄,並使考生記錄按某誌願為該院校的按投檔條件是邏輯連續的(使用索引或排序手段。對於有些院校或專業的投檔排序條件需單獨設置的,符合前述投檔原則的可在其計劃管理表中進行設置,在排序中引用),使用指針下移一條記錄的方法依次處理記錄,大大加快了指針移動速度。具體實現時還可以根據所采用的數據庫的特點進行優化。實驗表明對全省近十萬考生、約200所投檔院校的一次全自動投檔,在奔騰級微機(2000年)兩分鐘內完成。通過院校投檔設置項的設置,全自動投檔可以用來對部分院校(或部分專業)進行投檔,還可以僅使用一部分誌願進行投檔等。
  對需要單獨投檔的特殊院校,系統提供單個院校的自動投檔功能,其中可以使用不同順序誌願降分排序投檔方法(全自動投檔不能采用此法.因為不宜越序先處理後續誌願,否則會造成違背考生誌願順序及各院校不平等的現象)。系統同時提供通過輸入組合條件來指定考生範圍的批量投檔功能,用來對單個院校進行補充投檔。
  在各類招生錄取工作采用計算機全自動投檔方式將大大提高錄取效率,使招生錄取更加公平、合理,顯著地降低社會成本,同時能有效地增加誌願數量,降低考生報誌願的難度等。 免費論文下載中心 http://www.hi138.com
下载论文

論文《淺析網絡招生錄取系統的設計與實現》其它版本

計算機應用論文服務

網站聲明 | 聯系我們 | 網站地圖 | 論文下載地址 | 代寫論文 | 作者搜索 | 英文版 | 手機版 CopyRight@2008 - 2017 免費論文下載中心 京ICP备17062730号