1、国家二级 VF机试(操作题)模拟试卷 463及答案解析(总分:6.00,做题时间:90 分钟)一、基本操作题(总题数:1,分数:2.00)1.在考生文件夹下,打开 test- db数据库,完成如下操作:(1)为表 sell建立一个主索引,索引名为PK,索引表达式为:部门号+年度+月份。(2)将自由表 datatest、model、tabc 和 pass添加到当前打开的数据库中。(3)在当前数据库中创建表 test(部门号,年份,销售额合计),其中:部门号为字符型,宽度为 2;年份为字符型,宽度为 4;销售额合计为数值型,宽度为 8(其中小数 2位)。(4)使用报表向导建立一个简单报表,要求选择
2、表 sell中所有字段(其他不做要求),报表文件名为 two。(分数:2.00)_二、简单应用题(总题数:1,分数:2.00)2.(1)打开 test db数据库,根据表 dept和表 sell并使用查询设计器设计一个名称为 three的查询,按“年度”分部门(按年度和部门分组)统计“月平均销售”(通过销售额计算)、 “月平均工资”(通过工资额计算)和“月平均利润”(通过“月平均销售一月平均工资”计算)。查询统计结果按“部门号”、“年度”升序排序,并将查询结果输出到表 tabb中。表 tabb的字段名依次为: “部门号”、 “部门名”、“年度”、“月平均销售”、 “月平均工资”、 “月平均利润
3、”。设计完成后,运行该查询。(2)打开文件名为 testa的表单。该表单完成如下功能:每当用户输入用户名和口令并按“确认”按钮后,利用表 pass中记录检查其输入是否正确,若正确,就显示“欢迎使用本系统!”字样,并关闭表单;若不正确,则显示“用户名或口令不对,请重输入!”字样;如果三次输入不正确,就显示“用户名或口令不对,登录失败!”字样,并关闭表单。修改口令输入文本框,使输入的口令显示为“*”。修改该表单“确认”按钮的 Click事件中的程序。请将第 3、4 和 12行语句修改正确。修改时不允许增加或删除行,只能在错误行上进行修改。(分数:2.00)_三、综合应用题(总题数:1,分数:2.0
4、0)3.建立一个文件名和表单名均为 myform的表单文件,表单上有:表格控件 gridl(RecordSourceType属性手工设置为“别名”),文本框控件 Textl,命令按钮控件 Commandl(文本为“确定”)。程序运行时在文本框中输入“部门名”,然后单击“确定”命令按钮计算该部门各年度的“销售额”(合计)和“利润”(合计)(利润为“销售额一工资额”),按“年度”升序将结果(含“年度”、“销售额”和“利润”3 个字段)保存在以“部门名”命名的 dbf文件的同时,在 Gridl控件中显示计算的结果。如图3-32所示。 (分数:2.00)_国家二级 VF机试(操作题)模拟试卷 463答
5、案解析(总分:6.00,做题时间:90 分钟)一、基本操作题(总题数:1,分数:2.00)1.在考生文件夹下,打开 test- db数据库,完成如下操作:(1)为表 sell建立一个主索引,索引名为PK,索引表达式为:部门号+年度+月份。(2)将自由表 datatest、model、tabc 和 pass添加到当前打开的数据库中。(3)在当前数据库中创建表 test(部门号,年份,销售额合计),其中:部门号为字符型,宽度为 2;年份为字符型,宽度为 4;销售额合计为数值型,宽度为 8(其中小数 2位)。(4)使用报表向导建立一个简单报表,要求选择表 sell中所有字段(其他不做要求),报表文件
6、名为 two。(分数:2.00)_正确答案:(正确答案:(1)在令窗口执行命令 ODIFY DATABASE test_db, 打开 test db数据库设计器。右击数据库设计器中的 sell表,选择【修改】打开 sell表设计器,选中“索引”选项卡,“索引名”输入“PK”,“索引”选项卡中将“类型”选择为“主索引”,表达式下方输入“部门号+年度+月份”,建立主索引。 (2)在数据库设计器中右击,选择【添加表】,在“打开”中双击 datatest表添加到数据库中,以同样的方法将 model、tabc 和 pass表添加到数据库中。 (3)在数据库设计器中右击,选择【新建表】,在“新建表”中单击
7、“新建表”按钮,在弹出的“创建”对话框的“输入表名”中输入test,单击“保存”打开表设计器。 根据题意,在表设计器中逐行输入每个字段的字段名,并设置字段类型和宽度,然后单击“确定”按钮。系统弹出“现在输入数据记录吗?”,单击“否”按钮。 (4)执行【文件】【新建】菜单命令,或单击“常用”工具栏的“新建”按钮,在“新建”中选“报表”,单击“向导”按钮,“向导选取”对话框中选“报表向导”项,单击“确定”按钮,启动报表向导。 “步骤 1字段选取”的“数据库和表”下选中 sell表,将“可用字段”全部添加到“选定字段”中。由于本题不再要求其他操作,可直接单击“完成”按钮跳至向导最后一个界面。单击“完
8、成”按钮,在“另存为”的“保存报表为:”框中输入报表文件名 two,单击“保存”。 使用数据库;索引;创建简单报表。)解析:解析:本题考查了表索引的建立:数据库的基本操作:数据表的建立:报表向导的使用。 根据多个字段建立索引表达式时,可在表设计器“索引”选项卡的“表达式”中进行设置,或可以直接输入,也可以打开“表达式生成器”建立。二、简单应用题(总题数:1,分数:2.00)2.(1)打开 test db数据库,根据表 dept和表 sell并使用查询设计器设计一个名称为 three的查询,按“年度”分部门(按年度和部门分组)统计“月平均销售”(通过销售额计算)、 “月平均工资”(通过工资额计算
9、)和“月平均利润”(通过“月平均销售一月平均工资”计算)。查询统计结果按“部门号”、“年度”升序排序,并将查询结果输出到表 tabb中。表 tabb的字段名依次为: “部门号”、 “部门名”、“年度”、“月平均销售”、 “月平均工资”、 “月平均利润”。设计完成后,运行该查询。(2)打开文件名为 testa的表单。该表单完成如下功能:每当用户输入用户名和口令并按“确认”按钮后,利用表 pass中记录检查其输入是否正确,若正确,就显示“欢迎使用本系统!”字样,并关闭表单;若不正确,则显示“用户名或口令不对,请重输入!”字样;如果三次输入不正确,就显示“用户名或口令不对,登录失败!”字样,并关闭表
10、单。修改口令输入文本框,使输入的口令显示为“*”。修改该表单“确认”按钮的 Click事件中的程序。请将第 3、4 和 12行语句修改正确。修改时不允许增加或删除行,只能在错误行上进行修改。(分数:2.00)_正确答案:(正确答案:(1)步骤 1:命令窗口执行: CREATE QUERY three, 打开查询设计器,将考生文件夹下的 dept表和 sell表添加到查询设计器中。 步骤 2:添加两个表后,系统弹出“联接条件”对话框,自动查找两个表中相匹配的字段进行联接,单击“确定”。 步骤 3:依次双击 dept表中的“部门号”、“部门名”字段和 sell表中的“年度”字段添加到“字段”选项卡
11、的“选定字段”列表中,在“函数和表达式”框中输入:AVG(Sell销售额)AS 月平均销售,再单击“添加”按钮,将表达式添加到“选定字段”列表中,以同样的方法,再添加“AVG(Sell工资额)AS 月平均工资”和“AVG(Sell销售额=Sell工资额)AS 月平均利润”两个表达式到“选定字段”列表框中。 步骤 4:“排序依据”中,双击“选定字段”中的“Dept,部门号”和“Sell年度”字段,添加到“排序条件”列表框。 步骤5:“分组依据”选项卡内,依次双击“选定字段”列表框中的“Dept部门号”和“Sell年度”字段,将字段添加到“分组字段”列表框中。 步骤 6:执行【查询】【查询去向】菜
12、单命令,在“查询去向”中单击“表”图标按钮,在“表名”中输入文件名 tabb,单击“确定”按钮。 步骤 7:最后单击“常用”工具栏中的“运行”按钮查看结果,将查询文件保存到考生文件夹下。 查询的建立与使用。 (2)步骤1:命令窗口执行: MODIFY FORM testa, 打开表单设计器修改表单。 步骤 2:选中第二个文本框( Text2),设置 PasswordChar属性值为:*。 步骤 3:“确认”按钮的 Click事件中代码如下: *在下面的程序中,第 3、4、12 行语句不正确,请修改! *注意:修改时不允许增加或删除行,只能在错误行上进行修改! USE pass Key1=ALL
13、TRIM(ThisFormtextlvalue) Key2=ALLTRIM (ThisForm2) LIST ALL WHILE USER=Key1 IF FOUND() AND PASS=Key2 WAIT“欢迎使用本系统!“WINDOW TIMEOUT 1 thisform release ELSE num=num+1 IFnum=3 WAIT“用户名或口令不对,登录失败!“WINDOW TIMEOUT 1 LOOP ELSE WAIT“用户名或口令不对,请重输入!“WINDOW TIMEOUT 1 ENDIF ENDIF 修改后的代码如下: USE pass Key1=ALLTRIM(T
14、hisFormtextlvalue) Key2=ALLTRIM (ThisFormText2Value) LOCATE ALL FOR USER=Key1 IF FOUND() AND PASS=Key2 WAIT“欢迎使用本系统!“WINDOW TIMEOUT 1 thisformrelease ELSE num=num+1 IF num=3 WAIT“用户名或口令不对,登录失败!“WINDOW TIMEOUT 1 ThisFormRelease ELSE WAIT“用户名或口令不对,请重输入!“WINDOW TIMEOUT 1 ENDIF ENDIF 步骤 4: 单击“常用”工具栏中的“运
15、行”按钮查看结果,将表单文件保存到考生文件夹下。 基本型控件;程序基本结构。)解析:解析:(1)本题考查的是在查询设计器中新建查询的操作。涉及两个表的操作,要注意确认查询输出的字段来源于哪个数据表。 本题由于“月平均销售”、“月平均工资”和“月平均利润”需要根据表中字段计算得出,因此,需要在查询设计器“字段”选项卡的“函数和表达式”中输入表达式,或打开“表达式生成器”对话框进行输入计算字段的表达式,新字段名通过 AS短语指定,求平均值的函数是AVG()。 (2)本题主要考查的是 Visual FoxPro记录查询语句和 IF条件语句的使用。程序的功能大致如下:首先打开 pass表,同时定义两个
16、变量分别等于表单中两个文本框的数据。 然后通过 LOCATE命令查找pass表中所有的 user字段值是否有等于第一个文本框中的数据:如果找到,且 pass表中的 pass字段值等于第二个文本框中的数据,则弹出欢迎提示信息并关闭表单。 接上面的第一个条件判断语句,如果pass表中的 user字段没有找到等于第一个文本框中的数据时,则转入条件语句的另一个分支,首先执行的分支语句是将一个计数变量的值累计加 1,当该变量值达到 3时,关闭表单。 根据以上程序的分析,可以得出: 程序段第 3行的错误是没有正确引用文本框中数据,应通过 Value属性获得文本框中的数据。第 4行是 Visual FoxP
17、ro查询记录的命令使用错误,应使用 LOCATE命令。 第 12行根据题意得出应执行的功能是释放表单,用来释放和关闭表单的方法是 RELEASE。三、综合应用题(总题数:1,分数:2.00)3.建立一个文件名和表单名均为 myform的表单文件,表单上有:表格控件 gridl(RecordSourceType属性手工设置为“别名”),文本框控件 Textl,命令按钮控件 Commandl(文本为“确定”)。程序运行时在文本框中输入“部门名”,然后单击“确定”命令按钮计算该部门各年度的“销售额”(合计)和“利润”(合计)(利润为“销售额一工资额”),按“年度”升序将结果(含“年度”、“销售额”和
18、“利润”3 个字段)保存在以“部门名”命名的 dbf文件的同时,在 Gridl控件中显示计算的结果。如图3-32所示。 (分数:2.00)_正确答案:(正确答案:步骤 1:命令窗口执行: CREATE FORM myform, 打开表单设计器新建表单。向表单添加一个文本框、一个表格和一个命令按钮控件。 步骤 2:修改对象属性值,见表 443。 )解析:解析:本题考查了表单及控件的常用属性和方法的设置;SQL 分组与计算查询。 由于本题限制了表格的数据源类型为“1别名”,因此,可以先将查询结果输出到表中,然后再通过表格的RecordSource属性指定数据源,完成表格数据的显示。 本题关键是 SQL查询语句中怎样将文本框中显示的“部门名”命名为表名,解决此问题的方法就是先定义一个变量等于文本框中的数据,然后使用宏替换函数()将变量值替换出来,替换出来的数据都是当前文本框显示的值。 本题可利用 SUM()函数进行计算,GROUP BY 分组,ORDER BY 排序,表 Dept表和 Sell表联接字段为“部门号”。
copyright@ 2008-2019 麦多课文库(www.mydoc123.com)网站版权所有
备案/许可证编号:苏ICP备17064731号-1