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

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

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

 

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

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

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

1、按如下要求修改SJK中学生(XS)表的结构:

1)为XS表增加一个备注型字段,其字段名为bz

2)为备注(bz)字段设置标题:备注;

3)对学号(xh)字段设置输入掩码:接受8个字节的字符,且只接受数字;

4)在XS表中增加一条记录,记录内容为:

xh

xm

xdh

Bz

04020201

王林

05

信息管理系学生

5)创建一个普通索引xmrq,要求先按xm字段排序,xm相同时再按出生日期(csrq)字段排序。

2、为XS表添加编辑说明:学生基本信息表

3、把软盘根目录中的表文件GZB.DBF添加为TEST项目中的自由表。

4、调整GZB表中所有讲师的综合津贴(zhjt),要求1996年(含1996年)以前参加工作的讲师每人为280元,其余的讲师为150元。

5、为RK表设置插入触发器:工号以“A”或“B”字母开头的记录允许插入。

6JS表已存在主索引jsgh,索引表达式为gh:RK表已存在普通索引rkgh,索引表达式为gh。以js表为主表、RK表为子表,按gh建立永久关系,并设置JS表和RK表之间的参照完整性:更新限制。

 

二、设计查询(8分)

TEST项目中已经存在查询chaxun,且在SJK中包含一个名为JSST的视图。该视图包括教师工号(gh)、姓名(xm)、出生日期(csrq)、职称(zc)和系代号(xdh)字段,在SJK的工资(GZ)表含有教师工号(gh)、基本工资(jbgz)和综合津贴(zhjt)字段。按如下要求修改查询:

基于JSST视图和GZ表查询每个系各类职称基本工资、岗位津贴和综合津贴三项之和的最大值、最小值、平均值、要求输出字段包括:xdhzc,最大值、最小值、平均值,查询结果按xdh从高到低排序。

 

三、设计菜单(5分)

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

1、如图所示,为“成绩管理”菜单栏编制子菜单:

2、在数据库SJK中已存在RKVIEW视图,其中包含教师姓名(xm)和课程名称(kcm)等字段。为“教师任课管理”菜单栏下的“教师任课查询”菜单项编制SQL命令:当执行该菜单项时,在浏览窗口显示任课教师的姓名(xm)和课程名称(kcm); 

3、将“课程管理”菜单栏设置为可用。

 

 

四、设计表单(10分)

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

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

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

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

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

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

 

 

五、 程序改错(5分)

下列程序的功能是:根据给定出生日期,打印出60岁前有哪几个生日是在星期六或星期日,并分别统计在星期六和星期日过生日的次数。要求:

1)项目中有一个程序文件pcode,将下列程序输入到其中并进行修改;

2)在修改程序时,不允许修改程序的总体框架和算法,不允许增加或减少语句数目。

Set date to long

Dbday={^1968/05/20}

Nyear=year(dbday)

Mm=str(month(dbday),2)

Dd=str(day(dbday),2)

Store o to nsunday,nsaturday

For I=1 to 60

Cebirth=”^”+str(nyear+I,4)+ ”/”+mm+”/”+dd

Debirth=dtoc(cebirth)

Nweek=dow(debirth)

If nweek=1

   ?debirth,”星期日

   nsunday=nsunday+1

endif

if nweek=6

  ?debirth,”星期六

  nsaturday=nsaturday+1

endif

   endfor

?”星期六过的次数:”+str(nsaturday,2)+”  星期日过的次数:”+str(nsunday,2)