1、国家二级 VF机试(操作题)模拟试卷 435及答案与解析 一、基本操作题 1 在考生文件夹下完成下列操作: (1)使用 SQL命令根据 “教师 ”表产生一个结构和数据完全一致的 “高校教师 ”表,并按职工号递增排序。 (2)使用报表向导为 “教师 ”表创建一个名为 two的报表,选择 “教师 ”表的所有字段,按 “职工号 ”降序排列,标题为 “教师情况报表 ”,其他选项取默认值。 (3)修改 three prg中的程序,使之能够正确的将 1000以内能够被 3整除的整数存储于 four表中。 (4)创建一个新类 MyCheckBox,该类扩展 VisualFoxpro的 CheckBox基类,
2、新类保存在考生文件夹下的 myclasslib类库中。 二、简单应用题 2 在考生文件夹下完成下列操作: (1)使用 SQL语句完成下列功能:根据 “职工 ”和 “部门 ”两个表,计算每个部门 1980-1990年出生的职工人数,存储于新表 new中,新表中包括 “部门号 ”和 “人数 ”两个字段,结果按 “人数 ”递减排序。请将 SQL语句存储于 test中并执行。 (2)修改程序 five prg并执行。程序的功能是: 1)建立数据库表 “学生 ”(表结构为 “姓名 ”20个字符, “学号 ”10个字符,其中学号为主键); 2)为刚建立的 “学生 ”表增加一个字段: “总分 ”,整型; 3
3、)定义 “总分 ”的有效性规则: “总分 ”大于等于 0并且小于等于 800; 4)插入一条记录 (“林红 “、 “20100808“、 788)到 “学生 ”表中; 5)将刚插入的学号为 “20100808”的记录的总分修改为 786。 三、综合应用题 3 在考生文件夹下完成下列操作: (1)新建一个名为 “职工管理 ”的数据库文件,将自由表 “部门 ”“职工 ”添加到该数据库中。 (2)将 “部门 ”中的 “部门号 ”定义为主索引,索引名是 “部门号 ”。 (3)建立一个视图 myview,视图中的数据是部门名为 “通信 ”并且工资大于 3000的人员,视图中包括 “姓名 ”和 “工资 ”
4、两个字段,按工资升序排列。 (4)建立表单 formtwo:包括四个标签( Labell Labe14的标题分别为 “部门名 ”“最高工资 ”“最低工资 ”“平均工资 ”)、一个列表框 ( List1)、三个文本框( Textl Text3分别用于显示 “最高工资 ”“最低工资 ”“平均工资 ”)和一个命令按钮(退出)。 国家二级 VF机试(操作题)模拟试卷 435答案与解析 一、基本操作题 1 【正确答案】 (1) 建立程序可以使用菜单命令的方式,选择 “文件 ”菜单下的 “新建 ”自命令,弹出 “新建 ”对话框,文件类型选择 “程序 ”。 单击 “新建文件 ”图标按钮打开程序编辑界面。 输
5、入建立 “高校教师 ”表的命令: selec*from教师 into dbf高校教师 order by职工号 执行该程序并保存。 (2) 启动报表向导可以通过菜单命令来完成,选择 “文件 ”菜单项下面的 “新建 ”子菜单,打开 “新建 ”对话框,文件类型选择报表,单击 “向导 ”图标按钮。 弹出 “向导选取 ”对话框,选择 “报表向导 ”,然后单击 “确定 ”按钮。 弹出 “报表向导 ”的步骤 1选择字段,单击 “数据库和表 ”后面的 “浏览 ”按钮,找到并打开 “教师 ”表,然后选择该表的所有字段到 “选定字段 ”,如图 481所示。 单击 “下一步 ”按钮,进入步骤 2 4,保留默认设置,
6、不需要修改。 单击 “下一步 ”按钮,进入步骤 5设置表间连接,采用默认值不需要修改。 单击 “下一步 ”按钮,进入步骤 4设置排序,选取 “职工号 ”字段,排序为降序,如图 482所示。 单击 “下一步 ”按钮,进入步骤 6,设置 “报表标题 ”为 “教师情况报表 ”,如图 483所示。 单击 “完成 ”按钮,弹出 “另存为 ”对话框,输入报表文件名: two frx,保存到考生目录。 (3) 打开 three PRG程序。 第一处应改为: insert into four values (i) 第二处增加语句: i=i+1 保存程序并运行。 (4) 选择菜单栏上的 “新建 ”按钮,弹出 “
7、新建 ”对话框,选择 “类 ”单选按钮。 单击 “新建文件 ”图标按钮,在弹出的 “新建类 ”对话框中,类名为设置为 “MyCheckBox”,派生于选择 CheckBox,存储于输入:myclasslib。 单击 “确定 ”按钮进入类设计器,单击菜单栏的 “保存 ”按钮。 SQL、报表的设计和使用、自定义类设计。 【试题解析】 本大题考查了项 SQL语句、报表设计和自定义类设计。 使用报表向导建立报表,按照向导的要求一步一步地设置报表参数,使用起来非常方便。 二、简单应用题 2 【正确答案】 (1)步骤 1:建立菜单可以使用菜单命令的方式,选择 “文件 ”菜单下的 “新建 ”自命令,弹出 “
8、新建 ”对话框,文件类型选择 “程序 ”。 步骤 2:单击 “新建文件 ”图标按钮打开程序编辑界面。 步骤 3:在代码编辑界面输入命令: select部门部门号, count(*)as人数; from职工,部门 where部门部 门号 =职工,部门号 and year(出生日期)=1980 and year(出生日期) =19 90; order by人数 desc; group by部门,部门号 into dbf new 步骤 4:单击菜单工具栏的 “保存 ”按钮,弹出 “另存为 ”对话框,输入程序名为:test prg,保存到考生文件夹。 步骤 5:执行该程序。 SQL语句和查询的设计。
9、(2)步骤 1:打开 five prg程序。 步骤 2:第一个错误处应改为: create table学生 (姓名 C(20),学号 C(10) primary key)。 步骤 3:第二个错误处应改为: alter table学生 add总分 I。 步骤 4:第三个错误处应改为: alter table学生 alter总分 set check总分 =800 and总分 =0。 步骤 5:第四个错误处应改为: insert into学生 values(“林红 “, “20100808“, 788)。 步骤 6:第五个错误处应改为: update学生 set总分 =786 where学号 =“2
10、0100808“。 步骤 7:修改完成后保存程 序,并执行该程序。 SQL的使用。 【试题解析】 (1)本题考查了 SQL的使用。 题目要求根据 “职工 ”和 “部门 ”两个表,计算每个部门 1980到 1990年出生的职工人数,因此查询的筛选条件为:部门部门号 =职工部门号 and year(出生日期) =1980and year(出生日期) =1990,统计人数使用 count函数。 (2)本题考查 SQL的应用。 题目建立数据库表 “学生 ”的时候设置学号为主键,因此第 2行需要补充主键设置。第 3行处是修改表结构,增加一个字段,使用 add命令。第 4行处是定义 “总分 ”字段的有效性
11、规则,使用 alter命令。第 5行处是使用 insert插入一条记录。最后一行是修改记录,使用 update命令,需要制定更新的条件。 三、综合应用题 3 【正确答案】 步骤 1:单击常用工具栏的 “新建 ”按钮,弹出 “新建 ”对话框,文件类型选择 “数据库 ”。步骤 2:单击 “新建文件 ”图标按钮,弹出 “创建 ”对话框,输入数据库名称:职工管理 dbc,保存到考生目录下,步骤 3:在打开的数据库设计器中,单击鼠标右键,弹出快捷菜单,选择 “添加表 ”命令,弹出 “打开 ”对话框,将考生目录下的表 “部门 ”添加到数据库中,重复 本步骤继续把 “职工 ”添加到数据库中。步骤 4:在数据
12、库设计器中,选中 “部门 ”表,在其上单击右键,弹出快捷菜单,选择 “修改 ”命令,打开表设计器。步骤 5:在打开的表设计器中,单击 “索引 ”选项卡,输入索引名 “部门号 ”,类型设为 “主索引 ”,索引表达式为 “部门号 ”。步骤6:单击 “确定 ”按钮保存对表的修改。步骤 7:在命令窗口执行命令创建视图:CREATE VIEW,弹出 “添加表或视图 ”对话框,选择考生目录下 “部门 ”表,然后单击 “添加 ”按钮完成数据表的添加,继续添加 “职工 ”表,并根据 “职工部门号 =部门,部门号 ”建立表间联 系,然后单击 “关闭 ”按钮,进入视图设计器。步骤 8:选择 “字段 ”选项卡,选择
13、 “职工,姓名 ”和 “职工,工资 ”添加到 “选定字段 ”。步骤 9:选择 “筛选 ”选项卡, “字段名 ”选择 “部门部门名 ”, “条件 ”选择 “=”, “实例 ”中输入“通信 ”, “逻辑关系 ”选择 “AND”。输入另外一个条件, “字段名 ”选择 “职工工资 ”, “条件 ”选择 “ ”, “实例 ”中输入 “3000”如图 484所示。步骤 10:选择 “排序依据 ”选项卡,选择 “职工,工资 ”单击 “添加 ”按钮添加到 “排序条件 ”中, “排序选择 ”选择 “升序 ”。步骤 11:单击菜单栏的 “保 存 ”按钮,弹出 “另存为 ”对话框,输入视图文件名: m)rview,
14、保存到考生文件夹。步骤 12:在命令窗口输入命令建立表单: CREATE FORM formtwo,并打开表单设计器。步骤 13:为表单添加数据库环境,在 “显示 ”菜单下选择 “数据环境 ”子菜单,弹出 “添加表或视图 ”对话框,单击 “其他 ”按钮,弹出 “打开 ”对话框找到并打开 “部门 ”表和 “职工 ”表,单击 “关闭 ”按钮关闭该对话框。步骤 14:在表单生添加 4个标签、 1个列表框、 3个文本框和 1个命令按钮,分别设置属性如表 418所示,并进行适当布置和大小调整。步骤 15:列表框(Listl)的 RowSource和 RowSourceType属性手工指定为 “部门部门名
15、 ”和 “6字段 ”。步骤 16:双击列表框,进入事件代码编辑界面,选择列表框的 DblClick事件,输入如下代码: xm=thisform Listl Valueselect max(工资) 最高工资, min(工资)最低工资, avg(工资)平均工资 from职工,部门 where职工部门号 =部门,部门号; and 部门部门名 =xm into dbf threeuse three scatter to athisform textl value=a(1thisform text2 value=a2thisform text3 value=a3步骤 17:双击命令按钮,进入命令按钮的
16、Click事件代码编辑界面,输入如下命令: thisform release步骤 18:保存表单并运行,在列表框中双击某个部门。视图的设计和使用、表单的设计和使用、 SQL的使用。 【试题解析】 本大题考查了数据库的建立、索引设置、视图设计器和表单设计器的使用。 本题的 SQL查询比较复杂,题目要求表单运行时,用户双击列表框中选项时,将“部门名 ”、 “最高工资 ”、 “最低工资 ”和 “平均工资 ”四个字段的信息显示在文本框中,因此 SQL查询的时候需要使用 max、 min、 avg函数。 在列表框的双击事件代码过程中,定义一个变量保存列表框的选定值,在 SQL查询中可以使用该变量,用在筛选条件中。