VFP上机100题库及答案WORD版

更新时间:2024-06-21 18:18:01 阅读量: 综合文库 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

全国计算机等级考试二级Visual FoxPro上机试卷

第 1 套

一、基本操作题(共4小题,第1和2题是7分、第3和4题是8分)

注意:基本操作题为4道SQL题,请将每道题的SQL命令粘贴到SQL1.txt文件,每条命令占一行,第1道题的命令是第1行,第2道题的命令是第2行,以此类推;如果某道题没有做相应行为空。

1、利用SQL SELECT命令将表stock_sl.dbf复制到stock_bk.dbf。

2、利用SQL INSERT命令插入记录(\到stock_bk.dbf表。

3、利用SQL UPDATE命令将stock_bk.dbf表中\股票代码\为\的股票\现价\改为8.88。 4、利用SQL DELETE命令删除stock_bk.dbf表中\股票代码\为\的股票。 二、简单应用(2小题,每题20分,计40分)

1、在考生文件夹下建立数据库sc2,将考生文件夹下的自由表score2添加进sc2中。根据score2表建立一个视图score_view,视图中包含的字段与score2表相同,但视图中只能查询到积分小于等于1500的信息。然后利用新建立的视图查询视图中的全部信息,并将结果按积分升序存入表v2。

2、建立一个菜单filemenu,包括两个菜单项\文件\和\帮助\,\文件\将激活子菜单,该子菜单包括\打开\、\存为\和\关闭\三个菜单项;\关闭\子菜单项用SET SYSMENU TO DEFAULT命令返回到系统菜单,其他菜单项的功能不做要求。 三、综合应用(1小题,计30分)

在考生文件夹下有学生成绩数据库XUESHENG3,包括如下所示三个表文件以及相关的索引文件: 1、XS.DBF(学生文件:学号 C8,姓名 C8,性别 C2,班级 C5;另有索引文件XS.IDX,索引键:学号) 2、CJ.DBF(成绩文件:学号 C8,课程名 C20,成绩 N5.1;另有索引文件CJ.IDX,索引键:学号) 3、CJB.DBF(成绩表文件:学号 C8,班级 C5,姓名 C8,课程名 C12,成绩N5.1)。设计一个名为XS3的菜单,菜单中有两个菜单项\计算\和\退出\。 程序运行时,单击\计算\菜单项应完成下列操作: 将所有选修了\计算机基础\的学生的\计算机基础\成绩,按成绩由高到低的顺序填到成绩表文件CJB.DBF中(事前须将文件中原有数据清空)。单击\退出\菜单项,请使用SET SYSMENU TO DEFAULT命令使程序终止运行。(注:相关数据表文件存在于考生文件夹下) 基本操作题答案:(注意:文本文件易生成错)

1、select * from stock_sl into table stock_bk

2、insert into stock_bk value(\3、update stock_bk set 现价=8.88 where 股票代码=\4、delete from stock_bk where 股票代码=\

简单应用题提示: 1、可用设计器做,也可用命令做。 2、set sysmenu to default 不能简写,原样照抄。第1小题命令如下:

create view score_view as sele * from score2 where 积分<=1500 sele * from score_view order by 积分 into table v2 综合应用题答案:

“计算”菜单项的过程代码为:

close all

sele xs.学号,班级,姓名,课程名,成绩 from xs,cj where xs.学号=cj.学号 and 课程名=\计算机基础\成绩 ; desc into array aaa delete from cjb

insert into cjb from array aaa

“退出”菜单项的命令代码为: set sysmenu to default

第 2 套

一、基本操作题(共4小题,第1和2题是7分、第3和4题是8分)

在考生文件夹下完成下列操作(在\成绩管理\数据库中完成):

1、为\学生\表在\学号\字段上建立升序主索引,索引名和索引表达式均为学号。

2、为\学生\表的\性别\字段定义有效性规则,规则表达式为:性别$\男女\,出错提示信息是:\性别必须是男或女\。 3、在\学生\表的\性别\和\年龄\字段之间插入一个\出生日期\字段,数据类型为\日期型\(修改表结构)。

4、用SQL的UPDATE命令将学生\王三风\的出生日期修改为1983年5月1日,并将该语句粘贴在SQL2.TXT文件中(第一行、只占一行)。 二、简单应用(2小题,每题20分,计40分)

1、根据考生文件夹下的txl表和jsh表建立一个查询query2,查询出单位是\南京大学\的所有教师的姓名、职称、电话,要求查询去向是表,表名是query2.dbf,并执行该查询。

2、建立表单enterf,表单中有两个命令按钮,按钮的名称分别为cmdin和cmdout,标题分别为\进入\和\退出\。 三、综合应用(1小题,计30分)

在考生文件夹下有仓库数据库CK3,包括如下所示两个表文件: CK(仓库号C(4),城市C(8),面积N(4));ZG(仓库号C(4),职工号C(4),工资N(4))。设计一个名为ZG3的菜单,菜单中有两个菜单项\统计\和\退出\。程序运行时,单击\统计\菜单项应完成下列操作:检索出所有职工的工资都大于1220元的职工所管理的仓库信息,将结果保存在wh1数据表(WH1为自由表)文件中,该文件的结构和CK数据表文件的结构一致,并按面积升序排序。单击\退出\菜单项,请使用SET SYSMENU TO DEFAULT命令使程序终止运行。(注:相关数据表文件存在于考生文件夹下) 基本操作题答案:

4、UPDA 学生 SET 出生日期={^1983-05-01} WHER 姓名=\王三风\简单应用题提示: 本题必须用设计器做要注意二点, 1 选表必须先选jsh表,后选txl表; 选字段必须按次序选jsh.姓名,jsh.职称,txl.电话。其它情况均不得分,请务必注意。 综合应用题答案:

“统计”菜单项的过程代码为:

Clos all

SELECT * FROM CK WHERE 仓库号 NOT IN (SELECT 仓库号 FROM ZG WHERE 工资<=1220) AND 仓库号 IN (SELECT 仓库号 FROM ZG); ORDER BY 面积 INTO TABLE wh1

第 1 页, 共 56 页

全国计算机等级考试二级Visual FoxPro上机试卷

“退出”菜单项的命令代码为:SET SYSMENU TO DEFAULT (原样抄命令,不能省)

第 3 套

一、基本操作(共四小题,第1和2题是7分、第3和4题是8分) 1、请在考生文件夹下建立一个数据库KS4。

2、将考生文件夹下的自由表STUD、COUR、SCOR加入到数据库KS4中。

3、为STUD表建立主索引,索引名和索引表达式均为学号;为COUR表建立主索引,索引名和索引表达式均为课程编号; 为SCOR表建立两个普通索引,其中一个索引名和索引表达式均为学号;另一个索引名和索引表达式均为课程编号。 4、在以上建立的各个索引的基础上为三个表建立联系。 二、简单应用(2小题,每题20分,计40分)

1、在考生文件夹中有一个数据库STSC,其中有数据库表STUDENT、SCORE和COURSE。利用SQL语句查询选修了\网络工程\课程的学生的全部信息,并将结果按学号降序存放在NETP.DBF文件中(库的结构同STUDENT,并在其后加入课程号和课程名字段)。

2、在考生文件夹中有一个数据库STSC,其中有数据库表STUDENT,使用一对多报表向导制作一个名为CJ2的报表,存放在考生文件夹中要求:选择父表STUDENT 表中学号和姓名字段,从子表SCORE中选择课程号和成绩,排序字段选择学号(升序),报表式样为简报式,方向为纵向。报表标题为\学生成绩表\。 三、综合应用(1小题,计30分)

在考生文件夹下有工资数据库WAGE3,包括数据表文件: ZG(仓库号C(4),职工号C(4),工资N(4))。 设计一个名为TJ3的菜单,菜单中有两个菜单项\统计\和\退出\。 程序运行时,单击\统计\菜单项应完成下列操作:检索出工资小于或等于本仓库职工平均工资的职工信息,并将这些职工信息按照仓库号升序,在仓库号相同的情况下再按职工号升序存放到EMP1(EMP1为自由表)文件中,该数据表文件和ZG数据表文件具有相同的结构。单击\退出\菜单项,请使用set sysmenu to default命令使程序终止运行(注:相关数据表文件存在于考生文件夹下) 简单应用题答案:

1、sele student.*,course.课程号,课程名 from student,course,score where 课程名=\网络工程\

student.学号=score.学号 and score.课程号=course.课程号 order by student.学号 desc into table netp

综合应用题答案:

“统计”菜单项的过程代码为:

SELECT 仓库号,AVG(工资) AS AvgGZ FROM ZG GROUP BY 仓库号 INTO CURSOR pj

SELECT ZG.* FROM ZG,pj WHERE ZG.仓库号=pj.仓库号 AND ZG.工资<=pj.AvgGZ ORDER BY zg.仓库号,职工号 INTO TABLE EMP1 “退出”菜单项的命令代码为:set sysmenu to default

第 4 套

一、基本操作题(共四小题,第1和2题是7分、第3和4题是8分) 1、请在考生文件夹下建立一个项目WY。

2、将考生文件夹下的数据库KS4加入到新建的项目WY中去。

3、利用视图设计器在数据库中建立视图 NEW_VIEW,视图包括GJHY表的全部字段(顺序同GJHY中的字段)和全部记录。 4、从表HJQK中查询\奖级\为一等的学生的全部信息(HJQK表的全部字段),并按分数的降序存入新表NEW1中。 二、简单应用(2小题,每题20分,计40分)

1、在考生文件夹下,有一个数据库CADB,其中有数据库表ZXKC和ZX。表结构如下:ZXKC(产品编号,品名,需求量,进货日期);ZX(品名,规格,单价,数量)。 在表单向导中选取一对多表单向导创建一个表单。要求:从父表zxkc中选取字段产品编号和品名,从子表zx中选取字段规格和单价,表单样式选取\阴影式\,按钮类型使用\文本按钮\,按产品编号升序排序,表单标题为\照相机\,最后将表单存放在考生文件夹中,表单文件名是form2。

2、在考生文件夹中有数据库CADB,其中有数据库表ZXKC和ZX。建立单价大于等于800,按规格升序排序的本地视图CAMELIST,该视图按顺序包含字段产品编号、品名、规格和单价,然后使用新建立的视图查询视图中的全部信息,并将结果存入表v_camera。 三、综合应用(1小题,计30分)

在考生文件夹下有仓库数据库CHAXUN3包括三个表文件:ZG(仓库号 C(4),职工号 C(4),工资 N(4));DGD(职工号 C(4),供应商号 C(4),订购单号 C(4),订购日期 D,总金额 N(10));GYS(供应商号 C(4),供应商名 C(16),地址 C(10))。 设计一个名为CX3的菜单,菜单中有两个菜单项\查询\和\退出\。程序运行时,单击\查询\应完成下列操作:检索出工资多于1230元的职工向北京的供应商发出的订购单信息,并将结果按总金额降序排列存放在ord1文件(和DGD文件具有相同的结构,ord1为自由表)中。单击\退出\菜单项,请使用set sysmenu to default命令使程序终止运行。(注:相关数据表文件存在于考生文件夹下) 基本操作题答案:

4、sele * from hjqk where 奖级=\一等\分数 DESC into table NEW1 简单应用题:

2、Open data cadb

create view CAMELIST as sele 产品编号,zx.品名,规格,单价 from zx,zxkc where 单价>=800 and zx.品名=zxkc.品名 ; order by 规格

sele * from CAMELIST into table v_camera 综合应用题答案:

“查询”菜单项的过程代码为:

SELECT * FROM DGD WHERE 职工号 IN (SELECT 职工号 FROM ZG WHERE 工资>1230);

AND 供应商号 IN (SELECT 供应商号 FROM GYS WHERE 地址=\北京\总金额 DESC INTO TABLE ord1 “退出”菜单项的命令代码为:SET SYSMENU TO DEFAULT

第 5 套

一、基本操作题(共四小题,第1和2题是7分、第3和4题是8分)

1、打开数据库PROD_M及数据库设计器,其中的两个表的必要的索引已经建立,为这两个表建立永久性联系。

第 2 页, 共 56 页

全国计算机等级考试二级Visual FoxPro上机试卷

2、设置CATEGORY表中\种类名称\字段的默认值为:\饮料\。 3、为PRODUCTS表增加字段:优惠价格 N(8,2)。

4、如果所有商品的优惠价格是在进货价格基础上减少12%,计算所有商品的优惠价格。 二、简单应用(2小题,每题20分,计40分)

1、在考生文件夹中有一个数据库GCS,其中GONGCH表结构如下:GONGCH(编号C(4),姓名C(10),性别C(2),工资N(7,2),年龄N(2),职称C(10))。现在要对GONGCH表进行修改,指定编号为主索引,索引名和索引表达式均为编号;指定职称为普通索引,索引名和索引表达式均为职称;年龄字段的有效性规则在25至65之间(含25和65),默认值是45。

2、在考生文件夹中有数据库GCS,其中有数据库表GONGCH。在考生文件夹下设计一个表单,该表单为GCS库中GONGCH表窗口式输入界面,表单上还有一个名为cmdCLOSE的按钮,标题名为\关闭\,点击该按钮,使用ThisForm.release退出表单。最后将表单存放在考生文件夹中,表单文件名是C_FORM。提示:在设计表单时,打开GCS数据库设计器,将GONGCH表拖入到表单中就实现了GONGCH表的窗口式输入界面,不需要其他设置或修改。 三、综合应用(1小题,计30分)

在考生文件夹下有仓库数据库GZ3,包括两个表文件:ZG(仓库号C(4),职工号C(4),工资N(4));DGD(职工号C(4),供应商号C(4),订购单号 C(4),订购日期D,总金额N(10))。首先在GZ3库中建立工资表:GJ3(职工号C(4),工资N(4)); 设计一个名为YEWU3的菜单,菜单中有两个菜单项\查询\和\退出\。程序运行时,单击\查询\应完成下列操作:检索出与供应商S7、S4和S6都有业务联系的职工的职工号和工资,并按工资降序存放到所建立的GJ3文件中。单击\退出\菜单项,请使用set sysmenu to default命令使程序终止运行。(注:相关数据表文件存在于考生文件夹下) 基本操作题答案:

4、Update PRODUCTS set 优惠价格=进货价格*(1-0.12) 综合应用题答案:

先在命令窗口输入下列命令: OPEN DATABASE GZ3

CREATE TABLE GJ3(职工号 C(4),工资 N(4)) “查询”菜单项的过程代码为:

SELECT 职工号 FROM DGD WHERE 供应商号 IN (\职工号 HAVING COUNT(DISTINCT 供应商号)=3 ; INTO CURSOR aaa

SELECT ZG.职工号,工资 FROM ZG,aaa WHERE ZG.职工号=aaa.职工号 ORDER BY 工资 DESC INTO ARRAY bbb INSERT INTO GJ3 FROM ARRAY bbb

第 6 套

一、基本操作题(共四小题,第1和2题是7分、第3和4题是8分)

1、在考生文件夹下建立数据库KS7;并将自由表SCOR加入数据库中。 2、按下面给出的表结构。给数据库添加表STUD:

字段 字段名 类型 宽度 小数 1 学号 字符型 2 2 姓名 字符型 8

3 年龄 数值型 2 0 4 性别 字符型 2 5 院系号 字符型 2

3、为表STUD建立主索引,索引名为学号,索引表达式为学号,为表SCOR建立普通索引,索引名为学号,索引表达式为学号。 4、STUD表和SCOR表必要的索引已建立,为两表建立永久性的联系。 二、简单应用(2小题,每题20分,计40分)

1、在考生文件夹中有一个学生数据库STU,其中有数据库表STUDENT存放学生信息,使用菜单设计器制作一个名为STMENU的菜单,菜单包括\数据操作\和\文件\两个菜单栏。 每个菜单栏都包括一个子菜单。菜单结构如下: 数据操作 数据输出 文件 保存 退出

其中: 数据输出子菜单对应的过程完成下列操作:打开数据库STU,使用SQL的SELECT语句查询数据库表STUDENT中所有信息,然后关闭数据库。退出菜单项对应的命令为SET SYSMENU TO DEFAULT,使之可以返回到系统菜单。保存菜单项不做要求。

2、在考生文件夹中有一个数据库SDB,其中有数据库表STUDENT2、SC和COURSE2。三个表如下所示:STUDENT2(学号,姓名,年龄,性别,院系编号);

SC(学号,课程号,成绩,备注);COURSE2(课程号,课程名,先修课号,学分)。用SQL语句查询\计算机软件基础\课程的考试成绩在85分以下(含85分)的学生的全部信息并将结果按学号升序存入NOEX.DBF文件中。(库的结构同STUDENT2,并在其后加入成绩字段)。 三、综合应用(1小题,计30分)

现有医院数据库DOCT3,包括三个表文件:YISHENG.DBF(医生)、YAO.DBF(药品)、CHUFANG.DBF(处方)。设计一个名为CHUFANG3的菜单,菜单中有两个菜单项\查询\和\退出\。程序运行时,单击\查询\应完成下列操作:查询同一处方中,包含\感冒\两个字的药品的处方号、药名和生产厂,以及医生的姓名和年龄,把查询结果按处方号升序排序存入JG9数据表中。JG9的结构为:(姓名,年龄,处方号,药名,生产厂)。最后统计这些医生的人数(注意不是人次数),并在JG9中追加一条记录,将人数填入该记录的处方号字段中。 单击\退出\菜单项,请使用set sysmenu to default命令使程序终止运行。(注:相关数据表文件存在于考生文件夹下) 简单应用题答案:

1、“数据输出”菜单项的过程代码为:

open data stu

select * from student close all

第 3 页, 共 56 页

全国计算机等级考试二级Visual FoxPro上机试卷

“退出”菜单项的命令代码为:set sysmenu to default

2、sele student2.*,成绩 from student2,sc,course2 where 课程名=\计算机软件基础\课程号=sc.课程号 and ;

sc.学号=student2.学号 and 成绩<=85 order by student2.学号 into table noex 综合应用题答案:

“查询”菜单项的过程代码为:

SELECT 姓名,年龄,处方号,药名,生产厂 FROM yisheng,yao,chufang WHERE CHUFANG.药编号=YAO.药编号 AND ; CHUFANG.职工号=YISHENG.职工号 AND \感冒\药名 ORDER BY 处方号 INTO TABLE JG9 SELECT * FROM JG9 GROUP BY 姓名 INTO CURSOR aaa COUNT TO J

INSERT INTO JG9 (处方号) VALUES (J)

“退出”菜单项的命令代码为:set sysmenu to default

第 7 套

一、基本操作题(共四小题,第1和2题是7分、第3和4题是8分) 1、在考生文件夹下建立数据库CUST_M。

2、把考生文件夹下的自由表CUST和ORDER1加入到刚建立的数据库中。

3、为CUST表建立主索引,索引名为 primarykey,索引表达式为客户编号。

4、为ORDER1表建立侯选索引,索引名为candi_key,索引表达式为订单编号。为ORDER1表建立普通索引,索引名为regularkey,索引表达式为客户编号。

二、简单应用(2小题,每题20分,计40分)

1、根据order1表建立一个视图order_view,视图中包含的字段及顺序与order1表相同,但视图中只能查询到金额小于1000的信息。然后利用新建立的视图查询视图中的全部信息,并将结果按订单编号升序存入表v1。

2、建立一个菜单my_menu,包括两个菜单项\文件\和\帮助\,\文件\将激活子菜单,该子菜单包括两个菜单项\打开\、\存为\和一个\关闭\命令,\关闭\用SET SYSMENU TO DEFAULT命令返回到系统菜单,其他菜单项的功能不做要求。 三、综合应用(1小题,计30分)

在考生文件夹下有学生管理数据库BOOKS,数据库中有score表(含有学号、物理、高数、英语和学分5个字段,具体类型请查询表结构),其中前4项已有数据。请编写符合下列要求的程序并运行程序:设计一个名为myform的表单,表单中有两个命令按钮,按钮的名称分别为CMDYES和CMDNO,标题分别为\计算\和\关闭\。程序运行时,单击\计算\按钮应完成下列操作:(1)计算每一个学生的总学分并存入对应的学分字段。学分的计算方法是:物理60分以上(包括60分)2学分,否则0分;高数60分以上(包括60分)3学分,否则0分;英语60分以上(包括60分)4学分,否则0分。(2)根据上面的计算结果,生成一个新的表xf,(要求表结构的字段类型与score表对应字段的类型一致),并且按学分升序排序,如果学分相等,则按学号降序排序。单击\关闭\按钮,程序终止运行。 简单应用题答案:

1 create view order_view as sele * from order1 where 金额<1000 sele * from order_view order by 订单编号 into table v1

综合应用题答案: 重要提示,CMDYES和CMDNO要大写 Command1的click事件代码为: update score set 学分=0

update score set 学分=学分+2 where 物理>=60 update score set 学分=学分+3 where 高数>=60 update score set 学分=学分+4 where 英语>=60

sele * from score order by 学分,学号 desc into table xf.dbf Command2的Click事件代码为:thisform.release

第 8 套

一、基本操作题(共四小题,第1和2题是7分、第3和4题是8分) 1、在考生文件夹下建立项目SALES_M。 2、在新建立的项目中建立数据库CUST_M。

3、把自由表CUST和ORDER1加入到新建立的数据库中。

4、为确保ORDER1表元组唯一,请为ORDER1表建立候选索引,索引名为订单编号,索引表达式为订单编号。 二、简单应用(2小题,每题20分,计40分)

1、根据order1表和cust表建立一个查询query1,查询出公司所在地是\北京\的所有公司的名称、订单日期、送货方式,要求查询去向是表,表名是query1.dbf,并执行该查询。

2、建立表单my_form,表单中有两个命令按钮,按钮的名称分别为cmdYes和cmdNo,标题分别为\登录\和\退出\。 三、综合应用(1小题,计30分)

在考生文件夹下有股票管理数据库stock,数据库中有表stock_sl、stock_fk表。stock_sl的表结构是股票代码C(6)、买入价N(7.2)、现价N(7.2)、持有数量N(6)。stock_fk的表结构是股票代码C(6)、浮亏金额N(11.2)。 请编写并运行符合下列要求的程序:设计一个名为menu_lin的菜单,菜单中有两个菜单项\计算\和\退出\。程序运行时,单击\计算\菜单项应完成下列操作:(1)将现价比买入价低的股票信息存入stock_fk表,其中:浮亏金额=(买入价-现价)*持有数量(注意要先把表的stock_fk内容清空)。(2) 根据stock_fk表计算总浮亏金额,存入一个新表stock_z中,其字段名为浮亏金额,类型为N(11.2),该表最终只有一条记录(该表属于库STOCK)。单击\退出\菜单项,请使用set sysmenu to default命令使程序终止运行。 综合应用题答案:

“计算”菜单项的命令代码为:

OPEN DATA STOCK

SELECT 股票代码,(买入价-现价)*持有数量 AS 浮亏金额 FROM STOCK_SL WHERE 买入价>现价 INTO ARRAY aaa DELETE FROM STOCK_FK

第 4 页, 共 56 页

全国计算机等级考试二级Visual FoxPro上机试卷

INSERT INTO STOCK_FK FROM ARRAY aaa

SELECT SUM(浮亏金额) FROM STOCK_FK INTO ARRAY bbb CREATE TABLE STOCK_Z(浮亏金额 N(11,2)) INSERT INTO STOCK_Z FROM ARRAY bbb

“退出”菜单项的命令代码为:set sysmenu to default

第 9 套

一、基本操作题(共四小题,第1和2题是7分、第3和4题是8分)

1、在考生文件夹下打开数据库CUST_M,为CUST表建立主索引,索引名为客户编号,索引表达式为客户编号。 2、CUST表和ORDER1表中必要的索引已经建立,为两表建立永久性联系。 3、为CUST表增加字段:客户等级C(2),字段值允许为空。

4、为ORDER1表\金额\字段增加有效性规则:金额大于零,否则提示:金额必须大于零。 二、简单应用(2小题,每题20分,计40分)

1、在考生文件夹中有一个数据库SDB,其中有数据库表STUDENT2,SC和COURSE2。三个表如下所示:STUDENT2(学号,姓名,年龄,性别,院系编号);SC(学号,课程号,成绩,备注)。COURSE2(课程号,课程名,先修课号,学分)。有一个程序dbtest3.prg,该程序的功能是定义一个视图VS1,检索选课门数是3门以上的每个学生的学号、姓名、平均成绩、最低分、选课门数和院系编号,并按平均成绩降序排序。请修改程序中的错误,并调试该程序,使之正确运行。不得增加或删减程序行。

2、在考生文件夹下有一个数据库CUST_M,数据库中有CUST和ORDER1两个表。请使用菜单设计器制作一个名为MY_MENU的菜单,菜单只有\浏览\一个菜单项。浏览菜单项中有\客户\、\订单\和\退出\三个子菜单: \客户\子菜单使用SELECT * FROM CUST命令对CUST表查询; \订单\子菜单使用SELECT * FROM ORDER1命令对ORDER1表查询;\退出\子菜单使用SET SYSMENU TO DEFAULT命令返回系统菜单。

三、综合应用(1小题,计30分)

在考生文件夹下有学生管理数据库stu_3,数据库中有score_fs表,其表结构是学号C(10)、物理I、高数I、英语I和平均分N(6.2)。成绩如果用-1表示,说明学生没有选学该门课程。其中,该表前四项已有数据。请编写并运行符合下列要求的程序:设计一个名为form_my的表单,表单中有两个命令按钮,按钮的名称分别为cmdyes和cmdno,标题分别为\统计\和\关闭\。程序运行时,单击\统计\按钮应完成下列操作:(1)计算每一个学生的平均分存入平均分字段。注意:分数为-1不记入平均分,例如一个学生的三门成绩存储的是90,-1,70,平均分应是80。(2)根据上面的计算结果,生成一个新的表PJF,该表只包括学号和平均分两项,并且按平均分的降序排序,如果平均分相等,则按学号升序排序。单击\关闭\按钮,程序终止运行。 简单应用题答案:

1 第一处将 ”use ” 改为:”open ”, 第二处将”course2”改为:”sc ”, 第三处将 ”成绩”改为:”平均成绩 desc” 2 注意: 命令必须写完整. 综合应用题答案:

“统计”命令按钮的CLICK事件代码为: clos all USE SCORE_FS GO TOP

DO WHILE NOT EOF() STORE 0 TO RS,PJF IF 物理<>-1 THEN RS=RS+1 PJF=PJF+物理

ENDIF

IF 高数<>-1 THEN RS=RS+1

PJF=PJF+高数

ENDIF

IF 英语<>-1 THEN RS=RS+1

PJF=PJF+英语

ENDIF

IF RS<>0 THEN

REPLACE 平均分 WITH PJF/RS

ENDIF SKIP ENDDO

SELECT 学号,平均分 FROM SCORE_FS ORDER BY 平均分 DESC,学号 INTO TABLE PJF “退出”按钮的CLICK的事件代码为:THISFORM.RELEASE

第 10 套

一、基本操作题(共四小题,第1和2题是7分、第3和4题是8分) 1、在考生文件夹下建立项目SALES_M。

2、把考生文件夹中的数据库CUST_M加入SALES_M项目中。

3、为CUST_M数据库中CUST表增加字段:联系电话C(12),字段值允许\空\ 4、为CUST_M数据库中ORDER1表\送货方式\字段设计默认值为\铁路\。 二、简单应用(2小题,每题20分,计40分)

第 5 页, 共 56 页

全国计算机等级考试二级Visual FoxPro上机试卷

1、在考生文件夹下,有一个数据库SDB,其中有数据库表STUDENT、SC和COURSE。表结构如下:STUDENT(学号,姓名,年龄,性别,院系号);SC(学号,课程号,成绩,备注);COURSE(课程号,课程名,先修课程号,学分)。在表单向导中选取一对多表单向导创建一个表单。要求:从父表STUDENT中选取字段学号和姓名,从子表SC中选取字段课程号和成绩,表单样式选\浮雕式\,按钮类型使用\文本按钮\,按学号降序排序,表单标题为\学生成绩\,最后将表单存放在考生文件夹中,表单文件名是form1。

2、在考生文件夹中有一数据库SDB,其中有数据库表STUDENT,SC和COURSE。建立成绩大于等于60分,按学号升序排序的本地视图GRADELIST,该视图按顺序包含字段学号、姓名、成绩和课程名,然后使用新建立的视图查询视图中的全部信息,并将结果存入表v_grade。 三、综合应用(1小题,计30分)

在考生文件夹下有股票管理数据库stock_4,数据库中有stock_mm表和stock_cc表,stock_mm的表结构是股票代码C(6)、买卖标记L(.T.表示买进,.F.表示卖出)、单价N(7.2)、本次数量N(6)。stock_cc的表结构是股票代码C(6)、持仓数量N(8)。 stock_mm表中一只股票对应多个记录,stock_cc表中一只股票对应一个记录(stock_cc表开始时记录个数为0)。 请编写并运行符合下列要求的程序:设计一个名为menu_lin的菜单,菜单中有两个菜单项\计算\和\退出\。 程序运行时,单击\计算\菜单项应完成下列操作:(1)根据stock_mm统计每只股票的持仓数量,并将结果存放到stock_cc表。计算方法:买卖标记为.T.(表示买进),将本次数量加到相应股票的持仓数量;买卖标记为.F.(表示卖出),将本次数量从相应股票的持仓数量中减去。(注意:stock_cc表中的记录按股票代码从小到大顺序存放)。(2)将stock_cc表中持仓数量最少的股票信息存储到自由表stock_x中(与stock_cc表结构相同)。单击\退出\菜单项,请使用set sysmenu to default命令使程序终止运行。 简单应用题答案: 1 open data sdb

create view GRADELIST AS sele student.学号,姓名,成绩,课程名 from student,sc,course where 成绩>=60 and ; student.学号=sc.学号 and sc.课程号=course.课程号 order by student.学号 sele * from GRADELIST into table v_grade 综合应用题答案:

“计算”菜单项的过程代码为:

SELECT 股票代码,SUM(本次数量) AS 持仓数量 FROM STOCK_MM WHERE 买卖标记 GROUP BY 股票代码 INTO CURSOR aaa

SELECT 股票代码,SUM(本次数量) AS 持仓数量 FROM STOCK_MM WHERE NOT 买卖标记 GROUP BY 股票代码 INTO CURSOR bbb SELECT aaa.股票代码,(aaa.持仓数量-bbb.持仓数量) AS 持仓数量 FROM aaa,bbb WHERE aaa.股票代码=bbb.股票代码 ; ORDER BY aaa.股票代码 INTO ARRAY ccc DELETE FROM STOCK_CC

INSERT INTO STOCK_CC FROM ARRAY ccc

SELECT * TOP 1 FROM STOCK_CC ORDER BY 持仓数量 INTO TABLE STOCK_X “退出”菜单项的命令代码为:set sysmenu to default

第 11 套

一、基本操作题(共四小题,第1和2题是7分、第3和4题是8分) 1、在考生文件夹下建立项目MARKET。 2、在项目MARKET中建立数据库PROD_M。

3、把考生文件夹中自由表CATEGORY和PRODUCTS加入到PROD_M数据库中。

4、为CATEGORY表建立主索引,索引名primarykey,索引表达式为分类编码;为PRODUCTS表建立普通索引,索引名regularkey,索引表达式为分类编码。

二、简单应用(2小题,每题20分,计40分)

1、在考生文件夹中有一个数据库SDB,其中STUDENT表结构如下:STUDENT(学号C(2),姓名C(8),年龄N(2),性别C(2),院系号C(2));现在要对STUDENT表进行修改,指定学号为主索引,索引名和索引表达式均为学号;指定院系号为普通索引,索引名和索引表达式均为院系号;年龄字段的有效性规则在12至30之间(含12和30),默认值是16,性别字段有效性规则是'男'或'女',默认值是'男'。

2、在考生文件夹中有一个数据库SDB,其中有数据库表STUDENT、SC和COURSE。表结构如下:STUDENT(学号,姓名,年龄,性别,院系号);SC(学号,课程号,成绩,备注);COURSE(课程号,课程名,先修课程号,学分)。在考生文件夹下有一个程序test.prg,该程序的功能是检索选修课程门数等于3门或3门以上,每门课程成绩大于或等于70分的每个学生的学号、姓名、性别、平均成绩、最低分和选课门数,并将结果存放到表new_test中。请修改程序中的错误,并调试该程序,使之正确运行。考生不得增加或删减程序行。 三、综合应用(1小题,计30分)

在考生文件夹下有学生管理数据库stu_five:CHENGJI表(学号C(9)、课程号C(3)、成绩I)用于记录学生的考试成绩,其中一个学生可以有多项记录(登记一个学生的多门成绩)。KECHENG表(课程号C(3)、课程名C(10)、最高分I、学号C(9))的内容是所开课程,一门课程只有一个记录(表中有固定的已知数据)。请编写并运行符合下列要求的程序:设计一个名为form_my的表单,表单中有两个命令按钮,按钮的名称分别为cmdyes和cmdno,标题分别为\统计\和\关闭\。程序运行时,单击\统计\按钮应完成下列操作:(1)计算每门课程的最高分,并将结果存入KECHENG表的最高分字段,同时将得此最高分的学生的学号存入该表的学号字段。(2) 根据上面的计算结果,生成一个新的表jiangli,该表按顺序含有来自KECHENG表的课程名和最高分两个字段,并且按最高分降序排序。单击\关闭\按钮,程序终止运行。 简单应用题答案:

1、重要提示,必须写成:性别=‘男’OR 性别=‘女’,否则不得分。

2、第一处将 “while” 改为:”where”, 第二处将”sum”改为:”count ”, 第三处将“to”改为:”into table “ 综合应用题答案:

“统计”命令按钮的CLICK事件代码为: Clos all SELECT 2 USE KECHENG

INDEX ON 课程号 TO KC SELECT 1 USE CHENGJI

DO WHILE NOT EOF()

第 6 页, 共 56 页

全国计算机等级考试二级Visual FoxPro上机试卷

SELECT 2

SEEK A->课程号 IF 最高分成绩

REPLACE 最高分 WITH A->成绩,学号 WITH A->学号 ENDIF SELECT 1 SKIP ENDDO

SELECT 课程名,最高分 FROM KECHENG ORDER BY 最高分 INTO TABLE JIANGLI “关闭”命令按钮的CLICK事件代码为:THISFORM.RELEASE

第 12 套

一、基本操作题(共四小题,第1和2题是7分、第3和4题是8分)

1、打开数据库PROD_M及数据库设计器,其中的两个表的必要的索引已经建立,为这两个表建立永久性联系。 2、设置CATEGORY表中\种类名称\字段的默认值为:\饮料\。 3、为PRODUCTS表增加字段:销售价格N(8,2)。

4、如果所有商品的销售价格是在进货价格基础上增加18.98%,计算所有商品的销售价格。 二、简单应用(2小题,每题20分,计40分) 1、在考生文件夹中有一个数据库SDB,其中有数据库表STUDENT、SC和COURSE表结构如下:STUDENT(学号,姓名,年龄,性别,院系号);SC(学号,课程号,成绩,备注);COURSE(课程号,课程名,先修课程号,学分)。在考生文件夹下有一个程序DBTEST61.PRG,该程序的功能是检索同时选修了课程号C1和C2的学生的学号。请修改程序中的错误,并调试该程序,使之正确运行。考生不得增加或删减程序行。 2、在考生文件夹中有一个数据库SDB,其中有数据库表STUDENT、SC和COURSE。表结构如下:STUDENT(学号,姓名,年龄,性别,院系号);SC(学号,课程号,成绩,备注);COURSE(课程号,课程名,先修课程号,学分)。在考生文件夹下设计一个表单,该表单为SDB库中STUDENT表窗口式输入界面,表单上还有一个名为cmdclose的按钮,标题名为\关闭\,点击该按钮,使用ThisForm.release退出表单。最后将表单存放在考生文件夹中,表单文件名是S_FORM。 提示:在设计表单时,打开SDB数据库,将STUDENT表拖入到表单中就实现了STUDENT表的窗口式输入界面,不需要其他设置或修改。 三、综合应用(1小题,计30分)

在考生文件夹下有股票管理数据库stock_6,数据库中有stock_mm表和stock_cs表,stock_mm的表结构是股票代码C(6)、买卖标记L(.T.表示买进,.F.表示卖出)、单价N(7.2)、本次数量N(6)。tock_cs的表结构是股票代码C(6)、买入次数N(4)、最高价N(7.2)。stock_mm表中一只股票对应多个记录,stock_cs表中一只股票对应一个记录(stock_cs表开始时记录个数为0)。请编写并运行符合下列要求的程序:(1)设计一个名为stock_m菜单,菜单中有两个菜单项\计算\和\退出\。程序运行时,单击\计算\菜单项应完成的操作是计算每支股票的买入次数和(买入时的)最高价存入stock_cs表中,买卖标记.T.(表示买进)(注意:stock_cs表中的记录按股票代码从小到大的物理顺序存放)。 (2)根据stock_cs表计算买入次数最多的股票代码和买入次数存储到的stock_x表中(与stock_cs表对应字段名称和类型一致)。单击\退出\菜单项,程序终止运行。 基本操作题答案:

4、update products set 销售价格=进货价格*(1+18.98/100) 简单应用题答案:

1、第一处将“=”改为“in”, 第二处将“*”改为“学号”, 第三处将“学号”改为“课程号” 综合应用题答案:

“计算”菜单项的过程代码为:

SELECT 股票代码,COUNT(*) AS 买入次数,MAX(单价) AS 最高价 FROM STOCK_MM WHERE 买卖标记 GROUP BY 股票代码 ; ORDER BY 股票代码 INTO ARRAY aaa DELETE FROM STOCK_CS

INSERT INTO STOCK_CS FROM ARRAY aaa

SELECT * TOP 1 FROM STOCK_CS ORDER BY 买入次数 DESC INTO TABLE STOCK_X “退出”菜单项的命令代码为:set sysmenu to default

第 13 套

一、基本操作题(共四小题,第1和2题是7分、第3和4题是8分) 1、在考生文件夹下建立项目STSC_M。 2、把数据库STSC加入到STSC_M项目中。

3、从STUDENT表中查询\金融\系学生信息(STUDENT表全部字段),按学号升序存入新表NEW。

4、用视图设计器在数据库中建立视图NEW_VIEW:视图包括STUDENT表全部字段(字段顺序和STUDENT表一样)和全部记录(元组),记录按学号降序排序。

二、简单应用(2小题,每题20分,计40分)

1、首先打开考生文件夹中的数据库STSC,然后使用表单向导制作一个表单,要求选择STUDENT表中所有字段,表单样式为阴影式;按钮类型为图片按钮;排序字段选择学号(升序);表单标题为\学生信息数据输入维护\,最后将表单存放在考生文件夹中,表单文件名为T1。

2、在考生文件夹中有一个数据库STSC,其中有数据库表STUDENT存放学生信息,使用菜单设计器制作一个名为SMENU1的菜单,菜单包括\数据维护\和\文件\两个菜单栏。每个菜单栏都包括一个子菜单。菜单结构如下: 数据维护

数据表格式输入 文件

退出

其中:数据表格式输入菜单项对应的过程包括下列4条命令:打开数据库STSC的命令,打开表STUDENT的命令,BROWSE命令,关闭数

第 7 页, 共 56 页

全国计算机等级考试二级Visual FoxPro上机试卷

据库的命令。退出菜单项对应命令SET SYSMENU TO DEFAULT,使之可以返回到系统菜单。 三、综合应用(1小题,计30分)

在考生文件夹下有学生管理数据库stu_7,该库中有CHENGJI表和XUESHENG表,各表结构如下:(1) CHENGJI表(学号C(9)、课程号C(3)、成绩N(7.2)),该表用于记录学生的考试成绩,一个学生可以有多项记录(登记一个学生的多门成绩)。(2) XUESHENG表(学号C(9)、姓名C(10)、平均分N(7.2)),该表是学生信息,一个学生只有一个记录(表中有固定的已知数据)。请编写并运行符合下列要求的程序:设计一个名为form_stu的表单,表单中有两个命令按钮,按钮的名称分别为CMDYES和CMDNO,标题分别为\统计\和\关闭\。 程序运行时,单击\统计\按钮应完成下列操作:(1) 根据CHENGJI表计算每个学生的平均分,并将结果存入XUESHENG表的平均分字段。(2) 根据上面的计算结果,生成一个新的自由表pingjun,该表的字段按顺序取自XUESHENG表的学号、姓名和平均分三项,并且按平均分升序排序,如果平均分相等,则按学号升序排序。单击\关闭\按钮,程序终止运行。 重要提示,CMDYES和CMDNO要大写。 简单应用题答案:

“数据表格式输入”菜单项的过程代码为: Open database STSC Use student Browse

Close database

“退出”菜单项的命令代码为:set sysmenu to default 综合应用题答案:

“统计”按钮的CLICK事件代码为:

clos all

USE XUESHENG DO WHILE NOT EOF()

SELECT AVG(成绩) FROM CHENGJI WHERE 学号=XUESHENG.学号 INTO ARRAY aaa REPLACE 平均分 WITH aaa(1,1) SKIP

ENDDO

SELECT 学号,姓名,平均分 FROM XUESHENG ORDER BY 平均分,学号 INTO TABLE PINGJUN “关闭”按钮的CLICK事件代码为:thisform.release

第 14 套

一、基本操作题(共四小题,第1和2题是7分、第3和4题是8分)

1、打开考生文件夹下的STSC数据库,为STUDENT表建立主索引,索引名为学号,索引表达式为学号。

2、为SCORE表建立普通索引,索引名为学号,索引表达式为学号,并根据建立的索引建立STUDENT表和SCORE表之间的联系。 3、为以上联系指定参照完整性,其中插入规则为\限制\,更新规则和删除规则为\级联\。

4、逻辑删除STUDENT表中学号为\的记录。 二、简单应用(2小题,每题20分,计40分)

1、在考生文件夹中有一个数据库STSC,其中有数据库表STUDENT、SCORE和COURSE。利用SQL语句查询选修了\课程的学生的全部信息,并将结果按学号升序存放在CPLUS.DBF文件中(库的结构同STUDENT,并在其后加入课程号和课程名字段)。

2、在考生文件夹中有一个数据库STSC,其中有数据库表STUDENT,使用报表向导制作一个名为P1的报表,存放在考生文件夹中。要求:选择 STUDENT表中所有字段,报表式样为经营式;报表布局:列数为1,方向为纵向,字段布局为列;排序字段选择学号(升序)报表标题为\学生基本情况一览表\。 三、综合应用(1小题,计30分)

在考生文件夹下有职员管理数据库staff_8,数据库中有YUANGONG表和ZHICHENG表,YUANGONG的表结构是职工编码C(4)、姓名C(10)、职称代码C(1)、工资N(10.2)。ZHICHENG的表结构是职称代码C(1)、职称名称C(8)、增加百分比N(10,2),然后编写并运行符合下列要求的程序:设计一个名为staff_m的菜单,菜单中有两个菜单项\计算\和\退出\。程序运行时,单击\计算\菜单项应完成下列操作:在表yuangong中增加一新的字段:新工资 N(10,2)。现在要给每个人增加工资,请计算YUANGONG表的新工资字段,方法是根据ZHICHENG表中相应职称的增加百分比来计算:新工资=工资*(1+增加百分比/100);单击\退出\菜单项对应命令SET SYSMENU TO DEFAULT,使之可以返回到系统菜单,程序终止运行。 简单应用题答案:

1、Sele student.*,course.课程号,课程名 from student,score,course where 课程名=\and student.学号=score.学号 and ;

Score.课程号=course.课程号 order by student.学号 into table cplus

综合应用题答案:

“计算”菜单项的过程代码为: USE ZHICHENG IN 2 USE YUANGONG IN 1

ALTER TABLE YUANGONG ADD 新工资 N(10,2) SELECT 2

DO WHILE NOT EOF() SELECT 1

UPDATE YUANGONG SET 新工资=工资*(1+ZHICHENG.增加百分比/100) WHERE YUANGONG.职称代码=ZHICHENG.职称代码 SELECT 2 SKIP ENDDO

“退出”菜单项的命令代码为:SET SYSMENU TO DEFAULT

第 15 套

第 8 页, 共 56 页

全国计算机等级考试二级Visual FoxPro上机试卷

一、基本操作题(共四小题,第1和2题是7分、第3和4题是8分) 1、在考生文件夹下建立数据库STSC。

2、把自由表STUDENT、COURSE、SCORE加入到数据库中。

3、为SCORE表的\成绩\字段建立有效性规则:成绩大于等于零,否则提示信息:成绩必须大于等于零。 4、为STUDENT表建立主索引,索引名为PRIMARYKEY,索引表达式为学号。 二、简单应用(2小题,每题20分,计40分)

1、在考生文件夹中有一个商品数据库COMMDB,其中有数据库表SP存放商品信息,使用菜单设计器制作一个名为SMENU的菜单,菜单包括\数据操作\和\文件\两个菜单栏。每个菜单栏都包括一个子菜单。菜单结构如下: 数据操作

数据输出 文件

退出

其中:数据输出子菜单对应的过程完成下列操作:打开数据库COMMDB,使用SQL的SELECT语句查询数据库表SP中所有信息,然后关闭数据库。退出菜单项对应的过程含有命令SET SYSMENU TO DEFAULT,使之可以返回到系统菜单。

2、在考生文件夹中有一个数据库SDB,其中有数据库表STUDENT2、SC和COURSE2。三个表如下所示:STUDENT2(学号,姓名,年龄,性别,院系编号);SC(学号,课程号,成绩,备注);COURSE2(课程号,课程名,先修课号,学分)。用SQL语句查询\数据库\课程的考试成绩在85分以上(含85分)的学生的全部信息并将结果按学号升序存入自由表NINE.DBF文件中(库的结构同STUDENT2,并在其后加入成绩字段)。

三、综合应用(1小题,计30分)

考生文件夹下有学生管理数据库stu_nine,数据库中有score1表,其库结构是学号C(10)、少数民族L、优秀干部L、三好生L、考试成绩I、总成绩I。其中,前五项已有数据。请编写并运行符合下列要求的程序:设计一个名为form_stu的表单,表单中有两个命令按钮,按钮的名称分别为CMDYES和CMDNO,标题分别为\计算\和\关闭\。程序运行时,单击\计算\按钮应完成下列操作:(1) 计算每一个学生的总成绩。总成绩的计算方法是:考试成绩+加分,加分的规则是:如果该生是少数民族(相应数据字段为.T.)加分5分,优秀干部加分10分,三好生加分20分,加分不累计,取最高的。例如,如果该生既是少数民族又是三好生,加分为20分。如果都不是,总成绩=考试成绩;(2) 根据上面的计算结果,生成一个新的自由表ZCJ,该表只包括学号和总成绩两项,并按总成绩的升序排序,如果总成绩相等,则按学号的升序排序。单击\关闭\按钮,程序终止运行。 简单应用题答案:

1、“数据输出”的过程代码为:

open data commdb sele * from sp clos data

“退出”的命令代码为:set sysmenu to default

2、sele student2.*,成绩 from student2,sc,course2 where student2.学号=sc.学号 and sc.课程号=course2.课程号 and ;

课程名=\数据库\成绩>=85 order by student2.学号 into table nine 综合应用题答案:

“计算”命令按钮的CLICK事件代码为: USE SCORE1 DO WHILE NOT EOF() STORE 0 TO JF DO CASE CASE 三好生 JF=20 CASE 优秀干部 JF=10 CASE 少数民族 JF=5 OTHERWISE JF=0 ENDCASE

REPLACE 总成绩 WITH 考试成绩+JF SKIP ENDDO

SELECT 学号,总成绩 FROM SCORE1 ORDER BY 总成绩,学号 INTO TABLE ZCJ “关闭”命令按钮的CLICK事件代码为:thisform.release

第 16 套

一、基本操作题(共四小题,第1和2题是7分、第3和4题是8分) 1、在考生文件夹下建立项目STSC_M。 2、把数据库STSC加入到STSC_M项目中。

3、打开STSC数据库,三个表中必要的索引已经建立,为三个表建立永久性联系。 4、为COURSE表增加字段:开课学期 I。 二、简单应用(2小题,每题20分,计40分)

1、在考生文件夹中有数据库STSC,其中有数据库表STUDENT、SCORE和COURSE。三个表如下所示:STUDENT(学号,姓名,性别,院系,出生日期);SCORE(学号,课程编号,成绩);COURSE(课程编号,课程名称,开课院系,开课学期)。 在考生文件夹下有一个程序

dbtest4.prg,该程序的功能是检索选课门数是3门以上的(包括3门)每个学生的学号、姓名、平均成绩、最低分、选课门数和院系,并按平均成绩降序排序,同时将结果存放到表TEST1中,请修改程序中的错误,并调试该程序,使之正确运行。不得增加或删减程序行。

第 9 页, 共 56 页

全国计算机等级考试二级Visual FoxPro上机试卷

2、在考生文件夹中有数据库STSC,其中有数据库表STUDENT、SCORE和COURSE。三个表如下所示:STUDENT(学号,姓名,性别,院系,出生日期);SCORE(学号,课程编号,成绩);COURSE(课程编号,课程名称,开课院系,开课学期)。使用CREATE QUERY命令建立一个文件名为QUSC.QPR的查询,要求含有学号、姓名、成绩和课程名称,按课程名称升序排序,查询去向是表(表名是QUSC.DBF),然后执行该查询。

三、综合应用(1小题,计30分)

在考生文件夹下有职员管理数据库staff_10,数据库中的YUANGONG表结构是职工编码C(4)、姓名C(10)、夜值班天数I、昼值班天数I、加班费N(10.2)。ZHIBAN表结构是值班时间C(2)、每天加班费N(7.2),ZHIBAN表中只有两条记录,分别记载了白天和夜里的每天加班费标准。 请编写运行符合下列要求的程序:设计一个名为staff_m的菜单,菜单中有两个菜单项\计算\和\退出\。程序运行时,单击\计算\菜单项应完成下列操作:(1)计算YUANGONG表的加班费字段值,计算方法是:加班费=夜值班天数*夜每天加班费+昼值班天数*昼每天加班费 (2)根据上面的结果,将员工的职工编码、姓名、加班费存储到的自由表staff_d中,并按加班费降序排列,如果加班费相等,则按职工编码的升序排列。单击\退出\菜单项,请使用set sysmenu to default命令使程序终止运行。 简单应用题答案:

1、“sum”改为“count”,第二处加“desc”, 第三处改为:into table test1。改好后运行。 综合应用题答案:

“计算”菜单项的过程代码为:

SELECT 每天加班费 FROM ZHIBAN WHERE 值班时间=\昼\ SELECT 每天加班费 FROM ZHIBAN WHERE 值班时间=\夜\ UPDATE YUANGONG SET 加班费=夜值班天数*ye(1)+昼值班天数*zhou(1)

SELECT 职工编码,姓名,加班费 FROM YUANGONG ORDER BY 加班费 DESC,职工编码 INTO TABLE STAFF_D “退出”菜单项的命令代码为:SET SYSMENU TO DEFAULT

第 17 套

一、基本操作题(共四小题,第1和2题是7分、第3和4题是8分) 1. 创建一个新的项目\客户管理\。

2. 在新建立的项目\客户管理\中创建数据库\订货管理\。 3. 在\订货管理\数据库中建立表order_list,表结构如下: 客户号 字符型(6) 订单号 字符型(6) 订购日期 日期型

总金额 浮动型(15.2)

4. 为order_list表创建一个主索引,索引名和索引表达式均是\订单号\。 二、简单应用(2小题,每题20分,计40分)

1. 将order_list1表中的全部记录追加到order_list表中,然后用SQL SELECT语句完成查询:按总金额降序列出所有客户的客户号、客户名及其订单号和总金额,并将结果存储到results表中(其中客户号、客户名取自customer表,订单号、总金额取自order_list表)。

2. 打开form1表单,并按如下要求进行修改(注意:最后保存所做的修改):(1) 表单中有5个随机排列的命令按钮,不要移动或改变\基准按钮\位置(否则影响成绩),然后使其他命令按钮与\基准按钮\左部对齐;(2) 在这组命令按钮的右边添加一个表格控件,并将它的RecordSourceType属性设置为\表\,然后设置另一个相关属性使在表格控件中显示customer表的记录。 三、综合应用(1小题,计30分)

当order_detail表中的单价修改后,应该根据该表的\单价\和\数量\字段修改order_list表的总金额字段,现在编写程序实现此功能,具体要求和注意事项如下:(1) 根据order_detail表中的记录重新计算order_list表的总金额字段的值;(2) 一条order_list记录可以对应几条order_detail记录;(3) 在编程前应保证在基础操作中正确地建立了order_list表,在简单应用中为该表追加了记录(注意只能追加一次);(4) 最后将order_list表中的记录按总金额降序排序存储到od_new表中(表结构与order_list表完全相同);(5) 将程序保存为prog1.prg文件。 简单应用题答案:

1、Append from order_list1

Sele customer.客户号,customer.客户名,订单号,总金额 from customer,order_list ; Where customer.客户号=order_list.客户号 order by 总金额 desc into table results 综合应用题答案: 程序PROG1的内容如下 CLOS ALL

SELECT 订单号,SUM(数量*单价) AS 总金额 FROM ORDER_DETAIL GROUP BY 订单号 INTO CURSOR AAA SELECT 2

USE ORDER_LIST

DO WHILE NOT EOF()

SELECT 总金额 FROM AAA WHERE AAA.订单号=order_list.订单号 INTO ARRAY BBB REPLACE 总金额 WITH BBB(1) SKIP ENDDO

SELECT * FROM ORDER_LIST ORDER BY 总金额 DESC INTO TABLE OD_NEW

第 18 套

一、基本操作题(共四小题,第1和2题是7分、第3和4题是8分)

1. 打开\订货管理\数据库,并将表order_list添加到该数据库中。 2. 在\订货管理\数据库中建立表order_detail,表结构描述如下: 订单号 字符型(6)

第 10 页, 共 56 页

全国计算机等级考试二级Visual FoxPro上机试卷

器件号 字符型(6) 器件名 字符型(16) 单价 浮动型(10.2) 数量 整型

3. 为新建立的order_detail表建立一个普通索引,索引名和索引表达式均是\订单号\。

4. 建立表order_list和表order_detail间的永久联系(通过\订单号\字段)。 二、简单应用(2小题,每题20分,计40分)

1. 将 order_detail1表中的全部记录追加到order_detail表中,然后用SQLSELECT语句完成查询:列出所有订购单的订单号、订购日期、器件号、器件名和总金额(按订单号升序,订单号相同再按总金额降序)并将结果存储到results表中(其中订单号、订购日期、总金额取自order_list表,器件号、器件名取自order_detail表)。

2. 打开modi1.prg命令文件,该命令文件包含3条SQL语句,每条SQL语句中都有一个错误,请改正之(注意:在出现错误的地方直接改正,不可以改变SQL语句的结构和SQL短语的顺序)。 三、综合应用(1小题,计30分)

在做本题前首先确认在基础操作中已经正确地建立了order_detail表,在简单应用中已经成功地将记录追加到order_detail表。当order_detail表中的单价修改后,应该根据该表的\单价\和\数量\字段修改order_list表的总金额字段,现在有部分order_list记录的总金额字段值不正确,请编写程序挑出这些记录,并将这些记录存放到一个名为od_mod的表中(与order_list表结构相同,自己建立),然后根据order_detail表的\单价\和\数量\字段修改od_mod表的总金额字段(注意一个od_mod记录可能对应几条order_detail记录),最后od_mod表的结果要求按总金额升序排序,编写的程序最后保存为prog1.prg。 简单应用题答案: 1、clos all

use order_detail

append from order_detail1

sele order_list.订单号,订购日期,器件号,器件名,总金额 from order_list,order_detail;

where order_list.订单号=order_detail.订单号 order by order_list.订单号,总金额 desc into table results 2、第一处将“WITH”改为“=”, 第二处将“ORDER BY””改为“GROUP BY”, 第三处将“FOR” 改为 “WHERE” 综合应用题答案:程序prog1.prg内容如下:

SELECT 订单号,SUM(单价*数量) AS 总金额 FROM ORDER_DETAIL GROUP BY 订单号 INTO CURSOR AAA

SELECT ORDER_LIST.* FROM ORDER_LIST,AAA WHERE ORDER_LIST.订单号=AAA.订单号 AND ORDER_LIST.总金额<>AAA.总金额 ; INTO TABLE OD_MOD USE OD_MOD

DO WHILE NOT EOF()

SELECT AAA.总金额 FROM AAA WHERE AAA.订单号=OD_MOD.订单号 INTO ARRAY BBB REPLACE 总金额 WITH BBB(1) SKIP ENDDO

SELECT * FROM OD_MOD ORDER BY 总金额 INTO CURSOR CCC SELECT * FROM CCC INTO TABLE OD_MOD

第 19 套

一、基本操作题(共四小题,第1和2题是7分、第3和4题是8分)

1. 打开\订货管理\数据库,并将表order_list添加到该数据库中。 2. 在\订货管理\数据库中建立表customer,表结构描述如下: 客户号 字符型(6) 客户名 字符型(16) 地址 字符型(20) 电话 字符型(14)

3. 为新建立的customer表创建一个主索引,索引名和索引表达式均是\客户号\。 4. 将表order_detail从数据库中移出,并永久删除。 二、简单应用(2小题,每题20分,计40分)

1. 将customer1表中的全部记录追加到customer表中,然后用SQL SELECT语句完成查询:列出目前有订购单的客户信息(即有对应的order_list记录的customer表中的记录),同时要求按客户号升序排序,并将结果存储到results表中(表结构与customer表结构相同)。

2. 打开并按如下要求修改form1表单文件(最后保存所做的修改):(1) 在\确定\命令按钮的click事件(过程)下的程序有两处

错误,请改正之;(2) 设置Text2控件的有关属性,使用户在输入口令时显示\(星号)。 三、综合应用(1小题,计30分)

使用报表设计器建立一个报表,具体要求如下:(1) 报表的内容(细节带区)是order_list表的订单号、订购日期和总金额;(2) 增加数据分组,分组表达式是 \客户号\,组标头带区的内容是\客户号\,组注脚带区的内容是该组订单的\总金额\合计;(3) 增加标题带区,标题是 \订单分组汇总表(按客户)\,要求是3号字、黑体,括号是全角符号;(4) 增加总结带区,该带区的内容是所有订单的总金额合计。最后将建立的报表文件保存为report1.frx文件。 提示:在考试的过程中可以使用\显示→预览\菜单查看报表的效果。 简单应用题答案: 1、clos all

use customer

append from customer1

sele * from customer where 客户号 IN (sele dist 客户号 from order_list) order by 客户号 into table results 2、第一处改为:if thisform.text1.value = thisform.text2.value, 第二处改为:thisform.release

第 11 页, 共 56 页

全国计算机等级考试二级Visual FoxPro上机试卷

将text2的passwordchar属性设置为 *

第 20 套

一、基本操作题(共四小题,第1和2题是7分、第3和4题是8分) 在考生文件夹下的\订货管理\数据库中完成如下操作:

1. 将order_detail、order_list和customer表添加到数据库。

2. 为order_list表创建一个主索引,索引名和索引表达式均是\订单号\。

3. 建立表order_list和表order_detail间的永久联系(通过\订单号\字段)。

4. 为以上建立的联系设置参照完整性约束:更新规则为\限制\,删除规则为\级联\,插入规则为\限制\。 二、简单应用(2小题,每题20分,计40分)

1. 列出客户名为\三益贸易公司\的订购单明细 (order_detail)记录将结果先按\订单号\升序排列,同一订单的再按\单价\降序排列,并将结果存储到results表中(表结构与order_detail表结构相同)。

2. 考生文件夹下有一个form1表单文件,其中三个命令按钮click事件下的语句都是错误的,请按如下要求进行修改(最后保存所做的修改):(1) 单击\刷新标题\命令按钮时,使表单的标题为\简单应用\;(2) 单击\订单记录\命令按钮时,使表格控件中显示order_list表中的记录;(3) 单击\关闭表单\命令按钮时,关闭表单。注意:每处错误只能在原语句上进行修改,不可以增加语句。 三、综合应用(1小题,计30分)

首先为order_detail表增加一个新字段:新单价(类型与原来的单价字段相同),然后编写满足如下要求的程序:根据order_list 表中的\订购日期\字段值确定order_detail表的\新单价\字段的值,原则是:订购日期为2001年的\新单价\字段的值为原单价的90%,订购日期为2002年的\新单价\字段的值为原单价的110%(注意:在修改操作过程中不要改变order_detail表记录的顺序),将

order_detail表中的记录存储到od_new表中(表结构与order_detail表完全相同);最后将程序保存为prog1.prg,并执行该程序。接着再利用 Visual Foxpro的\快速报表\功能建立一个的简单报表,该报表内容按顺序含有order_detail表的订单号、器件号、器件名、新单价和数量字段的值,将报表文件保存为report1.frx。 简单应用题答案:

1、sele order_detail.* from order_detail,order_list,customer wher customer.客户号=order_list.客户号 and order_list.;

订单号=order_detail.订单号 and 客户名=“三益贸易公司” order by order_detail.订单号,单价 desc into table results 2、“刷新标题”命令按钮的CLICK事件代码为:Thisform.caption=“简单应用”

“订单记录”命令按钮的CLICK事件代码为:Thisform.grid1.recordsource=“order_list.dbf” “关闭表单”命令按钮的CLICK事件代码为:Thisform.release 综合应用题答案:PROG1.PRG的内容如下:

SELECT 订单号 FROM ORDER_LIST WHERE YEAR(订购日期)=2001 INTO CURSOR AAA DO WHILE NOT EOF()

UPDATE ORDER_DETAIL SET 新单价=单价*0.9 WHERE 订单号=AAA.订单号 SKIP ENDDO

SELECT 订单号 FROM ORDER_LIST WHERE YEAR(订购日期)=2002 INTO CURSOR BBB DO WHILE NOT EOF()

UPDATE ORDER_DETAIL SET 新单价=单价*1.1 WHERE 订单号=BBB.订单号 SKIP ENDDO

SELECT * FROM ORDER_DETAIL INTO TABLE OD_NEW

第 21 套

一、基本操作题(共四小题,第1和2题是7分、第3和4题是8分)

1. 打开\订货管理\数据库,并将表order_detail添加到该数据库中。 2. 为表order_detail的\单价\字段定义默认值为NULL。

3. 为表order_detail的\单价\字段定义约束规则:单价 > 0 ,违背规则时的提示信息是:\单价必须大于零\。 4. 关闭\订货管理\数据库,然后建立自由表customer,表结构如下: 客户号 字符型(6) 客户名 字符型(16) 地址 字符型(20) 电话 字符型(14)

二、简单应用(2小题,每题20分,计40分)

1. 列出总金额大于所有订购单总金额平均值的订购单(order_list)清单(按客户号升序排列),将结果存到results表中(表结构与order_list表结构相同)。

2. 利用Visual Foxpro的\快速报表\功能建立一个满足如下要求的简单报表:(1) 报表的内容是order_detail表的记录(全部记录,横向);(2) 增加\标题带区\,然后在该带区中放置一个标签控件,该标签控件显示报表的标题\器件清单\;(3) 将页注脚区默认显示的当前日期改为显示当前的时间;(4) 最后将建立的报表保存为report1.frx。 三、综合应用(1小题,计30分)

首先将order_detail表全部内容复制到od_bak表,然后对od_bak表编写完成如下功能的程序:1. 把\订单号\尾部字母相同并且订货相同(\器件号\相同)的订单合并为一张订单,新的\订单号\就取原来的尾部字母,\单价\取最低价,\数量\取合计;2. 结果先按新的\订单号\升序排序,再按\器件号\升序排序;3. 最终记录的处理结果保存在od_new表中;4. 最后将程序保存为prog1.prg,并执行该程序。 简单应用题答案:

1、Sele * from order_list where 总金额>(sele avg(总金额) from order_list) order by 客户号 into table results 综合应用题答案:程序PROG1.PRG内容如下: USE OD_BAK

COPY STRUCTURE TO OD_NEW

第 12 页, 共 56 页

全国计算机等级考试二级Visual FoxPro上机试卷

SELECT RIGHT(订单号,1) AS 新订单号,器件名,器件号,RIGHT(订单号,1)+器件号 AS NEWNUM FROM OD_BAK GROUP BY NEWNUM ; ORDER BY 新订单号,器件号 INTO CURSOR AAA DO WHILE NOT EOF()

SELECT MIN(单价) AS 最低价,SUM(数量) AS 数量合计 FROM OD_BAK WHERE RIGHT(订单号,1)=AAA.新订单号 AND ;

器件号=AAA.器件号 INTO ARRAY BBB

INSERT INTO OD_NEW VALUES (AAA.新订单号,AAA.器件号,AAA.器件名,BBB(1,1),BBB(1,2)) SKIP ENDDO

第 22 套

一、基本操作题(共四小题,第1和2题是7分、第3和4题是8分) 1. 创建一个新的项目sdb_p,并在该项目中创建数据库sdb。 2. 将考生文件夹下的自由表student和sc添加到sdb数据库中。 3. 在sdb数据库中建立表course,表结构如下: 字段名 类型 宽度 课程号 字符型 2 课程名 字符型 20 学时 数值型 2

随后向表中输入6条记录,记录内容如下(注意大小写): 课程号 课程名 学时 c1 C++ 60 c2 Visual FoxPro 80 c3 数据结构 50 c4 JAVA 40 c5 Visual BASIC 40 c6 OS 60

4. 为course表创建一个主索引,索引名为cno、索引表达式为\课程号\。 二、简单应用(2小题,每题20分,计40分)

1. 根据sdb数据库中的表用SQL SELECT命令查询学生的学号、姓名、课程名和成绩,结果按 \课程名\升序排序,\课程名\相同时按\成绩\降序排序,并将查询结果存储到sclist表中。

2. 使用表单向导选择student表生成一个名为form1的表单。要求选择student表中所有字段,表单样式为\阴影式\;按钮类型为\图片按钮\;排序字段选择\学号\(升序);表单标题为\学生基本数据输入维护\。 三、综合应用(1小题,计30分)

1.打开基本操作中建立的数据库sdb,使用SQL的CREATE VIEW命令定义一个名称为SVIEW的视图,该视图的SELECT语句完成查询:选课数是3门以上(不包括3门)的每个学生的学号、姓名、平均成绩、最低分和选课数,并按\平均成绩\降序排序。最后将定义视图的命令代码存放到命令文件T1.PRG中并执行该文件。接着利用报表向导制作一个报表。要求选择SVIEW视图中所有字段;记录不分组;报表样式为\随意式\;排序字段为 \学号\(升序);报表标题为\学生成绩统计一览表\;报表文件名为pstudent。

2.设计一个名称为form2的表单,表单上有\浏览\(名称为Command1)和\打印\(Command2)两个命令按钮。鼠标单击\浏览\命令按钮时,先打开数据库sdb,然后执行SELECT语句查询前面定义的SVIEW视图中的记录(两条命令不可以有多余命令),鼠标单击\打印\命令按钮时,调用报表文件pstudent浏览报表的内容(一条命令,不可以有多余命令)。 简单应用题答案:

1、 sele student.学号,姓名,课程名,成绩 from student,sc,course where student.学号=sc.学号 And sc.课程号=course.课程号;

order by 课程名,成绩 desc into table sclist 综合应用题答案:

1、程序T1.PRG的内容如下:

CREATE VIEW SVIEW AS SELECT SC.学号,姓名,AVG(成绩) AS 平均成绩,MIN(成绩) AS 最低分,COUNT(课程号) AS 选课数 ; FROM SC,STUDENT WHERE SC.学号=STUDENT.学号 GROUP BY STUDENT.学号 HAVING COUNT(课程号)>3 ORDER BY 平均成绩 DESC 2、“浏览”命令按钮的CLICK的事件代码为: open database sdb

select * from sview

“打印”命令按钮的CLICK的事件代码为: report form pstudent.frx preview

第 23 套

一、基本操作题(共四小题,第1和2题是7分、第3和4题是8分) 在考生文件夹下的数据库salarydb中完成如下操作: 1. 在数据库salarydb中建立表dept,表结构如下: 字段名 类型 宽度 部门号 字符型 2 部门名 字符型 20

随后在表中输入5条记录,记录内容如下: 部门号 部门名 01 制造部 02 销售部 03 项目部 04 采购部

05 人事部

第 13 页, 共 56 页

全国计算机等级考试二级Visual FoxPro上机试卷

2. 为dept表创建一个主索引(升序),索引名和索引表达式均是\部门号\。 3. 通过\部门号\字段建立salarys表和dept表间的永久联系。

4. 为以上建立的联系设置参照完整性约束:更新规则为\级联\;删除规则为\限制\;插入规则为\限制\。 二、简单应用(2小题,每题20分,计40分)

1. 使用报表向导建立一个简单报表。要求选择salarys表中所有字段;记录不分组;报表样式为\随意式\;列数为\,字段部局为\列\,方向为\纵向\;排序字段为\雇员号\(升序);报表标题为 \雇员工资一览表\;报表文件名为print1。

2. 在考生文件夹下有一个名称为form1的表单文件,表单中的两个命令按钮的click事件下的语句都有错误,其中一个按钮的名称有错误。请按如下要求进行修改,修改完成后保存所做的修改:(1) 将按钮\刘缆雇员工资\名称修改为\浏览雇员工资\;(2) 单击\浏览雇员工资\命令按钮时,使用SELECT命令查询salarys表中所有字段信息供用户浏览;(3) 单击\退出表单\命令按钮时,关闭表单。注意:每处错误只能在原语句上进行修改,不能增加语句行。 三、综合应用(1小题,计30分)

1.请编写名称为change_c的程序并执行;该程序实现下面的功能:将雇员工资表salarys进行备份,备份文件名为baksals.dbf;利用\人事部\向\财务部\提供的雇员工资调整表c_salary1的\工资\,对salarys表的\工资\进行调整(请注意:按\雇员号\相同进行调整,并且只是部分雇员的工资进行了调整,其他雇员的工资不动);最后将salarys表中的记录存储到od_new表中(表结构与salarys表完全相同)

2.设计一个文件名为form2的表单,上面有\调整\(名称Command1)和\退出\(名称Command2)两个命令按钮。单击\调整\命令按钮时,调用change_c命令程序实现工资调整; 单击\退出\命令按钮时,关闭表单。注意:在两个命令按钮中均只有一条命令,不可以有多余命令。 简单应用题答案:

2、“浏览雇员工资”命令按钮的CLICK事件代码为:SELECT * FROM salarys 3、“退出表单”命令按钮的CLICK事件代码为:THISFORM .RELEASE 综合应用题答案:

1、程序change_c的内容如下:

SELECT * FROM SALARYS INTO TABLE BAKSALS USE C_SALARY1

DO WHILE NOT EOF()

UPDATE SALARYS SET 工资=C_SALARY1.工资 WHERE 雇员号=C_SALARY1.雇员号 SKIP

ENDDO

SELECT * FROM SALARYS INTO TABLE OD_NEW

2、“调整”命令按钮的CLICK事件代码为:DO CHANGE_C

“退出”命令按钮的CLICK事件代码为:THISFORM.RELEASE

第 24 套

一、基本操作题(共四小题,第1和2题是7分、第3和4题是8分)

1. 打开项目文件salary_p,将考生文件夹下的数据库salarydb添加到该项目中。

2. 在salarydb数据库中为dept表创建一个主索引(升序),索引名和索引表达式均是 \部门号\;为 salarys表创建一个普通索引(升序),索引名和索引表达式均是\部门号\,再创建一个主索引 (升序)、索引名和索引表达式均是\雇员号\。 3. 通过\部门号\字段建立salarys表和dept表间的永久联系。

4. 为以上建立的联系设置参照完整性约束:更新规则为\限制\;删除规则为\级联\;插入规则为\限制\。 二、简单应用(2小题,每题20分,计40分)

1.创建一个名称为sview的视图,该视图的SELECT语句查询salarydb数据库中salarys表(雇员工资表)的部门号、雇员号、姓名、工资、补贴、奖励、失业保险、医疗统筹和实发工资,其中实发工资由工资、补贴和奖励三项相加,然后再减去失业保险和医疗统筹得出,结果按\部门号\降序排序,最后将定义视图的命令代码存放到命令文件T1.PRG中并执行该程序。

2.设计一个名称为form1的表单,表单以表格方式(与BROWSE窗口方式相似,表格名称为grdSalarys)显示salarydb数据库中salarys表的记录,供用户浏览。在该表单的右下方有一个命令按钮,名称为Command1,标题为\退出浏览\,当单击该按钮时退出表单。

三、综合应用(1小题,计30分)

在考生文件夹下,对数据库salarydb完成如下综合应用:设计一个名称为form2的表单,在表单上设计一个\选项组\(又称选项按钮组,名称为Optiongroup1)及两个命令按钮\生成\(名称为Command1)和\退出\(名称为Command2);其中选项按钮组有\雇员工资表\(名称为Option1)、\部门表\(名称为Option2)和\部门工资汇总表\(名称为Option3)三个选项按钮。然后为表单建立数据环境,并向数据环境添加dept表(名称为Cursor1)和salarys表(名称为Cursor2)。 各选项按钮功能如下:(1) 当用户选择\雇员工资表\选项按钮后,再按\生成\命令按钮,查询显示在简单应用中创建的sview视图中的所有信息并把结果存入表gz1.dbf中。(2) 当用户选择\部门表\选项按钮后,再按\生成\命令按钮,查询显示dept表中每个部门的部门号和部门名称并把结果存入表bm1.dbf中。(3) 当用户选择\部门工资汇总表\选项按钮后,再按\生成\命令按钮,则按部门汇总,将该公司的部门号、部门名、工资、补贴、奖励、失业保险和医疗统筹的支出汇总合计结果存入表hz1.dbf 中。并按部门号的升序排序。请注意:字段名必须与原字段名一致。(4) 按\退出\按钮,退出表单。注意:以上各项功能必须调试、运行通过。 简单应用题答案:程序T1.PRG的内容如下:

1、CREATE VIEW SVIEW AS SELECT 部门号,雇员号,姓名,工资,补贴,奖励,失业保险,医疗统筹,工资+补贴+奖励-失业保险-医疗统筹; AS 实发工资 FROM SALARYS ORDER BY 部门号 DESC 综合应用题答案:

“生成”命令按钮的CLICK事件代码为: OPEN DATA SALARYDB DO CASE

CASE THISFORM.OPTIONGROUP1.VALUE=1 USE SVIEW

第 14 页, 共 56 页

全国计算机等级考试二级Visual FoxPro上机试卷

BROW

SELECT * FROM SVIEW INTO TABLE GZ1.DBF CASE THISFORM.OPTIONGROUP1.VALUE=2 USE DEPT BROW

SELECT * FROM DEPT INTO TABLE BM1.DBF CASE THISFORM.OPTIONGROUP1.VALUE=3

SELECT DEPT.部门号,dept.部门名,SUM(工资) AS 工资,SUM(补贴) AS 补贴,SUM(奖励) AS 奖励 ,SUM(失业保险) ;

AS 失业保险,SUM(医疗统筹) AS 医疗统筹 FROM DEPT,SALARYS WHERE DEPT.部门号=SALARYS.部门号 ; GROUP BY DEPT.部门号 ORDER BY DEPT.部门号 INTO TABLE HZ1.DBF

ENDCASE

“退出”命令按钮的CLICK事件代码为:THISFORM.RELEASE

第 25 套

一、基本操作题(共四小题,第1和2题是7分、第3和4题是8分) 在考生文件夹下的\商品销售\数据库中完成如下操作:

1.将\销售表\中的日期在2000年12月31日前(含2000年12月31日)的记录复制到一个新表\中。 2.将\销售表\中的日期(日期型字段)在2000年12月31日前(含2000年12月31日)的记录物理删除。

3.打开\商品表\,使用BROWSE命令浏览时,使用\文件\菜单中的选项将\商品表\中的记录生成文件名为\商品表.htm\的HTML格式文件。

4.为\商品表\创建一个主索引,索引名和索引表达式均是\商品号\;为\销售表\创建一个普通索引(升序),索引名和索引表达式均是\商品号\。

二、简单应用(2小题,每题20分,计40分)

1. 在\商品销售\数据库中,根据\销售表\和\商品表\查询每种商品的商品号、商品名、单价、销售数量和销售金额(商品号、商品名取自商品表,单价和销售数量取自销售表,销售金额=单价*销售数量),结果按销售金额降序排序,并将查询结果存储到see_a表中。

2. 在考生文件夹下有一个名称为form1的表单文件,该表单中的三个命令按钮的Click事件下的语句有错误。请按如下要求进行修改,修改完成后保存所做的修改:(1) 单击\刷新标题\命令按钮时,将表单的标题改为\商品销售数据输入\;(2) 单击\商品销售输入\命令按钮时,调用当前文件夹下的名称为sellcomm的表单文件打开数据输入表单;(3) 单击\输出销售报表\命令按钮时,调用当前文件夹下的名称为print1的报表文件对报表进行预览。注意:每处错误只能在原语句上进行修改,不可以增加语句行。 三、综合应用(1小题,计30分)

在考生文件夹下,对\商品销售\数据库完成如下综合应用:1.请编写名称为change_c的命令程序并执行,该程序实现下面的功能:将\商品表\进行备份,备份文件名为\;将\商品表\中\商品号\前两位编号为\的商品的\单价\修改为出厂单价提高10%;使用\单价调整表\对商品表的部分商品出厂单价进行修改(按\商品号\相同)。

2.设计一个名称为form2的表单,上面有\调整\(名称Command1)和\退出\(名称Command2)两个命令按钮。单击\调整\命令按钮时,调用change_c命令程序实现商品单价调整;单击\退出\命令按钮时,关闭表单。注意:以上两个命令按钮均只含一条语句,不可以有多余的语句。 基本操作题答案:

1 sele * from 销售表 where 日期<={^2000-12-31} into table 2001 2 dele from 销售表 where 日期<={^2000-12-31}

use 销售表 pack

简单应用题答案:

1 Sele 商品表.商品号,商品名,销售表.单价,销售数量,销售表.单价*销售数量 AS 销售金额 from 商品表,销售表 ;

WHERE 商品表.商品号=销售表.商品号 ORDER BY 销售金额 DESC INTO TABLE see_a 2、“刷新标题”命令按钮的CLICK事件代码为:ThisForm.CAPTION= \商品销售数据输入\ “商品销售输入”命令按钮的CLICK事件代码为:DO FORM sellcomm

“商品销售报表”命令按钮的CLICK事件代码为:REPORT FORM print1 PREVIEW 综合应用题答案:

1、程序change_c.PRG的内容如下:

SELECT * FROM 商品表 INTO TABLE SPBAK

UPDATE 商品表 SET 单价=出厂单价*1.1 WHERE LEFT(商品号,2)=\USE 单价调整表

DO WHILE NOT EOF()

UPDATE 商品表 SET 出厂单价=单价调整表.出厂单价 WHERE 商品号=单价调整表.商品号

SKIP ENDDO

2、“调整”命令按钮的CLICK事件代码为:DO CHANGE_C

“退出” 命令按钮的CLICK事件代码为:THISFORM.RELEASE

第 26 套

一、基本操作题(共四小题,第1和2题是7分、第3和4题是8分) 在考生文件夹下的\雇员管理\数据库中完成如下操作:

1.为\雇员\表增加一个字段名为EMAIL、类型为\字符\、宽度为20的字段。

2.设置\雇员\表中\性别\字段的有效性规则,性别取\男\或\女\,默认值为\女\。

第 15 页, 共 56 页

全国计算机等级考试二级Visual FoxPro上机试卷

3.在\雇员\表中,将所有记录的EMAIL字段值使用\部门号\的字段值加上\雇员号\的字段值再加上\进行替换。 4.通过\部门号\字段建立\雇员\表和\部门\表间的永久联系。 二、简单应用(2小题,每题20分,计40分)

1.请修改并执行名称为form1的表单,要求如下:(1) 为表单建立数据环境,并将\雇员\表添加到数据环境中;2) 将表单标题修改为\公司雇员信息维护\;(3) 修改命令按钮\刷新日期\的Click事件下的语句,使用SQL的更新命令,将\雇员\表中\日期\字段值更换成当前计算机的日期值。注意:只能在原语句上进行修改,不可以增加语句行。

2.建立一个名称为menu1的菜单,菜单栏有\文件\和\编辑浏览\两个菜单。\文件\菜单下有\打开\、\关闭退出\两个子菜单;\浏览\菜单下有\雇员编辑\、\部门编辑\和\雇员浏览\三个子菜单。 三、综合应用(1小题,计30分)

在考生文件夹下,对\雇员管理\数据库完成如下综合应用:1.建立一个名称为VIEW1的视图,查询每个雇员的部门号、部门名、雇员号、姓名、性别、年龄和EMAIL。 2.设计一个名称为form2的表单,表单上设计一个页框,页框有\部门\和\雇员\两个选项卡,在表单的右下角有一个\退出\命令按钮。要求如下:(1) 表单的标题名称为\商品销售数据输入\;(2) 单击选项卡\雇员\时,在选项卡\雇员\中使用\表格\方式显示VIEW1视图中的记录(表格名称grdView1);(3) 单击选项卡\部门\时,在选项卡\部门\中使用\表格\方式显示\部门\表中的记录(表格名称为\部门\);(4) 单击\退出\命令按钮时,关闭表单。 基本操作题答案:

2、重要提示,必须写成:性别=‘男’OR 性别=‘女’,否则不得分。 3、Replace all email with 部门号+雇员号+“@xxxx.com.cn” 简单应用题答案:

3、“刷新日期”命令按钮的CLICK事件代码为:update 雇员 SET 日期=date() 综合应用题答案:

1、create view view1 as sele 雇员.部门号,部门名,雇员号,姓名,性别,年龄,EMAIL FROM 雇员,部门 ; Where 雇员.部门号=部门.部门号

第 27 套

一、基本操作题(共4小题,第1和2题是7分、第3和4题是8分)

1. 新建一个名为\供应\的项目文件。 2. 将数据库\供应零件\加入到新建的\供应\项目文件中。

3. 通过\零件号\字段为\零件\表和\供应\表建立永久联系(\零件\是父表,\供应\是子表)。 4. 为\供应\表的数量字段设置有效性规则: 数量必须大于0并且小于9999;错误提示信息是\数量超范围\(注意:公式必须为 数量>0 .and. 数量<9999)。

二、简单应用(2小题,每题20分,计40分)

1. 用SQL语句完成下列操作:列出所有与\红\颜色零件相关的信息(供应商号,工程号和数量),并将检索结果按数量降序排序存放于表sup_temp中。

2. 建立一个名为m_quick的快捷菜单,菜单中有两个菜单项\查询\和\修改\。然后在表单myform中的RightClick事件中调用快捷菜单m_quick。

三、综合应用(1小题,计30分)

设计名为mysupply的表单(表单的控件名和文件名均为mysupply)。表单的标题为\零件供应情况\。表单中有一个表格控件和两个命令按钮\查询\(名称为Command1)和\退出\(名称为Command2)。运行表单时,单击\查询\命令按钮后,表格控件(名称grid1)中显示了工程号\所使用的零件的零件名、颜色、和重量。单击\退出\按钮关闭表单。 简单应用题答案:

1、 sele 供应商号,工程号,数量 FROM 供应 WHERE 零件号 IN (SELE 零件号 FROM 零件 WHERE 颜色=”红”) ;

Order by 数量 DESC into table sup_temp 综合应用题答案:

先将表单中的grid1表格的recordsourcetype属性设置成“表”,然后写 “查询”命令按钮的CLICK事件代码为:

select 零件名,颜色,重量 from 零件 where 零件号 in (select 零件号 from 供应 where 工程号=\ thisform.grid1.recordsource=\

“退出”命令按钮的CLICK事件代码为:thisform.release

第 28 套

一、基本操作题(共4小题,第1和2题是7分、第3和4题是8分) 1. 新建一个名为\图书管理\的项目。

2. 在项目中建立一个名为\图书\的数据库。

3. 将考生文件夹下的所有自由表添加到\图书\数据库中。

4. 在项目中建立查询book_qu:查询价格大于等于10的图书(book表)的所有信息,查询结果按价格降序排序。 二、简单应用(2小题,每题20分,计40分)

1. 用SQL语句完成下列操作:检索\田亮\所借图书的书名、作者和价格,结果按价格降序存入booktemp表中。

2. 在考生文件夹下有一个名为menu_lin的下拉式菜单,请设计顶层表单frmmenu,将菜单menu_lin加入到该表单中,使得运行表单时菜单显示在本表单中,并在表单退出时释放菜单。 三、综合应用(1小题,计30分)

设计名为formbook的表单(控件名为form1,文件名为formbook)。表单的标题设为\图书情况统计\。表单中有一个组合框(名称为Combo1)、一个文本框(名称为Text1)和两个命令按钮\统计\(名称为Command1)和\退出\(名称为Command2)。 运行表单时,组合框中有三个条目\清华\、\北航\、\科学\(只有三个出版社名称,不能输入新的)可供选择,在组合框中选择出版社名称后,如果单击\统计\命令按钮,则文本框显示出\图书\表中该出版社图书的总数。 单击\退出\按钮关闭表单。 简单应用题答案:

1、sele 书名,作者,价格 FROM book,borrows,loans where book.图书登记号=loans.图书登记号 and ;

第 16 页, 共 56 页

全国计算机等级考试二级Visual FoxPro上机试卷

Loans.借书证号=borrows.借书证号 and 姓名=”田亮” order by 价格 desc into table booktemp 2、建一个frmmenu的表单,将表单的showwindows属性值设置为2,然后在表单的init事件代码中加入:DO menu_lin.mpr with this,

在表单的destory事件代码中加入:release menu menu_lin extended 。 注意其中extended不可少。

综合应用题答案:

表单的CAPTION属性设为“图书统计情况”,组合框的rowsource属性设为“清华,北航,科学”, rowsourcetype属性设为1,style属性设为2-下拉列表框。

表单的“统计”命令按钮的CLICK事件代码为: close all

select count(*) from book where 出版社=thisform.combo1.value into array Temp thisform.text1.value=temp(1)

表单的“退出”命令按钮的CLICK事件代码为:thisform.release

第 29 套

一、基本操作题(共4小题,第1和2题是7分、第3和4题是8分)

1. 根据SCORE数据库,使用查询向导建立一个含有学生\姓名\和\出生日期\的标准查询QUERY31.QPR。 2. 从SCORE数据库中删除视图NEWVIEW。

3. 用SQL命令向SCORE1表插入一条记录:学号为\、课程号为\、成绩是99。

4. 打开表单MYFORM34,向其中添加一个\关闭\命令按钮(名称为Command1),单击此按钮关闭表单(不可以有多余的命令)。 二、简单应用(2小题,每题20分,计40分)

1. 建立视图NEW_VIEW,该视图含有选修了课程但没有参加考试(成绩字段值为NULL)的学生信息(包括\学号\、\姓名\和\系部\个字段)。

2. 建立表单MYFORM3,在表单上添加表格控件(名称为grdCourse),并通过该控件显示表course的内容(要求RecordSourceType属性必须为0)。

三、综合应用(1小题,计30分)

利用菜单设计器建立一个菜单TJ_MENU3,要求如下:(1) 主菜单(条形菜单)的菜单项包括\统计\和\退出\两项;(2) \统计\菜单下只有一个菜单项\平均\,该菜单项的功能是统计各门课程的平均成绩,统计结果包含\课程名\和\平均成绩\两个字段,并将统计结果按课程名升序保存在表NEWTABLE中。(3) \退出\菜单项的功能是返回VFP系统菜单(SET SYSMENU TO DEFAULT)。菜单建立后,运行该菜单中各个菜单项。 简单应用题答案:

1、 create view new_view as sele 学号,姓名,系部 from student where 学号 in (sele 学号 from score1 where 成绩 is null) 2、 在表单上添加表格控件(名称为grdCourse),其中有一处C必须大写,否则无分。 综合应用题答案: 菜单项“平均”的过程代码为: OPEN DATABASE SCORE

SELECT 课程名, AVG(成绩) as 平均成绩 FROM course,score1 where Course.课程号 = Score1.课程号 GROUP BY 课程名 ; ORDER BY 课程名 INTO TABLE NEWTABLE

菜单项“退出”的命令代码为:set sysmnu to default

第 30 套

一、基本操作题(共4小题,第1和2题是7分、第3和4题是8分)

1. 建立数据库BOOKAUTH.DBC,把表BOOKS.DBF和AUTHORS.DBF添加到该数据库。 2. 为AUTHORS表建立主索引,索引名\,索引表达式\作者编号\。

3. 为BOOKS表分别建立两个普通索引,其一索引名为\,索引表达式为\图书编号\;其二索引名和索引表达式均为\作者编号\。(注意PK和RK的区别)

4. 建立AUTHORS表和BOOKS表之间的联系。 二、简单应用(2小题,每题20分,计40分)

1.打开表单MYFORM44,把表单(名称为Form1)标题改为\欢迎您\,将文本\欢迎您访问系统\(名称为label1的标签)的字号改为25,字体改为隶书。再在表单上添加\关闭\(名称为Command1)命令按钮,单击此按钮关闭表单。最后保存并运行表单。

2.设计一个表单MYFORM4,表单中有两个命令按钮\查询\(名称为Command1)和\退出\(名称为Command2)。(1) 单击\查询\按钮,查询BOOKAUTH数据库中出版过三本以上(含三本)图书的作者信息,查询信息包括:作者姓名,所在城市;查询结果按作者姓名升序保存在表NEWVIEW中。(2) 单击\退出\按钮关闭表单。最后保存并运行表单。 三、综合应用(1小题,计30分)

(1) 首先将BOOKS.DBF中所有书名中含有\计算机\个字的图书复制到表BOOKSBAK中,以下操作均在BOOKSBAK表中完成;(2) 复制后的图书价格在原价格基础上降价5%;(3) 从图书均价高于25元(含25)的出版社中,查询并显示图书均价最低的出版社名称以及均价,查询结果保存在表newtable中(字段名为出版单位和均价)。 简单应用题答案:

2 “查询”命令按钮的CLICK事件代码为:

Selece 作者姓名,所在城市 from authors,books where Authors.作者编号 = Books.作者编号 group by 作者姓名; HAVING COUNT(图书编号) >= 3 Order by 作者姓名 into table newview 综合应用题答案:

1、sele * from books where \计算机\书名 into table booksbak 2、use booksbak

Replace all 价格 with 价格*0.95

3、sele 出版单位,avg(价格) as 均价 from booksbak group by 出版单位 order by 均价 into cursor lsb sele * top 1 from lsb where 均价>=25 order by 均价 into table newtable

第 17 页, 共 56 页

全国计算机等级考试二级Visual FoxPro上机试卷

第 31 套

一、基本操作题(共4小题,第1和2题是7分、第3和4题是8分) 在考生文件夹下的数据库rate中完成下列操作:

1. 将自由表rate_exchange和currency_sl添加到rate数据库中。 2. 为表 rate_exchange建立一个主索引,为表currency_sl建立一个普通索引(升序),两个索引的索引名和索引表达式均为\外币代码\。

3. 为表 currency_sl设定有效性规则:\持有数量<>0\,错误提示信息是\持有数量不能为0\。

4. 打开表单文件test_form,该表单的界面如下图所示,请修改\登录\命令按钮的有关属性,使其在运行时可以使用。

二、简单应用(2小题,每题20分,计40分)

1. 用SQL语句完成下列操作:列出\林诗因\持有的所有外币名称(取自rate_exchange表)和持有数量(取自currency_sl表),并将检索结果按持有数量升序排序存储于表rate_temp中,同时将你所使用的SQL语句存储于新建的文本文件rate.txt中。

2. 使用一对多报表向导建立报表。要求:父表为rate_exchange,子表为currency_sl ,从父表中选择字段:\外币名称\;从子表中选择全部字段;两个表通过\外币代码\建立联系;按\外币代码\升序排序;报表样式为\经营式\,方向为\横向\,报表标题为:\外币持有情况\;生成的报表文件名为currency_report。 三、综合应用(1小题,计30分)

设计一个表单名和文件名均为currency_form的表单,所有控件的属性必须在表单设计器的属性窗口中设置。表单的标题为:\外币市值情况\。表单中有两个文本框(text1和text2)和两个命令按钮\查询\(command1)和\退出\(command2)。运行表单时,在文本框text1中输入某人的姓名,然后单击\查询\,则text2中会显示出他所持有的全部外币相当于人民币的价值数量。注意:某种外币相当于人民币数量的计算公式:人民币价值数量=该种外币的\现钞买入价\该种外币\持有数量\。单击\退出\按钮时关闭表单。 简单应用题答案:

1、 sele 外币名称,持有数量 from rate_exchange,currency_sl where Currency_sl.外币代码 = Rate_exchange.外币代码 and ;

姓名 = \林诗因\持有数量 into table rate_temp 综合应用题答案:“查询”命令按钮的CLICK事件代码为:

select 现钞买入价*持有数量 from Rate_exchange,Currency_sl where Currency_sl.外币代码 = Rate_exchange.外币代码 ; and 姓名 =alltrim(thisform.text1.value) group by 姓名into array sl thisform.text2.value=sl

第 32 套

一、基本操作题(共4小题,第1和2题是7分、第3和4题是8分) 1. 新建一个名称为\外汇数据\的数据库。

2. 将自由表rate_exchange和currency_sl添加到数据库中。

3. 通过\外币代码\字段为rate_exchange和currency_sl建立永久联系(如果必要请建立相关索引)。

4. 打开表单文件test_form,该表单的界面如下图所示,请将标签\用户名\和\口令\的字体都改为\黑体\。

二、简单应用(2小题,每题20分,计40分)

1. rate_pro.prg中的程序功能是计算出\林诗因\所持有的全部外币相当于人民币的价值数量,summ中存放的是结果。注意:某种外币相当于人民币数量的计算公式:人民币价值数量 = 该种外币的\现钞买入价\该种外币\持有数量\。请在指定位置修改程序的语句,不得增加或删除程序行,请保存所做的修改。

2. 建立一个名为menu_rate的菜单,菜单中有两个菜单项\查询\和\退出\。\查询\项下还有子菜单,子菜单有\日元\、\欧元\、\美元\三个选项。在\退出\菜单项下创建过程,该过程负责返回系统菜单。 三、综合应用(1小题,计30分)

设计一个文件名为myrate的表单,所有控件的属性必须在表单设计器的属性窗口中设置。表单的标题为\外汇持有情况\。表单中有一个选项组控件(命名为myOption和两个命令按钮\统计\(command1)和\退出\(command2)。其中,选项组控件有三个按钮\日元\、\美元\和\欧元\。运行表单时,首先在选项组控件中选择\日元\、\美元\或\欧元\,单击\统计\命令按钮后,根据选项组控件的选择将持有相应外币的人的姓名和持有数量分别存入rate_ry.dbf(日元)或rate_my.dbf(美元)或rate_oy(欧元)中。单击\退出\按钮时关闭表单。表单建成后,要求运行表单,并分别统计\日元\、\美元\和\欧元\的持有数量。 简单应用题答案:

1、 第一处将“find”改为“loca” 注意:loca 只准写四个字符,多写扣7分。 2、 第二处将“while not eof()”改为“do while not eof()”

第 18 页, 共 56 页

全国计算机等级考试二级Visual FoxPro上机试卷

3、 第三处将“summ=summ+a[1] * rate_exchange.持有数量”改为“summ=summ+a[1]*currency_sl.持有数量”注意:[ ]不要改( )。 综合应用题答案:“统计”命令按钮的CLICK事件代码为: DO CASE

CASE thisform.myOption.option1.value=1 SELECT 姓名,持有数量 FROM rate_exchange,Currency_sl where rate_exchange.外币代码=Currency_sl.外币代码 and ;

外币名称=\日元\CASE thisform.myOption.option2.value=1 SELECT 姓名,持有数量 FROM rate_exchange,Currency_sl where rate_exchange.外币代码=Currency_sl.外币代码 and ;

外币名称=\美元\CASE thisform.myOption.option3.value=1 SELECT 姓名,持有数量 FROM rate_exchange,Currency_sl where rate_exchange.外币代码=Currency_sl.外币代码 and ;

外币名称=\欧元\ENDCASE

“退出”命令按钮的CLICK事件代码为:thisform.release

第 33 套

一、基本操作题(共4小题,第1和2题是7分、第3和4题是8分) 1. 新建一个名为\学生管理\的项目文件。

2. 将\学生\数据库加入到新建的项目文件中。

3. 将\教师\表从\学生\数据库中移出,使其成为自由表。

4. 通过\学号\字段为\学生\和\选课\表建立永久联系(如果必要请先建立有关索引)。 二、简单应用(2小题,每题20分,计40分)

1. 用SQL语句对自由表\教师\完成下列操作:将职称为\教授\的教师新工资一项设置为原工资的120%,其他教师的新工资与原工资相等;插入一条新记录,该教师的信息:姓名\林红\,职称\讲师\,原工资10000,新工资10200,同时将你所使用的SQL语句存储于新建的文本文件teacher.txt中(两条更新语句,一条插入语句,按顺序每条语句占一行)。

2. 使用查询设计器建立一个查询文件stud.qpr,查询要求:选修了\英语\并且成绩大于等于70的学生的姓名和年龄,查询结果按年龄升序存放于stud_temp.dbf表中。 三、综合应用(1小题,计30分)

设计名为mystu的表单(文件名为mystu,表单名为form1),所有控件的属性必须在表单设计器的属性窗口中设置。表单的标题为\计算机系学生选课情况\。表单中有一个表格控件(Grid1),该控件的RecordSourceType的属性设置为4 (SQL说明)和两个命令按钮\查询\(command1)和\退出\(command2)。

运行表单时,单击\查询\命令按钮后,表格控件中显示6系(系字段值等于字符6)的所有学生的姓名、选修的课程名和成绩。单击\退出\按钮关闭表单。 简单应用题答案:

1、 teacher.txt中的三条SQL语句为:

update 教师 set 新工资=原工资*1.2 where 职称=\教授%update 教师 set 新工资=原工资 where 职称!=\教授\insert into 教师 values(\林红\讲师\

综合应用题答案:“查询”命令按钮的CLICK事件代码为:

thisform.grid1.recordsource =\姓名,课程名称,成绩 from学生,选课,课程 where 学生.学号=选课.学号 and; 课程.课程号=选课.课程号 and 系='6' \

“退出”命令按钮的CLICK事件代码为:thisform.release

第 34 套

一、基本操作题(共4小题,第1和2题是7分、第3和4题是8分) 1. 新建一个名为\饭店管理\的项目。

2. 在新建的项目中建立一个名为\使用零件情况\的数据库,并将考生目录下的所有自由表添加到该数据库中。 3. 修改\零件信息\表的结构,增加一个字段,字段名为\规格\,类型为字符型,长度为8。 4. 打开并修改mymenu菜单文件,为菜单项\查找\设置快捷键Ctrl+T。 二、简单应用(2小题,每题20分,计40分)

1. 用SQL语句完成下列操作:查询与项目号\的项目所使用的任意一个零件相同的项目号、项目名、零件号和零件名称(包括项目号s1自身),结果按项目号降序排序,并存放于item_temp.dbf中,同时将你所使用的SQL语句存储于新建的文本文件item.txt中。

2. 根据零件信息、使用零件和项目信息三个表,利用视图设计器建立一个视图view_item,该视图的属性列由项目号、项目名、零件名称、单价、数量组成,记录按项目号升序排序,筛选条件是:项目号为\。 三、综合应用(1小题,计30分)

设计一个文件名和表单名均为form_item的表单,所有控件的属性必须在表单设计器的属性窗口中设置。表单的标题设为\使用零件情况统计\。表单中有一个组合框(combo1)、一个文本框(text1)和两个命令按钮\统计\(command1)和\退出\(command2)。 运行表单时,组合框中有三个条目\、\、\(只有三个,不能输入新的,RowSourceType的属性为\数组\,Style的属性为\下拉列表框\)可供选择,单击\统计\命令按钮以后,则文本框显示出该项目所用零件的金额(某种零件的金额=单价*数量)。单击\退出\按钮关闭表单。 简单应用题答案:

1 select 项目信息.项目号, 项目名,零件信息.零件号,零件名称 from 零件信息,使用零件,项目信息 where 使用零件.项目号;

=项目信息.项目号 and 零件信息.零件号=使用零件.零件号 and 使用零件.零件号in (select 零件号 from 使用零件 where ; 项目号=\使用零件.项目号 desc into table item_temp

第 19 页, 共 56 页

全国计算机等级考试二级Visual FoxPro上机试卷

综合应用题答案:

表单的load事件代码为: public ss(3)

ss(1)='s1' ss(2)='s2' ss(3)='s3'

combo1的RowSourceType的属性为\数组\,RowSource的属性为ss(3), Style的属性为\下拉列表框\。 “统计”命令按钮的CLICK事件代码为:

SELECT SUM (单价*数量) FROM 零件信息,使用零件,项目信息 where 使用零件.项目号=项目信息.项目号 and 零件信息.零件号=使用零件.零件号 and ;

使用零件.项目号=ALLTRIM(THISFORM.combo1.VALUE) GROUP BY 项目信息.项目号 INTO ARRAY TEMP THISFORM.TEXT1.VALUE=TEMP

“退出”命令按钮的CLICK事件代码为:thisform.release

第 35 套

一、基本操作题(共4小题,第1和2题是7分、第3和4题是8分) 1. 建立一个名称为\外汇管理\的数据库。

2. 将表currency_sl.DBF和rate_exchange.DBF添加到新建立的数据库中。 3. 将表rate_exchange.DBF中\买出价\字段的名称改为\现钞卖出价\。

4. 通过\外币代码\字段建立表rate_exchange.DBF和currency_sl.DBF之间的一对多永久联系(需要首先建立相关索引)。 二、简单应用(2小题,每题20分,计40分)

1. 在建立的\外汇管理\数据库中利用视图设计器建立满足如下要求的视图:1) 视图按顺序包含列Currency_sl.姓名、Rate_exchange.外币名称、Currency_sl.持有数量和表达式Rate_exchange.基准价* Currency_sl.持有数量;2) 按\基准价* Currency_sl.持有数量\降序排序;3) 将视图保存为view_rate。

2. 使用SQL SELECT语句完成一个汇总查询,结果保存在results.dbf表中,该表含有\姓名\和\人民币价值\两个字段(其中\人民币价值\为每人持有外币的\基准价* Currency_sl.持有数量\的合计),结果按\人民币价值\降序排序。 三、综合应用(1小题,计30分)

设计一个表单,所有控件的属性必须在表单设计器的属性窗口中设置,表单文件名为\外汇浏览\,表单界面如下所示:

其中:1. \输入姓名\为标签控件Label1; 2. 表单标题为\外汇查询\; 3. 文本框的名称为Text1,用于输入要查询的姓名,如张三丰;4. 表格控件的名称为Grid1,用于显示所查询人持有的外币名称和持有数量,RecordSourceType的属性为0(表);5. \查询\命令按钮的名称为Command1,单击该按钮时在表格控件Grid1中按持有数量升序显示所查询人持有的外币名称和数量(如上图所示),并将结果存储在以姓名命名的DBF表文件中,如张三丰.DBF;6. \退出\命令按钮的名称为Command2,单击该按钮时关闭表单。完成以上表单设计后运行该表单,并分别查询\林诗因\、\张三丰\和\李寻欢\所持有的外币名称和持有数量。 简单应用题答案:

2、 sele 姓名,sum(基准价*持有数量) AS 人民币价值 FROM currency_sl,rate_exchange where Currency_sl.外币代码=;

rate_exchange.外币代码 GROUP BY 姓名 ORDER BY 人民币价值 DESC INTO TABLE results 综合应用题答案:

“查询”命令按钮的CLICK事件代码为: a=ALLTRIM(THISFORM.text1.VALUE)

sele 外币名称,持有数量 from rate_exchange,currency_sl where rate_exchange.外币代码=currency_sl.外币代码 and ; 姓名=a order by 持有数量 into table(a) thisform..Grid1.RECORDSOURCE=\

“退出”命令按钮的CLICK事件代码为:thisform.release

第 36 套(本套时间较长,请多练熟,考试时抓紧时间)

一、基本操作题(共4小题,第1和2题是7分、第3和4题是8分)

1. 用SQL语句从rate_exchange.dbf表中提取外币名称、现钞买入价和卖出价三个字段的值并将结果存入rate_ex.dbf表(字段顺序为外币名称、现钞买入价、卖出价,字段类型和宽度与原表相同,记录顺序与原表相同),并将相应的SQL语句保存为文本文件one.txt。

2. 用SQL语句将rate_exchange.dbf表中外币名称为\美元\的卖出价修改为829.01,并将相应的SQL语句保存为文本文件two.txt。

第 20 页, 共 56 页

全国计算机等级考试二级Visual FoxPro上机试卷

3. 利用报表向导根据rate_exchange.dbf表生成一个外币汇率报表,报表按顺序包含外币名称、现钞买入价和卖出价三列数据,报表的标题为\外币汇率\(其他使用默认设置),生成的报表文件保存为rate_exchange。

4. 打开生成的报表文件rate_exchange进行修改,使显示在标题区域的日期改在每页的注脚区显示。 二、简单应用(2小题,每题20分,计40分)

1. 设计一个如下图所示的时钟应用程序,具体描述如下:

表单名和表单文件名均为timer,表单标题为\时钟\,表单运行时自动显示系统的当前时间;1) 显示时间的为标签控件label1(要求在表单中居中,标签文本对齐方式为居中);2) 单击\暂停\命令按钮(Command1)时,时钟停止;3) 单击\继续\命令按钮(Command2)时,时钟继续显示系统的当前时间; 4) 单击\退出\命令按钮(Command3)时,关闭表单。 提示:使用计时器控件,将该控件的interval属性设置为500,即每500毫秒触发一次计时器控件的timer事件(显示一次系统时间);将计时器控件的interval属性设置为0将停止触发timer事件;在设计表单时将timer控件的interval属性设置为500。

