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

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

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

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

一、 项目、数据库和表操作(12分)
打开软盘根目录下的项目文件TEST,在该项目中已有一数据库SJK。
1. 按如下要求修改SJK中学生(XS)表的结构:
(1)出生日期(csrq)字段的标题设置为“出生日期“;
(2)设置csrq字段的有效性(验证)规则:必须是1983年(包含1983年)之前出生的学生;
(3)设置csrq字段的有效性(验证)信息:学生的出生日期必须符合常规。
(4)为系代号(xdh)字段设置输入掩码:接受2个字段的字符,且只接受数字;
(5)创建一个普通索引xx,要求先按系代号(xdh)字段排序,系代号相同的再按学号(xh)字段排序。
2. TEST项目中的自由表GZC移出项目;
3. 把软盘根目录中的表文件GZB.DBF添加为TEST项目中的自由表;
4. 修改GZB表中所有记录的医疗保险(ylbx)字段的值,算法为:医疗保险为基本工资(jbgz)的2%;
5. 为XS表设置删除触发器:xdh的值为02的允许删除,否则不允许删除;
6. SJK中XLM表已存在主索引xdh,索引表达式为xdh,XS表已存在普通索引xdh,索引表达式为xdh。以XIM表为主表,XS表为子表按xdh建立永久关系,并设置XIM表和XS表之间的参照完整性:更新级联。

二、 设计查询(8分)
在TEST项目中已存在chaxun,且在SJK中的工资(GZ)表中含有教师的基本工资(jbgz),假如教师的住房公积金按基本工资的8%提取。按如下要求修改查询:
基于JS表和GZ表查询每个教师的基本工资(JBGZ),住房公积金(ZFGJ)。要求输出字段为:gh、xm、xb、jbgz、住房公积金,查询结果按gh的升序排序,且只输出住房公积金大于等于100的记录。

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


1. 在“文件”菜单中创建“新建”菜单项,为“新建”菜单项设置快捷键“CTRL+N”;
2. 在“新建”和“恢复系统菜单”菜单项之间插入分组线;
3. 为“新建”菜单项创建子菜单,子菜单中包含“查询”、“表单”和“菜单”菜单项;
4. 创建“运行”菜单栏;
5. 为“运行”菜单设置热件“ALT+R”。

四、 设计表单(10分)
TEST项目中已存在表单formB和Mylib类库。按如下要求修改表单,完成后表单的运行界面如图2所示。
1. 修改表单:宽度增加到560,标题改为:教师工资;
2. 将Mylib类库中的toolbutton类添加到表单右侧的空白处,并将该命令按钮组控件的宽度改为90,将按钮组中的所有按钮的宽度改为80;
3. 将“基本情况”矩形框内的所有文本框废止;
4. 将Shape1控件的背景色改为:179,179,255;
5. 完善表单的Refresh代码,使表单在刷新的同时完成“住房公积”和“实发工资”的计算。(注:住房公积是基本工资的8%,实发工资=应发工资-住房公积-医疗保险-个人所得税)

五、 程序改错(5分)
下列程序的功能是统计一个字符串中包含多少个汉字(假设这些汉字均属于GB2312字符集),其基本算法是从字符串中依次取一个字符,如果其ASCII码值大于127,则为一个汉字内码的第一个字节。
要求:
(1) 项目中有一个程序文件Pcode,将下列程序输入到其中并进行修改;
(2) 在修改程序时,不允许修改程序的总体框架和算法,不允许增加或减少语句数目。
cString=’微软(Microsoft)公司开发的视窗(Windows)操作系统’ &&赋初值
nCount=0
DO WHILE LEN(cString)=0
  IF ASC(LEFT(cString,1))>127
    nCount=nCount+1
    cString=SUBSTR(cString,3)
  ELSE
    CString=SUBSTR(cString,1)
  ENDIF
ENDDO
WAIT WINDOWS’汉字个数为’+STR(nCount)