江苏省高校计算机等级考试命题研究院 江苏省高校计算机等级考试辅导
2010秋VFP上机典型试题

真正考试时, 启动VFP软件后,首先输入Set Default to T:,注意:不能丢,

平时练习时应输入set default to 考生文件夹

注意:项目管理器应从VFP软件中打开,不能从别的地方打开,打开方式:启动VFP软件à文件à打开à项目

上机考试题型总结:

题型1:对表进行设置

例题:

打开T盘根目录中的项目文件JXGL,在该项目中已有一数据库JXSJ

  1.JXSJ数据库中按如下表格中所示的结构创建TAB.DBF,并按表格后的要求设置相关属性。

字段名

数据类型

宽度

字段标题

Cdcs

C

40

传递城市

Cdrq

D

 

传递日期

Cdrs

I

 

火炬手人数

Cdlxt

G

 

传递路线图

Cdjs

M

 

传递介绍

 

(1)设置TAB表的注释:火炬传递城市信息表;

  操作:Tab表的选项卡中的表注释中输入火炬传递城市信息表

(2)设置Cdrq字段的有效性规则及信息:传递日期必须在200888(对现有数据不验证此规则)

  操作:选中cdrq字段, 在有效性规则中输入cdrq<{^2008-8-8},在信息输入框中输入传递日期必须在200888”,注意, 这里的””一定是英文状态下输入的,并且信息必须要加””

(3)Cdrs字段的默认值设置为100,Cdcs设置为南京,Cdrq设置为200888

  操作:选中cdrs,在默认值中输入100,因为cdrs是数值型的,所以直接输入100,选中cdcs,在默认值中直接输入南京”,cdcs是字符型的,所以要加双引号,选中cdrq,在默认值中输入{^2008-8-8}

(4)cdcs自动删除前导空格, cdcs拖放到表单时自动显示文本框(TextBox),输入cdcs中的值自动转换为大写字母,Cdcs字段创建主索引,索引名为abcd。按CdcsCdrq创建普通索引cdef

  操作:选中cdcs,在格式中输入T,在显示类中选中TextBox,自动转换为大写,在格式原有的T之后增加!,

切换到索引选项卡,索引名输入abcd,选中主索引,索引表达式输入cdcs,增加一个索引,索引名输入cdef,选中普通索引,索引表达式为cdcs+dtoc(cdrq,1),因为cdrq是日期型的所以要转换成字符型

(5)设置xs表中的xh只能写入数字,允许输入空值

  操作:选中xh字段,在输入掩码中输入129,因为xh的宽度是12,一个9是一个数值字符

2.TAB表中输入如下记录:

Cdcs

Cdrq

Cdrs

Cdlxt

Cdjs

南京

2008/05/27

208

(插入lxt.jpg文件)

南京这个城市

操作:->追加新记录,然后录入,特别是在输入cdrq,应输入05/27/2008.因为默认情况下是按照月--年来组织数据的,在输入cdlxt,双击à编辑à插入对象à由文件创建à浏览

3.设置CJ表的更新触发器,要求课程代码为60023”的记录不允许修改。为js表设置删除触发器,禁止删除

   操作:在更新触发器中输入:kcdm!=”60023”,在删除触发器中输入.f.,因为触发器返回.t.表示允许执行操作,返回.f.不允许执行操作

4.已知JS表已存在主索引gh,索引表达式为gh,KCAP表已存在普通索引gh,索引表达式为gh,JS表为主表,KCAP表为子表按gh建立永久关系,并设置两表之间的参照完整性:插入限制,更新级联,删除限制

   操作:选中JXSJ数据库,点击修改,出现数据库设计器,找到JS表与KCAP,然后选中JS表的索引gh,拖放至KCAP表的索引gh,会出现一条连接线,即建立永久关系,选中连接线,右击,选中参照完整性,出现参照完整性生成器,选择更新选项卡,选中其中的级联,选中删除选项卡,选中其中的限制,选中插入选项卡,选中其中的限制,按确定(注意:如果右击参照完整性出现一个错误提示框,则要执行系统菜单数据库à清理数据库)

5.更新xs表中籍贯为江苏南京的更改为江苏省南京

  操作:在命令窗口输入 update xs set jg=”江苏省南京” where jg=”江苏南京

6.kc表移出jxsj数据库,使其成为自由表

   操作:选中kc,然后右击删除-->移去

7.修改项目test的信息,附加图标pc.ico,城市为"南京"

   操作:选中任意一个表-->右击-->项目信息-->项目-->附加图标

8.修改yxzy表设置yxzydminputMask属性,使该字段的数值只能为数字字符

   操作:打开yxzy,选中yxzydm,选中输入掩码: 输入999999,因为yxzydm的宽度为6

9.利用项目管理器操作为xs编辑说明"人事表"

   操作:选中xs,右击编辑说明-->输入人事表

10.js表设置为包含状态

   操作:选中js,右击-->包含