2. 使用查询设计器设计一个查询,要求如下:1) 基于自由表currency_sl.DBF和rate_exchange.DBF;2) 按顺序含有字段\姓名\、\外币名称\、\持有数量\、\现钞买入价\及表达式\现钞买入价*持有数量\;3) 先按\姓名\升序排序、再按\持有数量\降序排序;4) 查询去向为表results.dbf;5) 完成设计后将查询保存为query文件,并运行该查询。 三、综合应用(1小题,计30分)

设计一个满足如下要求的应用程序,所有控件的属性必须在表单设计器的属性窗口中设置:1. 建立一个表单,表单文件名和表单名均为form1,表单标题为\外汇\;2. 表单中含有一个页框控件(PageFrame1)和一个\退出\命令按钮(Command1);3. 页框控件(PageFrame1)中含有三个页面,每个页面都通过一个表格控件显示有关信息: 1) 第一个页面Page1上的标题为\持有人\,其上的表格控件名为grdCurrency_sl,记录源的类型(RecordSourceType)为\表\,显示自由表currency_sl中的内容; 2) 第二个页面Page2上的标题为\外汇汇率\,其上的表格控件名为grdRate_exchange,记录源的类型(RecordSourceType)为\表\,显示自由表rate_exchange中的内容;3) 第三个页面Page3上的标题为\持有量及价值\,其上的表格控件名为Grid1,记录源的类型(RecordSourceType)为\查询\,记录源(RecordSource)为\简单应用\题目中建立的查询文件query。 4. 单击\退出\命令按钮(Command1)关闭表单。 基本操作题答案:

