江苏省高校计算机等级考试命题研究院 江苏省高校计算机等级考试辅导
2010秋江苏二级Visual FoxPro上机试卷

2010秋二级Visual FoxPro上机试卷

(本试卷完成时间为70分钟)

考试说明:

1.首先登录考生信息,然后启动VFP并在命令窗口中执行下列命令,以设置默认的工作

目录:SET DEFA TO T:

2.除非题目要求,否则不要对T盘上的文件进行重命名、复制和删除操作。

一、项目、数据库和表操作(12)

打开T盘根目录中的项目文件JXGL,在该项目中已有一数据库JXSJ

1.JXSJ数据库中按如下表格所示的结构创建AB,并按表格中的要求设置相关属性。

  字段名

数据类型

    宽度

    字段标题

    RQ

    D

 

    日期

    SCSL

    N

    6

    售出门票数量

    SJRS

    N

    6

    实际参观人数

    BZ

    M

 

    备注

 

(1)设置AB表的表注释:参观人数;

(2)设置日期字段的默认值:当前系统日期;

(3)设置日期字段的显示类:微调框;

(4)设置记录有效性规则:实际参观人数小于或等于售出门票数量;

(5)创建普通索引,索引名为abcd,要求按实际参观人数与售出门票数量之比排序。

2.在AB表中输入如下记录:

  RQ

    SCSL

    SJRS

    BZ

(默认值)

  240100

  198808

  全天下雨

 

3.给KC表中所有学分大于或等于5的记录加删除标记。

4.js表已存在主索引GH,索引表达式为GHKCAP表已存在普通索引GH,索引表达式为GH。以js表为主表、KCAP表为子表,根据GH建立永久关系,并设置两表之间的参照完整性:更新级联、删除级联。

二、设计查询(8)

  已知教师表(JS)含有工号(gh,c)、姓名(xm,C)等字段;自由表图书借阅表(JYB)含有读者号(dzh,c)、分类号(flh,C)、借阅日期(jyrq,D)、还书日期(hsrq,D)等字段,教师的读者号与工号相同。按如下要求修改JXGL项目中的查询CHAXUN:

    基于JS表和JYB表查询教师借书情况,计算过期罚款信息。要求:查询输出字段为dzh

xm、罚款额;查询结果按罚款额降序排序;输出去向为文本文件TEMP

    :罚款计算方法为30天以上超过部分每本每天0.10,未还书者(即还书日期为空的

记录)不统计。

  三、设计菜单(5)

  JXGL项目中已存在菜单MENU,其中已定义了"文件"菜单栏及其中的"退出菜单"项。按如下要求设计菜单,菜单运行后的效果如图1所示。

  1."文件"菜单栏右侧创建"数据管理"菜单栏。

   

2."数据管理"菜单栏下创建子菜单"查询""数据备份"

 

  3."查询"菜单项设置快捷键:F12

  4.在菜单项"查询""数据备份"之间插入分组线。

  5."数据备份"菜单项设置过程代码:

    d=GETFILE("dbf"."*.dbf")

    USE &d

    COPY To bf1

  四、设计表单(10)

  表单F101A用于统计输入文本中各类字符的个数。按下列要求修改表单,修改后表单运

行时如图2所示.

   

1.修改表单的有关属性,使表单的标题为"字符数统计",并设置字数统计的三个文本框禁用。

2.适当加大Shape1形状的高度,在其区域内增加一个标签控件LabelSum和一个文本框控件Text4,并设置Label_Sum的标题为"总字符数:"

3.编写"清空"按钮的Click事件代码,2条语句实现如下功能:(1)清除编辑框Edit1中的文本;(2)使"字数统计"矩形区域内的4个文本框的值均置零。

4.表单已定义了一个Count()方法,用来对Edit1编辑框中的文本进行字数统计。编写"统计"按钮的Click事件代码,以实现:先调用表单的Count()方法,然后将文本框Text1Text2Text3的值相加后显示在文本框Text4中。

    五、程序改错(5)

    下列程序的功能是找出100~999以内同时满足以下条件的数:个位数字与十位数字之和与10的模等于百位数;该数是素数(仅能被1和本身整除的数称为"素数’’)。例如,10121l239等。要求:

    (1)将下列程序输入到项目中的程序文件PCODE,并对其中的2条错误语句进行修改;

    (2)在修改程序时,不允许修改程序的总体框架和算法,不允许增加或减少语句数目。

    CLEAR

    FOR i=1 To 999

    yn=.T.

    FOR j=3 TO i-1  

      IF MOD(j,i)=0   

         yn=.F.

         EXIT

      ENDIF  

    ENDFOR 

    IF yn

      s=STR(i,3)

      s1=SUBS(s,3,1)

      s2=SUBS(s,2,1)

      s3=SUBS(s,1,1) 

      IF MOD(VAL(s1)+VAL(s2))=VAL(s3)

        ?i  

      ENDIF

    ENDIF

  ENDFOR   

    参考答案

一、项目、数据库和表操作

索引表达式;SJRS/SCSL

有效性规则:SJRS<=SCSL 

二、设计查询

  SELECT Jyb.dzh,Js.xm,SUM(IIF(hsrq-jyrq>30,(hsrq-jyrq-30)*0.1,0.O)) AS罚款额;

    FROM jxsj!js iNNER JOIN jyb ON Js.gh=Jyb.dzh;

    WHERE EMPTY(Jyb.hsrq)<>.T.

    GROUP BY Jyb.dzh;

    ORDER BY 3 DESC;  

    TO FILE temp.txt  

三、设计菜单   

命令/过程:  

    d=GETFILE('dbf','*dbf')

    USE &d 

    COPY TO bn

.设计表单

题号

对象名

属性/事件/方法名

属性值/代码

 

1

Form1

Caption

字符数统计

Text1

Text2

Text3

 

Enabled

 

.F.

 

 

2

 

Label_Sum

 

添加操作

Name

Label_Sum

Caption

总字符数

Text4

 

添加操作

3

Command1

CLICK

THISIFORM.Edit1.Value=’’

THISFORM.SETALL(‘Value’,0,’TextBox’)

4

Command2

CLICK

THISFORM.Count()

THISFORM.Text4.Value=THISFORM.Text1.Value+

  THISFORM.Text2.Value+ThisForm.Text3.Value

 

.程序改错

  If  Mod(j,i)=0             改为:Mod(i,j)

  If Mod(Val(s1)+Val(s2))=Val(s3)  改为:Val(s2),10