1、国家二级 VF 机试(操作题)-试卷 223 及答案解析(总分:6.00,做题时间:90 分钟)一、基本操作题(总题数:1,分数:2.00)1.(1)从 student 表查询所有性别为“男”的学生信息,并按学号升序排序将查询结果存入 results 表。 (2)利用表单向导生成一个表单,该表单含有 student 表的“学号”、“班级”、“姓名”和“性别”4个字段,按“学号”字段升序排序,其他设置采用默认值,并将表单保存为 studentscx 文件。 (3)建立一个命令文件。myprogprg,该命令文件只有一行语句,即执行前一小题生成的表单文件。 (4)为student 表增加一个“年龄
2、”字段,类型为数值型(2)。(分数:2.00)_二、简单应用题(总题数:1,分数:2.00)2.(1)打开 testdb 数据库,根据表 dept 和表 sell 并使用查询设计器设计一个名称为 three 的查询,按“年度”分部门(按年度和部门分组)统计“月平均销售”(通过销售额计算)、“月平均工资”(通过工资额计算)和“月平均利润”(通过“月平均销售一月平均工资”计算)。查询统计结果按“部门号”、“年度”升序排序,并将查询结果输出到表 tabb 中。表 tabb 的字段名依次为:“部门号”、“部门名”、“年度”、“月平均销售”、“月平均工资”、“月平均利润”。设计完成后,运行该查询。 (2
3、)打开文件名为 testa 的表单。该表单完成如下功能: 每当用户输入用户名和口令并按“确认”按钮后,利用表pass 中记录检查其输入是否正确,若正确,就冠示“欢迎使用本系统!”字样,并关闭表单;若不正确,则显示“用户名或口令不对,请重输入!”字样;如果三次输入不正确,就显示“用户名或口令不对,登录失败!”字样,并关闭表单。 修改口令输入文本框,使输入的口令届示为“*”。 修改该表单“确认”按钮的 click 事件中的程序。请将第 3、4 和 12 行语句修改正确。修改时不允许增加或删除行,只能在错误行上进行修改。(分数:2.00)_三、综合应用题(总题数:1,分数:2.00)3.在考生文件夹
4、下,先打开“宾馆”数据库,然后创建一个文件名为 test 的表单,如图 3 一 15 所示。(分数:2.00)_国家二级 VF 机试(操作题)-试卷 223 答案解析(总分:6.00,做题时间:90 分钟)一、基本操作题(总题数:1,分数:2.00)1.(1)从 student 表查询所有性别为“男”的学生信息,并按学号升序排序将查询结果存入 results 表。 (2)利用表单向导生成一个表单,该表单含有 student 表的“学号”、“班级”、“姓名”和“性别”4个字段,按“学号”字段升序排序,其他设置采用默认值,并将表单保存为 studentscx 文件。 (3)建立一个命令文件。myp
5、rogprg,该命令文件只有一行语句,即执行前一小题生成的表单文件。 (4)为student 表增加一个“年龄”字段,类型为数值型(2)。(分数:2.00)_正确答案:(正确答案:(1)在命令窗口执行如下命令,完成查询并保存查询结果到 results 表中。 SELECT*FROM student WHERE 性别=“男“ORDER BY 学号 INTO TABLE results (2)执行【文件】【新建】菜单命令,在弹出的“新建”对话框中选中“表单”选项,然后单击“向导”图标按钮,系统弹出“向导选取”对话框,选中“表单向导”项,单击“确定”按钮,启动表单向导。 在表单向导的“步骤1字段选取
6、”界面的“数据库和表”下选中“STUDEN7”表,依次双击“可用字段”中的“学号”、“班级”、“姓名”和“性别”字段全部添加到“选定字段”中,单击“下一步”按钮。 跳过“步骤2选择表单样式”向导界面,继续单击“下一步”按钮。 在表单向导的“步骤 3-排序次序”界面中双击“可用的字段和索引标识”的“学号”字段添加到“选定字段”列表中,再单击“升序”单选项,单击“下一步”按钮。 在表单向导的“步骤 4-完成”界面中单击“完成”按钮,在“另存为”对话框的“保存表单为:”框中输入表单文件名 student,单击“保存”按钮。 (3)在命令窗口执行命令: MODIFY COMMAND myprog ,打
7、开程序文件编辑器。 在编辑器中输入程序代码:DO FORM student。 保存文件,在命令窗口执行命令:DO myprogprg,执行程序文件。 (4)关闭 Student 表,在命令窗口执行命令:ALTER TABLE Student ADD 年龄 N(2),新增字段。)解析:解析:本大题考查了 SQL 排序查询;表单向导的使用;表单的运行;数据表结构的修改。 使用SQL 排序查询时注意排序短语为 ORDER BY;利用表单向导建立表单也属于比较简单的操作,根据向导提示完成即可;而运行表单时,一定要正确使用调用表单的命令格式:DO FORM;为表新增字段的操作,可直接通过 SQL 命令完
8、成,也可以在表设计器中进行。二、简单应用题(总题数:1,分数:2.00)2.(1)打开 testdb 数据库,根据表 dept 和表 sell 并使用查询设计器设计一个名称为 three 的查询,按“年度”分部门(按年度和部门分组)统计“月平均销售”(通过销售额计算)、“月平均工资”(通过工资额计算)和“月平均利润”(通过“月平均销售一月平均工资”计算)。查询统计结果按“部门号”、“年度”升序排序,并将查询结果输出到表 tabb 中。表 tabb 的字段名依次为:“部门号”、“部门名”、“年度”、“月平均销售”、“月平均工资”、“月平均利润”。设计完成后,运行该查询。 (2)打开文件名为 te
9、sta 的表单。该表单完成如下功能: 每当用户输入用户名和口令并按“确认”按钮后,利用表pass 中记录检查其输入是否正确,若正确,就冠示“欢迎使用本系统!”字样,并关闭表单;若不正确,则显示“用户名或口令不对,请重输入!”字样;如果三次输入不正确,就显示“用户名或口令不对,登录失败!”字样,并关闭表单。 修改口令输入文本框,使输入的口令届示为“*”。 修改该表单“确认”按钮的 click 事件中的程序。请将第 3、4 和 12 行语句修改正确。修改时不允许增加或删除行,只能在错误行上进行修改。(分数:2.00)_正确答案:(正确答案:(1)步骤 1:命令窗口执行: CREATE QUERY
10、three ,打开查询改计器,将考生文件夹下的 dept 表和 sell 表添加到查询设计器中。 步骤 2:添加两个表后,系统弹出“联接条件”对话框,自动查找两个表中相匹配的字段进行联接,单击“确定”。 步骤 3:依次双击 dept 表中的“部门号”、 “部门名”字段和 sell 表中的“年度”字段添加到“字段”选项卡的“选定字段”列表中,在“函数和表达式”框中输入:AVG(Sell销售额)AS 月平均销售,再单击“添加”按钮,将表达式添加到“选定字段”列表中,以同样的方法,再添加“AVG(Sell工资额)AS 月平均工资”和“AVG(Sell销售额-Sell工资额)AS 月平均利润”两个表达
11、式到“选定字段”列表框中。如图 4-43 所示。 )解析:解析:(1)本题考查的是在查询设计器中新建查询的操作。涉及两个表的操作,要注意确认查询输出的字段来源于哪个数据表。 本题由于“月平均销售”、“月平均工资”和“月平均利润”需要根据表中字段计算得出,因此,需要在查询设计器“字段”选项卡的“函数和表达式”中输入表达式,或打开“表达式生成器”对话框进行输入计算字段的表达式,新字段名通过 AS 短语指定,求平均值的函数是AVG()。 (2)本题主要考查的是 Visual FoxPro 记录查询语句和 IF 条件语句的使用。程序的功能大致如下:首先打开 pass 表,同时定义两个变量分别等于表单中
12、两个文本框的数据。 然后通过 LOCATE 命令查找pass 表中所有的 user 字段值是否有等于第一个文本框中的数据;如果找到,且 pass 表中的 pass 字段值等于第二个文本框中的数据,则弹出欢迎提示信息并关闭表单。 接上面的第一个条件判断语句,如果pass 表中的 user 字段没有找到等于第一个文本框中的数据时,则转入条件语句的另一个分支,首先执行的分支语句是将一个计数变量的值累计加 1,当该变量值达到 3 时,关闭表单。 根据以上程序的分析,可以得出: 程序段第 3 行的错误是没有正确引用文本框中数据,应通过 value 属性获得文本框中的数据。第 4 行是 visual Fo
13、xPro 查询记录的命令使用错误,应使用 LOCATE 命令。 第 12 行根据题意得出应执行的功能是释放表单,用来释放和关闭表单的方法是 RELEASE。三、综合应用题(总题数:1,分数:2.00)3.在考生文件夹下,先打开“宾馆”数据库,然后创建一个文件名为 test 的表单,如图 3 一 15 所示。(分数:2.00)_正确答案:(正确答案:步骤 1:命令窗口执行: CREATE FORM test ,打开表单设计器新建表单。从“表单控件”工具样中依次向表单添加一个标签、一个文本框和两个命令按钮。 步骤 2:在“属性”面板的下拉框中选择农单对象,在“全部”选项 k 中修改对象属性值,见表 4-18。 )解析:解析:本题主要考查了表单及控件的常用属性和方法的设置;SQL 超联接查询。 对于 SQL 不熟悉的考生,可借助查询设计器完成本题的 SQL 查询,需要注意的是,在设置筛选条件时,由于文本框中显示的是字符型数据,而“退房日期”是日期型数据,因此,要将文本框的数据类型通过 CTOD()函数转换成日期型函数,通过 VALUE 属性可以获得丈本框中的数据。