2003年(秋)Visual FoxPro 二級(jí)考試上機(jī)試卷(VFP01)
(本試卷上機(jī)考試時(shí)間為70分鐘)
說(shuō)明:1.運(yùn)行考試軟盤A中的“上機(jī)考試”應(yīng)用程序文件以輸入考生的準(zhǔn)考證號(hào)、姓名、試卷代號(hào)。 2. 啟動(dòng)VFP系統(tǒng)后,首先在命令窗口中執(zhí)行命令: set default to A: 以設(shè)置默認(rèn)的工作目錄,然后再開(kāi)始作題。 |
一、 項(xiàng)目、數(shù)據(jù)庫(kù)和表操作(12分) 打開(kāi)軟盤根目錄下的項(xiàng)目文件TEST,在該項(xiàng)目中已有一數(shù)據(jù)庫(kù)SJK。 1.按如下要求修改SJK中學(xué)生(XS)表的結(jié)構(gòu): 。1) 將學(xué)號(hào)(xh)字段寬度設(shè)置為10。 。2) 設(shè)置xh字段的有效性規(guī)則:學(xué)號(hào)的有效寬度只能是6位、8位或10位; 。3) 設(shè)置xh字段的字段注釋:字段是學(xué)生表的主關(guān)鍵字,不允許重復(fù)。 (4) 創(chuàng)建一個(gè)候選索引 bhxh,要求先按班級(jí)編號(hào)(bjbh)字段升序排序,班級(jí)編號(hào)相同的再按xh字段升序排序。 。5) 為jg字段設(shè)置默認(rèn)值:“江蘇”。 2. 把TEST項(xiàng)目中的圖片文件015.jpg的包含狀態(tài)設(shè)置為“排除”。 3. 修改XS表中所有記錄的xh字段值,用班級(jí)編號(hào)(bjbh)中的第3至4位插入到學(xué)號(hào)中的第2與第3位之間。例如:學(xué)號(hào)為“990501”,班級(jí)編號(hào)為“990404051”,則替換后的學(xué)號(hào)就是“9904051”。 4. 為xs表設(shè)置刪除觸發(fā)器:只有學(xué)號(hào)開(kāi)頭兩位是“95”至“99”的記錄允許刪除,否則不允許刪除。 5. SJK中XS表已存在主索引xsxh,索引表達(dá)式為xh,學(xué)生成績(jī)(CJ)表已存在普通索引chxh,索引表達(dá)式為xh。以XS表為主表,CJ表為子表按xh建立永久關(guān)系,并設(shè)置XS表和CJ表之間的參照完整性:刪除限制。
二、 設(shè)計(jì)查詢(8分)
已知學(xué)生(XS)表中含有字符型字段班級(jí)編號(hào)(bjbh)和日期型字段出生日期(csrq)。在TEST項(xiàng)目中已存在查詢CHAXUN,按如下要求修改該查詢: 基于學(xué)生(XS)表統(tǒng)計(jì)各班級(jí)各年份出生的人數(shù),要求輸出字段為:bjbh、出生年份、人數(shù),查詢結(jié)果首先按班級(jí)編號(hào)升序排序,同一班級(jí)中再按人數(shù)多少降序排序,查詢結(jié)果輸出到臨時(shí)表XSNFRS。
三、 設(shè)計(jì)菜單(5分)
項(xiàng)目TEST中已存在菜單MENUA,其中已定義了“文件”菜單欄及其中的“恢復(fù)系統(tǒng)菜單”項(xiàng),按如下要求修改菜單,完成后的運(yùn)行效果如圖1所示。 1. 創(chuàng)建“學(xué)生檔案管理”菜單欄,并為其設(shè)置訪問(wèn)鍵“ALT+S”。 2. 為“學(xué)生檔案管理” 創(chuàng)建子菜單“學(xué)生檔案錄入”和“學(xué)生檔案查詢”,并用分隔線隔開(kāi)。 3. 為“學(xué)生檔案錄入”菜單項(xiàng)設(shè)置命令,該命令用來(lái)運(yùn)行當(dāng)前目錄下的表單文件FORMC。SCX。 4. 為“學(xué)生檔案查詢”菜單項(xiàng)設(shè)置過(guò)程,過(guò)程代碼為:
IF ! USED(“XS”) USE XS ELSE SELECT XS ENDIF BROWSE |
 |