11.js表增加一个备注型字段(bz),并将所有职称(zc)"教授"记录的bz字段设置为"学科带头人"

   操作:增加一个备注字段,在命令窗口输入:

   update js set bz="学科带头人" where zc="教授"

12.dmb表中lx字段值为"民族"的记录复制到ab,并添加到jxsj数据库

    操作:在命令窗口输入

         use  dmb

         copy to ab for lx="民族"

         在项目管理器中选择"添加"-->ab

 

题型2查询

查询时最终要看查询的生成命令是否与标准答案一致

例题:已知js表存储了每名教师的基本信息, 包含文化程度代码(whcd,c),出生日期(csrq,D),工作日期(gzrq,D)等字段,视图whcd为文化程度代码与名称对照表,含文化程度代码(dm,c)和文化程度名称(mc,c)等字段,按如下要求修改jxgl项目中的查询chaxun:

  基于js表和whcd试图,统计各类文化程度的男性人数和工作时的平均年龄,要求:输出文化程度代码、文化程度名称、人数和工作时的平均年龄(字段名依次分别为dm,mc,rspjnl),查询结果按平均年龄降序排序输出前3条数据,且仅输出人数大于等于2个人的,输出去向为表文件temp,(:教师工作时的年龄为工作日期的年份减去出生日期的年份)

 

操作:

(1)选中项目管理器中的chaxun,点击修改”,打开添加表或试图”,js与视图whcd(在右下方有视图选项)加入到查询设计器中,这时会弹出联接条件”,因为js表与whcd视图都有文化程度代码,所以要依次选中js表中的whcdwhcd视图中的dm,类型为内部联接”,单击确定

(2)字段选项卡中的可用字段依次选中whcd.dm  whcd.mcà添加至选定字段

  因为人数要通过函数生成,所以在函数和表达式中输入Count(*) as rs添加至选定字段

  平均年龄也要通过函数生成,函数和表达式中输入Avg(year(gzrq)-year(csrq)) as pjnl添加至选定字段

(3)联接选项卡中前面已经设置了js表与whcd联接起来的条件,所以无需再设置,如果在(1)中没有设置联接条件”,那么就要进行设置,在类型中选中Inner join,字段名输入js.whcd,条件输入”=”,值输入whcd.dm

(4)筛选选项卡中选择js.xb,条件”=”,实例

(5)排序依据选项卡中选择pjnl添加至选定字段”,在排序选项中选择降序

(6)分组依据选项卡中选择whcd.dm,因为要求人数大于2的显示,满足条件中选择rs  >=,实例中输入2

(7)”杂项选项卡,列在前面的记录中的对号去掉,然后在记录个数中输入3

(8)右击查询设计器空白区,选择输出设置”,选中表,输入temp, (:有时候输出文本文件,选择屏幕à文本文件à输入文件名)

(9)右击查询设计器空白区,选择查看SQL语句”,比对生成的语句是否与标准答案一样

SELECT TOP 3 Whcd.*, count(*) as rs,;

  avg(year(gzrq)-year(csrq)) as pjnl ;

 FROM  jxsj!js INNER JOIN jxsj!whcd ;

   ON  Js.whcd = Whcd.dm;

 WHERE Js.xb = "";

 GROUP BY Whcd.dm;

 HAVING rs >= 2;

 ORDER BY 4 DESC;

 INTO TABLE temp.dbf

 

题型3:设计菜单

JXGL项目中已存在菜单MENU,已定义了系统管理菜单栏及其中的恢复系统菜单菜单项。按如下要求设计菜单,完成后的运行效果如图1所示。

  1.创建教材信息菜单栏,其访问键为J,子菜单为编辑浏览统计”,分组线如图所示,"系统管理"菜单栏中插入VFP系统菜单"导入""导出"

  2.编辑菜单项设置跳过条件,使该菜单项不可用;

  3.统计菜单创建子菜单出版社出版年月”;

  4.出版社菜单项设置快捷键CTRL+B,并为其设置过程代码:首先清除屏幕(即主窗口),然后运行查询文件CHAXUN.QPR,为浏览菜单设置命令Select * from jc

  5.将下述代码添加到菜单的适当位置,使运行该菜单时,首先执行此代码,代码如下:

    if used(“js”)

        select js

    endif

  6. 将下述代码添加到菜单的适当位置,使运行该菜单时,最后执行此代码,代码如下:

     close tables all

 7."浏览"菜单设置命令,浏览xs表中jg为江苏的全部数据

操作步骤:

(1)在项目管理器的"其他"选项卡中选中菜单menu,单击"修改","系统管理"下方添加"教材信息(\<J)",选择"子菜单"-->创建,在打开的输入栏中依次输入编辑,浏览,\-,统计  (:\-是分组标记),切换到系统管理选择旁边的"插入栏",依次选择"导入""导出"

(2)点击"编辑""选项",进入新选项卡, 在跳过中输入.t.

(3)选中"统计",选择"子菜单"-->创建,在打开的输入栏中依次输入出版社和出版年月

