摘 要:在全国计算机等级考试考务管理系统的基础上,分析了考生报名时存在的实际问题,运用DELPHI语言开发工具,实现了以二代身份证为载体的考生报名信息快速采集系统,实现了系统管理、字典维护、用户认证、信息采集、统计查询、数据处理等模块的功能完成,提高了报名工作的效率,降低了考务人员的劳动强度,保证了考生信息的准确性、完整性,规范了考生照片的格式。
关键词:信息采集;字典管理;居民身份证;NCRE;VFP;DELPHI
全国计算机等级考试(NCRE)是教育部考试中心组织的品牌考试之一,规模仅次于英语四、六级考试,考试机构遍布全国各地,每年上半年、下半年各组织一次,仅甘肃省每年就约有7万余人参加考试,考生人数多,考试规模大,报名时间相对集中,考务人员的工作任务重。考生基本信息包括姓名、性别、民族、出生日期、身份证号、报考语言类别、保留成绩种类、原准考证号、联系地址、联系电话等,同时需要现场照相,基本信息要考务人员手工录入,所以操作过程中错误亦在所难免。比如18位身份证号输入有误,姓名有误,性别、民族有误等现象时有发生,每年汇总时这些问题就会突显出来,涉及到的考生有不满情绪,考务人员有苦难言,考试机构的声誉也受到一定的影响。NCRE报名数据快速采集系统(简称数据采集系统)可以有效地解决这些问题:首先系统读取考生身份证的信息作为基本信息数据源,保证了考生信息的准确性、可靠性和统一性;其次系统将身份证照片进行数据格式转换得到系统所需的照片,照片质量有所提高。由于身份证照片是由国家公安机关指定的由专业人员按照统一规格拍摄的,符合教育部考试中心的规格要求,考生也比较满意,同时又省去了现场照相的环节,节省了考生的报名时间,减轻了考务人员的工作量,所以设计开发本系统是必要的。
1 总体设计
数据采集系统的设计实现采用两种模式,区别在于使用的支撑数据库不同。第一种采用DELPHI70+VFP60的方式(满足当前需要),第二种采用DELPHI70+SQLSERVER2003的方式(为考务系统升级做准备),主要功能模块如图1所示,包括:系统管理、字典管理、信息采集、查询统计、数据备份等。
2 数据库设计
目前教育部考试中心下发的考务系统提供的导入数据格式是*.DBF的考生报考信息表,这就要求本系统必须要能导出一个符合此条件的数据表(BMK.DBF);考生报名时要验证在上一次考试中是否有保留成绩,就要求有一个成绩表(CJK.DBF);在系统中要为组件提供如报考级别语言等必要的选项,需要一个字典表(DIC.DBF)以上各数据表相对独立;VFP提供的数据库性能稳定,能满足系统访问的需要。因此,数据库设计从开发软件的周期与服务质量方面考虑是合理的选择。
本系统主要数据表的设计如下:
(1)BMK.DBF:用于存放考生报名信息,包括字段ZKZH(准考证号)、XM(姓名)、BMH(报名号)、XB(性别)、CSRQ(出生日期)、SFZH(身份证号)、MZ(民族)、ZY(职业)、WHCD(文化程度)、YSFZH(原身份证号)、BLCJZL(保留成绩种类)、YZKZH(原准考证号)、KSPXZL(考试培训种类)、LXDZ(联系地址)、LZDH(联系电话)、自定义等。
(2)CJK.DBF:用于存放上一次已参加考试的考生成绩,包括字段CJ3(笔试成绩)、CJ4(上机成绩)、ZCJ(总成绩)、ZSBH(证书编号)、ZKZH(准考证号)、XM(姓名)、BMH(报名号)、XB(性别)、CSRQ(出生日期)、SFZH(身份证号)、MZ(民族)、ZY(职业)、WHCD(文化程度)、YSFZH(原身份证号)、BLCJZL(保留成绩种类)、YZKZH(原准考证号)、KSPXZL(考试培训种类)。
(3)字典表(DIC.DBF):用于存放报考语言级别、民族、性别及其各子项所对应的代码。在基于SQL2003数据库的另一个模式中以上内容分存在多个表中。
3 系统实现
3.1 数据库连接
数据采集系统第一个模式是采用ADO技术实现DELHPHI与SQL SERVER的连接,主要使用SqlConnection类的相关方法,查询、编辑等数据操作通过SqlDataAdapter和DataSet类来完成。第二个模式是采用ODBC技术实现DELPHI与VFP的连接。ODBC架构模型如图2所示。
3.2 系统模块的功能实现
3.2.1 用户登录
包括系统管理员组、考务录入员组、查询统计员组三种用户角色,主要从对数据库文件操作的权限不同来划分的,以组策略配置不同来实现。
3.2.2 系统配置
包括系统数据源的自动配置,考试参数(考试时间、考次、考点代码和考生照片存放路径)、字典参数以及读卡器通信参数配置。程序设计时需要调用读写器动态链接库STDAPI.DLL,通信端口提供2个RS232端口与6个USB端口,若用户选择了USB端口则将对应的属性设置为不可修改(cmbSetBaud.Enabled:=False),并把参数配置的结果写入INI文件中保存,以备下次读取。端口参数配置界面如图3所示。
3.2.3 报名管理
本模块包括报名默认选择设置、身份证信息采集两部分内容。在信息采集界面主要用一个DBGrid组件来显示报名库中已有的考生信息,分别用8组Lable组件和Edit组件显示姓名、性别、出生日期、身份证号、民族、报名号、原准考证号、联系电话等信息,其中原准考证信息来源于成绩库(CJK.DBF),其他来源于读卡器;用5组Lable组件和ComboBox组件分别显示报考语言级别、职业、文化程度、培训类型、保留成绩种类等信息,其中报考语言级别由考务人员现场选择,其他信息项可选择也可以在报名默认选择模块中设置;照片保存在系统设置中指定的目录之下,文件使规则是级别语言代码(2位)+报名号。用7个按钮分别激活读取身份证、数据清空、信息存盘、修改、删除、预览、打印等功能。程序处理流程如图4所示,系统界面如图5所示。
3.2.4 查询统计
查询统计模块的操作对象是新产生的报名库,查询提供以姓名、身份证号的单一条件查询和以身份证号、姓名、报考级别语言为基本条件的组合查询,统计功能提供了符合某条件的笔试人数统计、机试人数统计、双试人数统计。部分代码如下:
procedure TFrmSelect.Button1Click(Sender: TObject);
var
sSqlstr,sSubSqlstr:string;
begin
if (trim(BmhBegEdit.Text)<>′′) and (trim(BmhEndEdit.Text)<>′′) then
begin //输入报名号范围查询
sSubSqlstr:=format(′ right(bmh,6) between ′′%s′′ and ′′%s′′ ′,[trim(BmhBegEdit.Text),trim(BmhEndEdit.Text)]);
end
end;……
with dm.qrySel do
begin
Close;
SQL.Clear;
sSqlstr:=′select * from bmk ′;
if sSubSqlstr<>′′ then
begin
sSqlstr:=sSqlstr+′ where ′+sSubSqlstr;
end;
sSqlstr:=sSqlstr+′ and delflag=0 order by (right(bmh,6)) desc ′;
SQL.Add(sSqlstr);
Open;
StatusBar1.Panels[1].Text:=inttostr(RecordCount)+′条记录′;
end;
end;……
3.2.5 数据备份
数据备份在系统的两个模式中实现的方式是不同的,数据库的备份是调用SQL数据库管理系统的功能来实现的,对于用VFP作数据库支持的系统模式,数据备份是有选择的备份,目标格式采用教育部考试中心要求的报名表的结构格式,保证此表可直接导入考务系统进行考试编排。
开发过程的实践证明,NCRE报名数据采集系统的设计是合理的,虽然在使用初期对不少地方针对用户提出的建议做了改动,但用户登录、报名管理、查询统计、报表打印、数据备份等功能模块的开发进程非常顺利,投入使用三年来累计有四万五千余名考生的信息通过本系统采集到数据库,一方面有效地避免了考务人员手工录入可能产生的错误,大幅度提高了信息的准确率,减轻了考务人员录入信息的劳动强度,加快了集体报名的进度,为考务人员、考生赢得了时间;另一方面身份证的照片是专业摄影人员拍摄的,相比之下要比考务人员现场拍摄的规范,同时也节约了考生报名的时间。
参考文献
[1] 储启明.Delphi7典型实例开发篇[M].北京:清华大学出版社,2003.
[2] 边红丽.非接触IC卡技术应用趋势[J].金卡工程,2003(5):39-41.
[3] Borland Software Corporation.Borland developer Stlldio 2006 guide[M]. 2006.
[4] 邹泽林. Delphi在开发打印系统实践中的应用与编程[J].电脑编程技巧与维护,2009(18):42-43,57.
[5] 储启明. Delphi7典型实例开发篇(基础开发篇)[M].北京:清华大学出版社,2003.
[6] 张春林,马成勇,刘均.Delphi7数据库系统设计与开发[M].北京:清华大学出版社,2003.