江蘇省高校計算機等級考試命題研究院 江蘇省高校計算機等級考試輔導
2011秋二級Visual FoxPro上機試卷第1套

2011秋二級Visual FoxPro上機試卷

(本試卷完成時間為70分鐘)

  考試說明:

  1.首先登錄考生信息,然后啟動VFP并在命令窗口中執行下列命令,以設置默認的工作目錄:

    SET DEFA TO T:

  2.除非題目要求,否則不要對T盤上的文件進行重命名、復制和刪除操作。

一、項目、數據庫和表操作(12)

    打開T盤根目錄中的項目文件jxgl,在該項目中已有一數據庫jxsj

    1.jxsj數據庫中按如下表格中所示的結構創建ab.dbf,并按表格中的要求設置相關屬性。

 

  字段名

數據類型

    寬度

  字段標題

    cg

 

 

    C

 

         20

    場館

 

    wz

    C

       1

    位置

sjzt

    M

 

  設計主題

  zdmj

    N

    10(小數2)

  占地面積

 

(1)設置表的注釋:世博會場館簡介一覽表。

(2)設置cg字段的有效性規則:不能為空字符串。

(3)設置zdmj字段的輸入掩碼:整數部分從右至左每3位用","字符隔開。

(4)設置WZ字段的有效性規則:只能是"A,B,C,D,E"片區中的一個。

(5)創建索引名為abcd的普通索引,要求按位置排序,位置相同時按占地面積排序。

2.ab表中輸入如下記錄:

 

    cg

 

    WZ

   

   sjzt

 

    zdmj

澳大利亞館

    B

  暢想之洲

    4800

 3.為項目設置項目信息:項目的圖標為pc.ico文件。

 4.kc表與cj表具有相同的字段kcdm,kc表為主表,cj表為子表,根據kcdm建立永久關系,并設置兩表之間的參照完整性:刪除級聯、插入限制。

二、設計查詢(8)

  已知課程表(kc.dbf)存儲了課程基本信息,其中含課程代碼(kcdm,C)、課程名稱(kcmc,C)等字段;成績表(cj.dbf)存儲了每個學生各門課程的成績信息,其中含課程代碼(kcdm,C)、成績(cj,N)等字段。按如下要求修改jxgl項目中的查詢chaxun:

    基于kc表和cj,查詢每門課程參加考試的人數、平均成績和不及格人數(成績小于60者不及格)。要求:輸出字段依次為kcdmkcmc、人數、平均成績、不及格人數,查詢結果按平均成績降序排序,查詢去向為表(表的文件名為abc)

  三、設計菜單(5)

  jxgl項目中已存在菜單menu,其中已定義"文件"菜單欄及其中的"退出菜單"項。按如下要求設計菜單,完成

后的運行效果如圖1所示。

  1.創建"人員管理"菜單欄,并創建其子菜單"錄入""修改""瀏覽"

  2.在菜單項"錄入""修改""修改""瀏覽"之間插入分組線。

  3."瀏覽"菜單項設置訪問鍵"B"

  4."瀏覽"菜單項設置快捷鍵"CTRL+B"

  5."瀏覽"菜單項設置命令:SELECT * FROM js

 

  四、設計表單(10)

  表單FRM11A用于學生選課等操作。按下列要求修改表單,修改后表單運行時如圖2所示。

1.修改表單的有關屬性,使表單的標題為"選課表單"  

2.在表單右側添加一個列表框(List2),用于顯示學號和被選課程代碼。

3.修改"確定"命令按鈕的Click事件代碼:在最后添加一條語句,其功能是將表達式Mxh+THISFORM.List1.Value的值添加到List2中。

4.添加一個命令按鈕,如圖2所示,為命令按鈕設置有關屬性,并編寫Click事件代碼,功能是釋放表單。

  五、程序改錯(5)

  假定按如下規則定義一種32進制數:"0,1,2,...,9,A,B,C,...,U,V"32個符號表示從03132個十進制數。例如,32進制數"A8T"對應的十進制數的計算過程如下:

    (A8T) =A×32 +8×32 +T×32 =10×1024+8×32+29×1=(10525)

 

    下面程序的功能是將一個32進制數字字符串轉換為十進制數形式。要求:①項目中有一個程序文件Pcode,T盤中vfp01.txt中的程序代碼復制到其中并進行修改;②在修改程序時,不允許修改程序的總體框架和算法,不允許增加或減少語句數目。

1    Num32='A8T'

2    Num10=0

3    FOR i=LEN(Num32)-1 TO 0

4      c=SUBSTR(Num32,LEN(Num32)-i,1)

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進制數!",16)

12           EXIT

13       ENDIF

14     ENDIF

15     Num10=Num10+d*32^i

16    ENDFOR

17    MESSAGEBOX('32進制數:'+Num32+'的十進制形式是:'+STR(Num10),64)

    參考答案

  一、項目、數據庫和表操作

  cg字段的有效性規則:!EMPTY(cg)

  zdmj字段的輸入掩碼:9,999,999.99

  WZ字段的有效性規則:WZ='A' OR WZ='B' OR wz='C' OR WZ='D' OR wz='E'

                      INLIST(WZ,'A','B','C','D','E')

  索引表達式:WZ+STR(zdmj,10,2)

  二、設計查詢

    SELECT kc.kcdm,kc.kcmc,COUNT(*)  As 人數,AVG(cj)  AS 平均成績,;

      SUM(IIF(cj<60,1,0)) AS 不及格人數;

    FROM jxsj!kc INNER JOIN jxsj!cj;

      ON kc.kcdm=cj.kcdm;

    GROUP BY kc.kcdm;

    ORDER BY 4 DESC;

    INTO TABLE abc.dbf

  三、設計菜單

  SELECT * FROM js

四、設計表單

題號

  對象名

  屬性/事件/方法

    屬性值/代碼

  1

 Form1

 Caption

選課表單

  2

 List2

(添加對象)

  3

 C1

 ClickEvent

 THISFORM.List2.AddItem(Mxh+THISFORM.List1.Value)

  4

 Command1

 ClickEvent

 THISFORM.Release

 

 

五、程序改錯

3  FOR i=LEN(Num32)-1 To 0   改為TO 0 STEP -1

12 EXIT                      改為RETURN

 

彩票30选5开奖结果