2004年全国计算机等级考试二级VFP全真上机试题解析
发布时间:2006-10-14 8:53:11   收集提供:gaoqian
 2004年全国计算机等级考试二级VFP全真上机试题解析

第1题:

 1. 建立菜单QUERY_MENU。该菜单只有"查询"和"退出"两个主菜单项(条形菜单), 其中单击菜单项"退出"时,返回到VFP系统菜单(相应命令写在命令框中,不要 写在过程中)。
 2. 将COURSE表的"开课系部"字段名改为"开课单位",其余不变。
 3. 从数据库SCORE_MANAGER中移去表TEMP2.DBF(不是删除)。
 4. 将SCORE1表中记录按学号从低到高排序,在学号相同的情况下再按成绩从高
 到低排序,排序结果存入表NEW_ORDER。

本题主要考核点:
菜单的建立、字段改名、数据库表的逻辑删除、表的排序及查询去向等知识点
本题解题思路:
第1题:本题的主要考核点是菜单的建立。新建菜单可按下列步骤:选择"文件"菜单中的"新建"命令,在"新建"对话框中选择"菜单",单击"新建文件"按钮。在"新建菜单"对话框中选择"菜单"按钮,调出"菜单设计器"。也可用CREATE MENU命令直接调出菜单设计器。在菜单名称中填入"查询"、"退出","退出"结果为命令"SET SYSMENU TO DEFAULT"。
第2题:本题的主要考核点是字段的改名。
打开COURSE表表设计器,将光标移动到"开课系部"字段格中,将其改为"开课单位"。
第3题:本题的主要考核点是数据库表的逻辑删除。
打开考生文件夹下的" SCORE_MANAGER "数据库,在" SCORE_MANAGER "数据库设计器中,选中"TEMP2"表,点击主菜单"数据库"下的"移去",在弹出的对话框中点击"移去"按钮,在随后弹出的对话框中点击"是"按钮,至此便完成了"从数据库"SCORE_MANAGER"中移去表TEMP2(不是删除)"的操作。
第4题:本题的主要考核点是表的排序知识,查询去向。
select * from score1 order by 学号,成绩 desc into table new_order

第2题:

 1. 在SCORE_MANAGER数据库中统计选修了课程的学生人数(选修多门时,只计算1次),统计结果保存在一个新表NEW_TABLE中, 表中只有一个字段,字段名为学生人数。
 2. 在SCORE_MANAGER数据库中查询没有学生选修的课程,查询结果含"课程名"和"开课单位"字段,结果按课程名升序保存在一个新表NEW_TABLE2中(注意:字段名"开课单位"是在基本操作中根据"开课系部"修改后的字段名)。
本题主要考核点:本题的主要考核点是SQL查询语句的使用,查询去向等知识点。
本题解题思路:第1题: 本题可以通过新建一个程序来实现统计,相关代码如下所示:
SELECT Student.姓名;
 FROM course INNER JOIN score1;
 INNER JOIN student ;
 ON Student.学号 = Score1.学号 ;
 ON Course.课程号 = Score1.课程号;
 WHERE Course.课程号 = score1.课程号;
 GROUP BY Student.姓名;
 into cursor temp
select count(姓名) AS 学生人数 from temp;
into table NEW_TABLE
 第2题:本题的主要考核点是SQL查询语句的使用。
 SELECT Course.课程名, Course.开课单位;
 FROM course LEFT OUTER JOIN score1;
 LEFT OUTER JOIN student ;
 ON Student.学号 = Score1.学号 ;
 ON Course.课程号 = Score1.课程号;
 WHERE Course.课程号 !=Score1.课程号;
 ORDER BY Course.课程名;
 INTO TABLE new_table2.dbf

第3题:

 SCORE_MANAGER数据库中含有三个数据库表STUDENT、SCORE1和COURSE。 为了对SCORE_MANAGER数据库数据进行查询,设计一个表单Myform3(控件名为form1,表单文件名为Myform3)。表单标题为"成绩查询";表单有"查询"(名称为Command1)和"退出"(名称为Command2)两个命令按钮。表单运行时,单击"查询"按钮,查询每门课程的最高分,查询结果中含"课程名"和"最高分"字段,结果按课程名升序保存在表NEW_TABLE3。 单击"退出"按钮,关闭表单。
