2010秋VFP上机典型试题 |
||||||||||||||||||||||||||||||||||
真正考试时, 启动VFP软件后,首先输入Set Default to T:,注意:不能丢, 平时练习时应输入set default to 考生文件夹 注意:项目管理器应从VFP软件中打开,不能从别的地方打开,打开方式:启动VFP软件à文件à打开à项目 上机考试题型总结: 题型1:对表进行设置 例题: 打开T盘根目录中的项目文件JXGL,在该项目中已有一数据库JXSJ。 1.在JXSJ数据库中按如下表格中所示的结构创建TAB.DBF表,并按表格后的要求设置相关属性。
(1)设置TAB表的注释:火炬传递城市信息表; 操作:在Tab表的”表”选项卡中的表注释中输入” 火炬传递城市信息表” (2)设置Cdrq字段的有效性规则及信息:传递日期必须在 操作:选中cdrq字段, 在有效性规则中输入cdrq<{^ (3)将Cdrs字段的默认值设置为100,Cdcs设置为南京,Cdrq设置为 操作:选中cdrs,在默认值中输入100,因为cdrs是数值型的,所以直接输入100,选中cdcs,在默认值中直接输入”南京”,因cdcs是字符型的,所以要加双引号,选中cdrq,在默认值中输入{^ (4)将cdcs自动删除前导空格, 将cdcs拖放到表单时自动显示文本框(TextBox),输入cdcs中的值自动转换为大写字母,按Cdcs字段创建主索引,索引名为abcd。按Cdcs与Cdrq创建普通索引cdef 操作:选中cdcs,在格式中输入T,在显示类中选中TextBox,自动转换为大写,在格式原有的T之后增加!, 切换到索引选项卡,索引名输入abcd,选中主索引,索引表达式输入cdcs,增加一个索引,索引名输入cdef,选中普通索引,索引表达式为cdcs+dtoc(cdrq,1),因为cdrq是日期型的所以要转换成字符型 (5)设置xs表中的xh只能写入数字,允许输入空值 操作:选中xh字段,在输入掩码中输入12个9,因为xh的宽度是12,一个9是一个数值字符 2.在TAB表中输入如下记录:
操作:表->追加新记录,然后录入,特别是在输入cdrq时,应输入 3.设置CJ表的更新触发器,要求课程代码为” 操作:在更新触发器中输入:kcdm!=” 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表设置yxzydm的inputMask属性,使该字段的数值只能为数字字符 操作:打开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,rs和pjnl),查询结果按平均年龄降序排序输出前3条数据,且仅输出人数大于等于2个人的,输出去向为表文件temp,(注:教师工作时的年龄为工作日期的年份减去出生日期的年份) 操作: (1)选中项目管理器中的chaxun,点击”修改”,打开添加”表或试图”,将js与视图whcd(在右下方有视图选项)加入到查询设计器中,这时会弹出”联接条件”,因为js表与whcd视图都有文化程度代码,所以要依次选中js表中的whcd和whcd视图中的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)从表单控件工具栏将命令按钮组控件拖放至表单上,选中该命令按钮组,在属性窗口设置其ButtonCount为3,右击-->生成器-->布局-->水平 常见表单的设置: 常见表单属性: 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 |
||||||||||||||||||||||||||||||||||