徐寶磊 房艷
摘要: 基于移動終端技術的學生信息系統(tǒng)具備實時查詢學生基本信息的功能,其核心是移動終端的數(shù)據(jù)庫訪問技術。系統(tǒng)中提出的數(shù)據(jù)庫方案采用XML數(shù)據(jù)庫,在Mobile平臺下利用VC++2005結合CMarkup類解析XML文檔,實現(xiàn)登錄、查詢。將學生的基本信息擴展到手機中,可以幫助輔導員及時應對突發(fā)事件。
關鍵詞: Mobile智能手機平臺XML文檔學生管理
1.引言
隨著高校信息化建設的深入、教學改革工作的不斷推進,高校學生管理工作范圍不斷擴大,其管理方式也向多元化的方向發(fā)展,例如建立了各種BBS論壇、班級群、飛信、博客等,這些管理方式順應了當前信息時代的主題,突破了時間和空間的限制,為輔導員提高工作效率提供了很大幫助。輔導員一般面對較多的學生,在特殊情況身邊不一定攜帶電腦,也不可能準確記住每個學生的基本信息,尤其是相貌,而紙質(zhì)信息表格不方便攜帶和查找。智能手機在現(xiàn)實生活中已普遍擁有,因而在智能手機終端實現(xiàn)學生基本信息管理,可以進一步提高輔導員工作效率,做到能時刻查詢學生的基本信息。
2.系統(tǒng)框架與相關技術
本系統(tǒng)選擇基于Mobile智能手機平臺進行開發(fā),利用Mobile智能平臺高效與智能的特點實現(xiàn)即時方便地查詢學生的基本信息。輔導員在PC機環(huán)境中使用含有學生基本信息的Excel文件或Access數(shù)據(jù)庫導出一個XML文檔,然后使用系統(tǒng)中的數(shù)據(jù)處理對XML文檔中部分數(shù)據(jù)加密,保證身份證號等敏感信息不外泄。系統(tǒng)使用XML文檔在本地存儲數(shù)據(jù)信息,整體框架結構如圖1所示,其中用戶信息User.xml文件加密粒度為整個文件加密;學生信息Student.xml文件加密粒度為部分加密,只加密身份證號、手機關鍵元素節(jié)點;學生照片存儲在系統(tǒng)目錄./Pic內(nèi),照片沒有加密。
2.1XML加密和解析
由于系統(tǒng)在本地存儲用戶登錄信息,為了保證用戶信息的合法性,系統(tǒng)封裝了DES算法,將賬號、密碼信息加密后作為XML文檔的節(jié)點值,然后對整個文件XML文檔加密。分別采用CEncry::Encry_Encode和CEncry::Encry_EncodeFile兩種方法,對系統(tǒng)中字符串、文件進行加密處理[1]。
本文通過加載開源庫CMarkup對XML文檔進行解析。Cmarkup基于“壓縮”文檔對象模型(EDOM:“Encapsulated” Document Object Model),EDOM只定義了一個對象:XML文檔,避免讀大量的DOM和SAX文檔。Cmarkup庫具有移植性好、體積小、響應速度快等特點,適用于Mobile等智能終端解析XML[2]。
2.2界面設計
系統(tǒng)界面是用戶與系統(tǒng)后臺交互的平臺,友好、合理的用戶界面可以提高系統(tǒng)的易用性,改善用戶的體驗度。為了適應不同大小的屏幕,系統(tǒng)重載了Mobile平臺中相關的函數(shù)使其全屏顯示,并將屏幕等分,同時支持硬件系統(tǒng)觸摸屏和鍵盤操作[3]。主界面如圖2所示,代碼片段如下。
(1)獲得終端屏幕大小
CRect rctClient;
GetClientRect(&rctClient);
int cy=GetSystemMetrics(SM_CYSCREEN);
int cx=GetSystemMetrics(SM_CXSCREEN);
(2)按比例劃分屏幕
int y=cy/270;
int x=cx/200;
//計算位置,放置按鈕
for (int iv=0;iv<3;iv++)
{for (int ih=0;ih<3;ih++){
m_BodyRect.rectImage[iv*3+ih]=CRect((ih*75+15)*x,(iv==0?rctClient.top+TOOLBAR_HEIGHT+4:m_BodyRect.rectText[(iv-1)*3].bottom),(ih+1)*75*x,((iv==0?rctClient.top+TOOLBAR_HEIGHT+4:m_BodyRect.rectText[(iv-1)*3].bottom)+65*y));
m_BodyRect.rectText[iv*3+ih]=m_BodyRect.rectImage[iv*3+ih];
m_BodyRect.rectText[iv*3+ih].top=(m_BodyRect.rectText[iv*3+ih].bottom+1*y);
m_BodyRect.rectText[iv*3+ih].bottom=(m_BodyRect.rectText[iv*3+ih].top+15*y);
}}
3.相關模塊設計
系統(tǒng)主要分成登錄驗證模塊,數(shù)據(jù)處理模塊、查詢顯示模塊、輔助模塊等,系統(tǒng)將各模塊編譯成動態(tài)鏈接庫dll文件,使用::LoadLibrary函數(shù)動態(tài)加載模塊,提高系統(tǒng)運行速度。
3.1登錄模塊
當用戶登錄時,系統(tǒng)首先判斷User.xml文檔是否存在,不存在則由系統(tǒng)生成一個帶有默認登錄信息的文檔,內(nèi)容包含系統(tǒng)初始登錄信息;存在則進行驗證判斷。
3.2查詢顯示模塊
系統(tǒng)支持學號、身份證號、姓名三種關鍵字查詢方式,以學號為例介紹系統(tǒng)查詢顯示模塊。系統(tǒng)使用while語句循環(huán)查找符合條件的學號,代碼如下。
while (xml.FindChildElem(″Student″))
{
strxh=xml.GetChildAttrib(″xh″);
if(strxh==″m_xh″)//學號未加密,直接對比
{m_xm=xml.GetChildAttrib(″xm″);
......//對其他變量賦值
} }
系統(tǒng)使用IImage組件顯示圖片,IImage是WinCE5.0之后加入的COM組件,支持JPG,GIF等多種類型圖片。圖片顯示主要由始化COM環(huán)境、得到IImage接口對象、加載圖像文件到IImage接口對象中、得到設備環(huán)境并定義繪制位置和尺寸、釋放系統(tǒng)資源幾個環(huán)節(jié)[4]。系統(tǒng)查詢及顯示界面如圖3、圖4所示。代碼片段如下:
hr=pImagingFactory->CreateImageFromFile(szFileName,&pImage);
int cy=GetSystemMetrics(SM_CYSCREEN);
int cx=GetSystemMetrics(SM_CXSCREEN);
RECT rect={cx-89,5,cx-5,103};//限定照片的大小及位置
//繪制圖片
pImage->Draw(pDC->m_hDC,&rect,NULL);
4.結語
由于手機終端資源比較緊張,系統(tǒng)采用VC++2005非托管語言代碼開發(fā),使用動態(tài)鏈接庫動態(tài)加載、卸載模塊,提高系統(tǒng)訪問速度;使用XML文檔存儲信息數(shù)據(jù),實現(xiàn)數(shù)據(jù)的易交換性。在手機終端實現(xiàn)學生信息的基本管理,充分利用智能手機攜帶方便性和智能化,幫助輔導員隨時查詢到學生的基本信息。系統(tǒng)初級階段只具備基本的管理模塊,系統(tǒng)利用模塊化設計,在以后的升級開發(fā)中可以加入其他模塊,方便對學生信息的管理。
參考文獻:
[1]柯于義,夏士雄,汪楚嬌.XML加密數(shù)據(jù)查詢方法的研究與設計[J].計算機應用,2010,4:1099-1103.
[2]劉念,周亞建,鈕心忻,楊義先.XML數(shù)據(jù)庫的加密與密文檢索[J].北京郵電大學學報,2010,4:105-107.
[3]徐寶磊.基于Mobile的移動物流系統(tǒng)設計與實現(xiàn)[D].南充:西華師范大學, 2010.
[4]http://www.microsoft.com/china/msdn.
基金項目:四川文理學院院級項目(2010C02Z)。