(4)点击"出版社""选项",进入新选项卡, 选中快捷方式,直接按CTRL的同时在选中B,有时需要按F12,那么就直接按F12就可以了

   选中"出版社",选择"过程"-->创建,输入

   clear

   do chaxun.qpr

(5)选择显示à常规选项à设置(出现空白框)à确定à在空白框中输入代码

(6) 选择显示à常规选项à清理(出现空白框)à确定à在空白框中输入代码

(7) 操作:选中"浏览",选择"命令"-->创建,输入select * from xs where jg="江苏"

题型4:设计表单

表单F081E的功能是:用鼠标在表单上写汉字等操作。按下列要求修改表单,修改后表单运行时如图2所示。

  1.设置表单的有关属性,使其标题为鼠标写字”,字号为19,前景颜色为红色,字体为华文行楷,边框样式属性为固定对话框”,背景颜色为黄色。无最小化,最大化按钮,表单自动居中,设置表单的图标为PC.ICO

  2.如图2所示在表单的上部添加一个标签控件,用来显示鼠标的位置,并将其对象名修改为COORD,背景样式设置为透明

  3.在表单的下部添加一个文本框控件(对象名为Textl)和计时器控件(对象名为Timerl),并设置计时器控件的有关属性,使得表单运行时触发计时器事件的间隔时间为5秒。

  4.编写计时器控件的Timer事件代码,实现在文本框中显示当前的系统日期和时间。

  5.在表单的下方加一个命令按钮为,标题为退出”,编写其Click事件代码,功能是释放表单

  6.拖放一个命令按钮组至表单,按钮个数为3,然后设置其为水平布局

操作步骤:

(1)在项目管理器打开文档选项卡-->表单

(2)选中F081e,点击旁边的修改

(3)选中表单,然后在属性窗口Caption输入鼠标写字,按回车键,再选中FontSize属性,设置为19,FontName属性设置为华文行楷,再选中

  ForeColor(前景颜色),BackColor(背景颜色),

BorderStyle属性设置2为固定对话框,MaxButton设置为.F.无最大化,MinButton设置为.F.无最小化按钮,

AutoCenter设置.T.,ICO设置为PC.ICO

(4)从表单控件工具栏将标签控件拖放至表单上,

Name属性修改为Coord,BackStyle属性修改为透明

(5)从表单控件工具栏将文本框控件与计时器控件拖放至表单上,将计时器的InterVal属性设置5000

(6)双击计时器,Timer事件中输入如下代码

ThisForm.text1.value=datetime()

(7)从表单控件工具栏将命令按钮控件拖放至表单上,

将命令按钮的Caption属性改为退出,双击该命令按钮

进入其Click事件,输入如下代码:

  ThisForm.Release

(8)从表单控件工具栏将命令按钮组控件拖放至表单上,选中该命令按钮组,在属性窗口设置其ButtonCount3,右击-->生成器-->布局-->水平

常见表单的设置:

常见表单属性:

AlwaysOnTop 总在打开窗口之上

AlwaysOnBottom  总在其他打开窗口之下

AutoCenter      居中对齐

BackColor       背景颜色

BorderStyle     0无边框  1单线边框  2固定对话框  3可调边框

Caption         表单标题

ControlBox      无最大化、最小化、关闭按纽

Enabled        是否对事件触发,返回.t.能对事件触发

Fontname        字体

FontSize        字体大小

ForeColor       前景颜色

ICON            图标

MaxButton        是否有最大化按纽,.t.表示有,.f.表示没有

MinButton        是否有最小化按纽,.t.表示有,.f.表示没有

Name             名称

width            表单宽度

Height           表单高度

常见方法:

thisform.release   释放表单

 

 

题型5:程序改错

操作:在项目管理器中选中代码à程序àpcodeà修改,然后将代码录入,通过调试来进行修改,程序中设置了两个错误点,录入给1,一个错误点2

例题:下列程序的功能是:输入一个由ASCII码字符和GB2312字符集中汉字字符组成的字符串后,统计并显示出现次数最多的10个字符及其出现次数。要求:

    1.将下列程序输入到项目中的程序文件PCODE,并对其中的2条错误语句进行修改;

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

    CLEAR

    ACCEPT '请输入:' TO cccc    &&该语句功能是交互式地输入数据(字符串)

    n=LEN(cccc)

    IF n=0

      RETURN

    ENDIF      

    CREATE CURSOR TEMP (cc c(2),nn i)  &&创建临时表存储字符及出现的次数

    FOR i=1 TO n

      c=SUBS(CCCC,i,1)

      IF ASC(c)>127    &&汉字字符

         c=SUBS(cccc,i,2)

         i=2

      ENDIF

      LOCATE FOR cc=c

      IF EOF()

        INSERT INTO TEMP(cc,nn) VALUE(c,1)

      Other

        REPLACE nn WITH nn+1

      ENDIF

    ENDFOR

    SELECT TOP 10 cc,nn FROM temp ORDER BY 2 DESC