1、select 外币名称,现钞买入价,卖出价 from rate_exchange into table rate_ex 2、update rate_exchange set 卖出价=829.01 where 外币名称=\美元\简单应用题答案:

1、在表单的中央放置一个标签控件,修改其alignment属性为“2-中央”,在表单上放置一个计时器控件,将其interval属性设为

500,timer1的timer事件代码为thisform.label1.caption=time()。 “暂停”命令按钮的CLICK事件代码为:thisform.timer1.interval=0 “继续”命令按钮的CLICK事件代码为:thisform.timer1.interval=500 “退出”命令按钮的CLICK事件代码为:thisform.release

第 37 套

一、基本操作题(共4小题,第1和2题是7分、第3和4题是8分)

1. 打开数据库customer,并将自由表customer和order添加到数据库中。 2. 为表order的\订单日期\字段定义默认值为系统的当前日期。

3. 为表customer建立主索引,索引名和索引表达式均为\客户编号\。

4. 为表order建立普通索引,索引名和索引表达式均为\客户编号\,然后通过\客户编号\字段建立表customer和order之间的永久联系。

二、简单应用(2小题,每题20分,计40分)

1. 请按要求修改modi1.prg程序文件中的错误并使之能够正确运行(具体修改要求在程序文件中)。注意:不可以增加或删除程序行。

