1、国家二级 VF 机试(操作题)-试卷 163 及答案解析(总分:6.00,做题时间:90 分钟)一、基本操作题(总题数:1,分数:2.00)1.在考生文件夹下完成下列操作(在“成绩管理”数据库中完成):(1)为“学生”表在“学号”字段上建立升序主索引,索引名为学号。 (2)为“学生”表的“性别”字段定义有效性规则,规则表达式为:性别$”男女”,出错提示信息是:“性别必须是男或女”。 (3)在“学生”表的“性别”和“年龄”字段之间插入一个“出生日期”字段,数据类型为“日期型”(修改表结构)。 (4)用 SQL 的 UPDATE 命令将学生“王三风”的出生日期修改为 1983 年 5 月 1 日,
2、并将该语句粘贴在 sqltxt 文件中(第一行且只占一行)。(分数:2.00)_二、简单应用题(总题数:1,分数:2.00)2.(1)在 score manager 数据库中统计选修了课程的学生人数(选修多门时,只计算 1 次),统计结果保存在一个新表 new table 中,表中只有一个字段,字段名为学生人数。 (2)使用一对多报表向导建立报表。要求:父表为“学生”,子表为“课程”,从父表中选择“姓名”字段,从子表中选择全部字段,两个表通过“学号”建立联系;按“学号”降序排序;生成的报表名为 student_report。(分数:2.00)_三、综合应用题(总题数:1,分数:2.00)3.基
3、于数据库 pdtmng 建立如图 27 所示顶层表单应用,表单文件名为 myformscx,表单控件名为goods,表单标题为“商品”。 表单内含一表格控件 Grid1(默认控件名),当表单运行时,该控件将按用户的选择(单击菜单)来显示 productsdbf 中某一类商品数据,RecordSourceType 的属性为“4 一 SQL说明”。 建立菜单(菜单文件名为 mymenumnx),其条形菜单的菜单项为“商品分类”和“退出”,“商品分类”的下拉菜单为“小家电”、“饮料”和“酒类”;单击下拉菜单中任何一个菜单命令后,表格控件均会显示该类商品。 在表单的 Load 事件中执行菜单程序 my
4、menumpr。 菜单项“退出”的功能是关闭表单并返回到系统菜单(在过程中完成)。 (分数:2.00)_国家二级 VF 机试(操作题)-试卷 163 答案解析(总分:6.00,做题时间:90 分钟)一、基本操作题(总题数:1,分数:2.00)1.在考生文件夹下完成下列操作(在“成绩管理”数据库中完成):(1)为“学生”表在“学号”字段上建立升序主索引,索引名为学号。 (2)为“学生”表的“性别”字段定义有效性规则,规则表达式为:性别$”男女”,出错提示信息是:“性别必须是男或女”。 (3)在“学生”表的“性别”和“年龄”字段之间插入一个“出生日期”字段,数据类型为“日期型”(修改表结构)。 (
5、4)用 SQL 的 UPDATE 命令将学生“王三风”的出生日期修改为 1983 年 5 月 1 日,并将该语句粘贴在 sqltxt 文件中(第一行且只占一行)。(分数:2.00)_正确答案:(正确答案:(1)在命令窗口执行命令: MODIFY DATABAsE 成绩管理 ,打开“成绩管理”数据库设计器。 右击数据库设计器中的“学生”表,选择【修改】快捷菜单命令,打开“学生”表设计器,在“字段”选项卡中选中“学号”,在“索引”列中选择“升序”,然后将“索引”选项卡中“学号”的“类型”更改为“主索引”。 (2)接上小题操作,在“学生”表设计器中选中“字段”选项卡中的“性别”字段,在“字段有效性”
6、的“规则”文本框中输入:性别$“男女“,在“信息”文本框中输入:”性别必须是男或女”。 (3)接上小题操作,在“学生”表设计器中选中“字段”选项卡中的“年龄”字段,然后单击表设计器右边的“插入”按钮,插入一个新字段行,修改“字段名”为:出生日期,修改“类型”为:日期型。单击“确定”按钮保存表修改。 (4)在命令窗口执行命令: MODIFY FILE SQL ,打开文本文件编辑器。 在编辑器中输入 SQL 更新记录的代码: UPDATE 学生 SET 出生日期=1983-05-01WHERE 姓名=“王三风“ 在命令窗口执行命令: DO SQLTXT ,执行文小文件。)解析:解析:本题考查了表索
7、引的建立;字段有效性规则的建立;表结构修改和 SQL 更新语句。 表索引也可以在表设计器中建立,在表设计器的“字段”选项卡中可先建立一个普通索引,然后在“索引”选项卡中修改索引类型。 字段有效性规则是在表设计器中建立的,“默认值”、“规则”和“信息”的设置均属于字段有效性规则范围,在输入各有效性规则的值时要注意对应的数据类型,且在表设计器中可在字段任意间位置插入新字段。 利用 SQL UPDATE 语句可以更新表中记录,本题只需熟记 SQL 更新语句,直接套用即可完成表记录的更新。二、简单应用题(总题数:1,分数:2.00)2.(1)在 score manager 数据库中统计选修了课程的学生
8、人数(选修多门时,只计算 1 次),统计结果保存在一个新表 new table 中,表中只有一个字段,字段名为学生人数。 (2)使用一对多报表向导建立报表。要求:父表为“学生”,子表为“课程”,从父表中选择“姓名”字段,从子表中选择全部字段,两个表通过“学号”建立联系;按“学号”降序排序;生成的报表名为 student_report。(分数:2.00)_正确答案:(正确答案:(1) 在命令窗口执行如下命令: SELECT count(distinct 学号)AS 学生人数; FROM score1; into table NEW_TABLE (2) 步骤 1:命令窗口执行: OPEN DATA
9、BASE SCORE_MANAGER ,打开 score manager 数据库。 步骤 2:执行【文件】【新建】菜单命令,或单击“常用”工具栏的“新建”按钮,在弹出的“新建”对话框中选中“报表”选项,单击“向导”图标按钮,系统弹出“向导选取”对话框,选中“一对多报表向导”项,单击“确定”按钮,启动报表向导。 步骤 3:“步骤 1-从父表选择字段”中,单击“数据库和表”列表框右侧的省略号,在“打开”对话框中选“学生”表,再单击“确定”按钮,将“可用字段”中的“姓名”字段添加到“选定字段”中,单击“下一步”。 步骤4:“步骤 2-从子表选择字段”中单击“数据库和表”列表框右侧的省略号,在“打开”
10、对话框中选“课程”表,再单击“确定”按钮,将“可用字段”全部添加到“选定字段”中,单击“下一步”按钮。 步骤 5“步骤 3为表建立关系”中系统自动建立两个表的联系,单击“下一步”按钮。 步骤 6: “步骤 4排序记录”中双击“可用的字段或索引标识”中的“学号”字段到“选定字段”列表中,再选择“降序”,单击“下一步”按钮。 步骤 7:“步骤 5选择报表样式”中单击“下一步”。 步骤8:“步骤 6完成”中单击“完成”按钮。 步骤 9:在“另存为”对话框的“保存报表为:”框中输入表单文件名 student_report,单击“保存”按钮。)解析:解析:(1)本题主要考查了 SQL 查询。 因为一个学
11、生可能选修多门课程,所以只需要求出 score1表中不重复学号的个数,即得到选修了课程的学生人数。Count 函数用来计数,distinct 短语用来去除重复值。 (2)本题主要考查的是报表向导的使用。根据向导提示一步步完成即可。三、综合应用题(总题数:1,分数:2.00)3.基于数据库 pdtmng 建立如图 27 所示顶层表单应用,表单文件名为 myformscx,表单控件名为goods,表单标题为“商品”。 表单内含一表格控件 Grid1(默认控件名),当表单运行时,该控件将按用户的选择(单击菜单)来显示 productsdbf 中某一类商品数据,RecordSourceType 的属性
12、为“4 一 SQL说明”。 建立菜单(菜单文件名为 mymenumnx),其条形菜单的菜单项为“商品分类”和“退出”,“商品分类”的下拉菜单为“小家电”、“饮料”和“酒类”;单击下拉菜单中任何一个菜单命令后,表格控件均会显示该类商品。 在表单的 Load 事件中执行菜单程序 mymenumpr。 菜单项“退出”的功能是关闭表单并返回到系统菜单(在过程中完成)。 (分数:2.00)_正确答案:(正确答案:步骤 1:在命令窗口执行命令: CREATE FORM myform ,打开表单设计器新建表单。从“表单控件”工具栏中向表单添加一个表格控件。 步骤 2:在“属性”面板的下拉框中选择表单对象,在
13、“全部”选项卡中修改对象属性值:表单及控件属性设置见表 38。 步骤 3:在命令窗口执行命令: CREATE MENU mymenu ,在弹出的“新建菜单”对话框中单击“菜单”图标按钮,打开菜单设计器。 步骤 4:在菜单设计器“菜单名称”列的文本框中依次输入“商品分类”和“退出”两个主菜单名,“商品分类”菜单命令的“结果”下拉框中选择为“子菜单”,单击“创建”按钮进入下级菜单设计,在“菜单名称”列的第 1、2、3 行文本框中依次输入子菜单名“小家电”、“饮料”和“酒类”,将3 个子菜单的“结果”都设置为“过程”,分别单击 3 个过程后面的“创建”按钮打开过程编辑器,编写过程代码。 步骤 5:三
14、个过程代码如下: “小家电”菜单命令的过程代码: myformGrid1RecordSource=“SELECT products* FROM products,cateqory WHERE category分类编码=products分类编码 AND 分类名称=小家电 INTO CURSOR lsb“。 “饮料”菜单命令的过程代码:myformGrid1RecordSource=“SELECT products* FROM products,cateqory WHERE category分类编码=products分类编码 AND 分类名称=饮料 INTO CURSOR lsb“。 “酒类”菜单
15、命令的过程代码:myformGrid1RecordSource=“SELECT products* FROM products,cateqory WHERE category分类编码=products分类编码 AND 分类名称=酒类 INTO CURSOR lsb“。 步骤 6:通过“菜单级”下拉框返回主菜单项设计界面,设置“退出”菜单项的“结果”列为“过程”,并通过单击“创建”按钮打开一个窗口来添加“退出”菜单项要执行的命令:myformrelea se。 步骤 7:执行【显示】【常规选项】菜单命令,在弹出的“常规选项”对话框中勾选“顶层表单”复选框,然后单击“确定”按钮,保存修改。如图 3
16、-27 所示。 )解析:解析:本题的主要考核点是:表单控件的属性的修改、SQL 语句运用、菜单的建立、顶层表单的设置等知识点。 表单控件名用 Name 属性设置,标题用 Caption 设置。表格的 ReCOrdSourceType 属性用来指明表格数据源的类型。 为顶层表单添加下拉式菜单,应先在“菜单设计器”中按要求设计下拉式菜单,然后做两个设置:一是在“显示”菜单下的“常规选项”对话框中选择“顶层表单”复选框,说明该菜单应用在顶层菜单中,二是将表单的 ShowWindow 属性值设置成“2-作为项层表单”,使其成为顶层表单。在菜单设计时,“小家电”、“饮料”和“酒类”3 个菜单项对应的操作应该由过程实现,分别通过 SQL语句编写 3 个查询,并将查询赋值给表格 Gridl 的 RecordSOurce 属性。这里注意:查询的 select 语句要用引号引起来。 在顶层表单中运行菜单,格式为: DOWITH This,“” 其中文件名指定为被调用的菜单程序文件,扩展名mpr 不能省略。This 表示当前表单对象的引用。通过可以为被添加的下拉式菜单的条形菜单指定一个内部名字,也可以省略。 在顶层表单的菜单中关闭表单,应该引用表单的名称(Name值),并使用 Release 方法关闭表单:Release。