1、国家二级 VF机试模拟试卷 167及答案与解析 一、基本操作题( 30分) 1 (1)打开 “订货管理 ”数据库,并将表 order_list添加到该数据库中。 (2)在 “订货管理 ”数据库中建立表 customer,表结构描述如下: 客户号 字符型 (6) 客户名 字符型 (16) 地址 字符型 (20) 电话 字符型 (14) (3)为新建立的 customer表创建一个主索引。索引名和索引表达式均是 “客户号 ”。 (4)将表 order detai1从数据库中移出,并永久删除。 二、简单应用题( 40分) 2 (1)打开 test db数据库,根据表 dept和表 sell并使用查询
2、设计器设计一个名称为three的查询,按 “年度 ”分部门 (按年度和部门分组 )统计 “月平均销售 ”(通过销售额计算 )、 “月平均工资 ”(通过工资额计算 )和 “月平均利润 ”(通过 “月平均销售 -月平均工资 ”计算 )。查询统计结果按 “部门号 ”、 “年度 ”升序排序,并将查询结果输出到表tabb中。表 tabb的字段名依次为: “部门号 ”、 “部门名 ”、 “年度 ”、 “月平均销售 ”、“月平均工资 ”、 “月平均利润 ”。设计完成后,运行该查询。 (2)打开文件名为 testa的表单。该表单完成如下功能:每当用户输入用户名和口令并按 “确认 ”按钮后,利用表 pass中记
3、录检查其输入是否正确,若正确,就显示“欢迎使用本系统 !”字样,并关闭表单;若不正确,则显示 “用户名或口令不对,请重输入 1”字样;如果三次输入不正确,就显示 “用户名或口令不对,登录失败 1”字样,并关闭表单。 修改口令输入文本框,使输入的口令显示为 “*”。 修改该表单 “确认 ”按钮的 Click事件中的程序。请将 第 3、 4和 12行语句修改正确。修改时不允许增加或删除行,只能在错误行上进行修改。 三、综合应用题( 30分) 3 (1)根据数据库 “书籍 ”中的表 “autbors”和表 “books”建立一个名为 “视图 1”的视图,该视图包含 “books”表中的所有字段和每本
4、图书的 “作者 ”。要求根据 “作者姓名 ”升序排序。 (2)建立一个表单,文件名为 “myform”,表单标题为 “图书与作者 ”。表单中包含一个表格控件,该表格控件的数据源是前面建立的视图。 在表格控件下面添加一个 “命令 ”按钮,单击该按钮退出表单。 国家二级 VF机试模拟试卷 167答案与解析 一、基本操作题( 30分) 1 【正确答案】 (1)在命令窗口执行命令: MODIFY DATABASE 订货管理。打开数据库设计器。右击数据库设计器选择【添加表】快捷菜单命令,在弹出的 “打开 ”对话框中双击 order_list表,将表添加到数据库中。 (2) 在数据库设计器中右击鼠标,选择
5、【新建表】快捷菜单命令,在弹出的 “新建表 ”对话框中单击 “新建表 ”图标按钮,然后在弹出的 “创建 ”对话框的 “输入表名 ”框中输入 “customer”,单击 “保 存 ”按钮打开表设计器。 根据题意,在表设计器中逐行输入每个字段的字段名,并设置字段类型和宽度,然后单击 “确定 ”按钮,此时系统会弹出一个对话框询问 “现在输入数据记录吗 ?”,由于本题没有要求输入数据,单击 “否 ”按钮。 (3)右击数据库设计器中的 cuomer表,选择【修改】快捷菜单命令,打开customer表设计器,在 “字段 ”选项卡中选中 “客户号 ”,在 “索引 ”列中选择 “升序 ”,然后在 “索引 ”选
6、项卡中修改 “索引类型 ”为主索引,建立 “客户号 ”字段的主索引,单击 “确定 ”按钮保存表结构修改。 (4)右击数据库设计器中的 order derail表,选择【删除】快捷菜单命令,在弹出的对话框中单击 “删除 ”按钮,将 order_derail表从数据库中永久删除。 【试题解析】 本题考查了数据库及表的基本操作;索引的建立。 向数据库中添加表的操作在数据库设计器中完成。建立表索引可以在表设计器中进行,在表设计器的 “字段 ”选项卡中,可以通过选择 “排序 ”下拉框中的 “升序 ”和 “降序 ”为指定的字段建立一个索引名与索引表达式相同的普通索引,如果要改变索引名或索引类型,则需要在
7、“索引 ”选项卡中进行修改。 二、简单应用题( 40分) 2 【正确答案】 (1)步骤 1:在命令窗口执行命令; CREATE QUERY three,打开查询设计器,将考生文件夹下的 dept表和 sell表添加到查询设计器中。 步骤 2:添加两个表后系统弹出 “联接条件 ”对话框,自动查找两个表中相匹配的字段进行联接,单击 “确定 ”按钮设置两个表的联系。 步骤 3:依次双击 dept表中的 “部门号 ”、“部门名 ”字段和 sell表中的 “年度 ”字段添加到 “字段 ”选项卡的 “选定字段 ”列表中,接着在 “函数和表达式 ”框中输入: AVG(Sell销售额 ) AS 月 平均销售,
8、再单击 “添加 ”按钮,将表达式添加到 “选定字段 ”列表中,以同样的方法,再添加“AVG(sell工资额 ) AS 月平均工资 ”和 “AVG(sell销售额 -Sell工资额 )AS月平均利润 ”两个表达式到 “选定字段 ”列表框中。如图 2-44所示。步骤 4:在“排序依据 ”选项卡中,依次双击 “选定字段 ”列表框中的 “Dept部门号 ”和 “Sell年度 ”字段,将字段添加到 “排序条件 ”列表框中。 步骤 5:在 “分组依据 ”选项卡内,依次双击 “选定字段 ”列表框中的 “Dept部门号 ”和 “Sell年度 ”字段,将字段添加到 “分组字段 ”列表框中。 步骤 6:执行【查询
9、】 【查询去向】菜单命令,在弹出的 “查询去向 ”对话框中单击 “表 ”图标按钮,接着在 “表名 ”中输入文件名 tabb,单击“确定 ”按钮。 步骤 7:最后单击 “常用 ”工具栏中的 “运行 ”按钮查看结果,将查询文件保存到考 生文件夹下。 (2)步骤 1:在命令窗口执行命令: MODIFY FORM testa,打开表单设计器修改表单。 步骤 2:选中第二个文本框 (Text2),在 “属性 ”面板中修改该文本框的 PasswordChar属性值为: *。 步骤 3;双击表单中的 “确认 ”按钮,看到该按钮的 Click 事件中代码如下:在下面的程序中,第 3、 4、 12行语句不正确,
10、请修改 !注意:修改时不允许增加或删除行,只能在错误行上进行修改 !USE passKey1=ALLTRIM(ThisForm text1 value)Key2=ALLTRIM(ThisForm2)LIST ALL WHILE USER=Key1IF FOUND() AND PASS=Key2 WAIT“欢迎使用本系统 !“WINDOWTIMEOUT 1 thisform releaseELSE num=num+1 IF num=3 WAIT“用户名或口令不对,登录失败 !“WINDOW T IMEOUT 1 LOOP ELSE WAIT“用户名或口令不对,请重输入 !“WINDOW TIME
11、oUT 1 ENDIFENDIF修改后的代码如下:USE passKey1=ALLTRIM(ThisForm text1 value)Key2=ALLTRIM(ThisForm Text2Value)LOCATE ALL FOR USER=Key1IF FOUND() AND PASS=Key2 WAIT “欢迎使用本系统 !“ WINDOWTIMEOUT 1 thisform releaseELSE num=num+1 IF num=3 WAIT“用户名或口令不对,登录失败 !“WINDOW TIMEOUT 1 ThisForm Release ELSE WAIT“用户名或口令不对,请重输入
12、 !“WINDOW TIMEOUT 1 ENDIFENDIF 步骤 4:单击 “常用 ”工具栏中的 “运行 ”按钮查看结果,将表单文件保存到考生文件夹下。 【试题解析】 (1)本题考查的是在查询设计器中新建查询的操作。由于涉及两个表的操作,因此在操作过程中要注意确认查询输出的字段来源于哪个数据表。 本题的关键在于输出字段的设置。由于 “月平均销售 ”、 “月平均工资 ”和 “月平均利润 ”字段需要根据表中字段计算得出,因此,需要在查询设计器 “字段 ”选项卡的“函数和表达式 ”中输入表达式,或打开 “表达式生成器 ”对话框进行输入计算字 段的表达式,新字段名通过 AS短语指定,求平均值的函数是
13、 AVG()。 (2)本题主要考查的是 Visual FoxPro记录查询语句和 IF条件语句的使用。本题程序的功能大致如下: 首先打开 pass表,同时定义两个变量分别等于表单中两个文本框的数据。 然后开始通过 LOCATE 命令查找 pass 表中所有的 user 字段值是否有等于第一个文本框中的数据;如果找到,且 pass表中的 pass字段值等于第二个文本框中的数据,则弹出欢迎提示信息并关闭表单。 接上面的第一个条件判断语句,如 果 pass表中的 user 字段没有找到等于第一个文本框中的数据时,则转入条件语句的另一个分支,首先执行的分支语句是将一个计数变量的值累计加 1,当该变量值
14、达到 3时,关闭表单 (本题中,已在表单中定义了该变量,并赋初值为 0,它是一个公共变量 ),如果没有达到 3次,则弹出错误提示信息。 根据以上程序的分析,可以得出: 程序段第 3行的错误是没有正确引用文本框中数据,应通过 Value属性获得文本框中的数据。 第 4行是 Visual FoxPro查询记录的命令使用错误,应使用 LOCATE命令。 第 12行根据题意得出应执行的功能是释放表单,用来释放和关闭表单的方法是RELEASE。 三、综合应用题( 30分) 3 【正确答案】 打开数据库书籍设计器,单击主菜单上的 “新建 ”图标,选择 “新建视图 ”。 将 “books”表和 “autho
15、ts”表添加到视图设计器中,在视图设计器中的 “字段 ”选项卡中,将 “可用字段 ”列表框中题目中 要求显示的字段添加到 “选定字段 ”列表框中。 在 “排序依据 ”选项卡中将 “选定字段 ”列表框中的作者姓名添加到 “排序条件 ”中,在 “排序选项 ”中选择升序。 视图以 “视图 1”文件名保存。 在命令窗口内输入: create form myform命令,建立新的表单。 单击主菜单【显示】 【数据环境】命令,右击数据环境窗口选择 “添加 ”命令,在选定项内选择视图,在打开的对话框 内双击 “视图 1”将其加入到表单数据环境中。 将视图从数据环境中直接拖人表单内。 单击表单控件工具栏上的 “命令按钮 ”控件图标,向表单添加一个命令按钮,选中该命令按钮,在属性对话框中将其 Caption属性改为 “退出 ”。双击该命令按钮,在 Click事件中输入如 下代码: Thisfrom release 单击工具栏上的 “保存 ”图标,以 “myform”为文件名保存表单。