1、国家二级 VF机试(操作题)模拟试卷 208及答案与解析 一、基本操作题 1 在考生文件夹下的 “雇员管理 ”数据库中完成如下操作: (1)为 “雇员 ”表增加一个字段名为 “EMAIL、类型为 “字符型 ”、宽度为 20的字段。 (2)设置 “雇员 ”表中 “性别 ”字段的有效性规则,性别取 “男 ”或 “女 ”,默认值为“女 ”。 (3)在 “雇员 ”表中,将所有记录的 EMAIL字段值使用 “部门号 ”的字段值加上 “雇员号 ”的字段值再加上 “xxxx com cn”进行替换。 (4)通过 “部门号 ”字段建立 “雇员一 表和 “部门 ”表间的永久联系。 二、简单应用题 2 (1)在
2、SCORE MANAGER数据库中查询学生的姓名和 2003年的年龄 (计算年龄的公式是: 2003-Year(出生日期 ),年龄作为字段名 ),结果保存在一个新表 NEW TABLE1中。使用报表向导建立报表 NEW REPORT1,用报表显示 NEW TABLE1的内容。报表中数据按年龄升序排列,报表标题是 “姓名一年龄 ”,其余参数使用缺省参数。 (2)建立菜单 query menu。该菜单只有一个 “查询 ”和 “退出 ”两个主菜单项 (条形菜单 ),其中 单击菜单项 “退出 ”时,返回到 VFP系统菜单 (相应命令写在命令框中,不要写过程 )。 三、综合应用题 3 考生文件夹下的 g
3、nht dbf是一个合同管理表文件,其中部分字段的含义是:hth(合同号 )、 dhdw(订货单位 )、 ghdw(供货单位 )、 ihs1(订货数量 )。 编写程序 progzh prg分别统计订货单位数、供货单位数、订货总数,并将结果填写到 jieguo dbf(在考生文件夹下已经存在 )表文件中。 说明:以上命令文件必须执行,并产生所要求的结果。 国家二级 VF机试(操作题)模拟 试卷 208答案与解析 一、基本操作题 1 【正确答案】 (1) 在命令窗口执行命令: MODIFY DATABASE雇员管理,打开 “雇员管理 ”数据库设计器。 右击数据库设计器中的 “雇员 ”表,选择【修改
4、】快捷菜单命令,打开 “雇员 ”表设计器,在表设计器 “字段 ”选项卡的 “字段名 ”列的最后一个空白文本框中输入字段名 “email”,在 “类型 ”下拉框中选择 “字符型 ”,在 “宽度 ”文本框中输入 “20”,保存表结构修改。 (2)继续打开 “雇员 ”表设计器,选中 “字段 ”选项卡中的 “性别 ”字段,然 后在 “字段有效性 ”的 “规则 ”文本框中输入:性别 $“男女 “,在 “默认值 ”文本框中输入: “女 “。 (3)在命令窗口执行如下命令修改 email字段值: UPDATE 雇员 SET email=ALLTRIM(部门号 )+ALlTRIM(雇员号 )+”xxxx co
5、m cn” (4)在数据库设计器中拖动 “部门 ”表 “索引 ”下方的主索引 “部门号 ”到 “雇员 ”表中“索引 ”下方的普通索引 “部门号 ”上,为两个表建立联系。 【试题解析】 本题考查了表结构的修改;字段有效性的设置;表之间联系 的建立。 修改表结构可以在表设计器中完成,打开表设计的方法有多种,可在数据库设计器中打开,也可以直接通过命令打开;同样,设置字段有效性规则也需要在表设计器中完成;对于 SQL非常熟悉的考生,也可以直接通过 SQL语句完成以上操作。 利用 SQL UPDATE语句可以更新表中记录,本题可直接套用 SQL语句的固定语法完成记录的修改。 对两个表建立联系是在数据库设
6、计器中进行操作的,本题的关键是要找出每两个表之间的相同字段,并分别设置主索引和普通索引,再进行联接,打开数据库设计器可以看到数据库中所 包含的数据表及各数据表中的字段。 二、简单应用题 2 【正确答案】 (1) 步骤 1:在命令窗口执行命令: OPEN DATABASE score_manager,打开数据库环境。 步骤 2:在命令窗口执行命令: SELECT 姓名, 2003-year(出生日期 )AS年龄; FROM studengt INTO TABLE new table1 步骤 3:执行【文件】 【新建】菜单命令,或单击 “常用 ”工具栏的 “新建 ”按钮,在弹出的 “新建 ”对话框
7、中选中 “报表 ”选项,然后单击 “向导 ”图标按钮,系统弹出 “向导选取 ”对话框,选中 “报表向导 ”项,单击 “确定 ”按钮,启动报表向导。 步骤 4:在报表向导的 “步骤 1-字段选取 ”界面的 “数据库和表 ”下单击命令按钮 (有3个点的按钮 ),在弹出的 “打开 ”对话框中双击 “new table1”表,接着将 “可用字段 ”中的所有字段添加到 “选定字段 ”中,单击 “下一步 ”按钮。 步骤 5:跳过 “步骤 2-分组记录 ”界面继 续单击 “下一步 ”按钮。 步骤 6:跳过 “步骤 3-选择报表样式 ”界面继续单击 “下一步 ”按钮。 步骤 7:跳过 “步骤 4-定义报表布局
8、 ”继续单击 “下一步 ”按钮。 步骤 8:在报表向导的 “步骤 5-排序记录 ”界面中双击 “可用的字段或索引标识 ”中的 “年龄 ”字段到 “选定字段 ”列表中,然后单击 “升序 ”单选项,单击 “下一步 ”按钮。 步骤 9:在报表向导的 “步骤 6-完成 ”界面中修改报表标题为 “姓名年龄 ”,单击“完成 ”按钮,在 “另存为 ”对话框的 “保存报表为: ”框中输入报表文件名:new_report1, 单击 “保存 ”按钮。 (2) 步骤 1:在命令窗口执行命令: CREATE MENU query_menu,在弹出的“新建菜单 ”对话框中单击 “菜单 ”图标按钮,打开菜单设计器。 步骤
9、 2:在菜单设计器 “菜单名称 ”列的文本框中依次输入 “查询 ”和 “退出 ”两个主菜单名。 步骤 3:选择 “退出 ”菜单命令的 “结果 ”项为 “命令 ”,并输入命令语句: SET SYSMENU TO DEFAULT。 步骤 4:执行【菜单】 【生成】菜单命令,在弹出的 Visual FoxPro对话框中单击 “是 “按钮,接着系统会弹出 “生成菜单 ”对话框,单击 “生成 ”按钮生成一个可执行的菜单文件。 步骤 5:在命令窗口执行命令: DO query_menu mpr,运行菜单查看结果。 【试题解析】 (1)本题考查了 SQL语句和使用报表向导建立报表的方法。在 SQL中,将查询
10、结果保存到永久表中应使用 INTO TABLE或 INTO DBF短语。 (2)本题考查菜单的建立及使用,操作比较简单,注意选择 “结果 ”方式设计菜单命令功能。 三、综合应用题 3 【正确答案】 步骤 1:在命令窗口 执行命令: MODIFY COMMAND progzh,打开程序文件编辑器。 步骤 2:在程序文件编辑器中输入如下代码: 1 SELECT COUNT(DI STINCT dhdw)FROM gnht INTO ARRAY arr 2 UPDATE JIEGUO SET num=arr WHERE name=“订货单位数 “ 3 SELECT COUNT(DISTINCT gh
11、dw)FROM gnht INTO ARRAY arr 4 UPDATE jiegu。 sET num=arr WHERE name=“供货单位数 “ 5 SELECT SUM(Jhs1)FROM gnht INTO ARRAY arr 6 UPDATE jieguo SET num=arr WHERE name=“订货总数 “ 步骤 3:保存文件修改,在命令窗口执行命令: DO progzh prg,执行程序文件。 【试题解析】 本大题主要考查的是 SQL简单计算查询和数据更新功能。设计SQL简单计算查询时,关键是要排除字段中重复的记录,利用 DISTINCT短语可以消除重复记录,查询的结果可以保存到数组中,然后再利用 SQL更新语句更新表中的记录,根据题目,在 Jieguo表中有 3条记录需要更新,因此,可以通过 3次计算和更新,分别更新表中的每条记录。