摘 要: 在全國計(jì)算機(jī)等級考試考務(wù)管理系統(tǒng)的基礎(chǔ)上,分析了考生報(bào)名時(shí)存在的實(shí)際問題,運(yùn)用DELPHI語言開發(fā)工具,實(shí)現(xiàn)了以二代身份證為載體的考生報(bào)名信息快速采集系統(tǒng),實(shí)現(xiàn)了系統(tǒng)管理、字典維護(hù)、用戶認(rèn)證、信息采集、統(tǒng)計(jì)查詢、數(shù)據(jù)處理等模塊的功能完成,提高了報(bào)名工作的效率,降低了考務(wù)人員的勞動強(qiáng)度,保證了考生信息的準(zhǔn)確性、完整性,規(guī)范了考生照片的格式。
關(guān)鍵詞: 信息采集;字典管理;居民身份證;NCRE;VFP;DELPHI
全國計(jì)算機(jī)等級考試(NCRE)是教育部考試中心組織的品牌考試之一,規(guī)模僅次于英語四、六級考試,考試機(jī)構(gòu)遍布全國各地,每年上半年、下半年各組織一次,僅甘肅省每年就約有7萬余人參加考試,考生人數(shù)多,考試規(guī)模大,報(bào)名時(shí)間相對集中,考務(wù)人員的工作任務(wù)重??忌拘畔ㄐ彰?、性別、民族、出生日期、身份證號、報(bào)考語言類別、保留成績種類、原準(zhǔn)考證號、聯(lián)系地址、聯(lián)系電話等,同時(shí)需要現(xiàn)場照相,基本信息要考務(wù)人員手工錄入,所以操作過程中錯(cuò)誤亦在所難免。比如18位身份證號輸入有誤,姓名有誤,性別、民族有誤等現(xiàn)象時(shí)有發(fā)生,每年匯總時(shí)這些問題就會突顯出來,涉及到的考生有不滿情緒,考務(wù)人員有苦難言,考試機(jī)構(gòu)的聲譽(yù)也受到一定的影響。NCRE報(bào)名數(shù)據(jù)快速采集系統(tǒng)(簡稱數(shù)據(jù)采集系統(tǒng))可以有效地解決這些問題:首先系統(tǒng)讀取考生身份證的信息作為基本信息數(shù)據(jù)源,保證了考生信息的準(zhǔn)確性、可靠性和統(tǒng)一性;其次系統(tǒng)將身份證照片進(jìn)行數(shù)據(jù)格式轉(zhuǎn)換得到系統(tǒng)所需的照片,照片質(zhì)量有所提高。由于身份證照片是由國家公安機(jī)關(guān)指定的由專業(yè)人員按照統(tǒng)一規(guī)格拍攝的,符合教育部考試中心的規(guī)格要求,考生也比較滿意,同時(shí)又省去了現(xiàn)場照相的環(huán)節(jié),節(jié)省了考生的報(bào)名時(shí)間,減輕了考務(wù)人員的工作量,所以設(shè)計(jì)開發(fā)本系統(tǒng)是必要的。
1 總體設(shè)計(jì)
數(shù)據(jù)采集系統(tǒng)的設(shè)計(jì)實(shí)現(xiàn)采用兩種模式,區(qū)別在于使用的支撐數(shù)據(jù)庫不同。第一種采用DELPHI70+VFP60的方式(滿足當(dāng)前需要),第二種采用DELPHI70+SQLSERVER2003的方式(為考務(wù)系統(tǒng)升級做準(zhǔn)備),主要功能模塊如圖1所示,包括:系統(tǒng)管理、字典管理、信息采集、查詢統(tǒng)計(jì)、數(shù)據(jù)備份等。
2 數(shù)據(jù)庫設(shè)計(jì)
目前教育部考試中心下發(fā)的考務(wù)系統(tǒng)提供的導(dǎo)入數(shù)據(jù)格式是*.DBF的考生報(bào)考信息表,這就要求本系統(tǒng)必須要能導(dǎo)出一個(gè)符合此條件的數(shù)據(jù)表(BMK.DBF);考生報(bào)名時(shí)要驗(yàn)證在上一次考試中是否有保留成績,就要求有一個(gè)成績表(CJK.DBF);在系統(tǒng)中要為組件提供如報(bào)考級別語言等必要的選項(xiàng),需要一個(gè)字典表(DIC.DBF)以上各數(shù)據(jù)表相對獨(dú)立;VFP提供的數(shù)據(jù)庫性能穩(wěn)定,能滿足系統(tǒng)訪問的需要。因此,數(shù)據(jù)庫設(shè)計(jì)從開發(fā)軟件的周期與服務(wù)質(zhì)量方面考慮是合理的選擇。
本系統(tǒng)主要數(shù)據(jù)表的設(shè)計(jì)如下:
(1)BMK.DBF:用于存放考生報(bào)名信息,包括字段ZKZH(準(zhǔn)考證號)、XM(姓名)、BMH(報(bào)名號)、XB(性別)、CSRQ(出生日期)、SFZH(身份證號)、MZ(民族)、ZY(職業(yè))、WHCD(文化程度)、YSFZH(原身份證號)、BLCJZL(保留成績種類)、YZKZH(原準(zhǔn)考證號)、KSPXZL(考試培訓(xùn)種類)、LXDZ(聯(lián)系地址)、LZDH(聯(lián)系電話)、自定義等。
(2)CJK.DBF:用于存放上一次已參加考試的考生成績,包括字段CJ3(筆試成績)、CJ4(上機(jī)成績)、ZCJ(總成績)、ZSBH(證書編號)、ZKZH(準(zhǔn)考證號)、XM(姓名)、BMH(報(bào)名號)、XB(性別)、CSRQ(出生日期)、SFZH(身份證號)、MZ(民族)、ZY(職業(yè))、WHCD(文化程度)、YSFZH(原身份證號)、BLCJZL(保留成績種類)、YZKZH(原準(zhǔn)考證號)、KSPXZL(考試培訓(xùn)種類)。
?。?)字典表(DIC.DBF):用于存放報(bào)考語言級別、民族、性別及其各子項(xiàng)所對應(yīng)的代碼。在基于SQL2003數(shù)據(jù)庫的另一個(gè)模式中以上內(nèi)容分存在多個(gè)表中。
3 系統(tǒng)實(shí)現(xiàn)
3.1 數(shù)據(jù)庫連接
數(shù)據(jù)采集系統(tǒng)第一個(gè)模式是采用ADO技術(shù)實(shí)現(xiàn)DELHPHI與SQL SERVER的連接,主要使用SqlConnection類的相關(guān)方法,查詢、編輯等數(shù)據(jù)操作通過SqlDataAdapter和DataSet類來完成。第二個(gè)模式是采用ODBC技術(shù)實(shí)現(xiàn)DELPHI與VFP的連接。ODBC架構(gòu)模型如圖2所示。
3.2 系統(tǒng)模塊的功能實(shí)現(xiàn)
3.2.1 用戶登錄
包括系統(tǒng)管理員組、考務(wù)錄入員組、查詢統(tǒng)計(jì)員組三種用戶角色,主要從對數(shù)據(jù)庫文件操作的權(quán)限不同來劃分的,以組策略配置不同來實(shí)現(xiàn)。
3.2.2 系統(tǒng)配置
包括系統(tǒng)數(shù)據(jù)源的自動配置,考試參數(shù)(考試時(shí)間、考次、考點(diǎn)代碼和考生照片存放路徑)、字典參數(shù)以及讀卡器通信參數(shù)配置。程序設(shè)計(jì)時(shí)需要調(diào)用讀寫器動態(tài)鏈接庫STDAPI.DLL,通信端口提供2個(gè)RS232端口與6個(gè)USB端口,若用戶選擇了USB端口則將對應(yīng)的屬性設(shè)置為不可修改(cmbSetBaud.Enabled:=False),并把參數(shù)配置的結(jié)果寫入INI文件中保存,以備下次讀取。端口參數(shù)配置界面如圖3所示。
3.2.3 報(bào)名管理
本模塊包括報(bào)名默認(rèn)選擇設(shè)置、身份證信息采集兩部分內(nèi)容。在信息采集界面主要用一個(gè)DBGrid組件來顯示報(bào)名庫中已有的考生信息,分別用8組Lable組件和Edit組件顯示姓名、性別、出生日期、身份證號、民族、報(bào)名號、原準(zhǔn)考證號、聯(lián)系電話等信息,其中原準(zhǔn)考證信息來源于成績庫(CJK.DBF),其他來源于讀卡器;用5組Lable組件和ComboBox組件分別顯示報(bào)考語言級別、職業(yè)、文化程度、培訓(xùn)類型、保留成績種類等信息,其中報(bào)考語言級別由考務(wù)人員現(xiàn)場選擇,其他信息項(xiàng)可選擇也可以在報(bào)名默認(rèn)選擇模塊中設(shè)置;照片保存在系統(tǒng)設(shè)置中指定的目錄之下,文件使規(guī)則是級別語言代碼(2位)+報(bào)名號。用7個(gè)按鈕分別激活讀取身份證、數(shù)據(jù)清空、信息存盤、修改、刪除、預(yù)覽、打印等功能。程序處理流程如圖4所示,系統(tǒng)界面如圖5所示。
3.2.4 查詢統(tǒng)計(jì)
查詢統(tǒng)計(jì)模塊的操作對象是新產(chǎn)生的報(bào)名庫,查詢提供以姓名、身份證號的單一條件查詢和以身份證號、姓名、報(bào)考級別語言為基本條件的組合查詢,統(tǒng)計(jì)功能提供了符合某條件的筆試人數(shù)統(tǒng)計(jì)、機(jī)試人數(shù)統(tǒng)計(jì)、雙試人數(shù)統(tǒng)計(jì)。部分代碼如下:
procedure TFrmSelect.Button1Click(Sender: TObject);
var
sSqlstr,sSubSqlstr:string;
begin
if (trim(BmhBegEdit.Text)<>′′) and (trim(BmhEndEdit.Text)<>′′) then
begin //輸入報(bào)名號范圍查詢
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 數(shù)據(jù)備份
數(shù)據(jù)備份在系統(tǒng)的兩個(gè)模式中實(shí)現(xiàn)的方式是不同的,數(shù)據(jù)庫的備份是調(diào)用SQL數(shù)據(jù)庫管理系統(tǒng)的功能來實(shí)現(xiàn)的,對于用VFP作數(shù)據(jù)庫支持的系統(tǒng)模式,數(shù)據(jù)備份是有選擇的備份,目標(biāo)格式采用教育部考試中心要求的報(bào)名表的結(jié)構(gòu)格式,保證此表可直接導(dǎo)入考務(wù)系統(tǒng)進(jìn)行考試編排。
開發(fā)過程的實(shí)踐證明,NCRE報(bào)名數(shù)據(jù)采集系統(tǒng)的設(shè)計(jì)是合理的,雖然在使用初期對不少地方針對用戶提出的建議做了改動,但用戶登錄、報(bào)名管理、查詢統(tǒng)計(jì)、報(bào)表打印、數(shù)據(jù)備份等功能模塊的開發(fā)進(jìn)程非常順利,投入使用三年來累計(jì)有四萬五千余名考生的信息通過本系統(tǒng)采集到數(shù)據(jù)庫,一方面有效地避免了考務(wù)人員手工錄入可能產(chǎn)生的錯(cuò)誤,大幅度提高了信息的準(zhǔn)確率,減輕了考務(wù)人員錄入信息的勞動強(qiáng)度,加快了集體報(bào)名的進(jìn)度,為考務(wù)人員、考生贏得了時(shí)間;另一方面身份證的照片是專業(yè)攝影人員拍攝的,相比之下要比考務(wù)人員現(xiàn)場拍攝的規(guī)范,同時(shí)也節(jié)約了考生報(bào)名的時(shí)間。
參考文獻(xiàn)
[1] 儲啟明.Delphi7典型實(shí)例開發(fā)篇[M].北京:清華大學(xué)出版社,2003.
[2] 邊紅麗.非接觸IC卡技術(shù)應(yīng)用趨勢[J].金卡工程,2003(5):39-41.
[3] Borland Software Corporation.Borland developer Stlldio 2006 guide[M]. 2006.
[4] 鄒澤林. Delphi在開發(fā)打印系統(tǒng)實(shí)踐中的應(yīng)用與編程[J].電腦編程技巧與維護(hù),2009(18):42-43,57.
[5] 儲啟明. Delphi7典型實(shí)例開發(fā)篇(基礎(chǔ)開發(fā)篇)[M].北京:清華大學(xué)出版社,2003.
[6] 張春林,馬成勇,劉均.Delphi7數(shù)據(jù)庫系統(tǒng)設(shè)計(jì)與開發(fā)[M].北京:清華大學(xué)出版社,2003.