2. 在考生目录下有表customer(客户)和order(订单),用SQL SELECT语句查询所有客户的订单信息,要求在结果中包括公司名称、订单编号、金额和送货方式四个字段的信息,并先按公司名称升序排序、再按订单编号升序排序,查询结果存放在results.dbf文件中,并要求将完整的SQL SELECT语句保存在SQL.PRG文件中。 三、综合应用(1小题,计30分)

建立满足如下要求的应用并运行,所有控件的属性必须在表单设计器的属性窗口中设置:1. 建立一个表单myform(文件名和表单名均为myform),其中包含两个表格控件,第一个表格控件名称是grd1,用于显示表customer中的记录,第二个表格控件名称是grd2,用于显示与表customer中当前记录对应的order表中的记录。要求两个表格尺寸相同、水平对齐。2. 建立一个菜单mymenu,该菜单只有一个菜单项\退出\,该菜单项对应于一个过程,并且含有两条语句,第一条语句是关闭表单myform,第二条语句是将菜单恢复为默认的系统菜单。3.在myform的Load事件中执行生成的菜单程序mymenu.mpr。 简单应用题答案:

1、第一处将(此处空行)改为 “use customer”,第二处将“scan while ”改为“scan for” 2、程序SQL.prg的内容如下:

第 21 页, 共 56 页

