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

2003年(秋)Visual FoxPro 二级考试上机试卷(VFP08)

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

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

一. 项目、数据库和表操作(12分)
  
  打开软盘根目录下的项目文件TEST,在该项目中已有一数据库SJK。
  1. 按如下要求修改SJK中教师(JS)表的结构。
   (1) 设置csrq字段的有关属性,使得JS表在浏览器窗口中,该字段的列表头显示为:出生日期。
   (2) 设置系代号(xdh)字段的输入掩码,使xdh字段只能输入两个数字字符。
   (3) 设置xdh字段的显示类为列表框。
   (4) 设置简历(jl)字段允许输入空格NULL。
   (5) 创建一个普通索引,索引名为GL,要求按工龄降序排序(工龄按工作日期(gzrq)字段至当前日期的年数计),并要求该索引能筛选出工龄在10年及10年以上的记录。
  2. 把软盘根目录中的XS.TXT文件添加到TEST项目中的适当位置,并将其设置为“排除”状态。
  3. 向JS表中增加一条工号(gh)为“B0007”、出生日期(csrq)为“1976年2月14日”的记录。
  4. 修改JS表中各个教师的简历(jl)字段中,将工号(gh)、姓名(xm)和性别(xb)字段的值连接成字符串后填充到JS表中各个教师记录的jl字段中。例如:工号为“B0007”、姓名为“张三”、性别为“男”的教师记录,填充后的jl字段的值为“B0007张三 男”。
  5. 为JS表设置插入触发器:只允许插入工号首字母为P以及P以前的字母(A~P)。
  6. 已知JS表已存在主索引jsgh,索引表达式为gh,RK表已存在普通索引rkgh,索引表达式为gh。已JS表为主表,RK表为子表按gh建立永久关系,并设置JS表和RK表之间的参照完整性:删除级联。

二.设计查询(8分)

   在TEST项目中已存在查询CHAXUN,且在SJK中包含一个名为JSZCRK的视图,该视图中包含教师的职称和任课情况。假定课程(KC)字段表示的是周课时数,一学期为20周。按如下要求修改查询:
基于JSZCRK视图和课程(KC)表查询各类职称教师一学期的平均课时数。要求输出字段为:zc,教师数,总课数,平均课时,查询结果按平均课时降序排序。

三.设计菜单(5分)

   项目TEST中已存在菜单MENUH,按如下要求修改菜单,完成后的运行效果如图1所示。

  1. 为“系统”菜单栏下的“退出”菜单项设置快捷键“ALT+R”。
  2. 为“学生档案管理”菜单栏设置子菜单,该子菜单包括二个菜单项“学生基本信息录入”和“学生变动信息录入”,并用分隔线隔开。
   

   3. 为“学生成绩管理”菜单栏下的“不及格成绩查询”菜单项设置SQL命令,当执行该菜单项时显示成绩(CJ)表中所有成绩(cj)低于60分的学生的学号(xh),课程代号(kcdh)和成绩(cj)。
   4. 为“学生变动信息录入”菜单项设置提示信息,学生进校以后的各种奖励和处分,当选择该菜单项时,在状态栏中显示该提示信息。
   5. 在“系统”菜单栏下插入系统菜单“打印预览”。

四.设计表单(10分)

   TEST项目中已存在表单FORMH,该表单可以完成类似于Windows记事本的功能。其
实现的饿基本思想为:打开时将文本文件的内容放入临时表中,保存时将临时表内容放入文本文件中,已知在表单的Load事件中已经定义了一个临时表TEXTFILE,根据下列要求对表单进行修改,完成以后运行表单,效果如图所示。

  1. 表单在运行时不可以最大化。
  2. 将编辑框的字体属性设为“楷体”。
  3. 为“保存”按钮设置访问键“ALT+S”。
  4. 添加一个名为cmdSaveAs命令按钮,其标题为“另存为”,位置如图2所示。
  5. 完善“打开”按钮的Click事件代码,当打开一个文本文件时,将文本文件的名字用括号括起来以后加在表单的标题后面,如图所示。
  6. 表单中已经定义了一个新方法us-SaveAs,为“另存为”按钮编写Click事件代码,当点击该按钮时调用该方法。
  完成修改以后,运行表单,画面显示如图2所示,单击“打开”按钮,会弹出一个对话框,选择一个已存在的文本文件(如当前目录下没有,也可以到其它目录下选择),确 定以后,被选择的文本文件就会显示在编辑框中,编辑以后可以按“保存”按钮,也可 以按“另存为”按钮保存为其他文本文件。
 

五.程序改错(5分)

   下列程序的功能是:将一个英文字符串中的相同字符调整到一起。例如:对于字符串“ASDSYDA”显示“AASSDDY”。要求:
  1. 项目中有一个程序文件PCODE,将下列程序输入到其中并进行修改。
  2. 在修改程序时,不允许修改程序的总体框架和算法,不允许增加或减少语句数目。

    cString=’ASDSYDA’
    cResult=SPACE(0)
    FOR n=1 TO LEN(cString)
      c=SUBSTR(cString,n,1)
      m=AT(c,cResult)
      IF n=0
        cResult=cResult+c
      ELSE
        cResult=SUBSTR(cResult,1,m)+c+SUBSTR(cResult,1,m)
      ENDIF
    ENDFOR
    WAIT WINDOWS’字符串处理后结果为’+cResult