1、国家二级 VF机试(操作题)模拟试卷 396及答案解析(总分:6.00,做题时间:90 分钟)一、基本操作题(总题数:1,分数:2.00)1.在考生文件夹下,打开数据库“宾馆”,完成如下操作: 1打开“客户”表,为“性别”字段增加约束规则:性别只能为“男”或“女”,默认值为“女”,表达式为:性别$”男女”。 2为“入住”表创建一个主索引,索引名为 fkkey,索引表达式为“客房号+客户号”。 3根据各表的名称、字段名的含义和存储的内容建立表之间的永久联系,并根据要求建立相应的普通索引,索引名与创建索引的字段名相同,升序排序。 4使用 SQL的 SELECT语句查询“客户”表中性别为“男”的客户
2、号、身份证、姓名和工作单位字段及相应的记录值,并将结果存储到名为 TABA的表(注意:该表不需要排序)。请将该语句存储到名为 ONEPRG 的文件中。(分数:2.00)_二、简单应用题(总题数:1,分数:2.00)2.在考生文件夹下完成下列操作: 1请修改并执行程序 tempprg,该程序的功能是:根据“教师表”和“职称表”计算每位教师的“应发工资”,每个教师的“应发工资”等于:与“职称级别”相符的“基本工资”+“课时”80职称系数,教授的职称系数为 14,副教授的职称系数为 13,讲师的职称系数为 12,助教的职称系数为 10,计算结果存储于自由表 salarydbf 中,salarydbf
3、 中的字段包括姓名、系号和应发工资,并按系号降序排列,系号相同时按应发工资升序排列。注意,只能修改标有错误的语句行,不能修改其他语句行。 2创建一个新类 MyCheckBox,该类扩展 VisualFoxpro的 CheckBox基类,新类保存在考生文件夹下的 myclasslib类库中。在新类中将 Value属性设置为 1。创建一个表单MyForm,然后在表单中添加一个基于新类 MyCheckBox的复选框,如图所示。 (分数:2.00)_三、综合应用题(总题数:1,分数:2.00)3.首先利用表设计器在考生文件夹下建立表 table3,表结构如下: 民族 字符型(4) 数学平均分 数值型(
4、6,2) 英语平均分 数值型(6,2) 然后在考生文件夹下创建一个名为 mymenumnx 的下拉菜单,并生成菜单程序 mymenumpr。运行该菜单程序则在当前 Visual FoxPro系统菜单的末尾追加一个“考试”子菜单,如下图所示。 (分数:2.00)_国家二级 VF机试(操作题)模拟试卷 396答案解析(总分:6.00,做题时间:90 分钟)一、基本操作题(总题数:1,分数:2.00)1.在考生文件夹下,打开数据库“宾馆”,完成如下操作: 1打开“客户”表,为“性别”字段增加约束规则:性别只能为“男”或“女”,默认值为“女”,表达式为:性别$”男女”。 2为“入住”表创建一个主索引,
5、索引名为 fkkey,索引表达式为“客房号+客户号”。 3根据各表的名称、字段名的含义和存储的内容建立表之间的永久联系,并根据要求建立相应的普通索引,索引名与创建索引的字段名相同,升序排序。 4使用 SQL的 SELECT语句查询“客户”表中性别为“男”的客户号、身份证、姓名和工作单位字段及相应的记录值,并将结果存储到名为 TABA的表(注意:该表不需要排序)。请将该语句存储到名为 ONEPRG 的文件中。(分数:2.00)_正确答案:(正确答案:(1)打开数据库“宾馆”,在数据库设计器中用鼠标右键单击“客户”表,打开表设计器,选择“性别”字段,在其字段有效性规则栏中输入“性别$“男女“”,在
6、默认值栏中输入“女“”,如图 397 所示。 (2)在数据库设计器中用鼠标右键单击“入住”表,打开表设计器,在“索引”选项卡中,索引名处输入“fkkey”,类型选择“主索引”,表达式处输入“客房号+客户号”,如图398 所示。 (3)为“入住”表建立索引名和索引表达式分别为“客房号”和“客户号”的普通索引,为“客房”表建立索引名和索引表达式均为“类型号”的普通索引。在数据库设计器中建立 4个表的联系,选中“客户”表中的主索引“客户号”,按住鼠标左键将其拖动到“入住”表的普通索引“客户号”上,用同样的方法可以建立“客房”表和“入住”表的“客房号”之间的联系,“房价”表和“客房”表的“类型号”之间
7、的联系。结果如图 399 所示。 )解析:解析:在表设计器中完成字段有效性的设置,并按照题目的要求建立索引;在数据库设计器中为两表建立永久性联系,并且两个表需在对应字段上建立主索引和普通索引。二、简单应用题(总题数:1,分数:2.00)2.在考生文件夹下完成下列操作: 1请修改并执行程序 tempprg,该程序的功能是:根据“教师表”和“职称表”计算每位教师的“应发工资”,每个教师的“应发工资”等于:与“职称级别”相符的“基本工资”+“课时”80职称系数,教授的职称系数为 14,副教授的职称系数为 13,讲师的职称系数为 12,助教的职称系数为 10,计算结果存储于自由表 salarydbf
8、中,salarydbf 中的字段包括姓名、系号和应发工资,并按系号降序排列,系号相同时按应发工资升序排列。注意,只能修改标有错误的语句行,不能修改其他语句行。 2创建一个新类 MyCheckBox,该类扩展 VisualFoxpro的 CheckBox基类,新类保存在考生文件夹下的 myclasslib类库中。在新类中将 Value属性设置为 1。创建一个表单MyForm,然后在表单中添加一个基于新类 MyCheckBox的复选框,如图所示。 (分数:2.00)_正确答案:(正确答案:(1)打开考生文件夹下的程序文件“tempprg”,根据题目要求修改 SQL语句如下: 第一处错误:creat
9、e 职称系数表(职称名 c(6),职称系数 f(10,2) 修改为:create table 职称系数表(职称名 c(6),职称系数 f(10,2) 第二处错误:insert into 职称系数表 value(“教授“,13) 修改为:insert into 职称系数表 value(“副教授“,13) 第三处错误:FROM 职称系数表,教师表; 修改为:FROM 职称表,职称系数表,教师表; 第四处错误:OR 职称表职称名=职称系数表职称名; 修改为:AND 职称表职称名=职称系数表职称名; 保存对程序的修改并运行。 (2)步骤 1:通过“新建”对话框新建一个“类”文件。 步骤 2:在弹出的“
10、新建类”对话框中,输入“类名”MyCheckBox,在“派生于”下拉列表中选择 checkbox,单击“存储于”文本框后的按钮,在打开的“另存为”对话框选择考生文件夹,输入文件名 myclasslib,单击“确定”按钮。 步骤 3:打开“类设计器”窗口,进入类设计器环境,将 Value属性为 1。然后关闭类设计器。 步骤 4:通过“新建”对话框新建一个表单,在表单设计器中,单击表单控件工具栏中“查看”按钮,选择“添加”命令,在弹出的对话款中打开“myclassib”。然后在表单控件工具栏中单击“checkbox”按钮,向表单添加一个复选框按钮。单击常用工具栏的“保存”按钮,保存表单为“myfo
11、rm”。)解析:三、综合应用题(总题数:1,分数:2.00)3.首先利用表设计器在考生文件夹下建立表 table3,表结构如下: 民族 字符型(4) 数学平均分 数值型(6,2) 英语平均分 数值型(6,2) 然后在考生文件夹下创建一个名为 mymenumnx 的下拉菜单,并生成菜单程序 mymenumpr。运行该菜单程序则在当前 Visual FoxPro系统菜单的末尾追加一个“考试”子菜单,如下图所示。 (分数:2.00)_正确答案:(正确答案:步骤 1:建立表可以通过常用工具栏中的“新建”按钮完成,依次执行“文件” “新建” “表” “新建文件”命令,在打开的表设计器中依次输入各字段的名
12、称,并设置各字段的类型和宽度,设置完成后单击“确定”按钮,选择不输入记录。 步骤 2:建立菜单可以使用“文件”菜单完成,选择“文件”“新建”“菜单”“新建文件”命令打开菜单设计器。打开“显示”菜单下的“常规选项”对话框,在“位置”处选择追加,则新建立的子菜单会在当前 vfp系统菜单后显示。 步骤 3:在菜单名称中填入“考试”,结果为子菜单,单击创建;在子菜单的菜单名称中输入“计算”、“返回”,结果均为过程。 步骤 4:在“计算”菜单项的过程中输入下列代码。 * SELECT Xuesheng民族,avg(Chengji数学)as x,AVG(Chengji英语)As y; FROM xuesh
13、eng,chengji; WHERE Xuesheng学号=Chengji学号 AND Xuesheng民族=“汉“; INTO ARRAY a INSERT INTO table3 FROM ARRAY a SELECT Xuesheng民族,avg(Chengji数学)as x,AVG(Chengji英语)AS y; FROM xuesheng,chengji; WHERE Xuesheng学号=Chengj i学号; AND Xuesheng民族!=“汉“INTO ARRAY a INSERT INTO tabl e3 FROM ARRAY a UPDATE table3 SET民族=其他WHERE 民族!=“汉“ * 在“返回”菜单项的过程中输入语句“SET SYSMENU TO DEFAULT”。 步骤 5:保存菜单名为 mymenu,在系统菜单中单击“菜单”“生成”命令,生成可执行程序并运行。)解析: