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