1、国家二级 VF 机试-试卷 68 及答案解析(总分:12.00,做题时间:90 分钟)一、基本操作题(总题数:2,分数:4.00)1.基本操作题()(分数:2.00)_2.(1)将数据库“学生”添加到项目文件 my 中。 (2)将自由表 kecheng 添加到“学生”数据库中。 (3)建立数据库表“课程”与“选修”之间的关联(两表的索引已经建立)。 (4)为 3 题中的两个表之间的联系设置完整性约束,要求“更新”规则为“忽略”,“删除”规则和“插入”规则均为“限制”。(分数:2.00)_二、简单应用题(总题数:2,分数:4.00)3.简单应用题()(分数:2.00)_4.在考生文件夹下完成如下
2、简单应用: (1)创建一个名称为 sview 的视图,该视图的 SELECT 语句用于查询 salary_ db 数据库中 salarys 表(雇员工资表)的部门号、雇员号、姓名、工资、补贴、奖励、失业保险、医疗统筹和实发工资,其中实发工资由工资、补贴和奖励 3 项相加,然后再减去失业保险和医疗统筹得到,结果按“部门号”降序排序,最后将定义视图的命令代码存放到命令文件 t1.prp 中并执行该程序。(2)设计一个名称为 form1 的表单,表单以表格方式(与 BROWSE 窗口方式相似,表格名称为 grdsalarys)显示 salary_db 数据库中 salarys 表的记录,供用户浏览。
3、在该表单的右下方有一个命令按钮,名称为Command1,标题为“退出浏览”,当单击该按钮时退出表单。(分数:2.00)_三、综合应用题(总题数:2,分数:4.00)5.综合应用题()(分数:2.00)_6.(1)请编写名称为 change_ c 的程序并执行。该程序实现下面的功能:将雇员工资表 salarys 进行备份,备份文件名为 baksals.dbf。利用“人事部”向“财务部”提供的雇员工资调整表 c_salary1 的“工资”,对 salarys 表的“工资”进行调整(请注意:按“雇员号”相同进行调整,并且只是部分雇员的工资进行了调整,其他雇员的工资不动)。最后将 salarys 表中
4、的记录存储到 od _ new 表中(表结构与 salarys 表完全相同)。 (2)设计一个文件名为 form2 的表单,其中包含“调整”(名称 Command1)和“退出”(名称Command2)两个命令按钮。 单击“调整”命令按钮时,调用 change_ c 命令程序实现工资调整。 单击“退出”命令按钮时,关闭表单。 注意:在两个命令按钮中均只有一条命令,不可以有多余命令。(分数:2.00)_国家二级 VF 机试-试卷 68 答案解析(总分:12.00,做题时间:90 分钟)一、基本操作题(总题数:2,分数:4.00)1.基本操作题()(分数:2.00)_解析:2.(1)将数据库“学生”
5、添加到项目文件 my 中。 (2)将自由表 kecheng 添加到“学生”数据库中。 (3)建立数据库表“课程”与“选修”之间的关联(两表的索引已经建立)。 (4)为 3 题中的两个表之间的联系设置完整性约束,要求“更新”规则为“忽略”,“删除”规则和“插入”规则均为“限制”。(分数:2.00)_正确答案:(正确答案:(1)在命令窗口输入命令:MODIFY PROJECT my,打开项目管理器。在项目管理器my 中,首先在“数据”选项卡中选择“数据库”,然后单击选项卡右边的“添加”命令按钮,在系统弹出的“打开”对话框中,将考生文件夹中的数据库“学生”添加到项目管理器中,单击“确定”按钮。 (2
6、)依次展开数据库的分支选择“表”,单击项目管理器中的“添加”命令按钮,系统弹出“打开”对话框,将考生文件夹下的 kecheng 自由表添加到数据库“学生”中。 (3)选择“学生”数据库,单击“修改”命令按钮,在数据库设计器中,将“课程”表中“索引”下面的“课程编号”主索引字段拖到“选修”表中“索引”下面的“课程编号”索引字段上,建立了两个表之间的永久性联系。 (4)在数据库设计器中,选择菜单命令“数据库”“清理数据库”,右键单击“课程”表和“选修”表之间的关系线,选择“编辑参照完整性”快捷菜单命令,在参照完整性生成器中,根据题意,分别在 3 个选项卡中设置参照规则。)解析:解析:本大题主要考查
7、的是数据库和数据表之间的联系,数据库添加可以通过项目管理器中的命令按钮,对数据表的连接、以及字段索引、参照完整性的建立。建立索引表可以在数据表设计器中完成。对数据表进行连接及设置参照完整性都是在数据库设计器中完成。二、简单应用题(总题数:2,分数:4.00)3.简单应用题()(分数:2.00)_解析:4.在考生文件夹下完成如下简单应用: (1)创建一个名称为 sview 的视图,该视图的 SELECT 语句用于查询 salary_ db 数据库中 salarys 表(雇员工资表)的部门号、雇员号、姓名、工资、补贴、奖励、失业保险、医疗统筹和实发工资,其中实发工资由工资、补贴和奖励 3 项相加,
8、然后再减去失业保险和医疗统筹得到,结果按“部门号”降序排序,最后将定义视图的命令代码存放到命令文件 t1.prp 中并执行该程序。(2)设计一个名称为 form1 的表单,表单以表格方式(与 BROWSE 窗口方式相似,表格名称为 grdsalarys)显示 salary_db 数据库中 salarys 表的记录,供用户浏览。在该表单的右下方有一个命令按钮,名称为Command1,标题为“退出浏览”,当单击该按钮时退出表单。(分数:2.00)_正确答案:(正确答案:在命令窗口输入命令:MODIFY COMMAND,打开程序编辑器,编写如下程序段; *“程序 1.prg”文件中的程序段* OPE
9、N DATABASE salary_ db CREATE VIEW sview AS; SELECT 部门号,雇员号,姓名,工资,补贴,奖励,失业保险,医疗统筹,; 工资+补贴+奖励-失业保险-医疗统筹 AS 实发工资; FROM salarys ORDER BY 部门号 DESC * 单击“常用工具栏”中的运行按钮,系统弹出“另存为”对话框,输入文件名 t1 保存在考生文件夹下。 (2)利用菜单命令“文件”“新建”,或单击常用工具栏的“新建”按钮,打开“新建”对话框,选择“表单”单选项,然后单击“新建文件”按钮,打开表单设计器。 在表单设计器中,右击空白表单,选择“数据环境”快捷菜单命令,打
10、开表单的数据环境,然后在“打开”对话框中选择数据表文件 salarys,添加到表单的数据环境中,关闭对话框,为表单添加一个表格控件和一个命令按钮控件,如图 3-73 所示。 选中表格控件,在属性面板中修改控件的 Name 属性值为 grdsalarys,选择 RecordSource 属性值为表 salarys,选择 RecordSourceType 的属性傀为“0-表”,如图 3-74 所示。以同样的方法修改命令按钮的 Caption 属性值为“退出浏览”。 )解析:解析:本大题 1 小题考查了视图的建立,利用 SQL 命令定义视图,要注意的是在定义视图之前,首先应该打开相应的数据库文件,因
11、为视图文件是保存在数据库中,在磁盘上找不到该文件;2 小题中考查的是在表单中设定数据环境,通过表单的数据环境快速建立表单控件和数据之间的联系,控制表中数据显示的属性是 RecordSource。三、综合应用题(总题数:2,分数:4.00)5.综合应用题()(分数:2.00)_解析:6.(1)请编写名称为 change_ c 的程序并执行。该程序实现下面的功能:将雇员工资表 salarys 进行备份,备份文件名为 baksals.dbf。利用“人事部”向“财务部”提供的雇员工资调整表 c_salary1 的“工资”,对 salarys 表的“工资”进行调整(请注意:按“雇员号”相同进行调整,并且
12、只是部分雇员的工资进行了调整,其他雇员的工资不动)。最后将 salarys 表中的记录存储到 od _ new 表中(表结构与 salarys 表完全相同)。 (2)设计一个文件名为 form2 的表单,其中包含“调整”(名称 Command1)和“退出”(名称Command2)两个命令按钮。 单击“调整”命令按钮时,调用 change_ c 命令程序实现工资调整。 单击“退出”命令按钮时,关闭表单。 注意:在两个命令按钮中均只有一条命令,不可以有多余命令。(分数:2.00)_正确答案:(正确答案:在命令窗口输入命令:MODIFY COMMAND change_ c,打开程序编辑器,编写如下程
13、序段: *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 雇员号=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 命令来实现。