江苏计算机二级VFP上机知识点总结

2024-07-02

江苏计算机二级VFP上机知识点总结

江苏计算机二级VFP上机知识点总结 篇1

20全国计算机等级考试二级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数据库中查询学生的姓名和年龄(计算年龄的公式是:-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题:本题的主要考核点是使用报表向导制作报表。

启动报表向导可在“文件”菜单中选择“新建”或者单击工具栏上的“新建”按钮,打开“新建”对话框,文件类型选择报表,单击向导按钮。或者在“工具”菜单中选择“向导”子菜单,选择“报表”,或直接单击工具栏上的“报表向导”图标按钮。然后按照向导提示操作即可。

上一篇:过立夏作文下一篇:展开与折叠北师大版五年级数学下册教案