本题主要考核点: 表单文件的创建、控件的属性的修改、SQL语句运用、表单的退出等知识点
本题解题思路:
第一步:在Visual FoxPro主窗口中按下组合键Ctrl+N,系统弹出"新建"对话框,在文件类型中选择"表单",点击"新建文件"按钮,系统将打开表单设计器;或直接在命令窗口中输入 crea form Myform3。
第二步:点击工具栏按钮"表单控件工具栏",在弹出的"表单控件"工具栏中,选中"命令按钮"控件,在表单设计器中拖动鼠标,这样在表单上得到一个"命令按钮"控件command1,用同样的方法为表单再加入一个"命令按钮"控件command2;
相关控件的属性值如下:
对象 属性 属性值
Form1 Caption 成绩查询
Command1 Caption 查询
Command2 Caption 退出
****命令按钮command1(查询)的Click事件代码如下****
SELECT Course.课程名, MAX(score1.成绩) AS 最高分;
 FROM course INNER JOIN score1;
 INNER JOIN student ;
 ON Student.学号 = Score1.学号 ;
 ON Course.课程号 = Score1.课程号;
 GROUP BY Course.课程名;
 INTO TABLE NEW_TABLE3
****命令按钮command2(退出)的Click事件代码如下****
 thisform.release

第4题:

1. 打开数据库SCORE_MANAGER, 该数据库中含三个有联系的表STUDENT、SCORE1 和COURSE, 根据已经建立好的索引, 建立表之间联系。
 2. 为COURSE表增加字段:开课学期(N,2,0)。
 3. 为SCORE1表"成绩"字段设置字段有效性规则: 成绩>=0,出错提示信息是: "成绩必须大于或等于零"。
 4. 将SCORE1表"成绩"字段的默认值设置为空值(NULL)。
本题主要考核点:为已建立索引的表建立联系、设置字段的默认值、字段的添加、字段有效性的设置等知识点
本题解题思路:
第1题:本题的主要考核点是建立两个表之间永久联系。
在父表中选中主索引,按住鼠标拖动至子表相应的普通索引上,释放鼠标,联系即已建立。
第2题:本题的主要考核点是字段的添加的方法。
打开COURSE表表设计器,将光标移动到最后的空字段格中,输入新的字段名、字段类型及长度。
第3题:本题的主要考核点是字段有效性的设置。
在表设计器中,选中"成绩"字段,在"字段有效性"中的"规则"文本框中填入: 成绩>=0,在"信息"文本框中中填入"成绩必须大于或等于零",单击确定。
第4题:本题的主要考核点是字段默认值的设置。
在表设计器对话框中,选择"成绩"字段,点击NULL列下的按钮(表示此列允许空值),然后再在"字段有效性"中的默认值中填入.NULL.,单击确定。

第5题:

 1. 在SCORE_MANAGER数据库中查询学生的姓名和年龄(计算年龄的公式是:2003-Year(出生日期),年龄作为字段名),结果保存在一个新表NEW_TABLE1中。使用报表向导建立报表NEW_REPORT1,用报表显示NEW_TABLE1的内容。报表
中数据按年龄升序排列,报表标题是"姓名-年龄",其余参数使用缺省参数。
 2. 在SCORE_MANAGER数据库中查询没有选修任何课程的学生信息,查询结果包括"学号"、"姓名"和"系部"字段,查询结果按学号升序保存在一个新表NEW_TABLE2中。
本题主要考核点:
本题的主要考核点是SQL查询语句的使用,查询去向、报表向导的使用等知识点
本题解题思路:
第1题:本题的主要考核点是SQL查询语句的使用,查询去向、报表向导的使用。
SELECT 姓名, 2003-Year(出生日期) as 年龄;
 FROM student;
 INTO TABLE new_table1.dbf
启动报表向导可在"文件"菜单中选择"新建"或者单击工具栏上的"新建"按钮,打开"新建"对话框,文件类型选择报表,单击向导按钮。或者在"工具"菜单中选择"向导"子菜单,选择"报表",或直接单击工具栏上的"报表向导"图标按钮。然后按照向导提示操作即可。
第2题:本题的主要考核点是SQL查询语句的使用。
SELECT Student.学号, Student.姓名, Student.系部;
 FROM course right OUTER JOIN score1;
 right OUTER JOIN student ;
 ON Student.学号 = Score1.学号 ;
 ON Course.课程号 = Score1.课程号;
 WHERE Student.学号 != Score1.学号 ;
 ORDER BY Student.学号;
 INTO TABLE new_table2.dbf

第6题:

 1. 用SQL语句完成下列操作: 将选课在5门课程以上(包括5门)的学生的学号、姓名、平均分和选课门数按平均分降序排序,并将结果存放于数据库表stu_temp(字段名为学号、姓名、平均分和选课门数)。
 2. 建立一个名为menu_lin的下拉式菜单,菜单中有两个菜单项"查询"和"退出"。"查询"项下还有一个子菜单,子菜单有"按姓名"和"按学号"两个选项。在"退出"菜单项下创建过程,该过程负责使程序返回到系统菜单。
本题主要考核点:SQL查询语句的使用,查询去向、下拉式菜单的建立等知识点
本题解题思路:
第1题:本题的主要考核点是SQL查询语句的使用,查询去向。
SELECT 学生.学号, 学生.姓名, AVG(选课.成绩) as 平均分,;
 COUNT(选课.课程号) AS 选课门数;
 FROM 学生!学生 INNER JOIN 学生!选课;
 INNER JOIN 学生!课程;
 ON 课程.课程号 = 选课.课程号;
 ON 学生.学号 = 选课.学号;
 GROUP BY 学生.姓名;
 HAVING COUNT(选课.课程号)>=5;
 ORDER BY 3 DESC;
 INTO TABLE stu_temp.dbf
第2题:本题的主要考核点是菜单的建立。
新建菜单可按下列步骤:选择"文件"菜单中的"新建"命令,在"新建"对话框中选择"菜单",单击"新建文件"按钮。在"新建菜单"对话框中选择"菜单"按钮,调出"菜单设计器"。也可用CREATE MENU命令直接调出菜单设计器。在菜单名称中填入"查询"、"退出","查询"结果为子菜单,单击编辑;在子菜单的菜单名称中输入"按姓名"、"按学号","退出"结果为过程,单击编辑,填入"SET SYSMENU TO DEFAULT"(不要引号)。

第7题:

 设计名为mystock的表单(控件名,文件名均为mystock)。表单的标题为:"股票持有情况"。表单中有两个文本框(text1和text2)和两个命令按钮"查询" (名称为Command1)和"退出"(名称为Command2)。 运行表单时,在文本框text1中输入某一股票的汉语拼音,然后单击"查询",则text2中会显示出相应股票的持有数量。 单击"退出"按钮关闭表单。

本题主要考核点:
 表单的创建、控件的属性的修改、表单的退出、SQL查询等知识点
本题解题思路:
第一步:在Visual FoxPro主窗口中按下组合键Ctrl+N,系统弹出"新建"对话框,在文件类型中选择"表单",点击"新建文件"按钮,系统将打开表单设计器;或直接在命令窗口中输入crea form mystock。
第二步:点击工具栏按钮"表单控件工具栏",在弹出的"表单控件"对话框中,选中"命令按钮"控件,在表单设计器中拖动鼠标,这样在表单上得到一个"命令按钮"控件command1,用类似的方法为表单加入一个"命令按钮"控件command2,二个"文本框"控件text1和text2。
相关控件的属性值如下表所示:
对象 属性 属性值
Form1 Name mystock
 Caption 股票持有情况
Command1 Caption 查询
Command2 Caption 退出
***命令按钮command1(查询)的Click事件代码如下****
SELECT Stock_sl.持有数量;
 FROM stock!stock_name INNER JOIN stock!stock_sl ;
 ON Stock_name.股票代码 = Stock_sl.股票代码;
 WHERE Stock_name.汉语拼音 = alltrim(thisform.text1.value);
 INTO ARRAY TEMP
THISFORM.TEXT2.VALUE=TEMP
***命令按钮command2(退出)的Click事件代码如下***
 thisform.release

第8题:

1. 使用报表向导建立一个简单报表。要求选择客户表Customer中所有字段;记录不分组;报表样式为随意式;列数为"1",字段布局为"列",方向为"纵向";排序字段为"会员号",升序;报表标题为"客户信息一览表";报表文件名为
myreport。
 2.使用命令建立一个名称为sb_view的视图,并将定义视图的命令代码存放到命令文件pview.prg。视图中包括客户的会员号(来自Customer表)、姓名(来自Customer表)、客户所购买的商品名(来自article表)、单价(来自OrderItem
表)、数量(来自OrderItem表)和金额(OrderItem.单价 * OrderItem.数量),结果按会员号升序排序。
 本题主要考核点: 报表向导的使用,用命令建立视图等知识点