全国计算机等级考试二级Visual FoxPro上机试卷

sele 公司名称,订单编号,金额,送货方式 from customer,order where customer.客户编号=order.客户编号 ; ORDER BY 公司名称,order.订单编号 into table results 综合应用题答案:

1、添加两个表格到新建的表单中,尺寸相同,水平居中。右击表单,选择“数据环境”,在数据环境中添加\和\建立好两表的关联。然后右键单击表格grd1,在弹出的快捷菜单中选择“生成器”,弹出表格生成器对话框,在“1.表格项”中选择\将表中所有字段添加到选定字段中,以同样的方法设置第二个表格的生成器。然后选择“4.关系”选项卡,把“父表中的关键字段”设置为customer.客户编号,把“子表中的相关索引”设置为客户编号。 2、菜单项\退出\的过程代码为: Myform.release

Set sysmenu to defa

表单的load事件代码为:do mymenu.mpr

第 38 套

一、基本操作题(共4小题,第1和2题是7分、第3和4题是8分)

1. 用SQL INSERT语句插入元组(\到\零件信息\表(注意不要重复执行插入操作),并将相应的SQL语句存储在文件one.prg中。

2. 用SQL DELETE语句从\零件信息\表中删除单价小于600的所有记录,并将相应的SQL语句存储在文件two.prg中。 3. 用SQL UPDATE语句将\零件信息\表中零件号为\的零件的单价更改为1090,并将相应的SQL语句存储在文件Three.prg中。 4. 打开菜单文件mymenu.mnx,然后生成可执行的菜单程序mymenu.mpr。 二、简单应用(2小题,每题20分,计40分) 1.modi1.prg程序文件中SQL SELECT语句的功能是查询哪些零件(零件名称)目前用于三个项目,并将结果按升序存入文本文件results.txt。给出的SQL SELECT语句中在第1、3、5行各有一处错误,请改正并运行程序(不可以增、删语句或短语,也不可以改变语句行)。

2.根据项目信息(一方)和使用零件(多方)两个表、利用一对多报表向导建立一个报表,报表中包含项目号、项目名、项目负责人、(联系)电话、(使用的)零件号和数量等6个字段,报表按项目号升序排序,报表样式为经营式,在总结区域(细节及总结)包含零件使用数量的合计,报表标题为\项目使用零件信息\,报表文件名为report。 三、综合应用(1小题,计30分)

按如下要求完成综合应用(所有控件的属性必须在表单设计器的属性窗口中设置):1. 根据\项目信息\、\零件信息\和\使用零件\三个表建立一个查询(注意表之间的连接字段),该查询包含项目号、项目名、零件名称和(使用)数量四个字段,并要求先按项目号升序排序、再按零件名称降序排序,保存的查询文件名为chaxun;2. 建立一个表单,表单名和文件名均为myform,表单中含有一个表格控件Grid1,该表格控件的数据源是前面建立的查询chaxun;然后在表格控件下面添加一个\退出\命令按钮Command1,要求命令按钮与表格控件左对齐、并且宽度相同,单击该按钮时关闭表单。 基本操作题答案:注意,文件扩展名为prg,不是txt。

1、insert into 零件信息 values (\2、delete from 零件信息 where 单价<600

3、UPDATE 零件信息 SET 单价=1090 WHERE 零件号=\简单应用题答案:

1、第一行将“=”改“ IN ”。 第三行将“项目号”改为“零件号”。第五行将“IN”改为“TO”

第 39 套

一、基本操作题(共4小题,第1和2题是7分、第3和4题是8分)

在考生文件夹下,打开Ecommerce数据库,完成如下操作:

1.打开Ecommerce数据库,并将考生文件夹下的自由表OrderItem添加到该数据库。

2.为OrderItem表创建一个主索引,索引名为PK,索引表达式为\会员号+商品号\;再为OrderItem创建两个普通索引(升序),一个的索引名和索引表达式均是\会员号\;另一个的索引名和索引表达式均是\商品号\。

3.通过\会员号\字段建立客户表Customer和订单表OrderItem之间的永久联系(注意不要建立多余的联系)。 4.为以上建立的联系设置参照完整性约束:更新规则为\级联\;删除规则为\限制\;插入规则为\限制\。 二、简单应用(2小题,每题20分,计40分)

1. 建立查询qq,查询会员的会员号(来自Customer表)、姓名(来自Customer表)、会员所购买的商品名(来自article表)、单价(来自OrderItem表)、数量(来自OrderItem表)和金额(OrderItem.单价 * OrderItem.数量),结果不要进行排序,查询去向是表ss。查询保存为qq.qpr,并运行该查询。

2. 使用表单向导选择客户表Customer生成一个文件名为myform的表单。要求选择客户表Customer表中所有字段,表单样式为阴影式;按钮类型为图片按钮;排序字段选择会员号(升序);表单标题为\客户基本数据输入维护\。 三、综合应用(1小题,计30分)

在考生文件夹下,打开Ecommerce数据库,完成如下综合应用(所有控件的属性必须在表单设计器的属性窗口中设置):设计一个名称为myforma的表单(文件名和表单名均为myforma),表单的标题为\客户商品订单基本信息浏览\。表单上设计一个包含三个选项卡的页框(pageframe1)和一个\退出\命令按钮(command1)。要求如下:1. 为表单建立数据环境,按顺序向数据环境添加Article表、Customer表和OrderItem表。2. 按从左至右的顺序三个选项卡的标签(标题)的名称分别为\客户表\、\商品表\和\订单表\,每个选项卡上均有一个表格控件,分别显示对应表的内容(从数据环境中添加,客户表为Customer、商品表为Article、订单表为OrderItem)。3. 单击\退出\按钮关闭表单。

第 40 套

一、基本操作题(共4小题,第1和2题是7分、第3和4题是8分) 在考生文件夹下,打开Ecommerce数据库,完成如下操作:

第 22 页, 共 56 页

全国计算机等级考试二级Visual FoxPro上机试卷

1.首先打开Ecommerce数据库,然后为表Customer增加一个字段,字段名为email、类型为字符、宽度为20。

2.为Customer表的\性别\字段定义有效性规则,规则表达式为:性别 $ \男女\,出错提示信息为\性别必须是男或女\,默认值为\女\。

3.通过\会员号\字段建立客户表Customer和订单表OrderItem之间的永久联系;通过\商品号\字段建立商品表Article和订单表OrderItem之间的永久联系。

4.为以上建立的联系设置参照完整性约束:更新规则为\级联\;删除规则为\限制\;插入规则为\限制\。 二、简单应用(2小题,每题20分,计40分)

在考生文件夹下,打开Ecommerce数据库,完成如下简单应用:

1. 使用报表向导建立一个简单报表。要求选择客户表Customer中所有字段;记录不分组;报表样式为随意式;列数为\,字段布局为\列\,方向为\纵向\;排序字段为\会员号\,升序;报表标题为\客户信息一览表\;报表文件名为myreport。

2.使用命令建立一个名称为sb_view的视图,并将定义视图的命令代码存放到命令文件pview.prg。视图中包括客户的会员号(来自Customer表)、姓名(来自Customer表)、客户所购买的商品名(来自article表)、单价(来自OrderItem表)、数量(来自OrderItem表)和金额(OrderItem.单价 * OrderItem.数量),结果按会员号升序排序。 三、综合应用(1小题,计30分)

在考生文件夹下,打开Ecommerce数据库,完成如下综合应用(所有控件的属性必须在表单设计器的属性窗口中设置):设计一个文件名和表单名均为myform的表单,表单标题为\客户基本信息\。要求该表单上有\女客户信息\(Command1)、\客户购买商品情况\(Command2)、\输出客户信息\(Command3)和\退出\(Command4)四个命令按钮。各命令按钮功能如下:1) 单击\女客户信息\按钮,使用SQL的SELECT命令查询客户表Customer中\女\客户的全部信息。2) 单击\客户购买商品情况\按钮,使用SQL的SELECT命令查询简单应用中创建的sb_view视图中的全部信息。3) 单击\输出客户信息\按钮,调用简单应用中设计的报表文件myreport在屏幕上预览(PREVIEW)客户信息。4) 单击\退出\按钮,关闭表单。 简单应用题答案:

