2016计算机二级《VF》上机考试及答案
综合应用题
11在考生文件夹中有“订货”表和“商品”表。商品表中的“单价”表与“订货”表的“数量”之积应等于订货表中的“金额”。
现在有部分“订货”表记录的“金额”字段值不正确,请编写程序挑出这些记录,并将这些记录存放到一个名为“修正订货”的表中(与订货表结构相同,自己建立),根据商品表中的“单价”字段和“订货”表的“数量”字段修改“修正订货”表的“金额”字段(注意:一个修正记录可能对应几条订货记录)。
编写的程序最后保存为“CX.prg”。
参考解析:
【考点指引】本大题考查的是数据表数据的修改,注意要用到INTOTABLE和INTOCURSOR保存中间查询结果。
【操作步骤】
①在命令窗口中输人命令:MODI COMM cx(回车执行),打开程序文件编辑窗口,在程序文件编辑窗口中输入以下程序代码:
SELECT订货.*INTO TABLE修正订货FROM订货,商品WHERE订货.商品编码=商品.商品编码AND金额<>单价*数量
USE修正订货
GO TOP
DO WHILE.NOT.EOF()
a1=商品编码
bl=订单编号
SELECT*INTO CURSOR aa FROM商品WHERE商品编码=al
SELECT修正订货
REPLACE金额WITH aa.单价*数量
SKIP
ENDDO
USE
关闭程序文件编辑窗口并保存程序文件。
②在命令窗口中输入命令:DO cx(回车执行),执行程序文件。
12在考生文件夹下有数据库“gz”,包括数据表文件:zgk(仓库编号C(4),职工编号C4),工资N(4))。设计一个名为tj的菜单,菜单中有两个菜单项“统计”和“退出”。
程序运行时,单击“统计”菜单项应完成下列操作:检索出工资大于或等于本仓库职工平均工资的职工信息,并将这些职工信息按照仓库编号升序排序,在仓库号相同的情况下再按职工编号升序存放到“result”文件中,该数据表文l 件和“zgk”数据表文件具有相同的结构。
单击“退出”菜单项,程序终止运行。
注意:相关数据表文件存在于考生文件夹下。
参考解析:
【考点指引】本大题主要考查利用SQL语句进行分组计算查询,在本题应了解SQL中求平均值函数AVG的使用;在菜单的设计过程中主要应注意两个菜单命令在“统计”下拉列表框中应选择的类型。
【操作步骤】
①选择【文件】→【新建】命令,选择“菜单”,单击“新建文件”按钮,再单击“菜单”按钮,打开菜单设计器,在“菜单名称”中输入“统计”,在“结果”下拉列表框中选择“过程”,单击“创建”按钮创建“统计”过程,在菜单过程代码编辑窗口中输入以下代码:
SET TALK OFF
SET SAFETY OFF
0PEN DATABASE gz
SELECT仓库编号,AVG(工资)AS pjgz FROM zgk GROUP BY仓库编号INTO CURS OR curl
SELECT zgk.*INTO TABLE result FROM zgk,curl WHERE zgk.仓库编号=curl.仓库编号and工资>= pjgz ORDER BY zgk.仓库编号,职工编号
CLOSEALL
SET SAFETY ON
SET TALK ON
关闭菜单过程代码编辑窗口回到菜单设计器。
②单击下一行,输入菜单名称“退出”,在“结果”下拉列表框中选择“命令”,在右边的“命令”文本框中编写程序代码:SET SYSMENU TO DEFAULT。
③选择【菜单】→【生成】命令,将菜单保存为“tj”,生成一个菜单文件“tj.mpr”。关闭菜单设计窗口,在命令窗口输入命令:DO tj.mpr,看到Visual FoxPr0的菜单栏被新建的菜单所代替,单击“退}b”菜单命令将恢复系统菜单。
④执行“统计”菜单命令后,系统自动生成新数据表文件“result.dbf”用来保存查询结果。
14(1)请编写名称为CX的程序并执行。该程序实现下面的功能:将工资表进行备份,备份文件名为“b_工资.dbf”。利用“人事部”向“财务部”提供的雇员工资调整表“c_工资”的“工资”,对工资表的‘'工资”进行调整(请注意:按“职员编号”相同进行调整,并且只是部分职员的工资进行了调整,其他职员的工资不动)。最后将工资表中的记录存储到“n_ 工资”表中(表结构与工资表完全相同)。
(2)设计一个文件名为“bd2”的表单,其中包含“调整工资”和“关闭”两个命令按钮。
单击“调整工资”命令按钮时,调用CX命令程序实现工资调整。
单击“关闭”命令按钮时,关闭表单。
注意:在两个命令按钮中均只有一条命令,不可以有多余命令。
参考解析:
【考点指引】本大题第1小题主要考查对数据表的操作,包括表的备份、数据的修改;第2小题考查表单的一些基本操作及按缸控件的使用。
(1)【操作步骤】
在命令窗口中输入命令:MODI COMM cx(回车执行),打开程序文件编辑窗口,在程序文件编辑窗口中输入以下程序代码:
SELECT*INTO TABLE b_工资FROM工资
USE c_工资
Go TOP
DO WHILE.NOT.EOF()
aa=职员编号
bb=工资
UPDATE工资SET工资=bb WHERE职员编号=aa
SELECT C_工资
SKIP
ENDD0
SELECT*INTO TABLE n_工资FROM工资
CLOSE ALL
关闭程序文件编辑窗口并保存程序文件。
(2)【操作步骤】
①选择【文件】→【新建】命令,选择“表单”,单击“新建文件”按钮打开表单设计器,单击表单控件工具栏上的“命令按钮”控件图标,为表单添加两个命令按钮Command1和Command2。
②在按钮属性窗口中将命令按钮Command1的Caption属性值修改为“调整工资”,将命令按钮Command2的Caption属性值修改为“关闭”。
③双击“调整工资”命令按钮,在Click事件中输入代码:DO CX,用来执行工资调整程序。
④双击“关闭”命令按钮,在Click事件中输入代码:ThisForm.Release,用来关闭表单。
⑤选择【表单】→【执行表单】命令,系统首先要求保存该表单文件,在弹出的“另存为”对话框中输入表单文件名“bd2”,保存在考生文件夹下,然后运行表单。
13(1)在考生文件夹下,将“books”表中所有书名中含有“计算机”3个字的图书复制到“books_BAK”表中,以下操作均在“books_BAK”表中完成。
(2)复制后的图书价格在原价格的基础上降低5%。
(3)从图书均价高于25元(含25)的出版社中,查询并显示图书均价最低的出版社名称及均价,查询结果保存在‘new_table4”表中(字段名为出版单位和均价)。
参考解析:
【考点指引】本大题主要考查的知识点是:SQL语句的复制、修改和查询功能。
【操作步骤】
在命令窗Vl中依次输入以下代码,分别完成题目中各个要求。
(1)SELECT*FROMB00KSBAKWHERE书名LIKE“%计算机%”INTOTABLEBOOKS_BAK
(2)UPDATEBOOKS_BAKSET价格=价格*(1-0.05)
(3)SELECTTOPlBOOKS_BAK.出版单位,avg(books_bak.价格)as均价FROMbooks_bakGroupByBooks_bak.出版社HAVING均价>=250RERBY2INTOTABLEnew_table4.dbf。
【2016计算机二级《VF》上机考试及答案】相关文章: