2003年(秋)Visual FoxPro 二級(jí)考試上機(jī)試卷(VFP07)
(本試卷上機(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中教師(JS)表的結(jié)構(gòu): 。1) 設(shè)置zcdh字段的有關(guān)屬性,使得JS表在瀏覽窗口中,zcdh列的列表頭顯示為:職稱代號(hào)。 (2) 設(shè)置工號(hào)(gh)字段的有關(guān)屬性,使gh字段的首字母以大寫形式顯示。 。3) 將性別(xb)字段的顯示類設(shè)置為“A:\CLASSLIB。VCX”類庫(kù)中的opt-xb類。 。4) 設(shè)置簡(jiǎn)歷(jl)字段,允許輸入空值NULL。 。5) 創(chuàng)建一個(gè)普通索引,索引名gh4,要求按gh字段的后4位數(shù)字升序排列。 2. 把軟盤根目錄中的文件XS.TXT添加到TEST項(xiàng)目中的適當(dāng)位置,并將文件設(shè)置為:“排除”狀態(tài)。 3. 向JS表中增加一條工號(hào)(gh)為“B0007”、出生日期(csrq)為“1978年2月1日”的記錄。 4. 在JS表中增加一整型字段series,并對(duì)每個(gè)記錄填入該字段的值,字段值是由每個(gè)記錄的記錄號(hào)的平方與工號(hào)(gh)字段首字母的ASCII碼的3次方的和計(jì)算得到的。 5. 為JS表設(shè)置插入觸發(fā)器:不允許插入工號(hào)首字母為P以及P以后的字母(即P~Z)。 6. 已知JS表已存在主索引jsgh,索引表達(dá)式為gh,RK表已經(jīng)存在普通索引rkgh,索引表達(dá)式gh。已JS表為主表、RK表為子表按gh建立永久關(guān)系,并設(shè)置JS表和RK表之間的參照完整性,更新限制。
二.設(shè)計(jì)查詢(8分)
在TEST項(xiàng)目中已存在查詢CHAXUN,且在SJK中包含一個(gè)名為RKVIEW的視圖,該視圖中包含每個(gè)專業(yè)的開(kāi)課情況,其中有所有課程的課程代號(hào)(kcdh),課程名稱(kcm)以及上課教師的工號(hào)(gh),在SJK中存在另一個(gè)名為JSST的視圖,其中有每一個(gè)教師的職稱(zc)及參加工作的日期(gzrq)。 按如下要求修改查詢: 基于RKVIEW視圖和JSST視圖查詢kcdh是“01”的任課教師的基本情況,要求輸出字段為:kcdh、gh、xm、xb、zc、參加工作年份(根本工作日期計(jì)算),查詢結(jié)果中無(wú)重復(fù)行且按gh的升序排序。
三.設(shè)計(jì)菜單(5分) 項(xiàng)目TEST中已存在菜單MENUG,其中已定義了“數(shù)據(jù)錄入”和“數(shù)據(jù)查詢”、“數(shù)據(jù)清理”和“恢復(fù)系統(tǒng)菜單” 四個(gè)菜單欄,按如下要求修改菜單,完成后的運(yùn)行效果如圖所示。
1. 為“數(shù)據(jù)錄入”菜單欄設(shè)置訪問(wèn)鍵“ALT+L”。 2. 為“數(shù)據(jù)錄入”菜單欄下的“教師信息錄入”編制子菜單,該子菜單包括兩個(gè)菜單項(xiàng)“教師基本信息錄入”和“教師任課信息錄入”,并用分隔線隔開(kāi)。 3. 已經(jīng)為“數(shù)據(jù)清理”菜單欄下的“學(xué)生表清理”設(shè)置子過(guò)程。完善該過(guò)程,使得當(dāng)執(zhí)行該菜單項(xiàng)時(shí),徹底刪除學(xué)生(XS)表中所有帶刪除標(biāo)志的記錄。 |
 |
4. 廢止“數(shù)據(jù)查詢”菜單欄下的“教師信息查詢”菜單項(xiàng)。 5. 運(yùn)行該菜單后替換原來(lái)的系統(tǒng)菜單。
四.設(shè)計(jì)表單(10分)
TEST項(xiàng)目中已經(jīng)存在表單FORMG,該表單用來(lái)查詢學(xué)生成績(jī)。根據(jù)下列要求修改表單,完成以后運(yùn)行表單,效果如圖2所示。
1. 設(shè)置表單有關(guān)屬性,使表單在運(yùn)行時(shí)自動(dòng)居中。 2. 設(shè)置表單中text2文本框的有關(guān)屬性,使其能獲得焦點(diǎn),但不能修改其內(nèi)容。 3. 將lebel2標(biāo)簽的字體設(shè)為粗體。 4. 為“退出”按鈕加一個(gè)訪問(wèn)鍵“ALT+R”。 5. 在表單的Load事件中已經(jīng)包含了創(chuàng)建一個(gè)名為CJ-CUR臨時(shí)表的代碼,請(qǐng)完善該事件代碼,要求按課程名(kcm)字段為臨時(shí)表CJ-CUR創(chuàng)建一個(gè)結(jié)構(gòu)復(fù)合索引ind-kcm。 6. 點(diǎn)擊“退出”按鈕時(shí),關(guān)閉臨時(shí)表CJ-CUR,并釋放表單,完成“退出”按鈕的相應(yīng)代碼。 |
 |
五.程序改錯(cuò)(5分)
下列程序的功能是:從給定的字符串中找出所有的數(shù)(單個(gè)的數(shù)字或連續(xù)的數(shù)字都算一個(gè)數(shù)),并顯示這些數(shù)的平均值(假定無(wú)小數(shù))。例如:字符串“abc32skfkj262ksf8k99kfsk24kf“處理后顯示平均值為85,要求: 1. 項(xiàng)目中有一個(gè)程序文件PCODE,將下列程序輸入到其中并進(jìn)行修改。 2. 在修改程序時(shí),不允許修改程序的總體框架和算法,不允許增加或減少語(yǔ)句數(shù)目。
cString=‘a(chǎn)bc32skfkj262ksf8k99kfsk24kf’ cTemp=SPACE(0) &&該變量用于暫存字符串中取出的一個(gè)數(shù)字字符串 STORE 0 TO nSum,nCount DO WHILE LEN(cString)>0 c=LEFT(cString,1) IF BETWEEN(c,‘0’,‘9’) cTemp=c+cTemp ELSE IF LEN(cTemp)>0 nSum=nSum+cTemp nCount=nCount+1 cTemp=SPACE(0) ENDIF ENDIF cString=SUBSTR(cString,2) ENDDO nAverage=nSum/nCount WAIT WINDOW‘平均值為’+STR(nAverage)
|