3、create view sb_view as sele customer.会员号,姓名,商品名,orderitem .单价, orderitem.数量,orderitem.单价* ;

orderitem.数量From customer,article,orderitem where customer.会员号=orderitem.会员号 and orderitem.商品号; =article.商品号 Order by customer.会员号 综合应用题答案:

“女客户信息”命令按钮的CLICK事件代码为:select * from Customer where 性别=\女\“客户购买商品情况”命令按钮的CLICK事件代码为:open database ecommerce

select * from sb_view

“输出客户信息”命令按钮的CLICK事件代码为:report form myreport preview “退出”命令按钮的CLICK事件代码为:thisform.release

第 41 套

一、基本操作题(共4小题,第1和2题是7分、第3和4题是8分) 1. 从数据库stock中移去表stock_fk(不是删除)。 2. 将自由表stock_name添加到数据库中。

3. 为表stock_sl建立一个主索引,索引名和索引表达式均为\股票代码\。

4. 为stock_name表的股票代码字段设置有效性规则,\规则\是:left(股票代码,1)=\,错误提示信息是\股票代码的第一位必须是6\。

二、简单应用(2小题,每题20分,计40分)

1. 用SQL完成下列操作:列出所有赢利(现价大于买入价)的股票简称、现价、买入价和持有数量,并将检索结果按持有数量降序排序存储于表stock_temp中。

2. 使用一对多报表向导建立报表。要求:父表为stock_name,子表为stock_sl,从父表中选择字段:\股票简称\;从子表中选择全部字段;两个表通过\股票代码\建立联系;按股票代码升序排序;报表标题为:\股票持有情况\;生成的报表文件名为stock_report。

三、综合应用(1小题,计30分) 设计名为mystock的表单(控件名,文件名均为mystock)。表单的标题为:\股票持有情况\。表单中有两个文本框(text1和text2)和两个命令按钮\查询\(名称为Command1)和\退出\(名称为Command2)。运行表单时,在文本框text1中输入某一股票的汉语拼音,然后单击\查询\,则text2中会显示出相应股票的持有数量。单击\退出\按钮关闭表单。 简单应用题答案:

1、sele 股票简称,现价,买入价,持有数量 from stock_name,stock_sl where (stock_sl.股票代码=stock_name.股票代码); And 现价>买入价 order by 持有数量 desc into table stock_temp 综合应用题答案:

“查询”命令按钮的CLICK事件代码为:

SELE Stock_sl.持有数量 FROM stock_name,stock_sl where Stock_name.股票代码 = Stock_sl.股票代码 and 汉语拼音; =alltrim(thisform.text1.value) into array temp THISFORM.TEXT2.VALUE=temp(1)

“退出”命令按钮的CLICK事件代码为:thisform.release

第 42 套

一、基本操作题(共4小题,第1和2题是7分、第3和4题是8分) 1. 新建一个名为\学生\的数据库。

2. 将\学生\、\选课\、\课程\三个自由表添加到新建的数据库\学生\中。 3. 通过\学号\字段为\学生\表和\选课\表建立永久联系。

4. 为上面建立的联系设置参照完整性约束:更新和删除规则为\级联\,插入规则为\限制\。 二、简单应用(2小题,每题20分,计40分)

第 23 页, 共 56 页

全国计算机等级考试二级Visual FoxPro上机试卷

1. 用SQL语句完成下列操作:将选课在5门课程以上(包括5门)的学生的学号、姓名、平均分和选课门数按平均分降序排序,并将结果存放于数据库表stu_temp(字段名为学号、姓名、平均分和选课门数)。

2. 建立一个名为menu_lin的下拉式菜单,菜单中有两个菜单项\查询\和\退出\。\查询\项下还有一个子菜单,子菜单有\按姓名\和\按学号\两个选项。在\退出\菜单项下创建过程,该过程负责使程序返回到系统菜单。 三、综合应用(1小题,计30分)

设计名为mystu的表单(控件名为form1,文件名为mystu)。表单的标题为\学生学习情况统计\。表单中有一个选项组控件(命名为myOption)和两个命令按钮\计算\(名称为Command1)和\退出\(名称为Command2)。其中,选项组控件有两个按钮\升序\(名称为Option1)和\降序\(名称为Option2)。 运行表单时,首先在选项组控件中选择\升序\或\降序\,单击\计算\命令按钮后,按照成绩\升序\或\降序\(根据选项组控件)将选修了\语言\的学生学号和成绩分别存入stu_sort1.dbf和stu_sort2.dbf文件中。单击\退出\按钮关闭表单。 简单应用题答案:

1、 sele 学生.学号,姓名,sum(成绩) as 总成绩,count(选课.学号) AS 选课门数 from 选课,学生 WHERE 学生.学号=选课.学号;

GROUP BY 选课.学号 HAVING COUNT(选课.学号)>=5 INTO TABLE aaa

sele 学号,姓名,总成绩/选课门数 as 平均分,选课门数 from aaa order by 平均分 DESC INTO TABLE stu_temp

综合应用题答案:

“计算”命令按钮的CLICK事件代码为: DO CASE

CASE THISFORM.myOption.VALUE=1

SELECT 学生.学号,成绩 FROM 学生,选课,课程 where 学生.学号=选课.学号 and 课程.课程号=选课.课程号 and; 课程名称=\语言\成绩 INTO TABLE stu_sort1 CASE THISFORM.myOption.VALUE=2

SELECT 学生.学号,成绩 FROM 学生,选课,课程 where 学生.学号=选课.学号 and 课程.课程号=选课.课程号 and; 课程名称=\语言\成绩 desc INTO TABLE stu_sort2 ENDCASE “退出”命令按钮的CLICK事件代码为:thisform.release

第 43 套

一、基本操作题(共4小题,第1和2题是7分、第3和4题是8分)

1. 打开数据库SCORE_MANAGER,该数据库中含三个有联系的表STUDENT、SCORE1和COURSE,根据已经建立好的索引,建立表之间联系。

2. 为COURSE表增加字段:开课学期(N,2,0)。

3. 为SCORE1表\成绩\字段设置字段有效性规则:成绩>=0,出错提示信息是:\成绩必须大于或等于零\。 4. 将SCORE1表\成绩\字段的默认值设置为空值(NULL)。 二、简单应用(2小题,每题20分,计40分)

1. 在SCORE_MANAGER数据库中查询学生的姓名和年龄(计算年龄的公式是:2003-Year(出生日期),年龄作为字段名),结果保存在一个新表NEW_TABLE1中。使用报表向导建立报表NEW_REPORT1,用报表显示NEW_TABLE1的内容。报表中数据按年龄升序排列,报表标题是\姓名-年龄\,其余参数使用缺省参数。

2. 在SCORE_MANAGER数据库中查询没有选修任何课程的学生信息,查询结果包括\学号\、\姓名\和\系部\字段,查询结果按学号升序保存在一个新表NEW_TABLE2中。 三、综合应用(1小题,计30分)

SCORE_MANAGER数据库中含有三个数据库表STUDENT、SCORE1和COURSE。 为了对SCORE_MANAGER数据库数据进行查询,设计一个如图所示的表单Myform1(控件名为form1,表单文件名Myform1.scx)。表单的标题为\成绩查询\。表单左侧有文本\输入学号(名称为Label1的标签)\和用于输入学号的文本框(名称为Text1)以及\查询\(名称为Command1)和\退出\(名称为Command2)两个命令按钮以及1个表格控件。表单运行时,用户首先在文本框中输入学号,然后单击\查询\按钮,如果输入学号正确,在表单右侧以表格(名称为Grid1)形式显示该生所选课程名和成绩,否则提示\学号不存在,请重新输入学号\。 单击\退出\按钮,关闭表单。

简单应用题答案:

1、sele 姓名,2003-year(出生日期) AS 年龄 FROM student into table new_table1

sele 学号,姓名,系部 from student where 学号 not in(sele dist 学号 from score1) order by 学号 into table new_table2 综合应用题答案:

表单的INIT事件代码为: THISFORM.GRID1.RECORDSOURCE='',表单的LOAD事件代码为: CLOSE ALL USE STUDENT

将GRID1的recordsourcetype设置为4,columncount设为2,两列标头的caption属性设为“课程名”和“成绩”。 “查询”命令按钮的CLICK事件代码为:

第 24 页, 共 56 页

全国计算机等级考试二级Visual FoxPro上机试卷

GO TOP

LOCATE FOR Student.学号==ALLTRIM(THISFORM.TEXT1.VALUE) IF Student.学号==ALLTRIM(THISFORM.TEXT1.VALUE)

THISFORM.GRID1.RECORDSOURCE=\课程名,成绩 FROM course,score1,student where Student.学号=Score1.学号 and ;

Course.课程号= Score1.课程号 and Student.学号=ALLTRIM(THISFORM.TEXT1.VALUE) INTO CURSOR TEMP\ELSE

