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

2002年(秋)Visual FoxPro 二级考试上机试卷(VFP01)

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

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

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

打开软盘根目录下的项目文件TEST,在该项目文件中已有一数据库SJK.
1.按如下要求修改sjk中学生(xs)表的结构:

(1)将性别(xb)字段的标题设置为“性别”,默认值设置为“男”;

(2) 设置xb字段的有效性(验证)规则,要求性别必须为“男”或“女”;
(3) 设置xb字段的有效性(验证)信息为:“性别必须为男或女”;
(4) 创建一个普通索引xc,要求先按xb字段排序,性别相同的再按出身日期(csrq)字段排序;
(5) 为学号(xh)字段设置输入掩码:接受8个字节的字符,且只接受数字。
2. 把软盘根目录中的表文件GZB.DBF添加为TEST项目中的自由表,并为其添加编辑说明为“教师工资表”。
3. 修改GZB表中所有记录的住房补贴(zfbt)字段的值,规定为:1998年(含1998年)以后参加工作的教师(注:gzrq字段为工作日期),其住房补贴为基本工资(jbgz)的19%,而其他教师没有住房补贴。
4. 为XS表设置删除触发器:不允许删除。
5. XS表已存在主索引xsxh,索引表达式为xh,CJ表已存在普通索引cjxh,索引表达式为xh。以XS表为主表,CJ表为子表按xh建立永久关系,并设置XS表和CJ表之间的参照完整性:更新级联。

二、设计查询(8分)
    在TEST项目中已存在查询chaxun,且在SJK 中包含一个名为JSST的视图,该视图中包含教师的各种基本信息,其中含有职称代号(zcdh)、职称(zc)、出生日期(csrq)和教师所在的系代号(xdh)等字段,另外在系名(XIM)表中含有系名字段(ximing)。按如下要求修改查询:
基于JSST视图和XIM表查询每个系各种职称的人数,平均年龄。要求输出字段为:xdh、ximing、zc、人数、平均年龄,查询结果按xdh的升序排序。

三.设计菜单(5分)
TEST项目中已存在菜单menu,其中已定义了“文件”菜单栏及其中的“恢复系统菜单”项。按如下要求设计菜单,完成后的运行效果如图1所示。

1. 为“文件”菜单设置热键“ALT+F”;
2. 在“文件”菜单中创建“打开”菜单项,为“打开”菜单项设置快捷键“CTRL+O”;
3. 在“打开”和“恢复系统菜单”菜单项之间插入分组线;
4. 为“打开”菜单项创建子菜单,子菜单中包含“项目”、“数据库”和“表”菜单项;
5. 创建“程序”菜单。

四、设计表单(10分)
TEST项目中已存在表单formA,功能是查看各系科教师名单,界面如图2所示。按如下要求修改表单,完成后表单的运行界面如图3所示。
1. 将表单宽度增加到324,标题改为“系科教师名单”;
2. 删除表格的xdh列,并将表格的宽度和高度缩小到158和100、左边距改为156、仅显示垂直滚动条;
3. 修改列表框:宽度增加到140,增加一列,以显示系科代号和系名两列;
4. 在表单中添加两个控件:标签控件Label3和文本框控件txtRS,将标签的标题设置为“人数:”,将设置文本框为:边框样式为无边框、背景样式为透明;
5. 已知系科列表框的行数据源是系名(XIM),表修改列表框的InterActiveChange事件代码,使标签Label2能动态显示:“xx院系教师名单:”,使添加的文本框能动态显示当前系科的人数。(提示:系科名从XIM表的ximing字段取得)

五、程序改错(5分)
下列程序的功能是统计所有的“水仙花数”的个数,(“水仙花数”是指一个三位数,其各位数字立方和等于该数本身,例如:153=13+53+33)。要求:
(1) 项目中有一个程序文件Pcode,将下列程序输入到其中并进行修改;
(2) 在修改程序时,不允许修改程序的总体框架和算法,不允许增加或减少语句数目。

nCount=1
FOR n=100 TO 999
   n1=VAL(SUBS(STR(n,3),3,1))
   n2=VAL(SUBS(STR(n,3),2,1))
   n3=VAL(SUBS(STR(n,3),1,1))
   IF n=n1^3+n2^3+n3^3
        nCount=nCount+1
   ENDIF
ENDFOR
WAIT WINDOWS’“水仙花数”的个数为’+nCount