摘 要:VFP是一種編程語言,自帶數(shù)據(jù)庫,擅長數(shù)據(jù)存儲、處理。其不但可以作為數(shù)據(jù)庫,又可以編程,且對計算機要求不高,安裝程序也不過百兆。使用VFP處理學(xué)校級的考試數(shù)據(jù),特別是十萬條以下的數(shù)據(jù)的處理,建議使用VFP做數(shù)據(jù)處理。
關(guān)鍵詞:VFP;數(shù)據(jù)庫,程序編程;
一、為報名數(shù)據(jù)匹配并填入對應(yīng)字段數(shù)據(jù)
1.相關(guān)數(shù)據(jù)表:報名數(shù)據(jù)表[包含字段(有或無數(shù)據(jù)):學(xué)號(有)、姓名(有)、性別(無)、學(xué)院(無)、專業(yè)(無)、班級(無)、身份證號(無)];學(xué)籍數(shù)據(jù)表(包含字段(有或無數(shù)據(jù)):學(xué)號(有)、姓名(有)、性別(有)、學(xué)院(有)、專業(yè)(有)、班級(有)、身份證號(有))。]
2.填入對應(yīng)字段數(shù)據(jù)要求:對應(yīng)報名數(shù)據(jù)表中記錄從學(xué)籍數(shù)據(jù)中提取性別、學(xué)院、專業(yè)、班級、身份證號填入報名數(shù)據(jù)庫中。
3.程序編寫及步驟
①建立程序:在命令窗口中輸入:modify command dybmdata.prg 建立dybmdata程序;
②程序編寫內(nèi)容
Set talk off 阻止對話結(jié)果傳送到各窗口
Set exact on 指定相等的表達式必須是每個字符都相匹配
Use 報名數(shù)據(jù)表.dbf in 1 在工作區(qū)1中打開報名數(shù)據(jù)表
Use 學(xué)籍數(shù)據(jù)表.dbf in 2 在工作區(qū)2中打開學(xué)籍數(shù)據(jù)表
Select 2 激活工作區(qū)2
Scan 當前表中逐個移動記錄指針
Xh=alltrim(學(xué)號) 刪除學(xué)號前后空格符,并將學(xué)號以字符形式賦予XH
Xm=alltrim(姓名) 刪除姓名前后空格符,并將姓名以字符形式賦予XM
Xb=alltrim(性別) 刪除性別前后空格符,并將性別以字符形式賦予XB
Xy=alltrim(學(xué)院) 刪除學(xué)院前后空格符,并將學(xué)院以字符形式賦予XY
Zy=alltrim(專業(yè)) 刪除專業(yè)前后空格符,并將專業(yè)以字符形式賦予ZY
Bj=alltrim(班級) 刪除班級前后空格符,并將班級以字符形式賦予BJ
Sfz=alltrim(身份證號) 刪除身份證號前后空格符,并將身份證號以字符形式賦予SFZ
Select 1 激活工作區(qū)1
Replace 性別 with xb 學(xué)院 with xy 專業(yè) with xy 班級 with bj 身份證號 with sfz for 學(xué)號=xh and 姓名=xm 更新報名數(shù)據(jù)表中與學(xué)籍表學(xué)號、姓名相同的學(xué)生信息記錄內(nèi)容
Endscan 終止移動記錄指針
二、在學(xué)籍數(shù)據(jù)表中導(dǎo)出未報名學(xué)生數(shù)據(jù)
1.相關(guān)數(shù)據(jù)表
報名數(shù)據(jù)表[包含字段(有或無數(shù)據(jù)):學(xué)號(有)、姓名(有)、性別(有)、學(xué)院(有)、專業(yè)(有)、班級(有)、身份證號(有)];學(xué)籍數(shù)據(jù)表[包含字段(有或無數(shù)據(jù)):學(xué)號(有)、姓名(有)、性別(有)、學(xué)院(有)、專業(yè)(有)、班級(有)、身份證號(有)、報名情況(無)]。
2.導(dǎo)出未報名數(shù)據(jù)要求及思路
將報名數(shù)據(jù)表中對應(yīng)已報名學(xué)生在學(xué)籍數(shù)據(jù)表中報名情況字段標注“已報名”。在學(xué)籍數(shù)據(jù)表中通過copy to 命令導(dǎo)出未報名學(xué)生數(shù)據(jù),其目的是查看必考科目是否有學(xué)生未報名。
3.程序編寫內(nèi)容
Set talk off 阻止對話結(jié)果傳送到各窗口
Set exact on 指定相等的表達式必須是每個字符都相匹配
Use 報名數(shù)據(jù)表.dbf in 1 在工作區(qū)1中打開報名數(shù)據(jù)表
Use 學(xué)籍數(shù)據(jù)表.dbf in 2 在工作區(qū)2中打開學(xué)籍數(shù)據(jù)表
Select 1 激活工作區(qū)1
Scan 當前表中逐個移動記錄指針
Xh=alltrim(學(xué)號) 刪除學(xué)號前后空格符,并將學(xué)號以字符形式賦予XH
Xm=alltrim(姓名) 刪除姓名前后空格符,并將姓名以字符形式賦予XM
Select 2 激活工作區(qū)2
Replace 報名情況 with ‘已報名’ for 學(xué)號=xh and 姓名=xm 更新學(xué)籍數(shù)據(jù)表中與報名表學(xué)號、姓名相同的報名情況為“已報名”
Endscan 終止移動記錄指針
三、統(tǒng)計各班報名人數(shù)
1.相關(guān)數(shù)據(jù)表
報名數(shù)據(jù)表(包含字段:學(xué)號、姓名、性別、學(xué)院、專業(yè)、班級、身份證號)。
2.統(tǒng)計人數(shù)思路
從報名數(shù)據(jù)表中生成學(xué)院、專業(yè)、班級唯一數(shù)據(jù),將數(shù)據(jù)復(fù)制到新表(各班報名人數(shù)統(tǒng)計表中)。在統(tǒng)計表增加人數(shù)字段,數(shù)據(jù)類型為整型,編程計算班級報名人數(shù)寫入對應(yīng)人數(shù)字段中。
3.程序編寫及步驟
建立程序及命令:生成學(xué)院、專業(yè)、班級唯一數(shù)據(jù):在命令窗口中輸入select distinct學(xué)院,專業(yè),班級from報名數(shù)據(jù)庫.dbf回車
Copy to 各班人數(shù)統(tǒng)計表.dbf 回車
建立報名人數(shù)統(tǒng)計程序:modify command bmrstjdata.prg
程序編寫內(nèi)容:
Set talk off 阻止對話結(jié)果傳送到各窗口
Set exact on 指定相等的表達式必須是每個字符都相匹配
Use各班人數(shù)統(tǒng)計表.dbf in 1 在工作區(qū)1中打開各班人數(shù)統(tǒng)計表
Use報名數(shù)據(jù)表.dbf in 2 在工作區(qū)2中打開報名數(shù)據(jù)表
Select 1 激活工作區(qū)1
Scan 當前表中逐個移動記錄指針
Xy=alltrim(學(xué)院)刪除學(xué)院前后空格符,并將學(xué)院以字符形式賦予XY
Zy=alltrim(專業(yè))刪除專業(yè)前后空格符,并將專業(yè)以字符形式賦予ZY
Bj=alltrim(班級)刪除班級前后空格符,并將班級以字符形式賦予BJ
Select 2 激活工作區(qū)2
Count for 學(xué)院=xy and 專業(yè)=zy and 班級=bj to rs 統(tǒng)計報名數(shù)據(jù)表中與各班人數(shù)統(tǒng)計表中相符的記錄數(shù)目并附值給RS
Select 1 激活工作區(qū)1
Replace 人數(shù) with rs 更新人數(shù)統(tǒng)計表中人數(shù)字段記錄
Endscan 終止移動記錄指針
以上幾個實例是在考試數(shù)據(jù)處理中最常用的幾種方法,讀者可以使用其中的各個程序?qū)?shù)據(jù)進行相應(yīng)處理。
?誗編輯 薄躍華