MESSAGEBOX(\学号不存在,请重新输入学号\ THISFORM.GRID1.RECORDSOURCE=''

ENDIF “退出”命令按钮的CLICK事件代码为:THISFORM.RELEASE

第 44 套

一、基本操作题(共4小题,第1和2题是7分、第3和4题是8分)

1. 建立菜单QUERY_MENU。该菜单只有\查询\和\退出\两个主菜单项(条形菜单),其中单击菜单项\退出\时,返回到VFP系统

菜单(相应命令写在命令框中,不要写在过程中)。

2. 将COURSE表的\开课系部\字段名改为\开课单位\,其余不变。 3. 从数据库SCORE_MANAGER中移去表TEMP2.DBF(不是删除)。

4. 将SCORE1表中记录按学号从低到高排序,在学号相同的情况下再按成绩从高到低排序,排序结果存入表NEW_ORDER。 二、简单应用(2小题,每题20分,计40分)

1. 在SCORE_MANAGER数据库中统计选修了课程的学生人数(选修多门时,只计算1次),统计结果保存在一个新表NEW_TABLE中,表中只有一个字段, 字段名为学生人数。

2. 在SCORE_MANAGER数据库中查询没有学生选修的课程,查询结果含\课程名\和\开课单位\字段,结果按课程名升序保存在一个新表NEW_TABLE2中(注

意:字段名\开课单位\是在基本操作中根据\开课系部\修改后的字段名)。 三、综合应用(1小题,计30分)

SCORE_MANAGER数据库中含有三个数据库表STUDENT、SCORE1和COURSE。为了对SCORE_MANAGER数据库数据进行查询,设计一个表单Myform3(控件名为form1,表单文件名为Myform3)。表单标题为\成绩查询\;表单有\查询\(名称为Command1)和\退出\(名称为Command2)两个命令按钮。表单运行时,单击\查询\按钮,查询每门课程的最高分,查询结果中含\课程名\和\最高分\字段,结果按课程名升序保存在表NEW_TABLE3。单击\退出\按钮,关闭表单。 基本操作题答案:

4、sele * from score1 ORDER BY 学号,成绩 DESC INTO TABLE NEW_ORDER 简单应用题答案:

1、sele count(dist 学号) AS 学生人数 FROM SCORE1 INTO TABLE NEW_TABLE

2、sele 课程名,开课单位 form course where 课程号 not in (sele 课程号 from score1) order by 课程名 ;

into table new_table2

综合应用题答案:

“查询”命令按钮的CLICK事件代码为:

SELECT 课程名,MAX(成绩) AS 最高分 FROM course,score1,student where Student.学号=Score1.学号 and ; Course.课程号=Score1.课程号 GROUP BY 课程名 INTO TABLE NEW_TABLE3 “退出” 命令按钮的CLICK事件代码为:thisform.release

第 45 套

一、基本操作题(共4小题,第1和2题是7分、第3和4题是8分) 1. 创建一个名为Sproject的项目文件。

2. 将考生文件夹下的学生数据库SDB添加到新建的项目文件中。

3. 打开学生数据库SDB,将考生文件夹下的自由表TEACHER添加到学生数据库SDB中;为教师表TEACHER创建一个索引名和索引表达式均为教师号的主索引(升序);为班级表CLASS创建一个索引名和索引表达式均为班主任号的普通索引(升序)。 4. 通过\班级号\字段建立班级表CLASS和学生表STUDENT表间的永久联系。通过班级表CLASS的\班主任号\字段与教师表TEACHER的\教师号\字段建立班级表CLASS和教师表TEACHER间的永久联系。 二、简单应用(2小题,每题20分,计40分)

1. 在考生文件夹下使用菜单设计器设计一个名称为SMENU的下拉式菜单。 要求如下:菜单包括\数据浏览\和\退出\两个菜单栏。①数据浏览菜单栏包括\学生表\和\课程表\两个选项: 学生表选项在过程中使用SQL语句\* FROM STUDENT\查询学生表STUDENT的记录。课程表选项在过程中使用SQL语句\查询课程表COURSE的记录。 ②退出菜单栏包括\返回到系统菜单\一个选项:返回系统菜单选项在过程中使用命令返回系统默认的菜单。

2. 在考生文件夹下打开命令文件ONE.PRG,该命令文件用来建立一个名称为S_VIEW的视图,视图查询学生的班级号、班级名、姓名、性别和班主任名(来自TEACHER表的教师名)。命令文件只包含两条语句,第1条语句有一个错误,第2条语句有两个错误,请修改之,并运行。注意,修改时不可改变SQL语句的结构和短语的顺序,不允许增加或合并行。 三、综合应用(1小题,计30分)

在考生文件夹下,打开学生数据库SDB,完成如下综合应用:设计一个表单名为sform的表单,表单文件名为SDISPLAY,表单的标题为\学生课程教师基本信息浏览\。表单上有一个包含三个选项卡的页框(Pageframe1)控件和一个\退出\按钮(Command1)。其他功能要求如下: 1. 为表单建立数据环境,向数据环境依次添加STUDENT表(cursor1)、COURSE表(cursor2)和TEACHER表(cursor3)。2. 要求表单的高度为280,宽度为450;表单显示时自动在主窗口内居中。 3. 三个选项卡的标签的名称分别为\学生表\(Page1)、\课程表\(Page2)和\教师表\(Page3),每个选项卡分别以表格形式浏览学生表(grdStudent)、课程表(grdCourse)和教师表(grdTeacher)的信息。选项卡位于表单的左边距为18,顶边距为10,选项卡的高度为230,宽度为420。4. 单击\退出\按钮时关闭表单。

第 25 页, 共 56 页

全国计算机等级考试二级Visual FoxPro上机试卷

简单应用题答案:

第一处将“USE sdb”改为“OPEN DATA sdb”, 第二处将“CREATE VIEW”改为“CREA VIEW S_VIEW AS” 第三处将“WHERE Student.班级号=Class.班级号,Teacher.教师号=Class.班主任号”改为

“WHERE Student.班级号=Class.班级号 and Teacher.教师号 = Class.班主任号”。(加 and)

第 46 套

一、基本操作题(共4小题,第1和2题是7分、第3和4题是8分) 在考生文件夹下,打开一个公司销售数据库SELLDB,完成如下操作:

1. 为各部门分年度季度销售金额和利润表S_T创建一个主索引和普通索引(升序),主索引的索引名为NO,索引表达式为\部门号+年度\;普通索引的索引名和索引表达式均为部门号。

2. 在S_T表中增加一个名为\备注\的字段、字段数据类型为\字符\、宽度为30。

3. 使用SQL的ALTER TABLE语句将S_T表的年度字段的默认值修改为\,并将该SQL语句存储到命令文件ONE.PRG中。

4. 通过\部门号\建立S_T表和DEPT表间的永久联系,并为该联系设置参照完整性约束:更新规则为\级联\;删除规则为\限制\;插入规则为\忽略\。

二、简单应用(2小题,每题20分,计40分)

在考生文件夹下,打开公司销售数据库SELLDB,完成如下简单应用:

1. 使用一对多表单向导生成一个名为SD_EDIT的表单。要求从父表DEPT中选择所有字段,从子表S_T表中选择所有字段,使用\部门号\建立两表之间的关系,样式为阴影式;按钮类型为图片按钮;排序字段为部门号(升序);表单标题为\数据输入维护\。 2. 在考生文件夹下打开命令文件TWO.PRG,该命令文件用来查询各部门的分年度的部门号、部门名、年度、全年销售额、全年利润和利润率(全年利润/全年销售额),查询结果先按年度升序、再按利润率降序排序,并存储到S_SUM表中。 注意,程序在第5行、第6行、第8行和第9行有错误,请直接在错误处修改。修改时,不可改变SQL语句的结构和短语的顺序,不允许增加或合并行。 三、综合应用(1小题,计30分)

在考生文件夹下,打开公司销售数据库SELLDB,完成如下综合应用:设计一个表单名为Form_one、表单文件名为SD_SELECT、表

单标题名为\部门年度数据查询\的表单,其表单界面如图所示。其他要求如下:1. 为表单建立数据环境,向数据环境添加S_T表(Cursor1)。2. 当在\年度\标签右边的微调控件中(Spinner1)选择年度并单击\查询\按钮(Command1)时,则会在下边的表格(Grid1)控件内显示该年度各部门的四个季度的销售额和利润。指定微调控件上箭头按钮(SpinnerHighValue属性)与下箭头按钮(SpinnerLowValue属性)值范围为2010-1999,缺省值(Value属性)为2003,增量(Increment属性)为1。 3. 单击\退出\按钮(Command2)时,关闭表单。要求:表格控件的RecordSourceType属性设置为\-SQL说明\。 基本操作题答案:

4、ALTER TABLE S_T ALTER COLUMN 年度 SET DEFAULT \

简单应用题答案:(注意:FROM S_T DEPT;少一“,”应改为“FROM S_T,DEPT;”,题中没说) 第一处将:“一季度利润+二季度利润+三季度利润+四季度利润/一季度销售额+二季度销售额+三季度销售额+四季度销售额 AS 利率”

改为:

“(一季度利润+二季度利润+三季度利润+四季度利润)/(一季度销售额+二季度销售额+三季度销售额+四季度销售额) AS 利润率”。 第二处将“GROUP BY 年度 利润率 DESC”改为“ORDER BY 年度,利润率 DESC” 第三处将“INTO S_SUM”改为 “INTO TABLE S_SUM”。 综合应用题答案:

“查询”命令按钮的CLICK事件代码为:

aa=(thisform.spinner1.value) aa=alltrim(str(aa)) aa=left(aa,4)

ThisForm.Grid1.RecordSource=\年度=aa\“退出”命令按钮的CLICK事件代码为:thisform.release

第 47 套

一、基本操作题(共4小题,第1和2题是7分、第3和4题是8分)

1. 用命令新建一个名为\外汇\的数据库,并将该命令存储于one.txt中;

2. 将自由表\外汇汇率\、\外汇账户\、\外汇代码\加入到新建的\外汇\数据库中;

3. 用SQL新建一个表rate,其中包含4个字段\币种1代码\、\币种2代码\、\买入价\、\卖出价\,请将SQL语句存储于two.txt中。

4. 表单文件test_form中有一个名为form1的表单(如图),请将编辑框控件Edit1的滚动条去掉。

第 26 页, 共 56 页

全国计算机等级考试二级Visual FoxPro上机试卷

二、简单应用(2小题,每题20分,计40分)

1. 编写程序three.prg完成下列操作:根据\外汇汇率\表中的数据产生rate自由表中的数据。 要求:将所有\外汇汇率\表中的数据插入rate表中并且顺序不变,由于\外汇汇率\中的币种1和币种2存放的是外币名称,而rate表中的币种1代码和币种2代码应该存放外币代码,所以插入时要做相应的改动,外币名称与外币代码的对应关系存储在\外汇代码\表中。注意:程序必须执行一次,保证rate表中有正确的结果。

2. 使用查询设计器建立一个查询文件four.qpr。查询要求:外汇帐户中有多少日元和欧元。查询结果包括了外币名称、钞汇标志、金额,结果按外币名称升序排序,在外币名称相同的情况下按金额降序排序,并将查询结果存储于表five.dbf 中。 三、综合应用(1小题,计30分)

设计一个文件名和表单名均为myaccount的表单。表单的标题为\外汇持有情况\。表单中有一个选项按钮组控件(myOption)、一个表格控件(Grid1)以及两个命令按钮\查询\(Command1)和\退出\(Command2)。其中,选项按钮组控件有两个按钮\现汇\(Option1)、\现钞\(Option2)。运行表单时,首先在选项组控件中选择\现钞\或\现汇\,单击\查询\命令按钮后,根据选项组控件的选择将\外汇账户\表的\现钞\或\现汇\(根据钞汇标志字段确定)的情况显示在表格控件中。单击\退出\按钮,关闭并释放表单。注:在表单设计器中将表格控件Grid1的数据源类型设置为\说明\。 基本操作题答案:

1、creat database 外汇

3、create table rate (币种1代码 C(2), 币种2代码 C(2), 买入价 N(8,4), 卖出价 N(8,4)) 4、将编辑框(EDIT1)的ScrollBars属性设置为“无” 简单应用题答案:

1、程序three.prg的内容如下:

SELECT 外汇代码.外币代码 AS 币种1代码, aa.外币代码 AS 币种2代码,买入价,卖出价 FROM 外汇代码,外汇汇率,; 外汇代码 aa where 币种2 =aa.外币名称 and 外汇代码.外币名称=币种1 INTO array temp insert into rate from array temp

综合应用题答案:

“查询”按钮的CLICK事件代码为:

DO CASE

CASE THISFORM.myOption.VALUE=1

THISFORM.GRID1.RECORDSOURCE=\外币代码,金额 FROM 外汇账户 WHERE 钞汇标志='现汇' into table temp\ CASE THISFORM.myOption.VALUE=2

THISFORM.GRID1.RECORDSOURCE=\外币代码,金额 FROM 外汇账户 WHERE 钞汇标志='现钞' into table temp\

ENDCASE

“退出”按钮的CLICK事件代码为:thisform.release

第 48 套

一、基本操作题(共4小题,第1和2题是7分、第3和4题是8分) 1. 建立项目\超市管理\;并把\商品管理\数据库加入到该项目中。

2. 为商品表增加字段:销售价格N(6,2),该字段允许出现\空\值,默认值为.NULL.。

3. 为\销售价格\字段设置有效性规则:销售价格>0;出错提示信息是:\销售价格必须大于零\。

4. 用报表向导为商品表创建报表:报表中包括商品表中全部字段,报表样式用\经营式\,报表中数据按商品编码升序排列,报表文件名report_a.frx。其余按缺省设置。

二、简单应用(2小题,每题20分,计40分)

1. 使用SQL命令查询2001年(不含)以前进货的商品,列出其分类名称、商品名称、进货日期,查询结果按进货日期升序排序并存入文本文件infor_a.txt中;所用命令存入文本文件cmd_aa.txt中;

2. 用SQL UPDATE 命令为所有商品编码首字符是\的商品计算销售价格:销售价格为在进货价格基础上加22.68%,并把所用命令存入文本文件cmd_ab.txt中。

第 27 页, 共 56 页

全国计算机等级考试二级Visual FoxPro上机试卷

三、综合应用(1小题,计30分)

建立表单,表单文件名和表单名均为myform_a,表单标题为\商品浏览\,表单样例如图所示(左图)。其它功能要求如下: 1. 用选项按钮组(OptionGroup1)控件选择商品分类(饮料(Option1)、调味品(Option2)、酒类(Option3)、小家电(Option4)); 2. 单击\确定\(Command2)命令按钮,显示选中分类的商品,要求使用DO CASE语句判断选择的商品分类(如右图所示); 3. 在右图所示界面中按Esc键返回左图所示界面;

4. 单击\退出\(Command1)命令按钮,关闭并释放表单。 注:选项按钮组控件的Value属性必须为数值型。 简单应用题答案:

1、cmd_aa.txt的内容如下:

SELECT 分类名称,商品名称,进货日期 FROM 商品,分类WHERE 商品.分类编码=分类.分类编码 AND 进货日期<{^2001-01-01}; order by 进货日期 TO FILE infor_a.txt 2、cmd_ab.txt的内容如下:

update 商品 set 销售价格=进货价格*1.2268 where substr(商品编码,1,1)=\综合应用题答案:

“确定”命令按钮的CLICK事件代码为: DO CASE

CASE THISFORM.OPTIONGROUP1.VALUE=1

SELECT 商品.* FROM 分类,商品 WHERE分类.分类编码=商品.分类编码 and 分类.分类名称=\饮料\

CASE THISFORM.OPTIONGROUP1.VALUE=2

SELECT 商品.* FROM 分类,商品 WHERE分类.分类编码=商品.分类编码 and 分类.分类名称=\调味品\ CASE THISFORM.OPTIONGROUP1.VALUE=3

SELECT 商品.* FROM 分类,商品 WHERE分类.分类编码=商品.分类编码 and 分类.分类名称=\酒类\ CASE THISFORM.OPTIONGROUP1.VALUE=4

SELECT 商品.* FROM 分类,商品 WHERE分类.分类编码=商品.分类编码 and 分类.分类名称=\小家电\

ENDCASE

“退出”命令按钮的CLICK事件代码为:thisform.release

第 49 套

一、基本操作题(共4小题,第1和2题是7分、第3和4题是8分) 在考生目录下打开表单文件calculator.scx,并完成下列操作: 1.设置表单控件名为calculator,保存表单。

2.设置表单内文本控件 Text2的输入掩码使其具有如下功能:仅允许输入数字,宽度为10(直接使用相关掩码字符设置),保存表单。

3.设置表单内文本控件Text3为只读控件,保存表单。

4.为其增加一组如图所示选项按钮组(Optiongroup1),4个按钮依次为\、\、\、\,保存表单。

注意:所涉及的数字和字母均为半角字符。 二、简单应用(2小题,每题20分,计40分)

1. 打开程序文件cylinder.prg,请按要求修改程序并运行程序。

2. 以表employee.dbf和orders.dbf中数据为基础,使用SQL命令检索订单数最多的前三名职工的职工号、姓名和订单数,检索结果按订单数降序排序存入表newcoun.dbf,同时将所用SQL命令存入文件new.txt文件。 三、综合应用(1小题,计30分)

基于数据库pdtmng建立如图所示顶层表单应用,表单文件名为myform.scx,表单控件名为goods,表单标题为\商品\。1. 表单内含一表格控件Grid1(默认控件名),当表单运行时,该控件将按用户的选择(单击菜单)来显示products.dbf中某一类商品数据,RecordSourceType的属性为4(SQL说明); 2. 建立如图所示的菜单(菜单文件名为mymenu.mnx),其条形菜单的菜单项为\商品分类\和\退出\,\商品分类\的下拉菜单为\小家电\、\饮料\和\酒类\;单击下拉菜单中任何一个菜单命令后,表格控件均会显示该类商品(在过程中完成);3. 在表单的Load事件中执行菜单程序mymenu.mpr;4. 菜单项\退出\的功能是关闭表单并返回到系统菜单(在过程中完成)。

第 28 页, 共 56 页

全国计算机等级考试二级Visual FoxPro上机试卷

简单应用题答案:

1、第六行改为: carea=cya(r,h), 第十四行改为: RETURN C 2、NEW.TXT的内容如下:

SELE TOP 3 Employee.职工号,姓名,COUNT(Employee.职工号) AS 订单数 FROM employee,orders; WHERE Employee.职工号=Orders.职工号 GROU BY Employee.职工号 ORDE BY 3 DESC INTO TABL newcoun

综合应用题答案:步骤如下:

1、建立好要求样式的表单,将表单的showwindos属性设置为2。表单的LOAD事件代码为:do mymenu.mpr with this,.t. 2、建立好下拉式菜单,将“显示”—>“常规选项”—>“顶层表单”选中 3、菜单项“小家电”的过程代码如下:

myform.grid1.recordsource=\分类编码=category.分类编码 and; category.分类名称='小家电' into cursor aaa\菜单项“饮料”的过程代码如下:

myform.grid1.recordsource=\分类编码=category.分类编码 and; category.分类名称='饮料' into cursor aaa\菜单项“酒类”的过程代码如下:

myform.grid1.recordsource=\分类编码=category.分类编码 and; category.分类名称='酒类' into cursor aaa\菜单项“退出”的命令代码为: Myfrom.release 4、生成菜单

第 50 套

一、基本操作题(共4小题,第1和2题是7分、第3和4题是8分)

1. 打开数据库\外汇\,通过\外币代码\字段为\外汇代码\和\外汇账户\建立永久联系。 2. 新建一个名为\外汇管理\的项目文件,将数据库\外汇\加入\外汇管理\项目中。

3. 修改mymenu菜单文件,为\文件\下的子菜单项\查找\设置访问键F(显示方式为\查找F\),并生成新的菜单程序。

4. 修改one.prg中的SQL语句,使之正确(该语句的功能是从rate表中删除币种1代码为14,并且币种2代码为27的记录)。 二、简单应用(2小题,每题20分,计40分)

1. 用SQL语句进行以下查询:查询\外汇账户\表中的日元信息。查询结果包括钞汇标志、金额,结果按金额降序排序,并存储于表two.dbf 中,并将SQL语句存储于新建的there.txt文件中。

2. 用一对多报表向导建立报表,\外汇代码\表为父表,\外汇账户\表为子表。要求:选择父表和子表中的全部字段;用\外币代码\字段为两个表建立关系;排序方式为按\外币代码\升序;报表样式为\帐务式\,方向为\横向\;报表标题为\外汇账户情况\;报表文件名为report_account。然后在报表设计器中修改该报表,在报表标题带区的右端利用OLE对象插入文件picture.gif。 三、综合应用(1小题,计30分)

设计一个文件名和表单名均为rate的表单,表单的标题为\外汇汇率查询\,表单界面如图所示,表单中有两个下拉列表框(Combo1和Combo2),这两个下拉列表框的数据源类型(RowSourceType属性)均为字段,且数据源(RowSource属性)分别是外汇汇率表的\币种1\和\币种2\字段;另外有币种1(Label1)和币种2(Label2)两个标签以及两个命令按钮\查询\(Command1)和\退出\(Command2)。运行表单时,首先从两个下拉列表框选择币种,然后单击\查询\按钮,用SQL语句从外汇汇率表中查询相应币种(匹配币种1和币种2的信息),并将结果存储到表temp_rate中。单击\退出\按钮关闭表单。

基本操作题答案:

1、 将“查找”改为:“查找\\

2、 修改后的内容为:delete from rate where 币种1代码=“14” AND 币种2代码=“27” 简单应用题答案:

1、sele钞汇标志,金额 from外汇代码,外汇账户 where外汇代码.外币代码=外汇账户.外币代码 and 外汇代码.外币名称=;

\日元\金额 desc into table two

综合应用题答案:

Combo1和Combo2的style属性设为:2-下拉列表框,数据环境设为外汇汇率,rowsource属性分别设为:“外汇汇率.币种1”和“外汇汇率.币种2”

“查询”命令按钮的CLICK事件代码为:

sele * from 外汇汇率 wher 币种1=thisform.combo1.value .and. 币种2=thisform.combo2.value into table temp_rate “退出”命令按钮的CLICK事件代码为:thisform.release

第 29 页, 共 56 页

全国计算机等级考试二级Visual FoxPro上机试卷

第 51 套

一、基本操作题(共4小题,第1和2题是7分、第3和4题是8分) 1. 打开\学生管理\数据库,并从中永久删除\学生\表。 2. 建立一个自由表\教师\,表结构如下: 编号 字符型(8) 姓名 字符型(10) 性别 字符型(2) 职称 字符型(8)

3. 利用查询设计器建立一个查询,该查询包含课程名为\数据库\的\课程\表中的全部信息,生成的查询保存为query。

4. 用 SQL UPDATE语句将\课程\表中课程名为\数据库\的课程的任课教师更改为\,并将相应的SQL语句存储在文件Four.prg中。

二、简单应用(2小题,每题20分,计40分)

1. 建立表单,表单文件名和表单控件名均为formtest,表单标题为\考试系统\,表单背景为灰色(BackColor=255,255,255),其他要求如下:(1) 表单上有\欢迎使用考试系统\(Label1)8个字,其背景颜色为灰色(BackColor=255,255,255),字体为楷体_GB2312,字号为24,字的颜色为桔红色(ForeColor=255,128,0);当表单运行时,\欢迎使用考试系统\个字向表单左侧移动,移动由计时器控件Timer1控制,间隔(interval属性)是每200毫秒左移10个点(提示:在Timer1控件的Timer事件中写语句:THISFORM.Label1.Left=THISFORM.Label1.Left-10)。当完全移出表单后,又会从表单右侧移入。(2) 表单有一命令按钮(Command1),按钮标题为\关闭\,表单运行时单击此按钮关闭并释放表单。

2. 在\学生管理\数据库中利用视图设计器建立一个视图sview,该视图包含3个字段:课程编号、课程名和选课人数。然后利用报表向导生成一个报表creport,该报表包含视图sview的全部字段和内容。 三、综合应用(1小题,计30分)

在考生目录下有myform 表单文件,将该表单设置为顶层表单,然后设计一个菜单,并将新建立的菜单应用于该表单(在表单的load事件中运行菜单程序)。新建立的菜单文件名为mymenu,结构如下(表单、报表和退出是菜单栏中的3个菜单项): 表单

浏览课程

浏览选课统计 报表

预览报表 退出

各菜单项的功能如下:● 选择\浏览课程\时在表单的表格控件中显示\课程\表的内容(在过程中完成,直接指定表名);● 选择\浏览选课统计\时在表单的表格控件中显示简单应用题建立的视图sview的内容(在过程中完成,直接指定视图名);● 选择\预览报表\时预览简单应用题建立的报表 creport(在命令中完成);● 选择\退出\时关闭和释放表单(在命令中完成)。注意:最后要生成菜单程序,并注意该菜单将作为顶层表单的菜单。 基本操作题答案:

4、UPDA 课程 SET 任课教师='T2222' WHER 课程名=\数据库\简单应用题答案:

1、Timer1的timer事件代码为:

IF THISFORM.Label1.Left+THISFORM.Label1.WIDTH<0 THISFORM.Label1.Left=THISFORM.WIDTH ELSE

THISFORM.Label1.Left=THISFORM.Label1.Left-10 ENDIF

2、本题用视图设计器做,下列语句仅供不会的同学参考。

SELECT 考试成绩.课程编号,课程名,count(学号) as 选课人数 FROM 考试成绩,课程 where; 考试成绩.课程编号=课程.课程编号 GROUP BY 考试成绩.课程编号 综合应用题答案:具体操作步骤如下:

1、 打开表单,将表单的SHOWWINDOWS属性设置为2

2、 表单的LOAD事件代码为:DO MYMENU.MPR WITH THIS,.t. ;表单的DESTORY事件代码为: release menu mymenu 3、 建立好下拉式菜单,将“显示”—>“常规选项”—>“顶层单表”项选中

4、 菜单项“浏览课程”的过程代码如下:myform.grid1.recrodsource=“课程”

菜单项“浏览选课统计”的过程代码如下:myform.gird1.recordsource=“SVIEW” 菜单项“预览报表”的过程代码如下:report form creport preview 菜单项“退出”的命令为代码为:myform.release

第 52 套

一、基本操作题(共4小题,第1和2题是7分、第3和4题是8分)

1.建立数据库orders_manage,将自由表employee和orders添加到新建的数据库中。 2.为employee表的性别字段设置默认值\男\。

3.为employee表的\性别\字段定义有效性规则,规则表达式为:性别 $ \男女\,出错提示信息为\性别必须是男或女\。

4.使用SQL命令从employee表中查询所有已婚(婚否字段值为逻辑真)记录的职工号、姓名和出生日期信息,结果按出生日期

降序排序存入表infor_da中,同时把所用命令存入文本文件cmd_da.txt。

二、简单应用(2小题,每题20分,计40分)

1.建立表单,表单文件名和表单控件名均为myform_da。为表单建立快捷菜单scmenu_d,快捷菜单有选项\时间\和\日期\;运行表单时,在表单上单击鼠标右键弹出快捷菜单,选择快捷菜单的\时间\项,表单标题将显示当前系统时间,选择快捷菜单\日期\项,表单标题将显示当前系统日期。 注意:显示时间和日期用过程实现。

第 30 页, 共 56 页

全国计算机等级考试二级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 页

全国计算机等级考试二级Visual FoxPro上机试卷

课程名和分数),并把这些数据保存到表table3中(若一个学生有多门课程不及格,在表table3中就会有多条记录)。表table3中的各记录应该按分数升序排序,分数相同则按学号降序排序。要求在程序中用SET RELATION命令建立chengji表和xuesheng表之间的关联(同时用INDEX命令建立相关的索引),并通过DO WHILE循环语句实现规定的功能。最后运行程序。 简单应用题答案:

