1、国家二级 VF机试-试卷 88及答案解析(总分:12.00,做题时间:90 分钟)一、基本操作题(总题数:2,分数:4.00)1.基本操作题()(分数:2.00)_2.在考生文件夹下完成如下操作: 1建立菜单 QUERY_MENU。该菜单只有“查询”和“退出”两个主菜单项(条形菜单),其中单击菜单项“退出”时,返回到 VFP系统菜单(相应命令写在命令框中,不要写在过程中)。 2将 COURSE表的“开课系部”字段名改为“开课单位”,其余不变。 3从数据库SCORE_MANAGER中移去表 TEMP2.DBF(不是删除)。 4将 SCORE1表中记录按学号从低到高排序,在学号相同的情况下再按成绩
2、从高到低排序,排序结果存入表 NEW_ORDER中。(分数:2.00)_二、简单应用题(总题数:2,分数:4.00)3.简单应用题()(分数:2.00)_4.(1)使用 SQL语句查询每个职工所经手的具有最高金额的订购单信息(orders 表),并将结果按金额升序存储到表 results中。 (2)使用 SQL命令建立视图 view_b,视图中是目前在 orders表中没有所签订单的职工(employee)信息,记录按仓库号降序排列;同时把所用命令保存在文本文件 view_btxt 中。(分数:2.00)_三、综合应用题(总题数:2,分数:4.00)5.综合应用题()(分数:2.00)_6.(
3、1)请编写名称为 change_ c的程序并执行。该程序实现下面的功能:将雇员工资表 salarys进行备份,备份文件名为 baksals.dbf。利用“人事部”向“财务部”提供的雇员工资调整表 c_salary1的“工资”,对 salarys 表的“工资”进行调整(请注意:按“雇员号”相同进行调整,并且只是部分雇员的工资进行了调整,其他雇员的工资不动)。最后将 salarys表中的记录存储到 od _ new表中(表结构与 salarys表完全相同)。 (2)设计一个文件名为 form2的表单,其中包含“调整”(名称 Command1)和“退出”(名称Command2)两个命令按钮。 单击“
4、调整”命令按钮时,调用 change_ c命令程序实现工资调整。 单击“退出”命令按钮时,关闭表单。 注意:在两个命令按钮中均只有一条命令,不可以有多余命令。(分数:2.00)_国家二级 VF机试-试卷 88答案解析(总分:12.00,做题时间:90 分钟)一、基本操作题(总题数:2,分数:4.00)1.基本操作题()(分数:2.00)_解析:2.在考生文件夹下完成如下操作: 1建立菜单 QUERY_MENU。该菜单只有“查询”和“退出”两个主菜单项(条形菜单),其中单击菜单项“退出”时,返回到 VFP系统菜单(相应命令写在命令框中,不要写在过程中)。 2将 COURSE表的“开课系部”字段名
5、改为“开课单位”,其余不变。 3从数据库SCORE_MANAGER中移去表 TEMP2.DBF(不是删除)。 4将 SCORE1表中记录按学号从低到高排序,在学号相同的情况下再按成绩从高到低排序,排序结果存入表 NEW_ORDER中。(分数:2.00)_正确答案:(正确答案:1新建菜单可按下列步骤:选择“文件”菜单中的“新建”命令,在“新建”对话框中选择“菜单”,单击“新建文件”按钮。在“新建菜单”对话框中选择“菜单”按钮,调出“菜单设计器”。也可用 CREATE MENU命令直接调出菜单设计器。在菜单名称中填入“查询”、“退出”,“退出”结果为命令,其命令设置为 SET SYSMENU TO
6、 DEFAULT。 2打开 COURSE表表设计器,将光标移动到“开课系部”字段格中,将其改为“开课单位”。 3打开考生文件夹下的“SCORE_MANAGER”数据库,在“SCORE_MANAGER”数据库设计器中,选中“TEMP2”表,单击主菜单“数据库”下的“移去”,在弹出的对话框中单击“移去”按钮,在随后弹出的对话框中单击“是”按钮,至此便完成了从数据库“SCORE_MANAGER”中移去表 TEMP2(不是删除)的操作。 4在 Visual FoxPro的命令窗口中输入下列命令: select*from score1 order by 学号,成绩 desc into table new
7、_order)解析:二、简单应用题(总题数:2,分数:4.00)3.简单应用题()(分数:2.00)_解析:4.(1)使用 SQL语句查询每个职工所经手的具有最高金额的订购单信息(orders 表),并将结果按金额升序存储到表 results中。 (2)使用 SQL命令建立视图 view_b,视图中是目前在 orders表中没有所签订单的职工(employee)信息,记录按仓库号降序排列;同时把所用命令保存在文本文件 view_btxt 中。(分数:2.00)_正确答案:(正确答案:(1)步骤 1:在命令窗口执行如下 SQL命令语句并执行: SELECT 职工号,MAX(金额) 最高金额; F
8、ROM orders; GROUP BY 职工号; INTO CURSOR temp 步骤 2:在命令窗口继续执行如下 SQL命令语句: SELECT orders*; FROM orders,temp; WHERE orders职工号=temp职工号 AND orders金额=temp最高金额; ORDER BY 金额; INTO TABLE results (2) 步骤 1:在命令窗口执行命令: OPEN DATABASEorders_manage ,打开数据库环境。 步骤 2:在命令窗口执行命令: MODIFY FILE view_b ,打开文本文件编辑器编写视图定义代码。 步骤 3:在
9、编辑器中输入如下程序代码: CREATE VIEW view_b AS; SELECT * FROM EMPLOYEE; WHERE 职工号 NOT IN; (SELECT 职工号 FROM ORDERS); ORDER BY 仓库号 DESC 步骤 4:在命令窗口执行命令: DO VIEW_BTXT ,执行文件(注意:执行文件时,文件后缀名txt 不能缺省)。)解析:解析:(1)本题考查了 SQL分组查询和联接查询。本题的解题思路是:先在 orders表中按职工号分组,查询出每个职工所经手的具有最高金额的订单所对应的职工号和金额,将它保存到临时表中,然后再将 orders表和该临时表做联接查
10、询,查找出每个职工的最高金额订单所对应的 orders表信息。另外,对数据进行分组计算查询时,用来求最大值的函数为 MAX()。 (2)本题主要考查了利用 SQL命令建立视图;SQL嵌套查询。 利用 SQL命令建立视图的基本命令格式为:CREATEVIEW视图名ASSELECT 语句。本题可以用嵌套查询完成,先在内查询中从 orders表查找出有订单的职工号,再在外查询中从 employee表中找出 orders表中没有的职工号,这里用到 NOT IN运算符。三、综合应用题(总题数:2,分数:4.00)5.综合应用题()(分数:2.00)_解析:6.(1)请编写名称为 change_ c的程序
11、并执行。该程序实现下面的功能:将雇员工资表 salarys进行备份,备份文件名为 baksals.dbf。利用“人事部”向“财务部”提供的雇员工资调整表 c_salary1的“工资”,对 salarys 表的“工资”进行调整(请注意:按“雇员号”相同进行调整,并且只是部分雇员的工资进行了调整,其他雇员的工资不动)。最后将 salarys表中的记录存储到 od _ new表中(表结构与 salarys表完全相同)。 (2)设计一个文件名为 form2的表单,其中包含“调整”(名称 Command1)和“退出”(名称Command2)两个命令按钮。 单击“调整”命令按钮时,调用 change_ c
12、命令程序实现工资调整。 单击“退出”命令按钮时,关闭表单。 注意:在两个命令按钮中均只有一条命令,不可以有多余命令。(分数:2.00)_正确答案:(正确答案:在命令窗口输入命令:MODIFY COMMAND change_ c,打开程序编辑器,编写如下程序段: *change_ c.prg 文件中的程序段* SET TALK OFF SET SAFETY OFF SELECT * FROM salarys INTO TABLE baksals USE c_salary1 DO WHILE NOT EOF() UPDATE salarys SET工资=c salary1.工资; WHERE 雇员
13、号=c_salary1.雇员号 SKIP ENDDO SELECT*FROM SALARYS INTO TABLE od_ new CLOSE ALL SET TALK ON SET SAFETY ON * 保存文件,在命令窗口输入命令:DO change _c,运行该文件。 (2)在命令窗口输入命令:CREATE FORM form2,打开表单设计器,根据题意,通过“表单控件”工具栏,在表单中添加两个命令按钮,在属性面板中,分别修改两个命令按钮的 Caption属性值为“调整”,和“退出”,如图 3-72所示。 )解析:解析:本大题 1小题主要是考查 SQL的查询、定义和更新语句,在更新数据表中的记录时,可利用 DO循环对表中的记录进行逐条更新;2 小题为表单的基本设计,在命令按钮中调用程序的命令,直接通过 DO命令来实现。
copyright@ 2008-2019 麦多课文库(www.mydoc123.com)网站版权所有
备案/许可证编号:苏ICP备17064731号-1