1、国家二级 VF机试模拟试卷 8及答案与解析 一、基本操作题( 30分) 1 (1)将数据库 tyw添加到项目 my中。 (2)对数据库 tyw下的表 “出勤 ”,使用视图向导建立视图 shim,要求显示出表 “出勤 ”中的记录 “姓名 ”, “出勤次数 ”和 “迟到次数 ”。并按 “姓名 ”排序 (升序 )。 (3)为表 “员工 ”的字段 “工资 ”设置完整性约束,要求 “工资 =0”,否则提示信息“工资必须大于 0”。 (4)设置表 “员工 ”的字段 “工资 ”的默认值为 “1000”。 二、简单应用题( 40分) 2 (1)使用 “一对 多表单向导 ”生成一个名为 sell的表单。要求从父
2、表 de中选择所有字段,从子表 PT表中选择所有字段,使用 “部门号 ”建立两表之间的关系,样式为“阴影式 ”;按钮类型为 “图片按钮 ”;排序字段为部门编号 (升序 );表单标题为 “数据维护 ”。 (2)在考生文件夹下打开命令文件 asp.pr8,该命令文件用来查询各部门的分年度的 “部门编号 ”、 “部门名称 ”、 “年度 ”、 “全年销售额 ”、 “全年利润 ”和 “利润率 ” (全年利润 /全年销售额 ),查询结果先按 “年度 ”升序、再按 “利润率 ”降序排序,并存储到 li表中。 注意,程序在 第 5行、第 6行、第 8行和第 9行有错误,请直接在错误处修改。修改时,不可改变 S
3、QL语句的结构和短语的顺序,不允许增加或合并行。 三、综合应用题( 30分) 3 为 “部门信息 “表增加一个新字段 “人数 ”,编写满足如下要求的程序:根据 “雇员信息 ”表中的 “部门号 ”字段的值确定 “部门信息 ”表的 “人数 ”字段的值,即对 “雇员信息 ”表中的记录按 “部门号 ”归类。将 “部门信息 ”表中的记录存储到 ate表中 (表结构与 “部门信息 ”表完全相同 )。最后将程序保存为 myp.prg,并执行该程序。 在命令窗口中输入命令: MODIFY COMMAND myp,在弹出的程序编辑窗口中输入如下程序段: *程序文件 myp.prg中的程序段 * ALTER TA
4、BLE部门信息 ADD人数 I SELECT部门号 ,COUNT(*)AS人数 FROM雇员信息; GROUP BY部门号; INTO CURSOR atemp DO WHILE NOT EOF() UPDATE部门信息 SET人数 =atemp.人数; WHERE部门信息 .部门号 =atemp.部门号 SKIP ENDDO SELECT * FROM部门信息 INTO TABLE ate * 在命令窗口执行命: DO myp,运行程序,通过 BROWSE命令可查看查询结果,程序运行结果如图 3-26所示。 国家二级 VF机试模拟试卷 8答案与解析 一、基本操作题( 30分) 1 【正确答案
5、】 (1)从菜单栏里单击 “文件 ”并选择 “打开 ”,或 直接单击工具栏上的“打开 ”图标,在弹出的对话框中选择要打开的项目文件 my.pjx。在项目管理器 my中,首先在 “数据 ”选项卡中选择 “数据库 ”,然后单击选项卡右边的 “添加 ”命令按钮,在系统弹出的 “打开 ”对话框中,将考生文件夹中的数据库 tyw添加到项目管理器中,单击 “确定 ”按钮。 (2)在 “数据 ”选项卡中,依次展开 “数据库 ”“tyw”,选中 tyw分支下的 “本地视图 ”,单击项目管理器右边的 “新建 ”命令按钮,在弹出的 “新建本地视图 ”对话框中,单击 “新建视图 ”按钮,打开视图设计器,将 “出勤
6、”数据表添加到视图设 计器中。根据题意,在视图设计器的 “字段 ”选项卡中,将 “可用字段 ”列表框中的字段全部添加到右边的 “选定字段 ”列表框中,在视图设计器的 “排序依据 ”选项卡中,将“选定字段 ”列表框中的字段 “姓名 ”添加到右边的 “排序条件 ”列表框中,在 “排序选项 ”中选择 “升序 ”,完成视图设计,将视图以 shitu保存在考生文件夹下。 (3)在项目管理器中,选中 “员工 ”数据表,同时单击右边的 “修改 ”命令按钮,打开表设计器,选中 “工资 ”字段,然后在 “规则 ”文本框中输入 “工资 =0”,在 “信息 ”文本框中输入 “工资必须大于 0“”。 (4)打开 “员
7、工 ”表设计器,在 “字段 ”选项卡中选中 “工资 ”字段,在字段有效性 “默认值 ”文本框中输入 “1000”为该字段设置默认值。 【试题解析】 本大题主要考查数据库的添加、视图的建立以及有效性规则的建立。数据库添加可以通过项目管理器中的命令按钮,打开相应的设计器直接管理。字段的有效性规则建立可在 “字段 ”选项卡中完成。视图的建立是在项目管理器中 “数据 ”选项卡里完成,且视图文件在磁盘中是找不到的,直接保存在数据库中。 二、简单应用题( 40分) 2 【正确答案】 (1)启动 Visual FoxPro,在 “工具 ”菜单选择 “向导 ”“表单 ”菜单命令,出现 “向导选取 ”对话框,根
8、据题意数据源是多个表,因此选定 “一对多表单向导 ”。单击 “确定 ”。 步骤一:在弹出的对话框中 “数据库和表 ”选项选择父表 de,并把全部的 “可用字段 ”选为 “选定字段 ”。 步骤二:选择子表 pt,并把全部的 “可用字段 ”选为 “选定字段 ”。 步骤三:系统自动以 “部门编号 ”建立两表之间的关系。 步骤四:表单样式选择为 “阴影式 ”,按钮类型选择 “图片按钮 ”。 步骤五:在 “排序次序 ”中选择 “部门编号 ”, 并选择升序排序。 步骤六:把表单标题改为 “数据维护 ”,可以在单击 “完成 ”之前单击 “预览 ”按钮来预览生成的表单,最后单击 “完成 ”按钮。 将表单以文件
9、名 sell保存在考生文件夹里。表单运行结果如图 3-27所示, (2)在命令窗口中输入命令: MODIFY COMMAND asp.prg,打开程序文件编辑窗口。 *文件中 asp.prg程序段如下 * *下面的程序在第 5行、第 6行、第 8行和第 9行有错误,请直接在错误处修改。 *修改时,不可改变 SQL语句的结构和短语的顺序,不允许增加或合并行。 OPEN DATABASE SALEDB SELECT PT.部门编号,部门名称,年度,; 一季度销售额 +二季度销售额 +三季度销售额 +四季度销售额 AS全年销售额 ,; 一季度利润 +二季度利润十三季度利润 +四季度利润 AS全年利润
10、 ,; 一季度利润 +二季度利润 +三季度利润 +四季度利润 /一季度销售额 +二季度销售额 +三季度销售额 +四季度销售额 AS利润率 ; FROMPT DE; WHERE PT.部门编号 =DE.部门编号 ; GROUP BY年度 利润率 DESC; INTO LI * 根据源程序提供的错误,修改后的程序段如下所示: *修改后的文件内容 * OPEN DATABASE SALEDB SELECT PT.部门编号 ,DE.部门名称 ,PT.年度 ,; PT.一季度销售 +PT.二季度销售 +PT.三季度销售 +PT.四季度销售 AS全年销售额 ,; 一季度利润 +二季度利润 +三季度利润 +
11、四季度利润 AS全年利润 ,; (一季度利润 +二季度利润 +三季度利润 +四季度利润 )/(一季度销售 +二季度销售 +三季度销售十四季度销售 ) AS利润率; FROM PT,DE; WHERE PT.部门编号 =DE.部门编号 ; ORDER BY 利润率 DESC; INTO TABLE LI * 【试题解析】 本大题 1小题考查的是根据表单向导生成联系多表的表单内容,利用向导时应注意父表和子表的选择; 2小题中考查的是 SQL语句的应用,注意ORDER BY和 GROUP BY之间的差别。 三、综合应用题( 30分) 3 【正确答案】 在命令窗口中输入命令: MODIFY COMMA
12、ND myp,在弹出的程序编辑窗口中输入如下程序段: *程序文件 myp.prg中的程序段* ALTER TABLE部门信息 ADD人数 I SELECT部门号 ,COUNT(*)AS人数 FROM雇员信息; GROUP BY部门号; INTO CURSOR atemp DO WHILE NOT EOF() UPDATE部门信息 SET人数 =atemp.人数; WHERE部门信息 .部门号 =atemp.部门号 SKIP ENDDO SELECT * FROM部门信息 INTO TABLE ate * 在命令窗口执行命: DO myp,运行程序,通过 BROWSE命令可查看查询结果,程序运行结果如图 3-26所示。 【试题解析】 本大题主要考查的是 SQL语句的应用,字段的增加用到数据表的定义语句,考生应该熟悉 COUNT函数的应用,在 SQL语句设计过程中可利用临时表来存放查询结果,再利用 DO循环语句对表中的记录逐条更新。