本题解题思路:
第1题:本题的主要考核点是使用报表向导制作报表。
启动报表向导可在"文件"菜单中选择"新建"或者单击工具栏上的"新建"按钮,打开"新建"对话框,文件类型选择报表,单击向导按钮。或者在"工具"菜单中选择"向导"子菜单,选择"报表",或直接单击工具栏上的"报表向导"图标按钮。然后按照向导提示操作即可。
第2题:本题的主要考核点是用命令建立视图。
CREA VIEW sb_view
SELECT Customer.会员号, Customer.姓名, Article.商品名, Orderitem.单价,;
 Orderitem.数量, OrderItem.单价 * OrderItem.数量 as 金额;
 FROM ecommerce!customer INNER JOIN ecommerce!orderitem;
 INNER JOIN ecommerce!article ON Article.商品号 = Orderitem.商品号 ;
 ON Customer.会员号 = Orderitem.会员号 ORDER BY Customer.会员号

第9题:

 1. 打开Ecommerce数据库,并将考生文件夹下的自由表OrderItem添加到该数据 库。
 2. 为OrderItem表创建一个主索引,索引名为PK,索引表达式为"会员号+商品号"; 再为OrderItem创建两个普通索引(升序),一个的索引名和索引表达式均是 "会员号";另一个的索引名和索引表达式均是"商品号"。
 3.通过"会员号"字段建立客户表Customer和订单表OrderItem之间的永久联系( 注意不要建立多余的联系)。
 4.为以上建立的联系设置参照完整性约束:更新规则为"级联";删除规则为 "限制";插入规则为"限制"。
本题主要考核点:
将一个自由表添加到数据库中、表索引的建立、表之间的永久联系的建立、参照完整性约束的编辑等知识点
本题解题思路:
第1题:打开考生文件夹下的"Ecommerce"数据库,打开数据库菜单选择"添加表(A)",在弹出的"打开"对话框中,选定考生文件夹下的orderitem表,再点击"确定"即可,这样表order_detail就添加到了"Ecommerce"数据库中。
第2题:在数据库设计器中选中表orderitem,在主菜单中选择"修改(Y)",弹出表设计器,选择表设计器"索引"标签,在索引名列中填入"PK",在索引类型列中选择"主索引",在索引表达式列中填入"会员号+商品号",用同样的方法再为OrderItem创建两个普通索引(升序),一个的索引名和索引表达式均是"会员号";另一个的索引名和索引表达式均是"商品号"点击"确定"按钮,保存表结构。
第3题:在数据库设计器中,选中customer表中的索引"会员号"并拖动到表OrderItem的"会员号"的索引上并松开,这样两个表之间就建立起了永久联系。
 第4题:在第3题建立好永久联系之后,在两处表的"会员号"索引之间有一条线,单击这条表示两个表之间联系的线,线会加粗,此时在主菜单中选择"数据库"中的"编辑参照完整性(I)",系统弹出"参照完整性生成器"对话框,在"更新规则"标签中,选择"级联"规则,在"删除"规则中选择"限制",在"插入规则"中选择"限制",单击"确定"保存所编辑的参照完整性。

第10题:

 1. modi1.prg 程序文件中 SQL SELECT语句的功能是查询哪些零件(零件名称)目前用于三个项目, 并将结果按升序存入文本文件 results.txt。 给出的SQL SELECT 语句中在第 1、3、5 行各有一处错误,请改正并运行程序(不可以增、删语句或短语,也不可以改变语句行)。
 2.根据项目信息(一方)和使用零件(多方)两个表、利用一对多报表向导建立一个报表,报表中包含项目号、项目名、项目负责人、(联系)电话、(使用的)零件号和数量等6个字段,报表按项目号升序排序,报表样式为经营式,在
总结区域(细节及总结)包含零件使用数量的合计,报表标题为"项目使用零件信息",报表文件名为report。
本题主要考核点:VFP命令,报表向导的使用等知识点
本题解题思路:
第1题:本题是一个程序修改题。第一处错误SELECT 零件名称 FROM 零件信息 WHERE 零件号 =,应改为SELECT 零件名称 FROM 零件信息 WHERE 零件号 IN;第二处错误为GROUP BY 项目号 HAVING COUNT(项目号) = 3),应改为GROUP BY 零件号 HAVING COUNT(项目号) = 3);第三处错误为IN FILE results,应改为TO FILE results
第2题:本题的主要考核点是使用报表向导制作报表。
启动报表向导可在"文件"菜单中选择"新建"或者单击工具栏上的"新建"按钮,打开"新建"对话框,文件类型选择报表,单击向导按钮。或者在"工具"菜单中选择"向导"子菜单,选择"报表",或直接单击工具栏上的"报表向导"图标按钮。然后按照向导提示操作即可。



 
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50