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

(本试卷上机考试时间为70分钟)

说明:1.首先运行考试软盘A中的“上机考试”应用程序文件以输入考生的准考证号、姓名、试卷代号。
   2. 启动VFP系统后,首先在命令窗口中执行命令:
     set default to A:
    以设置默认的工作目录,然后再开始作题。

一。项目、数据库和表操作(12分)
  
  打开软盘根目录下的项目文件TEST,在该项目中已有一数据库SJK。
  1. 按如下要求修改SJK中工资(GZ)表的结构:
    (1) 为岗位津贴(gwjt)字段设置标题:岗位津贴。
    (2) 设置工号(gh)字段的输入掩码:工号以1个任意英文字母开头,后跟4位数字。
    (3) 增加一个逻辑型字段,其字段名为yhdf。
    (4) 创建一个普通索引jbgw,要求按基本工资(jbgz)字段与岗位津贴(gwjt)的和降序排列。
    (5) 为GZ表设置注释信息:“职工工资表”。
  2. 把A:\B0001.GIF文件添加到TEST项目中的适当位置,并将包含状态设置为“排除”。
  3. 计算GZ表中所有教师的住房公积(zfgi),计算方法是:住房公积是基本工资(jbgz)的8%。
  4. 设置GZ表的记录有效性规则:住房公积(zfgi)字段的值必须为基本工资(jbgz)字段的8%。
  5. 设GZ表的更新权限由一个全局的逻辑变量ispassed控制,当ispassed的值为.T.是允许更新。设置GZ表的更新触发器。
  6. SJK中教师(JS)表已存在主索引jsgh,索引表达式为gh,GZ表已存在普通索引gzgh,索引表达式为gh,以JS表为主表、GZ表为子表按gh建立“一对一”的永久关系,并设置JS表和GZ表之间的参照完整性:更新级联。

二.设计查询(8分)
  
  在TEST项目中已存在查询CHAXUN,按如下要求修改查询:
   基于两个工资表(数据库表GZ和自由表GZC)查询同一个教师在两个表中的基本工资(jbgz)不一致的记录。要求输出5个字段:gh、xm、两个表中的jbgz字段以及差额(差额是指两个表中jbgz字段值差的绝对值),并按差额的降序排列。

三.设计菜单(5分)
  
   项目TEST中已存在菜单MENUE,其中已定义了“文件”、“数据维护”、“数据统计”、和“退出”四个菜单栏,按如下要求修改菜单,完成后的运行效果如图所示。
  1. 在“文件”菜单栏下插入系统菜单“打印预览”。
  2. 在“数据维护”菜单下增加一个菜单项“教师信息维护”,并用分隔线隔开。
  3. 废止“数据统计”菜单栏下的“教师工资统计”菜单项。
  4. 为“学生成绩统计”菜单项设置SQL命令,要求当执行该菜单项时,在浏览器窗口中显示成绩(CJ)

表中所有学生的学号(XH)和总成绩。
  5. 为“退出”菜单栏设置访问键“ALT+X”。

四.设计菜单(10分)
  
   TEST项目中已经存在表单FORMS,该表单用来进行人员信息查询。根据下列要求修改表单,完成以后运行菜单,效果如图所示。
  1. 将表单设置为固定对话框。
  2. 为“退出”按钮设置一个访问键“ALT+X”。
  3. 设置表格的有关属性,使表格不显示删除标记列。
  4. 将表单数据环境中的USER表设置为独占方式打开。
  5. 在表单的Load事件中创建一个名为USER-CUR的临时表,要求包含工号(no)、姓名(name)、职务(title)、部门(department)和说明(remark)字段,括号中的字符表示相应的字段名称,字段的类型及长度与数据环境中的用户信息表(USER)中对应的字段相同。
  6. 为“退出”按钮编写Click事件代码,要求当点击“退出”按钮时先关闭USER-CUR临时表,然后再关闭表单。                                           

  

五.程序改错(5分)

   下列程序的功能是:对于数列1,1,2,3,5,8,……(从第3项开始,每一数列项的值为前2项之和),求前多少项的和刚好不大于100。要求:
   1. 项目中有一个程序文件PCODE,将下列程序输入到其中并进行修改。
   2. 在修改程序时,不允许修改程序的总体框架和算法,不允许增加或减少语句的数目。
     a1=1
     a2=1
     nSum=a1+a2       &&第1、2项之和
     nCount=2        &&项数,初值为2
     Do WHILE nSum<100
       x=a1
       a1=a2
       a2=x+a1
       nSum=nSum+a1
       nCount=nCount+1
     Enddo
     nCount=nCount+1
     WAIT WINDOWS’前’+STR(nCount)+’项的和刚好不大于100‘