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