1、国家二级 VF 机试-试卷 76-1 及答案解析(总分:12.00,做题时间:90 分钟)一、基本操作题(总题数:2,分数:4.00)1.基本操作题()(分数:2.00)_2.(1)创建一个新的项目“xm”。 (2)存新建立的项目中创建数据库“学生”。 (3)在“学生”数据库中建立数据表“student”表结果如下: (分数:2.00)_二、简单应用题(总题数:2,分数:4.00)3.简单应用题()(分数:2.00)_4.(1)建立视图 new_view,该视图含有选修了课程但没有参加考试(成绩字段值为 NULL)的学生信息(包括“学号”、“姓名”和“系部”3 个字段)。 (2)建立表单 my
2、form3,在表单上添加表格控件(名称为grdCourse),并通过该控件显示表 sourse 的内容(要求 RecordSourceType 属性必须为 0)。(分数:2.00)_三、综合应用题(总题数:2,分数:4.00)5.综合应用题()(分数:2.00)_6.在考生文件夹下创建一个下拉式菜单 mymenumnx,并生成菜单程序 mymenumpr。运行该菜单程序时会在当前 Visual FoxPro 系统菜单的“帮助”子菜单之前插入一个“考试”子菜单,如图 1-16 所示。(分数:2.00)_国家二级 VF 机试-试卷 76-1 答案解析(总分:12.00,做题时间:90 分钟)一、基
3、本操作题(总题数:2,分数:4.00)1.基本操作题()(分数:2.00)_解析:2.(1)创建一个新的项目“xm”。 (2)存新建立的项目中创建数据库“学生”。 (3)在“学生”数据库中建立数据表“student”表结果如下: (分数:2.00)_正确答案:(正确答案:(1)选择【文件】【新建】命令,选择“项目”,单击“新建文件”按钮,输入项目名称“xm”后单击“保存”按钮。 (2)在项目管理器中选择“数据”选项卡,然后选择列表框中的“数据库”,单击“新建”按钮,选择“新建数据库”,在“创建”对话框中输入数据库名“学生”,单击“保存”按钮将新建数据库“学生”添加到新建的项目“xm”中。 (3
4、)在数据库设计器中,单击鼠标右键,在弹出的快捷菜单中选择“新建表”命令,选择“新建表”,在“创建”对话框中输入表名“student”,单击“保存”进入表设计器,根据题意输入表结构内容,单击“确定”按钮保存表。 (4)在数据库设计器中,选择表“student”,选择【数据库】【修改】命令,打开表设计器修改表”student”结构,在“student”表设计器的“索引”选项卡的“索引名”中输入“学号”,选择索引类型为“主索引”,索引表达式为“学号”,单击“确定”按钮关闭表设计器并保存表“student”结构。)解析:二、简单应用题(总题数:2,分数:4.00)3.简单应用题()(分数:2.00)_
5、解析:4.(1)建立视图 new_view,该视图含有选修了课程但没有参加考试(成绩字段值为 NULL)的学生信息(包括“学号”、“姓名”和“系部”3 个字段)。 (2)建立表单 myform3,在表单上添加表格控件(名称为grdCourse),并通过该控件显示表 sourse 的内容(要求 RecordSourceType 属性必须为 0)。(分数:2.00)_正确答案:(正确答案: (1)步骤 1:在命令窗口执行命令: OPEN DATABASE score_manager ,打开数据库环境。 步骤 2:在命令窗口执行命令: CREATE VIEW NEW_VIEW AS; SELECT
6、Student学号,student姓名,student系部; FROM score_manager!course INNER JOIN score_manager!scorel; INNER JOIN score_manager!student ON student学号=Scorel学号; ON Course课程号=Scorel课程号; WHERE Course课程号 Is NOT NULLAND Scorel成绩 IS NULL (2)步骤 1:在命令窗口执行命令: CREATE FORM myform3 ,打开表单设计器新建表单。 步骤 2:从“表单工具栏”中依次向表单添加一个表格控件。在
7、“属性”面板中将表格控件的 name 属性改为: grdCourse,RecordSourceType 和 RecordSource 属性分别设为:0-表和 course。 步骤 3:单击工具栏中的“数据环境”按钮,在弹出的“添加表或视图”对话框中选择 score 数据库下的 course 表,单击“添加”按钮,然后单击“关闭“按钮。 步骤 4:单击“常用”工具栏中的“运行”按钮保存并运行表单。)解析:解析:(1)本题主要考查了利用 SQL 命令建立视图。 利用 SQL 命令建立视图的基本命令格式为:CREATEVIEW视图名ASSELECT 语句。该查询用到了 student、score1
8、和 course 三张表,作联接查询,要注意查询条件的书写,条件“选修了课程”对应表达式“Score1成绩 IS NULL”,“没有参加考试”条件对应表达式“Course课程号 IS NOT NULL”。空值查询应使用“IS NULL”或”IS NOT NULL”,不能用“=”。 (2)本题考查了表单的建立以及常用控件属性的设置。RecordSourceType 和 RecordSource属性是表格的重要属性,分别用来指定表格数据源类型和数据源。三、综合应用题(总题数:2,分数:4.00)5.综合应用题()(分数:2.00)_解析:6.在考生文件夹下创建一个下拉式菜单 mymenumnx,并
9、生成菜单程序 mymenumpr。运行该菜单程序时会在当前 Visual FoxPro 系统菜单的“帮助”子菜单之前插入一个“考试”子菜单,如图 1-16 所示。(分数:2.00)_正确答案:(正确答案:步骤 1:在命令窗口执行命令: CREATE MENU mymenu ,在弹出的“新建菜单”对话框中单击“菜单”图标按钮,打开菜单设计器。 步骤 2:在菜单设计器“菜单名称”列的文本框中输入“考试”,在“结果”下拉框中选择“子菜单”,单击“创建” 按钮进入下级菜单设计,在“菜单名称”列的第 1、2 行文本框中依次输入子菜单名“统计”、“返回”,将“统计”和“返回”子菜单的“结果”都设置为“过程
10、”,单击“统计”子菜单行的“创建”命令按钮,打开过程编辑框编写过程代码。步骤 3:两个子菜单的命令代码如下: *“统计”子菜单的过程代码* SELECT Employee组别,SUM(Orders金额) AS 合计; FROM 订单管理!employee INNER JOIN 订单管理!orders; ON Employee职员号=Orders职员号; GROUP BY Employee组别; INTO CURSOR RES SELECT Res组别,Employee姓名 AS 负责人,Res合计,FROM Res,Employee; WHERE Res组别 =Employee组别; AND
11、Employee职务=”组长”; ORDER BY Res合计 DESC; INTO TABLE tabletwodbf *“返回”子菜单的命令代码* SET SYSMENU NOSAVE SET SYSMENU TO DEFAULT 步骤 4:执行【显示】【常规选项】菜单命令,在“位置”区域选中“在之前”单选项,然后在该选项后面出现的下拉框中选择“帮助(H)”。则新建立的子菜单会在当前 Visual FoxPro 系统菜单的“帮助”菜单命令前显示。 步骤 5:执行【菜单】【生成】菜单命令,在弹出的 Visual FoxPro 对话框中单击“是”按钮,接着系统会弹出“生成菜单”对话框,单击“生
12、成”按钮生成一个可执行的菜单文件。 步骤 6:在命令窗口执行命令: DO mymenumpr ,运行菜单,并执行“统计”菜单命令。)解析:解析:本大题考查菜单的建立及使用;SQL 简单联接查询和分组计算查询。 表的建立和菜单的建立都属于比较基本的操作,注意向系统菜单追加菜单项时,应在菜单设计器中打开“常规选项”对话框进行设置。本题的关键是菜单命令中 SQL 查询、插入和更新语句的设计。编写程序代码基本思路如下: 首先利用 SQL 计算查询,统计每组的订单金额总和,将结果保存到临时表中,其中,利用 SUM()函数可以计算订单金额总和,利用 GROUP BY 短语按“组别”字段分细计算。 接着,对新生成的临时表与 Emp1 表进行联接查询,两个表的联接字段为“组别”(注意:该字段要作为临时表的输出字段,此处才可以进行联接),同时,通过 WHERE 短语筛选 Empl 表中职务为“组长”的职员记录(这可以保证一个订单金额总和字段仅与一条职员信息联接,否则将导致查询结果表中会生成多条职员记录与订单金额总和联接,因为同一个“组别”中有多个职员记录);最后将查询结果保存到永久性表中,完成查询。 菜单设计完成后,注意要生成可执行的菜单文件,并执行“统计”菜单命令。