江苏省高校计算机等级考试命题研究院 江苏省高校计算机等级考试辅导
2005 年(春)二级Visual FoxPro (试卷代号VFP05)

江苏省高等学校非计算机专业学生
2005
()计算机基础知识和应用能力等级考试上机试卷
二级Visual  FoxPro (试卷代号VFP05)

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

 

说明:1、首先运行考试软盘中的上机考试应用程序以输入考生的准考证号、姓名和试卷代号;
   2、启动Visual FoxPro系统后,首先在命令窗口中执行命令;
      SET DEFAULT TO A
    以设置默认的工作目录,然后再开始做题。

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

打开软盘要目录下的项目文件TEST,在该项目中已有一数据库SJK

1  按如下要求修改SJK中工资(gz)表的结构:

1)为个人所得税(grsds)字段设置标题:个人所得税。

2)设置个人所得税(grsds)字段的注释:基本工资1000元以上征税;

3)设置gz表的记录有效性(验证)规则:如果jbgz小于1000元,grsds的值为0,否则grsds的值为jbgz5%(该规则对表中已有的数据不做验证);

4)设置gz表的记录有效性信息:个人所得税按基本工资的5%收取;

5)创建一个普通索引gzsy,要求按jbgz排列。

2  设置test项目信息:作者为张三,单位为淮海工学院 

3  kc表中添加一条记录,记录内容为:

 

Kcdh

Kcm

Bxk

Kss

xf

26

计算机图形学

.f.

3

3

 

4.修改js表中简历(jl)字段的值,要求:所有xdh”02”的记录的简历都改为计算机系的教师 

5.设置js表的插入触发器:gh字段的值必须为5个字节的字符串(除去首尾空格),否则不允许插入。

6.JS表中已存在主索引jsgh,索引表达式为gh;rk表已存在普通索引rkgh,索引表达式为gh。以JS表为主表、rk表为子表,按gh 建立永久关系,并设置JS表和rk表之间的参照完整性:删除级联。

 

二、设计查询(8分)

TEST项目中已存在查询chaxun,且在SJK中学生(xs)表包含学号(xh)、姓名(xm)、性别(xb)、班级编号(bjbh)、系代号(xdh)和专业代号(zydh)字段,专业(zy)表含有专业代号(zydh)和专业名称()zymc)字段,按如下要求修改查询:

基于xs表和zy表查询“01”年级每个专业女生所占比例。要求输出字段为:zydh,zymc,年级,女生人数和女生所占比例,查询结果按女生所占比例从高到低排序(假定bjbh字段值的前二位表示年级)。

 

三、设计菜单(5分)

项目TEST中已存在菜单MenuM,利用菜单设计器按如下要求修改菜单:

1、如图所示,在“表操作”菜单栏下增加一个“删除记录”菜单项及其子菜单;

2、为“表操作”菜单栏下的“记录定位”菜单项编写过程,其功能是:打开学生(XS)表,并将记录指针定位在最后一条记录;

3、将下列代码加到菜单的适当位置,使菜单运行时最后执行它。

CLOSE TABLES ALL

CLEAR

 

 

四、设计表单(10分)

软盘上TEST项目中已经存在表单FormR,该表单的功能是根据选择的系,浏览和统计教师信息,按下列要求修改该表单,修改完成后运动表单,其效果如图所示。

1、修改表单的有关属性,使得表单的标题为“教师信息浏览”;

2、修改表格控件的有关属性,使得表格数据只读,第1列和第3列中显示的数据居中:

3、列表框控件的Enabled属性为.F.,修改其有关属性,使得运行时其列表数据为蓝色;

4、为表单的lnit事件编写代码,使得表单运动后首先能显示所有教师的统计信息(提示:调用下拉组合框控件的InterActiveChange事件代码)。

5、为表单的Load事件编写代码,需要完成的功能是:设置日期格式为ANSI,且年份为4

 

 

五、 程序改错(5分)

下列程序的功能是:显示10000以内所有回文数的个数及其平均值。所谓回文数是指左右数字完全对称的自然数。例如:111211221等都是回文数。要求:
   1 项目中有一个程序文件PCODE,将下列程序输入到其中并进行修改。
   2 在修改程序时,不允许修改程序的总体框架和算法,不允许增加或减少语句数目。

STORE 0 TO nCount,nSum

 FOR n=11 to 10000

      c1=STR(n)

      c2=SPACE(0)

      FOR m=1 TO LEN(c1)

         C2=SUBSTR(c1,m,1)+c2

 ENDFOR

     IF c1=c2

   nCount=nCount+1

       nSum=nSum+c1

     ENDIF

 ENDFOR

 WAIT WINDOW "回文数个数及其平均值分别为:"+STR(nCount)+","+STR(nSum/nCount)