![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
2011秋二級(jí)Visual FoxPro上機(jī)試卷第1套 |
||||||||||||||||||||||||||||||||||||||||||||||||
2011秋二級(jí)Visual FoxPro上機(jī)試卷 (本試卷完成時(shí)間為70分鐘) 考試說(shuō)明: 1.首先登錄考生信息,然后啟動(dòng)VFP并在命令窗口中執(zhí)行下列命令,以設(shè)置默認(rèn)的工作目錄: SET DEFA TO T: 2.除非題目要求,否則不要對(duì)T盤上的文件進(jìn)行重命名、復(fù)制和刪除操作。 一、項(xiàng)目、數(shù)據(jù)庫(kù)和表操作(12分) 打開T盤根目錄中的項(xiàng)目文件jxgl,在該項(xiàng)目中已有一數(shù)據(jù)庫(kù)jxsj。 1.在jxsj數(shù)據(jù)庫(kù)中按如下表格中所示的結(jié)構(gòu)創(chuàng)建ab.dbf表,并按表格中的要求設(shè)置相關(guān)屬性。
(1)設(shè)置表的注釋:世博會(huì)場(chǎng)館簡(jiǎn)介一覽表。 (2)設(shè)置cg字段的有效性規(guī)則:不能為空字符串。 (3)設(shè)置zdmj字段的輸入掩碼:整數(shù)部分從右至左每3位用","字符隔開。 (4)設(shè)置WZ字段的有效性規(guī)則:只能是"A,B,C,D,E"片區(qū)中的一個(gè)。 (5)創(chuàng)建索引名為abcd的普通索引,要求按位置排序,位置相同時(shí)按占地面積排序。 2.在ab表中輸入如下記錄:
3.為項(xiàng)目設(shè)置項(xiàng)目信息:項(xiàng)目的圖標(biāo)為pc.ico文件。 4.kc表與cj表具有相同的字段kcdm,以kc表為主表,cj表為子表,根據(jù)kcdm建立永久關(guān)系,并設(shè)置兩表之間的參照完整性:刪除級(jí)聯(lián)、插入限制。 二、設(shè)計(jì)查詢(8分) 已知課程表(kc.dbf)存儲(chǔ)了課程基本信息,其中含課程代碼(kcdm,C)、課程名稱(kcmc,C)等字段;成績(jī)表(cj.dbf)存儲(chǔ)了每個(gè)學(xué)生各門課程的成績(jī)信息,其中含課程代碼(kcdm,C)、成績(jī)(cj,N)等字段。按如下要求修改jxgl項(xiàng)目中的查詢chaxun: 基于kc表和cj表,查詢每門課程參加考試的人數(shù)、平均成績(jī)和不及格人數(shù)(成績(jī)小于60者不及格)。要求:輸出字段依次為kcdm、kcmc、人數(shù)、平均成績(jī)、不及格人數(shù),查詢結(jié)果按平均成績(jī)降序排序,查詢?nèi)ハ驗(yàn)楸?/SPAN>(表的文件名為abc)。 三、設(shè)計(jì)菜單(5分) jxgl項(xiàng)目中已存在菜單menu,其中已定義"文件"菜單欄及其中的"退出菜單"項(xiàng)。按如下要求設(shè)計(jì)菜單,完成 后的運(yùn)行效果如圖1所示。 1.創(chuàng)建"人員管理"菜單欄,并創(chuàng)建其子菜單"錄入"、"修改"、"瀏覽"。 2.在菜單項(xiàng)"錄入"與"修改"、"修改"與"瀏覽"之間插入分組線。 3.為"瀏覽"菜單項(xiàng)設(shè)置訪問(wèn)鍵"B"。 4.為"瀏覽"菜單項(xiàng)設(shè)置快捷鍵"CTRL+B"。 5.為"瀏覽"菜單項(xiàng)設(shè)置命令:SELECT * FROM js 四、設(shè)計(jì)表單(10分) 表單FRM 1.修改表單的有關(guān)屬性,使表單的標(biāo)題為"選課表單"。 2.在表單右側(cè)添加一個(gè)列表框(List2),用于顯示學(xué)號(hào)和被選課程代碼。 3.修改"確定"命令按鈕的Click事件代碼:在最后添加一條語(yǔ)句,其功能是將表達(dá)式Mxh+THISFORM.List1.Value的值添加到List2中。 4.添加一個(gè)命令按鈕,如圖2所示,為命令按鈕設(shè)置有關(guān)屬性,并編寫Click事件代碼,功能是釋放表單。 五、程序改錯(cuò)(5分) 假定按如下規(guī)則定義一種32進(jìn)制數(shù):用"0,1,2,...,9,A,B,C,...,U,V"32個(gè)符號(hào)表示從0~31的32個(gè)十進(jìn)制數(shù)。例如,32進(jìn)制數(shù)"A8T"對(duì)應(yīng)的十進(jìn)制數(shù)的計(jì)算過(guò)程如下: (A8T) 下面程序的功能是將一個(gè)32進(jìn)制數(shù)字字符串轉(zhuǎn)換為十進(jìn)制數(shù)形式。要求:①項(xiàng)目中有一個(gè)程序文件Pcode,將T盤中vfp01.txt中的程序代碼復(fù)制到其中并進(jìn)行修改;②在修改程序時(shí),不允許修改程序的總體框架和算法,不允許增加或減少語(yǔ)句數(shù)目。 1 Num32='A8T' 2 Num10=0 3 FOR i=LEN(Num32)-1 TO 0 5 IF ISDIGIT(C) 6 d=VAL(C) 7 ELSE 8 IF BETWEEN(UPPER(c),'A','V') 9 d=ASC(UPPER(c))-55 10 ELSE 11 MESSAGEBOX("非法的32進(jìn)制數(shù)!",16) 12 EXIT 13 ENDIF 14 ENDIF 15 Num10=Num10+d*32^i 16 ENDFOR 17 MESSAGEBOX('32進(jìn)制數(shù):'+Num32+'的十進(jìn)制形式是:'+STR(Num10),64) 參考答案 一、項(xiàng)目、數(shù)據(jù)庫(kù)和表操作 cg字段的有效性規(guī)則:!EMPTY(cg) zdmj字段的輸入掩碼:9,999,999.99 WZ字段的有效性規(guī)則:WZ='A' OR WZ='B' OR wz='C' OR WZ='D' OR wz='E' 或INLIST(WZ,'A','B','C','D','E') 索引表達(dá)式:WZ+STR(zdmj,10,2) 二、設(shè)計(jì)查詢 SELECT kc.kcdm,kc.kcmc,COUNT(*) As 人數(shù),AVG(cj) AS 平均成績(jī),; SUM(IIF(cj<60,1,0)) AS 不及格人數(shù); FROM jxsj!kc INNER JOIN jxsj!cj; ON kc.kcdm=cj.kcdm; GROUP BY kc.kcdm; ORDER BY 4 DESC; INTO TABLE abc.dbf 三、設(shè)計(jì)菜單 SELECT * FROM js 四、設(shè)計(jì)表單
五、程序改錯(cuò) 第3行 FOR i=LEN(Num32)-1 To 0 改為TO 0 STEP -1 第12行 EXIT 改為RETURN |
||||||||||||||||||||||||||||||||||||||||||||||||