5. 在“文件”菜單欄下插入系統(tǒng)菜單項(xiàng)“打印預(yù)覽”。
四.設(shè)計(jì)表單(10分)
TEST 項(xiàng)目中已經(jīng)存在菜單FORMA,該表單可以完成類似與Windows中的記事本功能。其實(shí)現(xiàn)的基本思想為:打開(kāi)一個(gè)文本文件時(shí)將該文件的內(nèi)容放入臨時(shí)表中,保存時(shí)將臨時(shí)表中的內(nèi)容寫入文本文件中。已知在表單的LOAD事件中已經(jīng)定義了一個(gè)臨時(shí)表textfile.根據(jù)下列要求對(duì)表單進(jìn)行修改,完成以后運(yùn)行菜單,效果如圖2所示。
1. 設(shè)置表單的ControlBox屬性,使表單運(yùn)行時(shí)左上角的窗口菜單圖標(biāo)不顯示。如圖2所示。 2. 設(shè)置表單的有關(guān)屬性,使表單運(yùn)行時(shí)邊框樣式為“固定對(duì)話框”。 3. 為“打開(kāi)”按鈕設(shè)置訪問(wèn)鍵“ALT+o”. 4. 設(shè)置表單的標(biāo)題為“記事本”。 5. 完善“新建”按鈕的Click事件代碼,當(dāng)運(yùn)行表單并點(diǎn)擊該按鈕時(shí)編輯框清空且得到焦點(diǎn)。 6. 完善“打開(kāi)”按鈕的Click事件代碼,當(dāng)運(yùn)行表單擊該按鈕時(shí)將選定的文本文件的內(nèi)容放入臨時(shí)表中。 |
 |
完成修改以后,運(yùn)行表單,畫面顯示如圖2所示。此時(shí)點(diǎn)擊“打開(kāi)”按鈕,會(huì)彈 出“打開(kāi)”對(duì)話框,選擇一個(gè)已存在的文本文件(如當(dāng)前目錄上沒(méi)有,也可以到其他目錄下選擇),單擊“確定”按鈕以后被選擇的文本文件就會(huì)顯示在編輯框中,此時(shí)可對(duì)該文本文件進(jìn)行編輯,編輯以后可以按“保存”,也可以按“另存為”按鈕。如果要新建一個(gè)文本文件,可單擊“新建”按鈕。
五.程序改錯(cuò)(5分)
下列程序的功能是:實(shí)現(xiàn)二進(jìn)制字符竄數(shù)據(jù)壓縮。壓縮算法是: 字符竄首字符+該字符個(gè)數(shù)+分隔符+另一個(gè)字符個(gè)數(shù)+分隔符+…… 例如,二進(jìn)制字符竄為“11110000111111111000111110000”壓縮后顯示為“14*5*9*3*5*4”(字符竄首字符為“1”、4個(gè)“1”、5個(gè)“0”、9個(gè)“1”……,分隔符為“*”)。要求: 1. 項(xiàng)目中有一個(gè)程序文件PCODE,將下列程序輸入到其中并進(jìn)行修改。 2. 在修改程序時(shí),不允許修改程序的總體框架和算法,不允許增加或減少語(yǔ)句數(shù)目。 cString=‘111100000111111111000111110000’ cResult=LEFT(cSring,1) nCount=1 FOR n=2 TO cString IF SUBSTR(cString,n,1)=SUBSTR(cString,n-1,1) nCount=nCount+1 ELSE cResult=cResult+ALLT(STR(nCount))+’*’ nCount=nCount+1 ENDIF ENDFOR cResult=cResult+ALLT(STR(nCount)) WAIT WINDOWS’壓縮后為’+cResult
|