徐宝磊 房艳
摘要: 基于移动终端技术的学生信息系统具备实时查询学生基本信息的功能,其核心是移动终端的数据库访问技术。系统中提出的数据库方案采用XML数据库,在Mobile平台下利用VC++2005结合CMarkup类解析XML文档,实现登录、查询。将学生的基本信息扩展到手机中,可以帮助辅导员及时应对突发事件。
关键词: Mobile智能手机平台XML文档学生管理
1.引言
随着高校信息化建设的深入、教学改革工作的不断推进,高校学生管理工作范围不断扩大,其管理方式也向多元化的方向发展,例如建立了各种BBS论坛、班级群、飞信、博客等,这些管理方式顺应了当前信息时代的主题,突破了时间和空间的限制,为辅导员提高工作效率提供了很大帮助。辅导员一般面对较多的学生,在特殊情况身边不一定携带电脑,也不可能准确记住每个学生的基本信息,尤其是相貌,而纸质信息表格不方便携带和查找。智能手机在现实生活中已普遍拥有,因而在智能手机终端实现学生基本信息管理,可以进一步提高辅导员工作效率,做到能时刻查询学生的基本信息。
2.系统框架与相关技术
本系统选择基于Mobile智能手机平台进行开发,利用Mobile智能平台高效与智能的特点实现即时方便地查询学生的基本信息。辅导员在PC机环境中使用含有学生基本信息的Excel文件或Access数据库导出一个XML文档,然后使用系统中的数据处理对XML文档中部分数据加密,保证身份证号等敏感信息不外泄。系统使用XML文档在本地存储数据信息,整体框架结构如图1所示,其中用户信息User.xml文件加密粒度为整个文件加密;学生信息Student.xml文件加密粒度为部分加密,只加密身份证号、手机关键元素节点;学生照片存储在系统目录./Pic内,照片没有加密。
2.1XML加密和解析
由于系统在本地存储用户登录信息,为了保证用户信息的合法性,系统封装了DES算法,将账号、密码信息加密后作为XML文档的节点值,然后对整个文件XML文档加密。分别采用CEncry::Encry_Encode和CEncry::Encry_EncodeFile两种方法,对系统中字符串、文件进行加密处理[1]。
本文通过加载开源库CMarkup对XML文档进行解析。Cmarkup基于“压缩”文档对象模型(EDOM:“Encapsulated” Document Object Model),EDOM只定义了一个对象:XML文档,避免读大量的DOM和SAX文档。Cmarkup库具有移植性好、体积小、响应速度快等特点,适用于Mobile等智能终端解析XML[2]。
2.2界面设计
系统界面是用户与系统后台交互的平台,友好、合理的用户界面可以提高系统的易用性,改善用户的体验度。为了适应不同大小的屏幕,系统重载了Mobile平台中相关的函数使其全屏显示,并将屏幕等分,同时支持硬件系统触摸屏和键盘操作[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.相关模块设计
系统主要分成登录验证模块,数据处理模块、查询显示模块、辅助模块等,系统将各模块编译成动态链接库dll文件,使用::LoadLibrary函数动态加载模块,提高系统运行速度。
3.1登录模块
当用户登录时,系统首先判断User.xml文档是否存在,不存在则由系统生成一个带有默认登录信息的文档,内容包含系统初始登录信息;存在则进行验证判断。
3.2查询显示模块
系统支持学号、身份证号、姓名三种关键字查询方式,以学号为例介绍系统查询显示模块。系统使用while语句循环查找符合条件的学号,代码如下。
while (xml.FindChildElem(″Student″))
{
strxh=xml.GetChildAttrib(″xh″);
if(strxh==″m_xh″)//学号未加密,直接对比
{m_xm=xml.GetChildAttrib(″xm″);
......//对其他变量赋值
} }
系统使用IImage组件显示图片,IImage是WinCE5.0之后加入的COM组件,支持JPG,GIF等多种类型图片。图片显示主要由始化COM环境、得到IImage接口对象、加载图像文件到IImage接口对象中、得到设备环境并定义绘制位置和尺寸、释放系统资源几个环节[4]。系统查询及显示界面如图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.结语
由于手机终端资源比较紧张,系统采用VC++2005非托管语言代码开发,使用动态链接库动态加载、卸载模块,提高系统访问速度;使用XML文档存储信息数据,实现数据的易交换性。在手机终端实现学生信息的基本管理,充分利用智能手机携带方便性和智能化,帮助辅导员随时查询到学生的基本信息。系统初级阶段只具备基本的管理模块,系统利用模块化设计,在以后的升级开发中可以加入其他模块,方便对学生信息的管理。
参考文献:
[1]柯于义,夏士雄,汪楚娇.XML加密数据查询方法的研究与设计[J].计算机应用,2010,4:1099-1103.
[2]刘念,周亚建,钮心忻,杨义先.XML数据库的加密与密文检索[J].北京邮电大学学报,2010,4:105-107.
[3]徐宝磊.基于Mobile的移动物流系统设计与实现[D].南充:西华师范大学, 2010.
[4]http://www.microsoft.com/china/msdn.
基金项目:四川文理学院院级项目(2010C02Z)。