摘 要: 在全國計算機等級考試考務管理系統的基礎上,分析了考生報名時存在的實際問題,運用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.