2、crea view view1 as sele xuesheng.学号,姓名,英语 from xuesheng,chengji where xuesheng.学号=chengji.学号 and; 民族<>\汉\英语 desc,xuesheng.学号 sele * from view1 into table table2 综合应用题答案: SET TALK OFF SET SAFE OFF CLOS ALL USE TABLE3 ZAP

SELECT * FROM table3 WHERE .f. INTO TABLE temp SELECT 1

USE xuesheng

INDEX ON 学号 TAG 学号 SELECT 2

USE chengji

INDEX ON 学号 TAG 学号

SET RELATION TO 学号 INTO xuesheng GO TOP

DO WHILE .NOT.EOF() IF chengji.数学<60

INSERT INTO temp values (xuesheng.学号,xuesheng.姓名,'数学',chengji.数学) ENDIF

IF chengji.英语<60

INSERT INTO temp values (xuesheng.学号,xuesheng.姓名,'英语',chengji.英语) ENDIF

IF chengji.信息技术<60

INSERT INTO temp values (xuesheng.学号,xuesheng.姓名,'信息技术',chengji.信息技术) ENDIF SKIP ENDDO

SELECT * FROM temp ORDER BY 分数,学号 DESC INTO ARRAY arr INSERT INTO table3 FROM ARRAY arr CLOSE ALL

DROP TABLE temp SET TALK ON RETURN

第 60 套

一、基本操作题(共4小题,第1和2题是7分、第3和4题是8分)

1. 修改菜单my_menu,my_menu中的\文件\菜单项下有子菜单项\新建\、\打开\、\关闭\和\退出\,请在\关闭\和\退出\之间加一条水平的分组线,并为\退出\菜单项设置一条返回到系统菜单的命令(不可以使用过程)。 2. 使用\调试器\单步调试考生文件夹下的程序debug.prg,调试结束后,将调试输出窗口中的内容保存到文本文件debug_out.txt中。

3. 使用SQL建立表的语句建立一个与自由表\金牌榜\结构完全一样的自由表 golden.dbf。请将该SQL语句存储在文件one.prg中,否则不得分。

4. 使用SQL语句向自由表golden.dbf中添加一条记录(\。请将该SQL语句存储在文件two.prg中,否则不得分。 二、简单应用(2小题,每题20分,计40分) 1. 使用SQL语句完成下面的操作:根据\国家\和\获奖牌情况\两个表统计每个国家获得的金牌数(\名次\为1表示获得一块金牌)结果包括\国家名称\和\金牌数\两个字段,并且先按\金牌数\降序、再按\国家名称\降序排列存储到表temp中。请将该SQL语句存储在文件three.prg中,否则不得分。

2. 建立一个文件名和控件名均为myform的表单,表单构造见下图。表单中包括一个列表框(List1)、一个选项组(Optiongroup1)和一个\退出\命令按钮(Command1),这三个控件名使用系统默认的名字。相关控件属性设置要求:表单的标题为\奖牌查询\,列表框的数据源使用SQL语句根据\国家\表显示国家名称,选项组中有三个按钮,标题分别为金牌(Option1)、银牌(Option2)和铜牌(Option3)。

三、综合应用(1小题,计30分)

打开考生文件夹下的sport_project项目,项目中有一个表单sport_form,表单中包括三个命令按钮。请完成如下操作:

1. 编写并运行程序Four.prg。程序功能是:根据\国家\和\获奖牌情况\两个表统计并建立一个新表\假奖牌榜\,新表包括\国家名称\和\奖牌总数\两个字段,要求先按奖牌总数降序排列(注意\获奖牌情况\的每条记录表示一枚奖牌)、再按\国家名称\升序排列。 2. 为表单sport_form中的\生成表\命令按钮编写一条命令,执行Four.prg程序。

3. 将快速报表sport_report加入项目文件,并为表单sport_form中的命令按钮\浏览报表\编写一条命令,预览快速报表sport_report。

4. 将自由表\国家\和\获奖牌情况\加入项目文件sport_project,然后将项目文件连编成应用程序文件sport_app.app。

第 36 页, 共 56 页

全国计算机等级考试二级Visual FoxPro上机试卷

基本操作题答案:

1、首先在“关闭”与“退出”菜单项间插入一新菜单项,输入“\\-”即可获取水平线, “退出”菜单项的命令代码为:SET SYSMENU TO DEFAULT 3、程序one.prg的内容为:

use 金牌榜

copy stru to golden

4、程序TWO.prg的内容为: insert into golden valu(\简单应用题答案:

1、程序THREE.prg的内容为:

SELECT国家名称,COUNT(名次) AS 金牌数 FROM国家,获奖牌情况 where 国家.国家代码=获奖牌情况.国家代码; and 获奖牌情况.名次=1 GROUP BY 国家.国家名称 ORDER BY 2 DESC,国家.国家名称 DESC INTO TABLE temp 2、将列表LIST1的rowsource属性设置为:“select 国家名称 from 国家”,Rowsourcetype属性设置为:3 综合应用题答案:程序Four.prg的内容为:

SELECT国家名称,COUNT(名次) AS 奖牌总数 FROM 国家,获奖牌情况 WHERE 国家.国家代码=获奖牌情况.国家代码; GROUP BY 国家名称 ORDER BY 2 DESC,国家名称 INTO TABLE 假奖牌榜.dbf 表单sport_form中的\生成表\命令按钮的CLICK事件代码为:DO FOUR.PRG

表单sport_form中的命令按钮\浏览报表\的CLICK事件代码为:REPORT FORM SPORT_REPORT.FRX PREVIEW

第 61 套

一、基本操作题(共4小题,第1和2题是7分、第3和4题是8分)

1. 打开考生文件夹下的表单one(如图所示),在\显示\命令按钮的Click事件中增加一条语句,使表单运行时单击该命令按钮

的结果是在Text1文本框中显示当前系统日期的年份。

2. 打开考生文件夹下的表单two(如图所示),为该表单新建一个方法test,该方法的功能是使\测试\按钮变为不可用。(\测

试\按钮的Click事件中已经有一条语句负责调用test方法)。

3. 创建一个快速报表study_report,报表中包含\课程表\中的所有字段。

4. 使用SQL语句为\教师表\的\职工号\字段增加有效性规则:职工号的最左边三位字符是110,表达式应为:LEFT(职工

号,3)=\。请将该SQL语句存储在three.prg文件中,否则不得分。

二、简单应用(2小题,每题20分,计40分)

1. 打开数据库文件\课程管理\,使用 SQL语句建立一个视图salary,该视图包括了系号和(该系的)平均工资两个字段,并且按平均工资降序排列。请将该SQL语句存储在four.prg文件中,否则不得分。

2. 打开考生文件夹下的表单six(如图所示),\登录\命令按钮Click事件中的程序功能是:当用户输入用户名和口令以后,单击\登录\按钮时,程序根据自由表\用户表\的内容进行操作,若在\用户表\中找不到相应的用户名,则提示\用户名错误\,若用户名输入正确,而口令输入错误,则提示\口令错误\。在\登录\命令按钮Click事件中空行处填加适当的语句,使其能够正确运行。注意:不得做其他修改。

第 37 页, 共 56 页

全国计算机等级考试二级Visual FoxPro上机试卷

三、综合应用(1小题,计30分)

1. 建立一个如图所示的表单名和文件名均为myform的表单。表单的标题是\教师情况\,表单中有两个命令按钮(Command1和Command2),两个复选框(Check1和Check2)和两个单选钮(Option1和Option2)。Command1和Command2的标题分别是\生成表\

和\退出\,Check1和Check2的标题分别是\系名\和\工资\,Option1和Option2的标题分别是\按职工号升序\和\按职工号降序\。 2. 为\生成表\命令按钮编写程序。程序的功能是根据表单运行时复选框指定的字段和单选钮指定的排序方式生成新的自由表。如果两个复选框都被选中,生成的自由表命名为 two.dbf,two.dbf的字段包括职工号、姓名、系名、工资和课程号;如果只有\系名\复选框被选中,生成的自由表命名为one_x.dbf,one_x.dbf的字段包括职工号、姓名、系名和课程号;如果只有\工资\复选框被选中,生成的自由表命名为one_xx.dbf,one_xx.dbf的字段包括职工号、姓名、工资和课程号。

3. 运行表单,并分别执行如下操作:(1)选中两个复选框和\按职工号升序\单选钮,单击\生成表\命令按钮;(2)只选中\系名\复选框和\按职工号降序\单选钮,单击\生成表\命令按钮;(3)只选中\工资\复选框和\按职工号降序\单选钮,单击\生成表\命令按钮。

基本操作题答案:

1、“显示”命令按钮的Click事件代码为:thisform.text1.value=year(date()) 2、test的事件代码为:thisform.command1.enabled=.f.

4、程序three.prg的内容如下:alter table 教师表 alter 职工号 set check LEFT(职工号,3)=\简单应用题答案: 1、程序four.prg的内容如下:由于阅卷系统问题,本题必须严格照抄,包括行数。

create sql view salary as;

select 教师表.系号,AVG(教师表.工资) AS 平均工资; FROM 课程管理!教师表;

GROUP BY 教师表.系号; ORDER BY 2 DESC 2、第一处加:do while not eof(),由于阅卷系统问题,not前后不能带. 第二处加:endif,第三处加:skip,第四处加:if flag=0 综合应用题答案:“生成表”命令按钮的CLICK事件如下: Clos all

a=thisform.check1.value b=thisform.check2.value

c=thisform.optiongroup1.option1.value d=thisform.optiongroup1.option2.value if a=1 and b=1 if c=1

select 职工号,姓名,系名,工资,课程号 from教师表,学院表 where 教师表.系号=学院表.系号;

order by 职工号 into table two else if d=1

select 职工号,姓名,系名,工资,课程号 from教师表,学院表 where 教师表.系号=学院表.系号; order by 职工号 desc into table two endif endif endif

if a=1 and b=0 if c=1

select 职工号,姓名,系名,课程号 from教师表,学院表 where 教师表.系号=学院表.系号;

order by 职工号 into table one_x else if d=1

select 职工号,姓名,系名,课程号 from教师表,学院表 where 教师表.系号=学院表.系号; order by 职工号 desc into table one_x endif endif endif

if a=0 and b=1 if c=1

select 职工号,姓名,工资,课程号 from教师表,学院表 where 教师表.系号=学院表.系号; order by 职工号 into table one_xx else

if d=1

select 职工号,姓名,工资,课程号 from教师表,学院表 where 教师表.系号=学院表.系号; order by 职工号 desc into table one_xx

第 38 页, 共 56 页

全国计算机等级考试二级Visual FoxPro上机试卷

endif endif endif

第 62 套

一、基本操作题(共4小题,第1和2题是7分、第3和4题是8分) 在考生文件夹下,打开\宾馆\数据库,完成如下操作:

1. 打开\客户\表,给\性别\字段增加约束:性别只能为\男\或\女\,默认值为:\女\,表达式为: 性别 $ \男女\; 2. 为\入住\表创建一个主索引,主索引的索引名为fkkey,索引表达式为:\客房号+客户号\;

3. 根据各表的名称、字段名的含义和存储的内容建立表之间的永久联系,并根据要求建立相应的普通索引,索引名与建索引的字段名相同,升序排序。

4. 使用SQL的SELECT语句查询\客户\表中性别为\男\的客户号、身份证、姓名和工作单位字段值,并将结果存储到名为TABA的表(注意,该表不需要排序)。请将该语句存储到名为ONE.PRG的文件中。 二、简单应用(2小题,每题20分,计40分)

在考生文件夹下,打开\宾馆\数据库,完成如下简单应用:

1. 使用查询设计器设计一个名称为TWO的查询,查询房价价格大于等于280元的每个客房的客房号、类型号(来自客房表)、类型名和价格。查询结果按类型号升序排序,并将查询结果输出到表TABB中。设计完成后,运行该查询。

2. 修改一个名称为THREE.PRG的命令文件。该命令文件用来查询与\姚小敏\同一天入住宾馆的每个客户的客户号、身份证、姓名、工作单位,查询结果包括\姚小敏\本人。 查询结果输出到表TABC中。该命令文件在第3行、第5行、第7行和第8行有错误(不含注释行),打开该命令文件,直接在错误处修改,不可改变SQL语句的结构和短语的顺序,不允许增加、删除或合并行。修改完成后,运行该命令文件。

三、综合应用(1小题,计30分)

在考生文件夹下,先打开\宾馆\数据库,然后创建一个文件名为test的表单,如图所示。

该表单完成如下综合应用:在该表单中设计一个标签(Label1)、一个文本框(Text1)和两个命令按钮。标签的标题文本为\退房日期大于或等于\。 文本框用于输入退房日期。两个命令按钮的功能如下: ⑴ \查询\按钮(Command1):在该按钮的Click事件中使用SQL的SELECT命令查询退房日期大于或等于输入日期的客户号、身份证、姓名、工作单位和该客户入住的客房号、类型名、价格信息,查询结果按价格降序排序,并将查询结果存储到表TABD中。表TABD的字段为客户号、身份证、姓名、工作单位、客房号、类型名、价格。 ⑵ \退出\按钮(Command2)的功能是\关闭和释放表单\。表单设计完成后,运行该表单,查询退房日期大于或等于2005-04-01的顾客信息。 基本操作题答案:

3、“入住”按客房号和客房号分别建立普通索引,“客房”按类型号建立普通索引。“客户”和“入住”按客户号建立联系, “客房”和“入住”按客房号建立联系,“房价”和“客房”按类型号建立联系。 4、程序one.prg的内容如下:

SELECT 客户号,身份证,姓名,工作单位 FROM 客户 WHERE 性别=\男\简单应用题答案:

2、第三行后加“on 客户.客户号=入住.客户号”。第五行 select 后加“入住日期”。第三行条件改为“客户.客户号=入住.客户号

AND 姓名 = \姚小敏\”。第八行改为:“INTO TABLE TABC” 综合应用题答案:“查询”命令按钮的CLICK事件代码如下:

SELECT 客户.客户号,身份证,姓名,工作单位,客房.客房号,房价.类型名,价格;

FROM 客户,房价,入住,客房 WHERE 客户.客户号=入住.客户号 AND 客房.客房号=入住.客房号;

AND 房价.类型号=客房.类型号 AND 退房日期>=ctod(thisform.text1.value) ORDER BY 价格 DESC INTO TABLE tabd

第 63 套

一、基本操作题(共4小题,第1和2题是7分、第3和4题是8分) 1. 建一个表单,表单文件名和表单控件名均为myform。

2. 将myform表单设置为模式表单,并将其标题设置为\表单操作\。

3. 将考生目录中的xuesheng表和chengji表依次添加到myform表单的数据环境中。确保两个表对应的对象名称分别为cursor1和cursor2。

4. 在数据环境中为xuesheng表和chengji表建立关联关系:当xuesheng表中的记录指针移动时,chengji表中的记录指针会自动移到学号相同的对应记录上。

二、简单应用(2小题,每题20分,计40分)

1. 利用查询设计器创建查询,从xuesheng和chengji表中查询数学、英语和信息技术三门课都在85分以上(含),或者数学、英语都在90分以上(含)而信息技术在75分以上(含)的学生记录。查询结果包含学号、姓名、数学、英语和信息技术5个字段;各记录按学号降序排序;查询去向为表table1。最后将查询保存在query1.qpr文件中,并运行该查询。 2. 首先创建数据库cj_m,并向其中添加xuesheng表和chengji表。然后在数据库中创建视图view1:利用该视图只能查询20001001班(学号的前8位数字串为班号)的学生记录;查询结果包含学号、姓名、数学、英语和信息技术5个字段;各记录按学号降序排序。最后利用刚创建的视图view1查询视图中的全部信息,并将查询结果存放在表table2中。

第 39 页, 共 56 页

全国计算机等级考试二级Visual FoxPro上机试卷

三、综合应用(1小题,计30分)

在考生文件夹下创建一个下拉式菜单 mymenu.mnx,并生成菜单程序mymenu.mpr。运行该菜单程序时会在当前vfp系统菜单的末尾追加一个\考试\子菜单,如下图所示。

菜单命令\计算\和\返回\的功能都通过执行过程完成。 菜单命令\计算\的功能如下: 1)先用SQL-SELECT语句完成查询:按学号降序列出所有学生在学号、姓名、数学、英语和信息技术5个字段上的数据,查询结果存放在表table3中。2)用ALTER TABLE语句在表table3中添加一个\等级\字段,该字段为字符型,宽度为4。 3)最后根据数学、英语和信息技术的成绩为所有学生计算等级:三门课程都及格(大于等于60分)且平均分大于等于90分的填为\优\,三门课程都及格且平均分大于等于80分、小于90分的填为\良\;三门课程都及格且平均分大于等于70分、小于80分的填为\中\;三门课程都及格且平均分小于70分的填为\及格\;其他的填为\差\。 菜单命令\返回\的功能是恢复标准的系统菜单。菜单程序生成后,运行菜单程序并依次执行\计算\和\返回\菜单命令。 基本操作题答案:

2、windowtype属性设为1 简单应用题答案:

2、crea view view1 as sele xuesheng.学号,姓名,数学,英语,信息技术 from xuesheng,chengji where xuesheng.学号=; chengji.学号and left(xuesheng.学号,8)=\学号 desc sele * from view1 into table table2 本题也可用设计器做,命令供做时参考 综合应用题答案:菜单项“计算”的过程代码如下:

select xuesheng.学号,姓名,数学,英语,信息技术 from chengji,xuesheng where chengji.学号=xuesheng.学号; order by xuesheng.学号 desc into table table3 alter table table3 add column 等级 c(4)

update table3 set 等级='优' where 数学>=60 and 英语>=60 and 信息技术>=60 and (数学+英语+信息技术)>=270 update table3 set 等级='良' where 数学>=60 and 英语>=60 and 信息技术>=60 and (数学+英语+信息技术)>=240; and (数学+英语+信息技术)<270

update table3 set 等级='中' where 数学>=60 and 英语>=60 and 信息技术>=60 and (数学+英语+信息技术)>=210; and (数学+英语+信息技术)<240

update table3 set 等级='及格' where数学>=60 and 英语>=60 and 信息技术>=60 and (数学+英语+信息技术)>=180; and (数学+英语+信息技术)<210

update table3 set 等级='差' where 等级=\

菜单项“返回”命令代码为:SET SYSMENU TO DEFAULT

第 64 套

一、基本操作题(共4小题,第1和2题是7分、第3和4题是8分)

1. 打开表单one(如图1所示),通过设置控件的相关属性,使得表单运行时的开始焦点在\打开\命令按钮,并且接下来的焦点

图1

的移动顺序是\关闭\和\退出\

2. 打开表单two(如图2所示),使用\布局\工具栏的\顶边对齐\按钮将表单中的三个命令按钮控件的顶边对齐(如图3所示)。 3. 使用SQL语句创建一个名为\分组情况表\的自由表,\分组情况表\有两个字段:组号和组名,组号占两个字符,组名占10个字符。请将该SQL语句存储在three.prg中,否则不得分。 4. 使用SQL语句插入一个记录到\分组情况表\中,插入的内容是,组号:\,组名:\通俗唱法\。请将该SQL语句存储在four.prg中,否则不得分。

二、简单应用(2小题,每题20分,计40分)

1. 歌手比赛分为四个组,\歌手表\中的\歌手编号\字段的左边两位表示了该歌手所在的组号。考生目录下的程序文件five.prg的功能是:根据\歌手表\计算每个组的歌手人数,将结果填入表 one.dbf,表one.dbf中有两个字段:\组号\和\歌手人数\。程序中有三处错误,请修改并执行程序。注意:只能修改标有错误的语句行,不能修改其他语句,数组名A不允许修改。

2. 建立一个数据库文件\歌手大奖赛.dbc\,并将\歌手表\、\评委表\和\评分表\三个自由表添加到该数据库中。使用视图设计器建立视图 songer_view,该视图根据\歌手表\、\评委表\和\评分表\建立,视图中的字段项包括:评委姓名、歌手姓名、分数,视图中的记录按\歌手姓名\升序、\分数\降序排列。 三、综合应用(1小题,计30分)

1. 建立一个文件名和表单名均为myform的表单,表单中包括一个列表框(List1)和两个命令按钮(Command1和Command2),Command1和Command2的标题分别为\计算\和\退出\。2. 列表框(List1)中应显示组号,通过 RowSource和RowSourceType属性手工指定列表框的显示条目为 01、02、03、04(注意不要使用命令指定这两个属性,否则将不能得分)。3. 为\计算\命令按钮编写程序。程序的功能是:表单运行时,根据列表框中选定的\组号\,将\评分表\中该组歌手(\歌手编号\字段的左边两位表示了该歌手所在的组号)的所有记录存入自由表 two.dbf中,two.dbf的表结构与\评分表\相同,表中的记录先按\歌手编号\降序、再按\分数\升

第 40 页, 共 56 页

本文来源:https://www.bwwdw.com/article/cpi3.html

Top