国家二级VF机试(操作题)模拟试卷12(共27题)_第1页
国家二级VF机试(操作题)模拟试卷12(共27题)_第2页
国家二级VF机试(操作题)模拟试卷12(共27题)_第3页
国家二级VF机试(操作题)模拟试卷12(共27题)_第4页
国家二级VF机试(操作题)模拟试卷12(共27题)_第5页
已阅读5页,还剩36页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

国家二级VF机试(操作题)模拟试卷12(共9套)(共27题)国家二级VF机试(操作题)模拟试卷第1套一、基本操作题(本题共1题,每题1.0分,共1分。)1、(1)打开“订单管理”数据库,然后从中删除customer。表。(2)为employee表建立一个普通索引,索引名为xb,索引表达式为“性别”,升序索引。(3)为employee表建立一个普通索引,索引名为xyz,索引表达式为“str(组别,1)+职务”,升序索引。(4)为employee表建立主索引,为orders建立普通索引,索引名和索引表达式均为“职员号”。通过“职员号”在employee表和orders之间建立一个一对多的永久联系。标准答案:【操作步骤】(1)在命令窗口执行命令:MODIFYDATABASE订单管理,打开数据库设计器。右击数据库设计器中的“customer”表,选择【删除】快捷菜单命令,在弹出的Visual.FoxPro对话框中单击“删除”按钮,将“customer”表永久性删除。(2)接上小题操作,在数据库设计器中右击数据库设计器中的employee表,选择【修改】快捷菜单命令,打开employee表设计器,选中“索引”选项卡,在“索引名”下方的文本框中输入“xb”,在“索引”选项卡中将“类型”选择为“普通索引”,在“表达式”下方的文本框中输入“性别”。(3)接上小题操作,继续在表设计器的“索引”选项卡的第二行中,输入“索引名”为“xyz”,在“索引”选项卡中将“类型”选择为“普通索引”,在“表达式”下方的文本框中输入:STR(组别,1)+职务。(4)①接上小题操作,继续在表设计器的“索引”选项卡的第三行中,输入“索引名”为“职员号”,在“索引”选项卡中将“类型”选择为“主索引”,在“表达式”下方的文本框中输入“职员号”,单击“确定”按钮保存表结构修改。②参照以上操作,为orders表建立一个“职员号”字段的普通索引。在数据库设计器中拖动employee表“索引”下方的主索引“职员号”到orders表中“索引”下方的普通索引“职员号”上,为两个表建立联系。知识点解析:暂无解析二、简单应用题(本题共1题,每题1.0分,共1分。)2、(1)在考生文件夹下已有表单文件formone.scx,如图2—35所示,其中包含两个标签、一个组合框和一个文本框。请按下面要求完成相应的操作,使得当表单运行时,用户能够从组合框选择职员,而该职员所签订单的平均金额能自动显示在文本框里。①将orders表和employee表依次添加到该表单的数据环境中(不要修改两个表对应对象的各属性值)。②将组合框设置成下拉列表框;将employee表中的“姓名”字段作为下拉列表框条目的数据源(RowSourlceType属性值应设置为:6-字段)。③将文本框Text1设置为只读。④修改组合框的InteractiveChange事件代码,使得当用户从组合框选择职员时,能够将该职员所签订单的平均金额自动显示在文本框中。(2)利用查询设计器创建查询,从employee和orders表中查询“组别”为“1”的组各职员所签所有订单的信息。查询结果依次包含“订单号”、“金额”、“签订者”3项内容,其中“签订者”为签订订单的职员姓名。各记录按“金额”降序排序;查询去向为表tableone。最后将查询保存在queryone.qpr文件中,并运行该查询。标准答案:(1)【操作步骤】步骤1:在命令窗口执行命令:MODIFYFORMformone,打开表单设计器修改表单。步骤2:右击表单选择【数据环境】快捷菜单命令,继续在表单数据环境中单击右键选择【添加】快捷菜单命令,在“添加表或视图”对话框中双击orders表和employee表,将表添加到数据环境中。步骤3:在“属性”面板的下拉框中选择表单对象,在“全部”选项卡中修改对象属性值,见表3—37。步骤4:双击表单中的组合框(Combo1),修改事件代码,组合框的原InteractiveChange事件代码如下:*下面代码的功能是读取所选职员的职员号,然后计算该职员所签订单的平均金额,并显示在丈本框内。*修改所有***FOUND***下面的一条语句。*不能修改其他语句,不能增加语句,也不能删除语句。1dimea(1,1)2a(1,1)=03m1=employee.职员号4selectavg(金额)fromrderswhere职员号=m1intoarrava5m2=a(1,1)6***found***7text1.value=m2修改程序中的错误行,修改后的程序如下:1dimea(1,1)2a(1,1)=03m1=employee.职员号4selectavq(金额)fromorderswhere职员号=m1intoarrava5m2=a(1,1)6***FOUND***7thisform.text1.value=m2步骤5:单击“常用”:工具栏中的“运行”按钮查行结果,将表单文件保存到考生文件件下。(2)【操作步骤】步骤1:在命令窗口执行命令:OPENDATABASE订单管理,打开数据库环境。步骤2:在命令窗口执行命令:CREATEQUERYquervone,打开查询设计器,在“添加表或视图”对话框中,分别双击employee表和orders表,将表添加到查询设计器中。步骤3:添加两个表后,系统弹出“联接条件”对话框,自动查找两个表中相匹配的字段进行联接,单击“确定”按钮设置两个表的联系。步骤4:依次双击orders表中的“订单号”和“金额”字段,添加到“字段”选项卡的“选定字段”列表中;然后在“字段”选项卡左下方的“函数和表达式”文本框中输入:Employee.姓名AS签订者,再单击“添加”按钮将表达式添加到“字段”选项卡的“选定字段”列表中。步骤5:在“筛选”选项卡的“字段名”下拉列表中选择“Employee.组别”字段,在“条件”下拉框中选择“=”,在“实例”框中输入“1”。步骤6:在“排序依据”选项卡内双出“选定字段”列表框中的“Orders.金额”字段,将字段添加到“排序条件”列表框中,在“排序选项”中选择“降序”单选项。步骤7:执行【查询】→【查询去向】菜单命令,在弹出的“查询去向”对话框中单击“表”图标按钮,接着在“表名”中输入文件名tableone,单击“确定”按钮。步骤8:最后单击“常用”工具栏中的“运行”按钮查看结果,将查询文件保存到考生文件夹下。知识点解析:暂无解析三、综合应用题(本题共1题,每题1.0分,共1分。)3、在考生文件夹下创建一个下拉式菜单mymenu.mnx,并生成菜单程序mymenu.mpr。运行该菜单程序时会在当前VisualFoxPro系统菜单的“帮助”子菜单之前插入一个“考试”子菜单,如图2—36所示。菜单命令“统计”和“返回”的功能都通过执行过程完成。菜单命令“统计”的功能是以组为单位求订单金额的和。统计结果包含“组别”、“负责人”和“合计”3项内容,其中“负责人”为该组组长(由employee中的“职务”一指定)的姓名,“合计”为陔组所有职员所签订单的金额总和。统计结果应按“合计”降序排序,并存放在tabletwo表中。菜单命令“返回”的功能是返回标准的系统菜单。菜单程序生成后,运行菜单程序并依次执行“统计”和“返回”菜单命令。标准答案:【操作步骤】步骤1:在命令窗口执行命令:CREATEMENUmymenu,在弹出的“新建菜单”对话框中单击“菜单”图标按钮,打开菜单设计器。步骤2:在菜单设计器“菜单名称”列的文本框中输入“考试”,在“结果”下拉框中选择“菜单”,单击“创建”按钮进入下级菜单设计,在“菜单名称”列的第1、2行文本框中依次输入子菜单名“统计”、“返回”,将“统计”和“返回”子菜单的“结果”都设置为“过程”,单击“统计”子菜单行的“创建”命令按钮,打开过程编辑框编写过程代码。步骤3:两个子菜单的命令代码如下:*****“统计”子菜单的过程代码*****1SEIJECTEmployee.组别,SUM(Orders.金额)AS合计;2FROM订单管理!employeeINNERJOIN订单管理!0rders;3ONEmoloyee.职员号=orders.职员号;4GROUPBYEmployee.组别;5TNTOCURSORRES6SELECTRes.组别,Employee.姓名AS负责人,Res.合计;7FROMRes,Employee;8WHERERes.组别=Employee.组别;9ANDEmployee.职务="组长";10ORDERBYRes.合计DESC;11TNTOTABLEtabletwo.dbf****“返回”子菜单的命令代码*****SETSYSMENUNOSAVESETSYSMENUTODEFAULT步骤4:执行【显示】→【常规选项】菜单命令,在“位置”区域选中“在…之前”单选项,然后在该选项后面出现的下拉框中选择“帮助(H)”,则新建立的子菜单会在当前VisualFoxPro系统菜单的“帮助”菜单命令前显示。步骤5:执行【菜单】→【生成】菜单命令,在弹出的VisualFoxPro对话框中单击“是”按钮,接着系统会弹出“生成菜单”对话框,单击“生成”按钮生成一个呵执行的菜单文件。步骤6:在命令窗口执行命令:DOmymenu.mpr,运行菜单,并执行“统计”菜单命令。知识点解析:暂无解析国家二级VF机试(操作题)模拟试卷第2套一、基本操作题(本题共1题,每题1.0分,共1分。)1、(1)打开数据库SCOREMANAGER,该数据库中含三个有联系的表STUDENT、SCORE1和COURSE,根据已经建立好的索引,建立表之间的联系。(2)为COURSE表增加字段:开课学期(N,2,0)。(3)为SCOR_El表“成绩”字段设置字段有效。降规则:成绩>=0,出错提示信息足:“成绩必须大r或等于零”。(4)将SCORE1表“成绩”字段的默认值设置为空值(NULL)。标准答案:(1)①在命令窗口执行命令:MODIFYDATABASEscore_manaqer,打开salary数据库设计器。②在数据库设计器中,拖动student表“索引”下方的主索引“学号”到score1表中“索引”下方的普通索引“学号”上,为两个表建立联系;拖动course表“索引”下方的主索引“课程号”到score1表中“索引”下方的普通索引“课程号”上,为两个表建立联系;(2)右击数据库设计器中的“course”表,选择【修改】快捷菜单命令,打开course表设计器,在表设计器“字段”选项卡的“字段名”列的最后一个空白文本框中输入字段名“开课学期”,在“类型”下拉框中选择“数值型”,在“宽度”文本框中输入“2”,保存表结构修改。(3)在数据库设计器中,右击score1表,选择【修改】快捷菜单命令,打开score1表设计器,在“字段”选项卡中选中“成绩”,在“字段有效性”的“规则”文本框中输入:成绩>=0,在“信息”文本框中输入:”成绩必须大于或等于零”。(4)接上小题操作,单击“成绩”行中“NULL”列的无符号按钮,使其按钮被选中(被选中的按钮上会出现一个“√”符号),在“默认值”文本框中输入:.NULL.。保存表结构修改。知识点解析:本大题考查了表结构的修改;有效性规则的建立;永久联系的建立。对表中字段建立有效性规则和设置默认值是在表设计器中操作的,在操作时要注意先选中需要建立有效性规则的字段。二、简单应用题(本题共1题,每题1.0分,共1分。)2、(1)student是一个“学生”表,其中包含学号(C8)、姓名(C8)、性别(C2)、政治面目(C4)、班级(C5)等字段。考生文件夹下的modil.prg程序文件的功能是显示输出所有政治面目为“群众”的“男”生的姓名和班级,每行输出一个学生的信息;程序中有三处错误,请加以改正。说明:程序中******ERRORFOUND******的下一行即为错误所在行。请用改正后的程序行覆盖错误所在行,不要插入或删除任何程序行。(2)建立命令文件sprog.prg,该命令文件包含如下两条语句:.第一条语句使用SQLUPDATE命令计算和更新student表的年龄字段值(计算年龄的表达式是year(dat())-year(出生日期))。.第二条语句使用SQLSELECT命令查询各种“政治面目”的学生人数和平均年龄,并将结果存储于表sqlresults(字段名是政治面目、人数和平均年龄)。说明:以上命令文件必须执行,并产生所要求的结果。标准答案:(1)步骤1:在命令窗口执行命令:MODIFYCOMMANDmodil,打开程序文件,文件中的命令代码如下:1SETTALKOFF2USEstudent3LOCATEFOR政治面目="群众"4"************error************DOWHILE.NOT.FOUND()5IF性别="男"6CONTINUE7************error***********BREAK8ENDIF97姓名,班级10************error************SKIP11ENDDO12USE13SETTALKON>修改程序中的错误行,修改后的程序如下:1SETTALKOFF2USEstudent&&打开student表3LOCATEFOR政治面目="群众"&&查找当前记录的“政治面目”为“群众”4DOWHILEFOUND()&&循环条件为找到"政治而目"为"群众"的记录时进入循环5IF性别="男"&&如果性别为“女”,继续执行下面的语句,否则执行ENDIF语句之后的语句6CONTINUE&&返回到循环体起始位置继续重新判断下一条记录“政治面目”值是否为“群众”7LOOP&&返旧到循环体起始位置,即DOWHILE处重新判断,不再执行后面的语句8ENDIF&&当IF处条件不成立时,直接执行该语句后面的命令9?姓名,班级&&当前面的IF条件语句不成立时,执行该语句,显示当前记录的“姓名”和“班级”值10CONTINUE&&返回到循环体起始位置继续重新判断下一条记录"政治面目"值是行为"群众"11ENDDO&&当DOWHILE处条件不成立时,直接退出循环体,执行该语句后面的命令12USE&&关闭当前打开的表13SETTALKON步骤2:保存文件修改,在命令窗口执行命令:DOmodil.prg,执行程序文件。(2)步骤1:在命令窗口执行命令:MODIFYCOMMANDsprog,打开程序文件编辑器。步骤2:在程序文件编辑器中输入如下代码(相关SQL查询语句是通过查询设计器生成):1UPDATEstudentSET年龄=YEAR(DATE())-YEAR(出生日期)2SELECTSTUDENT.政治面目,COUNT(STUDENT.学号)AS人数,AVG(STUDENT.年龄)AS平均年龄;FROMstudent;4GROUPBYstudent.政治面目;5INTOTABLEsqlresults.dbf步骤3:保存文件修改,在命令窗口执行命令:DOsprog.prg,执行程序文件。知识点解析:(1)本题主要考查的是利用VisualFoxPro命令查询定位数据表中的记录。此类型的题主要通过一个DOWHILE循环语句对表中的记录逐条比较,对满足条件的记录进行相关的操作。本题中第一处错误是循环条件的错误,进入循环体的条件是逻辑值为真,第二处错误中属于命令短语错误,visualFoxPro中没有BREAK命令,第三处错误是SKIP命令错误,该命令虽然可以将当前记录指针指向下一条记录,但不再执行LOCATEFOR处的条件判断,如果要包含判断功能,则要使用CONTINUE短语。本题程段中各语句的功能可参考“操作步骤”中对各条语句的注释说明,这里不再细说。(2)本题考查了SQL数据更新功能和分组计算查询功能。本题数据更新语句可直接套用SQL更新语句的命令格式;对数据进行分组计算查询时,用来计数的函数为COUNT(),用来求平均值的函数为AVG(),通过AS短语可以指定新的字段名,另外,对记录进行分组时,分组字段要设置正确,根据题意,本题的分组字段应为“学生”表中的“政治面目”字段。三、综合应用题(本题共1题,每题1.0分,共1分。)3、在考生文件夹下,打开名称为CDB的商品销售数据库,完成如下综合应用:创建一个标题名为“顾客购买商品查询”、文件名为GK的表单,如图2.12所示。表单要求如下:①在该表单中设计两个标签、两个文本框、一个表格控件和两个命令按钮。②表单中两个标签的名称分别为Label1和Label2,其标题分别为“顾客号”和“应付款”;两个文本框的名称分别为Textl和Text2,前者用于输入查询的顾客号,后者用于显示该顾客的应付款;表格Gridl用于显示顾客购买商品的详细记录。③两个命令按钮的功能如下:“查询”按钮(Command1):在该按钮的Click事件中编写程序,采用SQL语句根据第1个文本框输入的顾客号进行查询。在表格控件中显示该顾客的顾客号和购买的每件商品的商品号、商品名、单价、数量和金额,各记录按商品号升序排序。该查询结果应同时存储到表tjb.dbf中。另外需要统计该顺客的应付款,并将结果显示于Text2文本框中。说明:金额=单价*数量,应付款=顾客购买的商品金额合计。“退出”按钮(Command2):关闭并释放表单。注意:表格控件的RecordSour.ceType属性设置为“4一SQL说明”。表单设计完成后,运行该表单,输入顾客号:010003,单击“查询”按钮进行查询。标准答案:步骤1:在命令窗口执行命令:CREATEFORMGK,打开表单设计器新建表单。步骤2:从“表单工具栏”中依次向表单添加两个标签、两个文本框、一个表格控件和两个命令按钮控件。在“属性”面板的下拉框中选择表单对象,在“全部”选项卡中修改对象属性值。见表3.12。步骤3:双击命令按钮,编写各个命令按钮的Click事件代码。各按钮代码如下:*****“查询”按钮的click事件代码*****1GKH=THISFORM.TEXT1.VALUE2THISFORM.GRID1.RECORDSOURCE="SELECTOrder.顾客号,order.商品号,Comm.商品名,Comm.单价,Order.数量,;3Comm.单价*Order.数量as金额;4FROMcommINNERJOINorder;5ONComm.商品号=order.商品号;6WHEREOrder.顾客号=ALLTRIM(THISFORRM.TEXBT1.VALUE);7ORDERBY2;8INTOTABLEtjb.dbf"9SELECTSUMN(金额)FEOMTJBINTOARRAYA10THISFORM.TEXT2.VALUE=A(1)*****“退出”按钮的Click事件代码*****THISFORM.RELEASE步骤4:单击“常用”工具栏中的“运行”按钮运行表单,在文本框中输入“010003”,单击“查询”命令按钮,然后单击“退出”命令按钮结束。知识点解析:本题主要考查了表单及控件的常用属性的设置;SQL的简单查询和联接查询。对本题操作时,首先根据题意新建表单,添加控件并修改其相关属性。本题中的SQL程序设计部分考查的是SQL联接查询,属于比较简单的查询语句,注意正确引用文本框中的值即可;本题的“应付款”可以通过数组保存,然后再赋给第二个文本框用来显示。国家二级VF机试(操作题)模拟试卷第3套一、基本操作题(本题共1题,每题1.0分,共1分。)1、在考生文件夹下,打开招生数据库sdb,完成如下操作:(1)在ksb表中增加一个名为“备注”的字段、字段数据类型为“字符”、宽度为30。(2)在考生成绩表kscjb中给成绩字段设置有效性规则和默认值,成绩>=0AND成绩<=150;默认值为0。(3)通过“考生号”字段建立ksb表和kscjb表间的永久联系,并为该联系设置参照完整性约束:更新规则为“级联”;删除规则为“限制”;插入规则为“忽略”。(4)使用报表向导建立一个简单报表。要求选择考生表ksb中所有字段;记录不分组;报表样式为_随意式”;列数为1,字段布局为“列”,方向为“纵向”;排序字段为“考生号”(升序);报表标题为“考生成绩一览表”;报表文件名为one.frx。标准答案:(1)①命令窗口执行:MODIFYDATABASEsdb,打开数据库设计器。②数据库设计器中,右击ksb表选择【修改】,打开ksb表设计器,“字段”选项卡的“字段名”列的最后一个空白文本框中输入字段名“备注”,“类型”中选“字符型”,“宽度”中输入“30”,单击“确定”保存修改。(2)在数据库设计器中,右击kscjb表,选择【修改】快捷菜单命令,打开kscjb表设计器,在“字段”选项卡中选中“成绩”,在“字段有效性”的“规则”文本框中输入:成绩>=0and成绩<2150,在“默认值”文本框中输入:0。(3)①在数据库设计器中,拖动kbs表“索引”下方的主索引“考生号”到kscjb表中“索引”下方的普通索引“考生号”上,为两个表建立联系。②选中ksb和kscjb两个表之间的关联线(被选中的线会变粗),先执行【数据库】→【清理数据库】菜单命令,清空数据库表中带有删除标记的记录,然后执行【数据库】→【编辑参照完整性】菜单命令。在打开的“参照完整性”对话框的表格中:选择“更新”为“级联”;“删除”为“限制”;“插入”为“忽略”。单击“确定”保存修改。(4)①命令窗口执行:OPENDATABASEsdb,打开sdb数据库。②执行【文件】→【新建】菜单命令,或单击“常用”工具栏的“新建”按钮,在“新建”中选“报表”,单击“向导”图标按钮,“向导选取”中选“报表向导”项,单击“确定”按钮,启动报表向导。③“步骤1.字段选取”的“数据库和表”下选“ksb”表,将“可用字段”全部添加到“选定字段”中,单击“下一步”按钮。④“步骤2.分组记录”中,单击“下一步”。⑤“步骤3.选择报表样式”的“样式”下选择“随意式”,单击“下一步”⑥“步骤4.定义报表布局”的“列数”下输入“1”,在“字段布局”下选择“列”,在“方向”下选择“纵向”,单击“下一步”。⑦“步骤5.排序记录”中双击“可用的字段或索引标识”中的“考生号”字段到“选定字段”列表中,再选择“升序”,单击“下一步”。⑧“步骤6.完成”中“报表标题”下输入“考生成绩一览表”,单击“完成”按钮。⑨在“另存为”对话框的“保存报表为:”框中输入报表文件名one,单击“保存”按钮。参照完整性、创建简单报表。知识点解析:本题考查了表结构的修改:有效性规则的建立及参照完整性的设置:报表向导的使用。在表设计器中对表中字段建立有效性规则和设置默认值是操作,要注意先选中需要建立有效性规则的字段。建参照完整性前要先建立两个表的关联,且一个表中必须建立关联字段的主索引(或候选索引),另一个表要建立普通索引,建立联系后要先清理数据库,再设置参照完整性。二、简单应用题(本题共1题,每题1.0分,共1分。)2、在考生文件夹下,打开招生数据库sdb,完成如下简单应用:(1)使用一对多表单向导选择ksb表和kscjb表生成一个名为two的表单。要求从父表ksb中选择所有字段,从子表kscjb中选择所有字段,使用“考生号”建立两表之间的关系,样式为阴影式;按钮类型为图片按钮;排序字段为考生号(来自ksb),升序;表单标题为“考生数据输入维护”。(2)在考生文件夹下打开命令文件three.prg,该命令文件用来查询所有成绩都高于或等于平均分的学生的考生号和姓名。并将查询结果存储到表three中。注意,该命令文件在第3行、第6行、第9行有错误,打开该命令文件,直接在错误处修改,不可改变SQL语句的结构和短语的顺序,不允许增加、删除或合并行。标准答案:(1)步骤1:命令窗口执行:OPENDATABASEsdb,打开SDB数据库。步骤2:执行【文件】→【新建】菜单命令,或单击“常用”工具栏的“新建”按钮,在“新建”对话框中选“表单”选项,单击“向导”按钮,“向导选取”对话框中选“一对多表单向导”项,单击“确定”,启动向导。步骤3:“步骤1.从父表选择字段”的“数据库和表”下选“kbs”表,将“可用字段”全部添加到“选定字段”中,单击“下一步”。步骤4:“步骤2.从子表选择字段”的“数据库和表”下选“kscjb"表,将“可用字段”全部添加到“选定字段”中,单击“下一步”。步骤5:“步骤3.建立表之间的关系”中系统自动建立两个表的联系,单击“下一步”。步骤6:“步骤4.选择表单样式”的“样式”下选“阴影式”,在“按钮类型”下“图片按钮”,单击“下一步”。步骤7:“步骤5.排序次序”中双击“可用的字段或索引标识”中的“考生号”字段到“选定字段”列表中,再选择“升序”,单击“下一步”。步骤8:“步骤6.完成”中的“请键入表单标题”下方输入“考生数据输入维护”,单击“完成”按钮。步骤9:在“另存为”对话框的“保存表单为:”框中输入表单文件名two,单击“保存”按钮。创建和运行表单。(2)步骤1:命令窗口执行:MODIFYCOMMANDthree,打开three.prg程序,命令中的命令代码如下:*该命令文件用来查询所有成绩都高于或等于平均分的学生的考生号和姓名。并将查询结果存储到表THREE中。*该命令文件在第3行、第6行、第9行有错误,打开该命令文件。*直接在错误处修改,不可改变SQL语句的结构和短语的顺序,不允许增加、删除或合并行。SELECTAVG(成绩);FROMkscjb;INTOCURSORtemSELECT考生号,姓名;FROMksb;WHERE考生号EXISTS;(SELECT*;FROMkscjb;WHERE成绩<tem(1),考生号=ksb.考生号);INTOTABLEthree修改程序中的错误行,修改后的程序如下:SELECTAVG(成绩);FROMkscjb;INTOARRAYtem&&将平均成绩存放到数组array中SELECT考生号,姓名;&&外查询:在ksb表中将每一个考生编号与内查询的结果做比较FROMksb;WHERENOTEXISTS;(SELECT*;&&在内查询中的kscjb表中判断是否该考生编号有一门成绩小于平均成绩FROMkscjb;WHERE成绩<tem(1)and考生号=ksb.考生号);INTOTABLEthree步骤2:保存文件修改,在命令窗口执行命令:DOthree.prg,执行程序文件。SQL简单查询、嵌套查询。知识点解析:(1)本题主要考查的是表单向导的使用。(2)本题主要考查的是SQL简单查询和嵌套查询。本题先用一个SQL简单查询获得平均分,由于平均分是一个数字,并且以后还要将考生成绩与该平均分进行比较,所以应将其存放在一个数组中,而不是存放在临时表中,所以应将第一处错误INTOCURSORtemp改为INTOARRAYtemp。题中第二个SQL语句为嵌套查询,使用了exists谓词,用来检查子查询中是否有结果返回。根据本题要求,要查找所有成绩都高于或等于平均分的学生的考生号和姓名,换句话说,也就是只要考生有一门成绩小于平均分,该考生就不符合条件。查询的基本过程是:对于外查询中的ksb表中的每个考生号,在内查询中的kscjb表中判断是否该考生编号有一门成绩小于平均成绩,只要有一门成绩小于平均成绩,该考生号都不该被查找出来,故第二处错误是在外查询中的条件中应使用notexists,而不是exists。在内查询中,条件“成绩<temp(1)”和“考生号=ksb.考生号”应该用AND联接。三、综合应用题(本题共1题,每题1.0分,共1分。)3、在考生文件夹下,打开招生数据库sdb,完成如下综合应用:①创建文件名为form的表单,将表单标题改为:录取研究生。②在表单中设计“录取”和“退出”两个按钮。两个按钮功能分别如下:在“录取”按钮(Commandl)中,编写程序,查询总成绩大于或等于330分的考生的“考生号”、“姓名”、“性别”、“单位”和该生的“政治成绩”、“外语成绩”、“高数成绩”(即高等数学成绩)、“专业课成绩”、“总成绩”,并将结果按“总成绩”降序排序存储到表four中。表four(需要自己创建或生成)的字段名为:“考生号”、“姓名”、“性别”、“单位”、“政治成绩”、“外语成绩”、“高数成绩”、“专业课成绩”、“总成绩”(各成绩字段的类型为N(5,1),其他字段的类型与原表中一致)。单击“退出”按钮(Command2)时,关闭表单。③表单设计完成后,运行表单,单击“录取”按钮进行统计,然后单击“退出”按钮关闭表单。注:在考试科目代码表dm中存储了各考试科目与考试科目名对应关系。标准答案:步骤1:在命令窗口执行命令:CREATEFORMform,打开表单设计器新建表单。向表单添加两个命令按钮。步骤2:选择表单对象,修改属性值,见表4—44。步骤3:双击命令按钮,编写各个命令按钮的Click事件代码如下:*****“录取”按钮的Click事件代码*****OPENDATABASESDBSELECTKSB.考生号,姓名,性别,单位,SUM(成绩)总成绩FROMKSB,KSCJB;WHEREKSB.考生号=KSCJB.考生号GROUPBYKSB.考生号;HAVINGSUM(成绩)>=330INTOCURSORTEMP1SELECT考生号,姓名,性别,单位FROMTEMPl;ORDERBY总成绩DESCINTOTABLEFOURALTERTABLEFOURADD政治成绩N(5,1)ALTERTABLEFOURADD外语成绩N(5,1)ALTERTABLEFOURADD高数成绩N(5,1)ALTER.TABLEFOURADD专业课成绩N(5,1)ALTERTABLEFOURADD总成绩N(5,1)SELECT考生号,考试科目名,成绩FROMKSCJB,DMWHEREKSCJB.考试科目=DM.考试科目;INTOCURSORTEMP2SELECTFOURDOWHILENOTEOF()SELECT成绩FROMTEMP2WHER考生号=FOUR.考生号AND考试科目名="政治";INTOARRAYA1REPLACE政治成绩WITHA1SELECT成绩FROMTEMP2WHER考生号=FOUR.考生号AND考试科目名="外语";INTOARRAYA2REPLACE外语成绩WITHA2SELECT成绩FROMTEMP2WHER考生号=FOUR.考生号AND考试科目名="高等数学";INTOARRAYA3REPLACE高数成绩WITHA3SELE成绩FROMTEMP2WHER考生号=FOUR.考生号AND考试科目名="专业课";INTOARRAYA4REPLACE专业课成绩WITHA4REPLACE总成绩WITH政治成绩+外语成绩+高数成绩+专业课成绩SKIPENDDOCLOSEDATABASE*****“退出”按钮的Click事件代码*****THISFORM.RELEASE步骤4:单击“常用”工具栏中的“运行”按钮运行表单,单击“录取”进行计算,单击“退出”关闭表单。基本型控件;表单的事件、方法和属性;程序基本结构;SQL分组与计算查询。知识点解析:本题主要考查的是表单的建立、常用属性的设置、DOWHILE循环结构和SQL分组计算查询、SQL定义功能、VisualFoxPro修改记录命令。本题基本解题思路可按以下步骤进行:第一步,根据ksb和kscjb两张表,利用分组计算查询求出总成绩大于等于330分的考生的考生号、姓名、性别、单位和总成绩,将结果保存到一个临时表temp1中。这里,总成绩用SUM函数实现。第二步,通过临时表templ查找出“考生号”、“姓名”、“性别”、“单位”4个字段,并按总成绩降序排序,将结果保存到表FOUR中。在这里,这四个字段正是题目中要求的FOUR表的前四个字段。第三步,分别用五个“ALTERTABLE”语句为FOUR表增加五个字段:政治成绩、外语成绩、高数成绩、专业课成绩和总成绩。为表增加字段的关键字是ADD。此时,题目所要求的FOUR表的结构已经完成,并且前四个字段的值也已经按要求完成了,下面的任务就是将后五个字段的值填充完整。第四步,根据dm和kscjb两张表求出所有考生的考生号、考试科目名和成绩,将结果保存到临时表temp2中。第五步,将FOUR表作为当前表,将记录指针指向文件首,然后开始执行DOWHILE循环对FOUR表中的每条记录进行处理。DOWHILE语句的循环条件是当记录指针没有到达FOUR表末尾时,执行循环体中的语句。循环体功能:用SQL简单查询从临时表temp2中求出与FOUR表当前所指记录“考生号”相同并且“考试科目名”是“政治”的“成绩”字段值,将该值保存到数组a1中,再通过REPLACE命令修改four表当前记录的“政治成绩”字段值。参照以上操作,可以将four表当前记录的“外语成绩”、“高数成绩”和“专业课成绩”三个字段值进行修改。而当前记录的“总成绩”字段值可以由当前记录的“政治成绩”、“英语成绩”、“高数成绩”和“专业课成绩”的和得到。修改完毕后,four表的记录指针指向下一条记录,又开始继续判断表指针是否到达表末尾,如果没有,则进入循环体继续同样的操作,直到four表的记录指针指向表末尾,处理完four表中的所有记录,程序结束。国家二级VF机试(操作题)模拟试卷第4套一、基本操作题(本题共1题,每题1.0分,共1分。)1、在考生文件夹下完成下列操作:1.新建“点歌”数据库,将考生文件夹下的所有自由表添加到该数据库中。2.新建一个项目“点歌系统”,将“点歌”数据库添加进该项目。3.为“歌曲”表创建一个主索引,索引名为PK,索引表达式为“歌曲id”;再创建一个普通索引,索引名和索引表达式均为“演唱者”,以上索引都为升序。4.为“歌手”表创建一个主索引,索引名和索引表达式都为“歌手id”,升序。为“歌曲”和“歌手”表创建永久联系,并设置参照完整性约束:更新规则为“级联”,其他默认。标准答案:(1)步骤1:单击常用工具栏“新建”按钮或选择菜单栏“文件”一“新建”命令,新建一个数据库,在弹出的对话框中输入文件名“点歌”,单击“保存”按钮,如图4.19所示。步骤2:在打开的数据库设计器中,右键单击数据库空白处,选择“添加表”命令,将考生文件夹下的所有自由表添加到数据库中,如图4.20所示。(2)步骤1:单击常用工具栏“新建”按钮或选择菜单栏“文件”一“新建”命令,新建一个项目,在弹出的对话框中输入文件名“点歌系统”,如图4.21所示。步骤2:在“数据”选项卡中单击“添加”按钮,将“点歌”数据库添加进项目中,如图4.22所示。(3)步骤1:在“数据库设计器一点歌系统”中,右键单击“歌曲”表,选择“修改”命令,如图4.23所示。步骤2:在打开的表设计器中,单击“索引”选项卡,输入索引名称“PK”,类型设为“主索引”,表达式为“歌曲id’,,设置为升序。再输入一个索引,名称和表达式均为“演唱者”,类型设为“普通索引”,设置为升序,单击“确定”按钮保存对表的修改,如图4.24所示。(4)步骤1:在“数据库设计器一点歌系统”中,右键单击“歌手”表,选择“修改”命令,在打开的表设计器中,单击“索引”选项卡,输入索引名称“歌手id”,类型设为“主索引”,表达式为“歌手id”,单击“确定”按钮,如图4.25所示。步骤2:在数据库设计器窗口下将“歌手”表中的“歌手id”拖动至“歌曲”表中的“演唱者”处,即可建立两表间联系,结果如图4.26所示。步骤3:选择“数据库”一“清理数据库”菜单命令,首先清理数据库;在已建立的关系线上单击鼠标右键,在弹出的快捷菜单中单击“编辑参照完整性”按钮,在“编辑参照完整性生成器”对话框中,选中“更新规则”选项卡下的“级联”单选按钮,其他默认。单击“确定”按钮,保存改变,生成参照完整性代码并退出,如图4.27所示。知识点解析:暂无解析二、简单应用题(本题共1题,每题1.0分,共1分。)2、在考生文件夹下完成如下简单应用:1.建立一个满足下列要求的表单文件tab。(1)表单中包含一个页框控件Pageframel,该页框含有3个页面:Page1、Page2、Page3,三个页面的标题依次为“学生”、“课程”和“成绩”。(2)将student(学生)表、colLrse(课程)表和score(成绩)表分别添加到表单的数据环境中。(3)直接用拖曳的方法使得在页框控件的相应页面上分别显示student(学生)表、course(课程)表和score(成绩)表的内容。(4)表单中包含一个“退出”命令按钮(Command1),单击该按钮关闭并释放表单。2.给定表单modi2.scx,功能是:要求用户输入一个正整数,然后计算从1到该数字之间有多少偶数、多少奇数、多少能被3整除的数,并分别显示出来,最后统计出满足条件的数的总数量。请修改并调试该程序,使之能够正确运行。改错要求:“计算”按钮的Click事件代码中共有3处错误,请修改“***found***”下面语句行的错误,必须在原来位置修改,不能增加或删减程序行(其中第一行的赋值语句不许减少或改变变量名)。“退出”按钮的Click事件代码中有一处错误,该按钮的功能是关闭并释放表单。标准答案:(1)步骤1:在命令窗口输入“Createformtab”,按下回车键。新建一个表单文件tab,在表单控件中单击相应的控件,然后在表单上画出一个页框控件、一个命令按钮。将页框改为3个页面,如图3.89所示。步骤2:在页框上单击鼠标右键,在弹出的快捷菜单中选择“编辑”项,设置页框各页的标题属性,如图3.90所示。Page1Caption学生Page2Caption课程Pase3Caption成绩步骤3:在表单空白处单击鼠标右键,在弹出的快捷菜单中单击“数据环境”命令,为表单添加表“student”、“course”和“score”到数据环境中。步骤4:在页框上单击鼠标右键,选择“编辑”命令,按题目的要求将表拖曳到相应的页框中,如图3.91所示。步骤5:将命令按钮的标题改为“退出”,输入其Click事件“ThisForm.Release”。步骤6:保存并运行表单查看结果。(2)打开表单modi2,修改“计算”命令按钮的Click事件,如图3.92所示。以同样的方式修改“退出”按钮的Click事件代码为:ThisForm.Release。知识点解析:在第1小题中,新建表单并添加控件,修改各控件的属性值,其中页框的PageCount属性用于设置页框中所含的页面数。在第2小题中,第1处错误语句的功能是将数值0赋给3个内存变量x1、x2、x3;第2处错误语句的功能是将文本框TEXT1中的值赋给变量x;根据题目的要求,第3处错误语句的功能是判断一个数能否被3整除。三、综合应用题(本题共1题,每题1.0分,共1分。)3、(1)在考生文件夹下建立一个文件名和表单名均为oneform的表单,该表单中包括两个标签(Label1和Label2)、一个选项按钮组(OptionGroupl)、一个组合框(Combol)和两个命令按钮(Command1和Command2),Label1和Label2的标题分别为“工资”和“实例”,选项组中有两个选项按钮,标题分别为“大于等于”和“小于”,Command1和Command2的标题分别为“生成”和“退出”,如下图所示。(2)将组合框的RowSourceType和RowSource属性手工指定为5和a,然后在表单的Load事件代码中定义数组a并赋值,使得程序开始运行时,组合框中有可供选择的“工资”实例为3000、4000和5000。(3)为“生成”命令按钮编写程序代码,其功能是:表单运行时,根据选项按钮组和组合框中选定的值,将“教师表”中满足工资条件的所有记录存入自由表salary.dbf中,表中的记录先按“工资”降序排列,若“工资”相同再按“姓名”升序排列。(4)为“退出”命令按钮设置Click事件代码,其功能是关闭并释放表单。(5)运行表单,在选项组中选择“小于”,在组合框中选择“4000”,单击“生成”命令按钮,最后单击“退出”命令按钮。标准答案:步骤1:在命令窗口输入“CreateFormoneform"并按回车键,新建一个名为oneform表单。步骤2:在表单控件工具栏中以拖曳的方式向表单中添加两个标签、一个选项组、一个组合框和两个命令按钮,并修改各控件的属性,如图3.86所示。步骤3:双击表单空白处,编写表单的:Load事件代码。********水表单的Load事件代码********publica(3)a(1)="3000"a(2)="4000"a(3)="5000"*****************************************************步骤4:双击命令按钮,分别编写“生成”和“退出”按钮的Click事件代码。********“生成”按钮的click事件代码********&&对x进行赋值x=val(ThisForm.combol.Value)&&判断分支一ifThisForm.Optiongroupl.Value=1&&选择工资大于等于x的记录,结果按工资的降序排列并存储入表salary中select*from教师表where工资>=xor-derby工资desc,姓名intotablesalary&&判断分支二Else&&选择工资小于x的记录,结果按工资的降序排列并存储入表salary中select*from教师表where工资知识点解析:建立表单并添加控件,然后按要求修改各控件的属性;在表单的Load事件中定义组合框的数据源,完成命令按钮的代码;当列表框要求为数组时,可以在表单的Load事件中进行定义;为选项按钮组设置标题,需要用鼠标右键单击选项按钮组控件,选择“编辑”命令。国家二级VF机试(操作题)模拟试卷第5套一、基本操作题(本题共1题,每题1.0分,共1分。)1、在考生文件夹下,有一个学生数据库sdb,打开该数据库,完成如下操作:(1)为学生表student的“性别”字段增加约束:性别$”男女”,出错提示信息为“性别必须是男或女”,默认值为“女”。(2)为学生表student创建一个主索引,主索引的索引名为sid,索引表达式为学号。为课程表course创建一个主索引,主索引的索引名为cid,索引表达式为课程号。为选课表sc创建一个主索引和两个普通索引(升序),主索引的索引名为scid,索引表达式为“学号+课程号”;一个普通索引的索引名为sid,索引表达式为学号;另一个普通索引的索引名为cid,索引表达式为课程号。(3)通过“学号”字段建立选课表sc和学生表student表间的永久联系。通过“课程号”字段建立选课表sc与课程表course间的永久联系。并为以上建立的联系设置参照完整性约束:更新规则为“级联”;删除规则为“限制”;插入规则为“限制”。(4)使用报表向导建立一个简单报表。要求选择学生表student表中所有字段;记录不分组;报表样式为“随意式”:列数为“1”,字段布局为“列”,方向为“纵向”;排序字段为“学号”,升序;报表标题为“学生基本情况一览表”:报表文件名为one.fix。标准答案:【操作步骤】(1)①命令窗口执行:MODIFYDATABASEsdb,打开数据库设计器。②数据库设计器中,右击student表,选择【修改】,打开表设计器,“字段”选项卡中选中“性别”,“字段有效性”的“规则”中输入:性别$“男女”,“信息”框中输入:“性别必须是男或女”,“默认值”文本框中输入:“女”。(2)①接上题,在student表设计器中,“字段”选项卡中选中“学号”,“索引”列中选“升序”,在“索引”选项卡中修改“索引名”为“sid”,修改“类型”为“主索引”,单击“确定”按钮保存表结构修改。②与上题同样的方法为course表建立名为“cid”,的“主索引”,单击“确定”按钮保存表结构修改。③数据库设计器中,右击sc表选择【修改】,打开表设计器,“索引”选项卡中,“索引名”下方的文本框中输入“scid”,“索引”选项卡中将“类型”选择为“主索引”,“表达式”下方的文本框中输入“学号+课程号”,建立主索引。④接第③步,在SC表设计器的“索引”选项卡中,第二行的“索引名”文本框中输入“sid”,将“类型”选择为“普通索引”,“表达式”下方的文本框中输入“学号”,建立一个普通索引;在第三行的“索引名"文本框中输入“cid”,“类型”选择为“普通索引”,“表达式”中输入“课程号”,建立普通索引,单击“确定”保存修改。(3)①在数据库设计器中,拖动student表“索引”下方的主索引“sid”到sc表中“索引”下方的普通索引“sid”上,为两个表建立联系。②拖动course表“索引”下方的主索引“scid”到sc表中“索引”下方的普通索引“cid”上,为两个表建立联系。③选中student和sc两个表之间的关联线(被选中的线会变粗),首先执行【数据库】→【清理数据库】菜单命令,清空数据库表中带有删除标记的记录,然后执行【数据库】→【编辑参照完整性】菜单命令。在打开的“参照完整性”对话框的表格中,将其中的两对关系均做如下操作:选择“更新”下的单元格内容为“级联”;“删除”下的单元格内容为“限制”;“插入”下的单元格内容为“限制”。单击“确定”按钮保存参照完整性的修改。(4)①命令窗口执行:OPENDATABASEsdb,打开sdb数据库。②执行【文件】→【新建】菜单命令,或单击“常用”工具栏的“新建”按钮,在弹出的“新建”对话框中选中“报表”选项,单击“向导”按钮,弹出“向导选取’’对话框,选中“报表向导”项,单击“确定"按钮,启动报表向导。③“步骤1-字段选取”的“数据库和表”下选student表,将“可用字段”中的字段全部添加到“选定字段”中,单击“下一步”按钮。④“步骤2-分组记录”中,单击“下一步”按钮。⑤“步骤3-选择报表样式”的“样式”下选择“随意式”,单击“下一步”按钮。⑥“步骤4-定义报表布局”的“列数”下输入“1”,在“字段布局”下选“列”,在“方向”下选“纵向”,单击“下一步”按钮。⑦“步骤5-排序记录”中双击“可用的字段或索引标识”中的“学号”字段到“选定字段”中,再选择“升序”,单击“下一步”按钮。⑧“步骤6-完成”中“报表标题"下方文本框中输入“学生基本情况一览表”,单击“完成”按钮。⑨在“另存为”对话框的“保存报表为:”.框中输入报表文件名one,单击“保存”按钮。知识点解析:暂无解析二、简单应用题(本题共1题,每题1.0分,共1分。)2、(1)在考生文件夹下已有表单文件formone.scx,如图3.26所示,其中包含一个列表框、一个表格和一个命令按钮。请按下面要求完成相应的操作:①在表单的数据环境中添加orders表。②将列表框List1设置成多选,另外将其的RowSourceType属性值设置为“8-结构”、RowSource设置为orders。③将表格Gridl的RecordSourceType的属性值设置为“4-SQL说明”。④修改“显示”按钮的Click事件代码。当单击该按钮时,表格Grid1内将显示在列表框中所选orders表中指定字段的内容。(2)利用查询设计器创建查询,从orders、employee和customer表中查询2001年5月1日以后(含)所签所有订单的信息。查询结果依次包含“订单号”、“签订日期”、“金额”、“签订者”和“客户名”5项内容,其中“签订者”为签订订单的职员姓名。各记录按“签订日期”降序排序,签订日期相同按“金额”降序排序;查询去向为表tableone。最后将查询保存在queryone.qpr文件中,并运行该查询。标准答案:(1)【操作步骤】步骤1:命令窗口执行:MODIFYFORMformone,打开表单设计器修改表单。步骤2:右击表单选择【数据环境】,在表单数据环境中击右键选择【添加】,在“添加表或视图”对话框中双击orders表添加到数据环境中。步骤3:选中表单中的列表框控件,将RowSourceType属性值设置为:8一结构,将RowSource属性值设置为:orders,将MoultiSelect属性值设置为:.T;选中表格(Gridl)控件,将RowSourceType属性值设置为:4-SOL说明。步骤4:“显示”按钮(Commandl)的Click事件代码如下:*****“显示”按钮的Click事件代码******下面代码的功能是根据用户对列表框的选择结果构建字段列表,然后进一步构建select语句并据此为表格的相关属性设值。*修改所有***FOUND***下面的一条语句。*不能修改其他语句。不能增加语句,也不能删除语句。s=""f=.T.***FOUND***FORi=1TOthisform.Listl.ColumnCountIFthisform.Listl.Selected(i)IFf***FOUND***s=thiSform.LiStl.valuef=.F.ELSE***FOUND***s=S+thiSform.LiStl.valueENDIFENDIFENDFORSt=“select&sfromordersintoCUrsortmp”thiSform.Gridl.RecordSOUrce=St命令按钮修改后的事件代码如下:S=“”f=.T.***FOUND***FORi=lTOthisform.Listl.ListCountIFthisform.Listl.Selected(i)IFf***FOUND***s=thiSform.Listl.List(i)f=.F.ELSE***FOUND***s=s+“,”+thisform.Listl.List(i)ENDIFENDIFENDFORst=“select&SfromordersintocurSortmp”thiSform.Gridl.RecordSource=st步骤5:单击“常用”工具栏中的“运行”按钮查看结果,并单击“输出数据”按钮产生temmdbf表文件,保存。(2)【操作步骤】步骤1:命令窗口执行:OPENDATABASE订单管理,打开数据库环境。步骤2:命令窗口执行:CREATEQUERYqueryone,打开查询设计器,在“添加表或视图”对话框中,分别双击employee、orders和customer表(注意:一定要按顺序添加表),将表添加到查询设计器中,此时,添加的表会按照数据库中已存在的表间联系自动为3个表在查询设计器中建立联系。步骤3:依次双击orders表中的“订单号”、“签订日期”、“金额”字段,添加到“字段”选项卡的“选定字段”列表中;“字段”选项卡的“函数和表达式”下的文本框中输入:Employee.姓名AS签订者,单击“添加”按钮添加到“选定字段”中;双击customer表中的“客户名”字段添加到“选定字段”列表中。步骤4:“筛选”选项卡的“字段名”中选择“Orders.签订日期”字段,“条件”下拉框中选择“>=”,在“实例”框中输入:{^2001-05-01}。步骤5:“排序依据”选项卡中双击“选定字段”列表框中的“Orders.签订日期”字段添加到“排序条件”中,“排序选项”中选择“降序”;双击“选定字段”中的“Orders.金额字段添加到“排序条件”中,“排序选项”中选择“降序”单选项。步骤6:执行【查询】→【查询去向】菜单命令,在弹出的“查询去向”对话框中单击“表”图标按钮,接着在“表名”中输入文件名tableone,单击“确定”按钮。步骤7:最后单击“常用”工具栏中的“运行”按钮查看结果,将杳询文件保存到考生文件夹下。知识点解析:暂无解析三、综合应用题(本题共1题,每题1.0分,共1分。)3、在考生文件夹下,打开资源数据库frdb,完成如下综合应用:设计一个表单控件名为form、表单文件名为frshow、表单标题名为“农户资源数据浏览”的表单,其表单界面如图3.16所示。其他要求如下:①为表单建立数据环境,向数据环境依次添加frt表(Cursor1)、pt表(Cursor2)和treet表(Cursor3)。②当在“户主编号”(Labell)标签右边的文本框(Textl)中输入户主编号并单击“查询”(Commandl)按钮时,将在右边的表格控件(Gridl)内显示该农户承包的土地编号、小地名、面积、树种编号、蓄积和承包年度信息(均取自frt表),并在左边相应的文本框中显示该农户的姓名(Text2)、年龄(Text3)、性别(Text4)和家庭地址(Text5)(均取自pt表)。③单击“退出”(Command2)按钮时,关闭表单。要求:表格(Grid1)控件的RecordSourceType属性设置为“4一SQL说明”;使用SQL的SELECT语句将根据输入的户主编号查询到的姓名、年龄、性别和家庭地址数据存放到一维数组tmp中,并将tnap数组诸元素的值赋值到各文本框。标准答案:【操作步骤】步骤1:命令窗口执行:OPENDATABASEfrdb,打开frdb数据库。步骤2:命令窗口执行:CREATEFORMfrshow,打开表单设计器新建表单。步骤3:右击表单选择【数据环境】快捷菜单命令,继续在表单数据环境中单击右键选择【添加】快捷菜单命令,在“添加表或视图”对话框中依次双击frt表、pt表和treet表,将其添加到数据环境中。步骤4:向表单添加五个标签、五个文本框、一个表格和两个命令按钮。选择表单对象,修改对象属性值,见表4.19。步骤5:编写各个命令按钮的C1ick事件代码如下:*****“查询”按钮的C1ick事件代码*****THISFORM.GRIDI.RECORDSOURCE=”;sELEcT土地编号,小地名,面积,树种编号,蓄积,承包年度FROMFRT;WHERE户主编号=ALLTRIM(THISFORM.TEXT1.VALUE);INTOCURSORTEMP”sELECT姓名,年龄,性别,家庭地址FROMP_T;WHERE户主编号=ALLTRIM(THISFORM.TEXTl.VALUE);INTOARRAYTMPTHISFORM.TEXT2.VALUE=TMP(1)THISFORM.TEXT3.VALUE=TMP(2)THISFORM.TEXT4.VALUE=TMP(3)THISFORM.TEXT5.VALUE=TMP(4)*****“退出”按钮的Click事件代码*****THISFORM.RELEASE步骤6:单击“常用”工具栏中“运行”按钮运行表单。知识点解析:暂无解析国家二级VF机试(操作题)模拟试卷第6套一、基本操作题(本题共1题,每题1.0分,共1分。)1、在考生文件夹下完成如下操作:(1)在orders表中添加一条记录,其中订单号为“0050”、客户号为“061002”、签订日期为2010年10月10日。(2)将orders表中订单号为“0025”的订单的签订日期改为2010年10月10日。(3)为orders表添加一个“金额”字段(货币类型)。(4)使用SQLDELETE语句从orderitems表中删除订单号为“0032”且商品号为“C1003”的记录。然后将该语句保存在命令文件sfour.prg中。标准答案:(1)①在命令窗口输入命令打开表:useorders.dbfexclusive。②单击“显示”菜单下的“浏览”子菜单,浏览数据表,如图4—56所示。③单击“显示”菜单下的“追加方式”子菜单,添加记录,如图4—57所示。(2)单击“显示”菜单下的“编辑”子菜单,找到订单号为0025的记录,修改日期,如图4—58所示。(3)单击“显示”菜单下的“表设计器”子菜单,打开表设计器。②单击“插入”按钮添加字段,在“字段名”列文本框中输入“金额”,类型选择“货币型”。③单击“确定”按钮完成表的修改。(4)①选择“文件”下的“新建”子菜单,弹出“新建”对话框,文件类型选择“程序”。②单击“新建文件”图标按钮,打开程序编辑界面,输入程序:deletefromorderitemswhere订单号="0032"and商品号="C1003"③单击菜单工具栏里面的“保存”按钮,弹出“另存为”对话框,输入程序名:sfour.prg,保存到考生文件夹下。④执行该程序。数据表的操作、程序的设计和使用。知识点解析:本大题考查了数据表的基本操作,包括添加记录、修改记录、增加字段等,可以通过SQL语句实现,也可以直接通过菜单操作。题目要求删除数据表中的订单号为“0032”且商品号为“C1003”的记录,因此SQL语句的筛选条件为:where订单号="0032"and商品号="Cl003"。二、简单应用题(本题共1题,每题1.0分,共1分。)2、(1)使用SELECT语句查询2008年2月份没有订单的客户,查询结果依次包含客户号、姓名、性别和联系电话四项内容,各记录按客户号降序排序,查询结果存放在表tableone中。最后将该语句保存在命令文件sfive.prg中。注:customers是客户表,orders是订单表。(2)首先创建数据库goods_m,并向其中添加goods表。然后在数据库中创建视图viewone。利用该视图只能查询单价大于等于2000且库存量小于等于2、或者单价小于2000且库存量小于等于5的商品信息,查询结果依次包含商品号、商品名、单价和库存量四项内容,各记录按单价降序排序、单价相同按库存量升序排序。最后利用该视图查询视图中的全部信息,并将查询结果存放在表tabletwo中。标准答案:(1)步骤1:选择“文件”下的“新建”子菜单,弹出“新建”对话框,文件类型选择“程序”。步骤2:单击“新建文件”图标按钮,打开程序编辑界面,输入如下程序:select客户号,姓名,性别,联系电话fromcustomerswherenotexists(select*fromorderswhereyear(签订日期)=2008andmonth(签订日期)=2and客户号=customers.客户号)orderby客户号descintotabletableone步骤3:单击菜单工具栏里面的“保存”按钮,弹出“另存为”对话框,输入程序名:sfive.prg,保存到考生文件夹下。步骤4:执行该程序。程序设计和SQL的使用。(2)步骤1:创建数据库可以使用“文件”菜单完成,选择“文件”菜单下面的“新建”子菜单,弹出“新建”对话框,文件类型选择“数据库”。步骤2:单击“新建文件”图标按钮,弹出“创建”对话框,输入数据库文件名:goods_m.dbc,保存在考生文件夹下。步骤3:在数据库设计器中,单击数据库设计器工具栏中的“添加表”按钮,弹出“打开”对话框,添加goods表,如图4—59所示。步骤4:再通过工具栏里面的“新建”命令,弹出“新建”对话框,文件类型选择“视图”。步骤5:单击“新建文件”图标按钮,弹出“创建”对话框,弹出“添加表或视图”对话框,把goods_m数据库中的goods表添加到视图中。步骤6:开视图设计器,在“字段”选项卡中选择商品号、商品名、单价和库存量4个字段添加到选定字段,如图4—60所示。步骤7:切换到“筛选”选项卡,在其中进行如下设置,单价大于等于2000且库存量小于等于2、或者单价小于2000且库存量小于等于5。步骤8:切换到“排序依据”选项卡,选择字段"Goods.单价",在“排序选项”处选择“降序”;选择字段"Goods.库存量",在“排序选项”处选择“升序”。步骤9:单击工具栏的“保存”按钮,弹出“保存”对话框,输入视图文件名viewone,保存在考生文件夹下。步骤10:选择“文件”菜单下面的“新建”子菜单,弹出“新建”对话框,文件类型选择“查询”。步骤11:单击“新建文件”图标按钮,弹出“添加表或视图”对话框,“选定”选择视图,然后选择viewone视图,然后单击“添加”按钮完成视图的添加,单击“关闭”按钮关闭该对话框。步骤11:在查询设计器里面,选择“字段”选项卡,把所有字段添加到“选定字段”。步骤12:单击查询设计器工具栏里面的“查询去向”按钮,弹出“查询去向”对话框,设置查询去向为表,输入表名称为tabletwo,如图4—61所示。步骤13:运行查询。视图和查询的建立与使用。知识点解析:(1)本题考查SQL的使用。题目要求查询2008年2月份没有订单的客户,查询结果依次包含客户号、姓名、性别和联系电话四项内容,各记录按客户号降序排序,查询结果存放在表tableone中,因此筛选条件为2008年2月没有订单,需要使用嵌入查询条件:wherenotexists(select*fromorderswhereyear(签订日期)=2008andmonth(签订日期)=2。(2)数据库的建立、视图的设计和使用。题目要求在视图里面查询单价大于等于2000且库存量小于等于2、或者单价小于2000且库存量小于等于5的商品信息,查询结果依次包含商品号、商品名、单价和库存量四项内容,各记录按单价降序排序、单价相同的按库存量升序排序,因此需要在视图里面设置筛选条件、排序依据和字段。三、综合应用题(本题共1题,每题1.0分,共1分。)3、在考生文件夹下创建一个顶层表单myform.scx(表单的标题为“考试”),然后创建并在表单中添加菜单(菜单的名称为mymenu.mnx,菜单程序的名称为mymenu.mpr)。效果如图3-8所示。(1)菜单命令“统计”和“退出”的功能都通过执行过程完成。(2)菜单命令“统计”的功能是从customers表中统计各年份出生的客户人数。统计结果包含“年份”和“人数”两个字段,各记录按年份升序排序,统计结果存放在tablethree表中。(3)菜单命令“退出”的功能是释放并关闭表单(在过程中包含命令myform.release)。(4)请运行表单并依次执行其中的“统计”和“退出”菜单命令。标准答案:步骤1:建立表单可通过“文件”菜单下的“新建”子菜单命令打开“新建”对话框,文件类型选择“表单”,单击“新建文件”图标按钮,打开表单设计器。步骤2:通过属性窗口修改表单的Caption属性值,将其设置为“考试”。步骤3:单击菜单工具栏里面的“保存”按钮,弹出“另存为”对话框,输入表单文件名:myform.scx,保存在考生文件夹下。步骤4:建立菜单可通过“文件”菜单下的“新建”子菜单命令打开“新建”对话框,文件类型选择“菜单”,单击“新建文件”图标按钮,弹出“菜单”对话框,选择“菜单”打开表单设计器。步骤5:在菜单设计器中建立各菜单项,菜单名称分别为:计算和退出。在“计算”菜单的结果列中选择“过程”,在“

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论