全国计算机等级考试二级Visual FoxPro上机试卷
2.使用SQL命令从worker中查询年龄最大的三名职工信息:职工号、姓名、出生日期,查询结果按年龄降序(即出生日期升序)排序并保存在表infor_db.dbf中。 三、综合应用(1小题,计30分)
建立一个表单,表单文件名和表单控件名均为myform_db,表单标题为\数据浏览和维护\,表单样例如图所示。其它功能要求如下:
1. 用选项按钮组(Optiongroup1)控件选择职工表(employee)(Option1)或订单表(orders)(Option2);(注意:括号使用全角符号)2. 用复选框(Check1)控件确定显示的表是否需要存盘;3. 单击\确定\(Command1)命令按钮,若\存盘\复选框被选中,则用SQL语句将选项组指定的表的内容存入表temp中,否则用SQL语句显示该表的内容; 4. 单击\退出\(Command2)命令按钮,关闭并释放表单。 基本操作题答案:
4、sele 职工号,姓名,出生日期 from employee wher employee.婚否=.T. into table infor_da; order by employee.出生日期 desc 简单应用题答案:具体操作步骤如下:
1、建立表单,将其name属性改为”myform_da”。建立菜单,选择“快捷菜单”方式,创建菜单项“时间”和“日期”。写代码:菜单项“时间”的过程代码为:myform_da.caption=time()。菜单项“日期”的过程代码为:myform_da.caption=dtoc(date())。生成菜单,按提示将其保存为scmenu_d。打开表单myform_da,在其RightClick事件中输入代码:do scmenu_d.mpr ,运行保存表单
综合应用题答案:
“确定”命令按钮的CLICK事件代码如下:
if thisform.check1.value=1 if thisform.optiongroup1.value=1 sele * from employee into table temp else sele * from orders into table temp endif
else if thisform.optiongroup1.value=1 sele * from employee else sele * from orders endif
endif
第 53 套
一、基本操作题(共4小题,第1和2题是7分、第3和4题是8分)
1. 从student表查询所有性别为\男\的学生信息,并按学号升序排序将查询结果存入results表。
2. 利用表单向导生成一个表单,该表单含有student表的学号、班级、姓名和性别4个字段,按学号字段升序排序,其他设置采用默认值,并将表单保存为student.scx文件。
3. 建立一个命令文件myprog.prg,该命令文件只有一行语句,即执行前一小题生成的表单文件。
4. 在student表最后增加一个\年龄\字段,类型为数值型(2)。 二、简单应用(2小题,每题20分,计40分) 1. 改错题
student是一个\学生\表,其中包含学号(C 8)、姓名(C 8)、性别(C 2)、政治面目(C 4)、班级(C 5)等字段。考生目录下的modi1.prg程序文件的功能是显示输出所有政治面目为\群众\的\男\生的姓名和班级,每行输出一个学生的信息;程序中有三处错误,请加以改正。说明:程序中 ******ERROR FOUND****** 的下一行即为错误所在行。请用改正后的程序行覆盖错误所在行,不要插入或删除任何程序行。
2. 建立命令文件sprog.prg,该命令文件包含如下两条语句:● 第一条语句使用SQL UPDATE命令计算和更新student表的年龄字段值(计算年龄的表达式是year(date()) - year(出生日期));● 第二条语句使用SQL SELECT命令查询各种\政治面目\的学生人数和平均年龄,并将结果存储于表 sqlresults (字段名是政治面目、人数和平均年龄)。说明:以上命令文件必须执行,并产生所要求的结果。
第 31 页, 共 56 页
全国计算机等级考试二级Visual FoxPro上机试卷
三、综合应用(1小题,计30分)
考生文件夹下的gnht.dbf是一个合同管理表文件,其中部分字段的含义是:HTH(合同号)、DHDW(订货单位)、GHDW(供货单位)、JHSL(订货数量)。编写程序 progzh.prg分别统计订货单位数、供货单位数、订货总数,并将结果填写到jieguo.dbf(在考生目录下已经存在)表文件中。说明:以上命令文件必须执行,并产生所要求的结果。 基本操作题答案:
1、Sele * from student where 性别=”男” ORDER BY 学号 INTO TABLE results 3、程序文件myprog.prg的内容为:DO FORM student 简单应用题答案:
1、将“.not. found()”改为“found()”,将“break”改为“loop”,将“skip”改为“continue” 2、程序文件sprog.prg的内容如下:
UPDATE STUDENT SET 年龄=year(date()) - year(出生日期)
SELECT Student.政治面目, COUNT(Student.学号) AS 人数,AVG(Student.年龄) AS 平均年龄 FROM student; GROUP BY Student.政治面目 INTO TABLE sqlresults.dbf 综合应用题答案: 程序progzh.prg的内容如下:
select count(dist dhdw) as b from gnht into array a update jieguo set num=a where name='订货单位数'
select count( dist ghdw) as b from gnht into array a update jieguo set num=a where name='供货单位数' select sum(jhsl) as b from gnht into array a update jieguo set num=a where name='订货总数'
第 54 套
一、基本操作题(共4小题,第1和2题是7分、第3和4题是8分) 在考生目录下打开表单formtest.scx并完成下列操作: 1. 表单标题设置为\考试系统\。
2. 在表单上添加一标签控件(Label1),标签上显示\欢迎使用考试系统\个字,字的颜色为红色(ForeColor=255,0,0),其他属性使用默认值。
3. 向表单内添加一个计时器控件,控件名为Timerfor。
4. 将计时器控件Timerfor的时间间隔(Interval)属性值设为200。 二、简单应用(2小题,每题20分,计40分)
1.使用SQL命令在employee表中查询年龄最大的前5名员工的姓名和出生日期,查询结果按年龄降序排序存入表emage.dbf中;同时把所用SQL命令存入文件emage.txt(提示:表中无年龄字段,但是有出生日期字段)。
2.打开程序文件cylinder.prg,该程序的功能是根据输入的半径和高计算圆柱体表面积,其中函数定义中有错误,请在 ******found******* 的下一行进行修改使之能正确运行(不得增加语句,不得删除语句)。 三、综合应用(1小题,计30分) 在考生文件夹下,完成如下综合应用:建立如图所示表单,表单完成一个计算器的功能。表单文件名和表单控件名均为calculator,表单标题为\计算器\。表单运行时,分别在操作数1(Label1)和操作数2(Label2)下的文本框(分别为Text1和Text2)中输入五位数字(不接受其他字符输入),通过选项组(Optiongroup1,4个按钮可任意排列)选择计算方法(Option1为\,Option2为\,Option3为\,Option4为\),然后单击命令按钮\计算\(Command1),就会在\计算结果\(Label3)下的文本框Text3中显示计算结果,要求使用DO CASE语句判断选择的计算分类,在CASE表达式中直接引用选项组的相关属性。注意:所涉及的数字和字母均为半角字符。表单另有一命令按钮(Command2),按钮标题为\关闭\,表单运行时单击此按钮关闭并释放表单。
简单应用题答案:
1、SELE TOP 5 姓名,出生日期 FROM employee ORDE BY 出生日期 INTO TABL emage 2、第一处改为:PARAMETERS a,b 第二处改为:RETURN c 综合应用题答案:
“计算”命令按钮的CLICK事件代码为:
n=thisform.optiongroup1.value do case case n=1
thisform.text3.value=thisform.text1.value+thisform.text2.value
case n=2
thisform.text3.value=thisform.text1.value-thisform.text2.value
case n=3
第 32 页, 共 56 页
全国计算机等级考试二级Visual FoxPro上机试卷
thisform.text3.value=thisform.text1.value*thisform.text2.value
case n=4
thisform.text3.value=thisform.text1.value/thisform.text2.value
endcase
第 55 套
一、基本操作题(共4小题,第1和2题是7分、第3和4题是8分)
1. 将当前文件夹下的自由表CLASS(班级表)和TEACHER(教师表)添加到学生数据库SDB中;
2. 为班级表CLASS创建一个主索引和普通索引(升序),主索引的索引名和索引表达式均为班级号;普通索引的索引名和索引表达式均为班主任号。为教师表TEACHER创建一个主索引,索引名和索引表达式均为教师号; 3. 通过\班级号\字段建立班级表CLASS和学生表STUDENT表间的永久联系。通过班级表CLASS的\班主任号\字段与教师表TEACHER的\教师号\字段建立班级表CLASS和教师表TEACHER间的永久联系;
4. 为以上建立的两个联系设置参照完整性约束:更新规则为\级联\;删除规则为\限制\;插入规则为\限制\。 二、简单应用(2小题,每题20分,计40分)
在考生文件夹下,打开学生数据库SDB,完成如下简单应用:
1.使用报表向导建立一个简单报表。要求选择STUDENT表中所有字段;记录不分组;报表样式为随意式;列数为1,字段布局为\列\,方向为\纵向\;排序字段为\学号\(升序);报表标题为\学生基本情况一览表\;报表文件名为TWO。
2. 使用查询设计器设计一个查询,查询每个班级的班级号、班级名、班长名和班主任名,查询结果按班级号升序排序,并输出到ONE表中。运行该查询,并将设计的查询保存为ONE.QPR文件。注意:① 表之间的关联,一个是STUDENT表的学号与CLASS表的班长号,另一个是CLASS表的班主任号与TEACHER表的教师号;② 查询结果的各列的名称分别为班级号、班级名、班长名和班主任名。班长名列的数据来自于STUDENT表的姓名,班主任名列的数据来自于TEACHER表的教师名。 三、综合应用(1小题,计30分)
在考生文件夹下,打开学生数据库SDB,完成如下综合应用:
设计一个表单文件名为form的表单,表单控件名为THREE,表单的标题名为\学生基本信息浏览\。在表单的左上方有一个标签(Label1),标签上的文字为\班级号\;在标签的右边紧接着放置一个组合框控件(Combo1),将组合框控件的Style 属性设置为\下拉列表框\,RowSourceType属性设置为\字段\(用来选择CLASS表中的班级号);在组合框的右边紧接着放置一个\确认\命令按钮(Command2);在标签的下方放置一个表格控件(Grid1),将RecordSourceType属性设置为\-SQL说明\;在表单的右下方放置一个\退出\命令按钮(Command1)。表单界面如图所示。其他功能要求如下:
1. 为表单建立数据环境,向数据环境添加STUDENT表(cursor1)和CLASS表(cursor2)。2. 程序运行时,在组合框中选择某个班级的班级号,单击\确认\按钮后在表格中显示该班级的学生信息。 3. 单击\退出\按钮时,关闭表单。
简单应用题答案:
2、字段选项卡选CLASS.班级号,CLASS.班级名,STUDENT.姓名 AS 班长名,TEACHER.教师名 AS 班主任名(后两个字段在函数和表达式中输入后添加)联接选项卡中移去原来两个关联条件,重新建立关联:类型:INNER JOIN,字段名:STUDENT.学号=CLASS.班长号 AND 类型:INNER JOIN,字段名:CLASS.班主任号=TEACHER.教师号,排序依据:CLASS.班级号 升序 综合应用题答案:(注意 command2是确认不是确定,答案必须按下面写才有得分)
ThisForm.Grid1.RecordSource=\学号,student.姓名,student.年龄,student.性别 from student inner join; class on student.班级号=class.班级号 where class.班级号='\
第 56 套
一、基本操作题(共4小题,第1和2题是7分、第3和4题是8分)
1. 建立数据库ordersmanage.dbc。把自由表employee.dbf和orders.dbf添加到数据库中。 2. 打开表单dh.scx,设置标签控件中英文字母的字号为18,保存表单。
3. 打开表单dh.scx,为命令按钮\隐藏\添加代码,使表单运行时,单击此按钮隐藏表单上标签控件label1;保存并运行该表单。 4. 利用报表向导建立一对多报表,以employee表为父表,选择其中职工号、姓名和性别字段;以orders表为子表,选择其全部字段。报表样式为简报式,表之间的关联通过\职工号\字段实现,排序方式为按职工号降序,报表标题为\职工订单\。报表其他参数取默认值。最后将生成的报表保存为empord.frx。 二、简单应用(2小题,每题20分,计40分)
1.打开程序文件progerr.prg,按文件中给出的功能要求改正其中的错误,以文件名prognew.prg重新保存该文件并运行程序。 2.建立如图所示顶层表单,表单文件名为myform.scx,表单控件名为myform,表单标题为\顶层表单\。
为顶层表单建立菜单mymenu。菜单栏如图所示(无下拉菜单),单击\退出\菜单时,关闭释放此顶层表单,并返回到系统菜单(在
第 33 页, 共 56 页
全国计算机等级考试二级Visual FoxPro上机试卷
过程中完成)。
三、综合应用(1小题,计30分)
打开表单文件sapp,并完成如下操作(不得有多余操作):● 将\课程\表添加到表单的数据环境中;● 使列表框List1中的数据项为\课程\表中的课程名(课程.课程名);● 单击列表框中的数据项时,统计选修了所选课程的学生人数(从\考试成绩\表),并将结果存储在以课程名命名的表中,表中只有一个字段\人数\;● 添加一个命令按钮 Command1,单击该按钮时关闭表单。说明:完成该程序后必须运行,并且分别统计选修了\数据库\和\操作系统\课程的学生人数。 基本操作题答案:
3、thisform.label1.visible=.F. 简单应用题答案:
1、\改为:\; \改为:\; 第三行后加 into table newtable 。
2、将表单的showwindows属性设置为2,表单的LOAD事件代码为:DO mymenu.mpr with this, .t.。 建立菜单,
将“显示”—>“常规选项”—>“顶层表单”项选中,菜单项“退出”的过程代码为:myform.release。生成菜单,运行表单。 综合应用题答案:
列表框的CLICK事件代码如下:
select count(dist 学号) as 人数 from 课程,考试成绩 where 课程.课程编号=考试成绩.课程编号 and 课程名=; thisform.list1.list(thisform.list1.listindex) into tabl thisform.list1.list(thisform.list1.listindex)
第 57 套
一、基本操作题(共4小题,第1和2题是7分、第3和4题是8分)
在考生文件夹下,有一表单文件myform.scx。打开该表单文件,然后在表单设计器环境下完成如下操作: 1. 在属性窗口中将表单设置为不可移动的,并将其标题设置为\表单操作\。 2. 为表单新建一个名为mymethod的方法,方法代码为:wait \ 3. 设置Ok按钮的Click事件代码,其功能是调用表单的mymethod方法。 4. 设置Cancel按钮的Click事件代码,其功能是关闭当前表单。 二、简单应用(2小题,每题20分,计40分)
1. 利用查询设计器创建查询,从xuesheng和chengji表中找出所有1982年出生的汉族学生记录。查询结果包含学号、姓名、数学、英语和信息技术5个字段;各记录按学号降序排序;查询去向为表table1。最后将查询保存在query1.qpr文件中,并运行该查询。 2. 首先创建数据库cj_m,并向其中添加xuesheng表和chengji表。然后在数据库中创建视图view1:利用该视图只能查询数学、英语和信息技术三门课中至少有一门不及格(小于60分)的学生记录;查询结果包含学号、姓名、数学、英语和信息技术5个字段;各记录按学号降序排序。最后利用刚创建的视图view1查询视图中的全部信息,并将查询结果存放在表table2中。 三、综合应用(1小题,计30分)
首先利用表设计器在考生目录下建立表table3,表结构如下: 民族 字符型(4); 数学平均分 数值型(6,2);英语平均分 数值型(6,2)。 然后在考生文件夹下创建一个下拉式菜单mymenu.mnx,并生成菜单程序mymenu.mpr。运行该菜单程序时会在当前vfp系统
菜单的末尾追加一个\考试\子菜单,如下图示。
菜单命令\计算\和\返回\的功能都通过执行过程完成。 菜单命令\计算\的功能是根据xuesheng表和chengji表分别统计汉族学生和少数民族学生在数学和英语两门课程上的平均分,并把统计数据保存在表table3中。表table3的结果有两条记录:第1条记录是汉族学生的统计数据,\民族\字段填\汉\;第2条记录是少数民族学生的统计数据,\民族\字段填\其他\。菜单命令\返回\的功能是恢复标准的系统菜单。菜单程序生成后,运行菜单程序并依次执行\计算\和\返回\菜单命令。 基本操作题答案:
1、将表单的movable属性设为.F.(具体答案见文件夹myform.scx文件) 简单应用题答案
1、联接条件为表达式:表达式为:year(出生日期)=1982 and 民族=’汉’。
2、crea view view1 as sele xuesheng.学号,姓名,数学,英语,信息技术 from xuesheng,chengji where xuesheng.学号=; chengji.学号 and (数学<60 or 英语<60 or 信息技术<60) order by xuesheng.学号 desc sele * from view1 into table table2 综合应用题答案:
建立好下拉式菜单后,将“显示”—>“常规选项”—>“位置”—>“追加”项选中。菜单项“计算”的过程代码为:
SELECT 民族,avg(数学) as x,AVG(英语) AS y FROM xuesheng,chengji where Xuesheng.学号 = Chengji.学号 and 民族=\汉\INTO ARRAY aa
insert into table3 from array aa
SELECT 民族,avg(数学) as x,AVG(英语) AS y FROM xuesheng,chengji where Xuesheng.学号 = Chengji.学号 and 民族!=\汉\INTO ARRAY aa
第 34 页, 共 56 页
全国计算机等级考试二级Visual FoxPro上机试卷
insert into table3 from array aa
update table3 set 民族='其他' where 民族!=\汉\
菜单项“返回”的过程代码为:set sysmenu to default
第 58 套
一、基本操作题(共4小题,第1和2题是7分、第3和4题是8分)
在考生文件夹下有一表单文件myform.scx,其中包含Text1和Text2两个文本框,以及Ok和Cancel两个命令按钮。打开该表单文件,然后在表单设计器环境下通过属性窗口设置相关属性完成如下操作: 1. 将文本框Text1和Text2的宽度都设置为100。
2. 设置Text1,使其在表单打开时显示123,数据类型为字符型。
3. 设置Text2,使其在表单打开时显示表单的宽度值,数据类型为数值型。注意:表单打开时的初始宽度可以是任意值。
4. 将Ok按钮设置为\确认\按钮,即通过按Enter键就可以选择该按钮;将Cancel按钮的第1个字母C设置成\访问键\,即通过按字母键C就可以选择该按钮。
二、简单应用(2小题,每题20分,计40分)
在考生文件夹下已有xuesheng和chengji两个表,现请在考生目录下完成以下简单应用:
1. 利用查询设计器创建查询,根据xuesheng和chengji表统计出各班(学号的前8个数字串为班号)男、女生在英语课程上各自的最高分、最低分和平均分。查询结果包含班号、性别、最高分、最低分和平均分5个字段;各记录按班号升序排序,同一班的女生在前、男生在后;查询去向为表table1。最后将查询保存在query1.qpr文件中,并运行该查询。
2. 使用报表向导创建一个简单报表。要求选择 xuesheng表中的所有字段;记录不分组;报表样式为帐务式;列数为2,字段布局为行,方向为纵向;按学号升序排序记录;报表标题为\;报表文件名为report1。 三、综合应用(1小题,计30分)
在考生文件夹下创建一个下拉式菜单mymenu.mnx,并生成菜单程序mymenu.mpr。运行该菜单程序时会在当前 vfp系统菜单的末尾追加一个\考试\子菜单,如下图所示。
菜单命令\计算\和\返回\的功能都通过执行过程完成。菜单命令\计算\的功能是从xuesheng表和chengji表中找出所有满足如下条件的学生:其在每门课程上的成绩都大于等于所有同学在该门课程上的平均分。并把这些学生的学号和姓名保存在表table2中(表中只包含学号和姓名两个字段)。表table2中各记录应该按学号降序排序。菜单命令\返回\的功能是恢复标准的系统菜单。菜单程序生成后,运行菜单程序并依次执行\计算\和\返回\菜单命令。 基本操作题答案:
Text1的value属性设为 =”123”,text2的value属性设为 =thisform.width ,ok的default属性设为 .T. ,cancel的caption属性设为 \\ 1、字段选项卡中,用函数和表达式生成如下字段:left(xuesheng.学号,8) as 班号,max(英语) as 最高分,min(英语) as 最低分,avg(英语) as 平均分。排序依据选项卡中,选left(xuesheng.学号,8) as 班号(升序),性别(降序),分组依据选项卡中,选left(xuesheng.学号,8) as 班号,性别。 综合应用题答案: 菜单项“计算”的过程代码为: select xuesheng.学号,姓名 from xuesheng,chengji where xuesheng.学号=chengji.学号 and 数学>; (select avg(数学) from chengji) and 英语>(select avg(英语) from chengji) and; 信息技术>(select avg(信息技术) from chengji) order by xuesheng.学号 desc into table table2 菜单项“返回”的过程代码为:set sysmenu to default 第 59 套 一、基本操作题(共4小题,第1和2题是7分、第3和4题是8分) 在考生文件夹下有一表单文件myform.scx。打开该表单文件,然后在表单设计器环境下完成如下操作: 1. 在属性窗口中设置表单的有关属性,使表单在打开时在VFP主窗口内居中显示。 2. 在属性窗口中设置表单的有关属性,使表单内的Center、East、South、West和North五个按钮的大小都设置为宽60、高25。 3. 将West、Center和East三个按钮设置为顶边对齐,顶边距离是100;将North、Center和South三个按钮设置为左边对齐,左边距离是200。 4. 按Center、East、South、West、North的顺序设置各按钮的Tab键次序。 二、简单应用(2小题,每题20分,计40分) 1. 利用查询设计器创建查询,从考生目录下的xuesheng表和chengji表中查询数学、英语和信息技术三门课中至少有一门课在90分以上(含90分)的学生记录。查询结果包含学号、姓名、数学、英语和信息技术5个字段;各记录按学号降序排序;查询去向为表table1。最后将查询保存在query1.qpr文件中,并运行该查询。 2. 首先创建数据库cj_m,并向其中添加xuesheng表和chengji表。然后在数据库中创建视图view1:利用该视图只能查询少数民族学生的英语成绩;查询结果包含学号、姓名、英语3个字段;各记录按英语成绩降序排序,若英语成绩相同按学号升序排序。最后利用刚创建的视图view1查询视图中的全部信息,并将查询结果存放在表table2中。 三、综合应用(1小题,计30分) 利用表设计器在考生目录下建立表table3,表结构如下:学号 字符型(10); 姓名 字符型(6);课程名 字符型(8);分数 数值型(5,1)。然后编写程序prog1.prg,从xuesheng表和chengji表中找出所有成绩不及格(分数小于60)的学生信息(学号、姓名、 第 35 页, 共 56 页