摘 要: 在全國計(jì)算機(jī)等級考試考務(wù)管理系統(tǒng)的基礎(chǔ)上,,分析了考生報名時存在的實(shí)際問題,,運(yùn)用DELPHI語言開發(fā)工具,實(shí)現(xiàn)了以二代身份證為載體的考生報名信息快速采集系統(tǒng),,實(shí)現(xiàn)了系統(tǒng)管理,、字典維護(hù)、用戶認(rèn)證,、信息采集,、統(tǒng)計(jì)查詢、數(shù)據(jù)處理等模塊的功能完成,,提高了報名工作的效率,,降低了考務(wù)人員的勞動強(qiáng)度,保證了考生信息的準(zhǔn)確性,、完整性,,規(guī)范了考生照片的格式。
關(guān)鍵詞: 信息采集,;字典管理,;居民身份證;NCRE,;VFP,;DELPHI
全國計(jì)算機(jī)等級考試(NCRE)是教育部考試中心組織的品牌考試之一,規(guī)模僅次于英語四,、六級考試,,考試機(jī)構(gòu)遍布全國各地,每年上半年,、下半年各組織一次,,僅甘肅省每年就約有7萬余人參加考試,考生人數(shù)多,,考試規(guī)模大,,報名時間相對集中,考務(wù)人員的工作任務(wù)重,??忌拘畔ㄐ彰⑿詣e,、民族,、出生日期、身份證號,、報考語言類別,、保留成績種類,、原準(zhǔn)考證號、聯(lián)系地址,、聯(lián)系電話等,,同時需要現(xiàn)場照相,基本信息要考務(wù)人員手工錄入,,所以操作過程中錯誤亦在所難免,。比如18位身份證號輸入有誤,姓名有誤,,性別,、民族有誤等現(xiàn)象時有發(fā)生,每年匯總時這些問題就會突顯出來,,涉及到的考生有不滿情緒,,考務(wù)人員有苦難言,考試機(jī)構(gòu)的聲譽(yù)也受到一定的影響,。NCRE報名數(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ī)格要求,考生也比較滿意,,同時又省去了現(xiàn)場照相的環(huán)節(jié),,節(jié)省了考生的報名時間,減輕了考務(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的考生報考信息表,,這就要求本系統(tǒng)必須要能導(dǎo)出一個符合此條件的數(shù)據(jù)表(BMK.DBF),;考生報名時要驗(yàn)證在上一次考試中是否有保留成績,,就要求有一個成績表(CJK.DBF);在系統(tǒng)中要為組件提供如報考級別語言等必要的選項(xiàng),,需要一個字典表(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ì)如下:
?。?)BMK.DBF:用于存放考生報名信息,,包括字段ZKZH(準(zhǔn)考證號)、XM(姓名),、BMH(報名號),、XB(性別)、CSRQ(出生日期),、SFZH(身份證號),、MZ(民族)、ZY(職業(yè)),、WHCD(文化程度),、YSFZH(原身份證號)、BLCJZL(保留成績種類),、YZKZH(原準(zhǔn)考證號),、KSPXZL(考試培訓(xùn)種類)、LXDZ(聯(lián)系地址),、LZDH(聯(lián)系電話),、自定義等。
?。?)CJK.DBF:用于存放上一次已參加考試的考生成績,,包括字段CJ3(筆試成績)、CJ4(上機(jī)成績),、ZCJ(總成績),、ZSBH(證書編號)、ZKZH(準(zhǔn)考證號),、XM(姓名),、BMH(報名號)、XB(性別),、CSRQ(出生日期),、SFZH(身份證號)、MZ(民族)、ZY(職業(yè)),、WHCD(文化程度),、YSFZH(原身份證號)、BLCJZL(保留成績種類),、YZKZH(原準(zhǔn)考證號),、KSPXZL(考試培訓(xùn)種類)。
?。?)字典表(DIC.DBF):用于存放報考語言級別,、民族、性別及其各子項(xiàng)所對應(yīng)的代碼,。在基于SQL2003數(shù)據(jù)庫的另一個模式中以上內(nèi)容分存在多個表中,。
3 系統(tǒng)實(shí)現(xiàn)
3.1 數(shù)據(jù)庫連接
數(shù)據(jù)采集系統(tǒng)第一個模式是采用ADO技術(shù)實(shí)現(xiàn)DELHPHI與SQL SERVER的連接,主要使用SqlConnection類的相關(guān)方法,,查詢,、編輯等數(shù)據(jù)操作通過SqlDataAdapter和DataSet類來完成。第二個模式是采用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ù)(考試時間、考次,、考點(diǎn)代碼和考生照片存放路徑),、字典參數(shù)以及讀卡器通信參數(shù)配置。程序設(shè)計(jì)時需要調(diào)用讀寫器動態(tài)鏈接庫STDAPI.DLL,,通信端口提供2個RS232端口與6個USB端口,若用戶選擇了USB端口則將對應(yīng)的屬性設(shè)置為不可修改(cmbSetBaud.Enabled:=False),,并把參數(shù)配置的結(jié)果寫入INI文件中保存,,以備下次讀取。端口參數(shù)配置界面如圖3所示,。
3.2.3 報名管理
本模塊包括報名默認(rèn)選擇設(shè)置,、身份證信息采集兩部分內(nèi)容。在信息采集界面主要用一個DBGrid組件來顯示報名庫中已有的考生信息,,分別用8組Lable組件和Edit組件顯示姓名,、性別、出生日期,、身份證號,、民族,、報名號、原準(zhǔn)考證號,、聯(lián)系電話等信息,,其中原準(zhǔn)考證信息來源于成績庫(CJK.DBF),其他來源于讀卡器,;用5組Lable組件和ComboBox組件分別顯示報考語言級別,、職業(yè)、文化程度,、培訓(xùn)類型,、保留成績種類等信息,其中報考語言級別由考務(wù)人員現(xiàn)場選擇,,其他信息項(xiàng)可選擇也可以在報名默認(rèn)選擇模塊中設(shè)置,;照片保存在系統(tǒng)設(shè)置中指定的目錄之下,文件使規(guī)則是級別語言代碼(2位)+報名號,。用7個按鈕分別激活讀取身份證,、數(shù)據(jù)清空、信息存盤,、修改,、刪除、預(yù)覽,、打印等功能,。程序處理流程如圖4所示,系統(tǒng)界面如圖5所示,。
3.2.4 查詢統(tǒng)計(jì)
查詢統(tǒng)計(jì)模塊的操作對象是新產(chǎn)生的報名庫,,查詢提供以姓名、身份證號的單一條件查詢和以身份證號,、姓名,、報考級別語言為基本條件的組合查詢,統(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 //輸入報名號范圍查詢
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)的兩個模式中實(shí)現(xiàn)的方式是不同的,,數(shù)據(jù)庫的備份是調(diào)用SQL數(shù)據(jù)庫管理系統(tǒng)的功能來實(shí)現(xiàn)的,對于用VFP作數(shù)據(jù)庫支持的系統(tǒng)模式,,數(shù)據(jù)備份是有選擇的備份,,目標(biāo)格式采用教育部考試中心要求的報名表的結(jié)構(gòu)格式,保證此表可直接導(dǎo)入考務(wù)系統(tǒng)進(jìn)行考試編排,。
開發(fā)過程的實(shí)踐證明,,NCRE報名數(shù)據(jù)采集系統(tǒng)的設(shè)計(jì)是合理的,雖然在使用初期對不少地方針對用戶提出的建議做了改動,,但用戶登錄,、報名管理、查詢統(tǒng)計(jì),、報表打印,、數(shù)據(jù)備份等功能模塊的開發(fā)進(jìn)程非常順利,投入使用三年來累計(jì)有四萬五千余名考生的信息通過本系統(tǒng)采集到數(shù)據(jù)庫,,一方面有效地避免了考務(wù)人員手工錄入可能產(chǎn)生的錯誤,,大幅度提高了信息的準(zhǔn)確率,減輕了考務(wù)人員錄入信息的勞動強(qiáng)度,,加快了集體報名的進(jìn)度,,為考務(wù)人員、考生贏得了時間,;另一方面身份證的照片是專業(yè)攝影人員拍攝的,相比之下要比考務(wù)人員現(xiàn)場拍攝的規(guī)范,,同時也節(jié)約了考生報名的時間,。
參考文獻(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.