VFP上机100题库及答案WORD版

更新时间:2023-04-26 15:16: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命令插入记录("600028",4.36, 4.60, 5500)到stock_bk.dbf表。

3、利用SQL UPDATE命令将stock_bk.dbf表中"股票代码"为"600007"的股票"现价"改为8.88。

4、利用SQL DELETE命令删除stock_bk.dbf表中"股票代码"为"600000"的股票。

二、简单应用(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("600028", 4.36, 4.60, 5500)

3、update stock_bk set 现价=8.88 where 股票代码="600007"

4、delete from stock_bk where 股票代码="600000"

简单应用题提示: 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 课程名="计算机基础" order by 成绩 ;

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);

第 1 页, 共56 页

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

ORDER BY 面积 INTO TABLE wh1

“退出”菜单项的命令代码为: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 课程名="网络工程" and ;

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 奖级="一等" order by 分数 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 地址="北京") ORDER BY 总金额 DESC INTO TABLE ord1

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

第 5 套

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

第 2 页, 共56 页

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

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

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 ("S4","S6","S7") GROUP BY 职工号 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

第 3 页, 共56 页

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

close all

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

2、sele student2.*,成绩 from student2,sc,course2 where 课程名="计算机软件基础" and course2.课程号=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

综合应用题答案:重要提示,C M D Y E S和C M D N O要大写

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

第 4 页, 共56 页

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

DELETE FROM STOCK_FK

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表"送货方式"字段设计默认值为"铁路"。

第 5 页, 共56 页

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

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

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、重要提示,必须写成:性别=‘男’O R性别=‘女’,否则不得分。

2、第一处将“while”改为:”where”, 第二处将”sum”改为:”count ”, 第三处将“to”改为:”into table “

综合应用题答案:

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

Clos all

SELECT 2

USE KECHENG

INDEX ON 课程号 TO KC

SELECT 1

USE CHENGJI

第 6 页, 共56 页

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

DO WHILE NOT EOF()

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的菜单,菜单包括"数据维护"和"文件"两个菜单栏。每个菜单栏都包括一个子菜单。菜单结构如下:

数据维护

数据表格式输入

文件

退出

第7 页, 共56 页

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

其中:数据表格式输入菜单项对应的过程包括下列4条命令:打开数据库STSC的命令,打开表STUDENT的命令,BROWSE命令,关闭数据库的命令。退出菜单项对应命令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表的学号、姓名和平均分三项,并且按平均分升序排序,如果平均分相等,则按学号升序排序。单击"关闭"按钮,程序终止运行。重要提示,C M D Y E S和C M D N O要大写。简单应用题答案:

“数据表格式输入”菜单项的过程代码为:

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表中学号为"S5"的记录。

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

1、在考生文件夹中有一个数据库STSC,其中有数据库表STUDENT、SCORE和COURSE。利用SQL语句查询选修了"C++"课程的学生的全部信息,并将结果按学号升序存放在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 课程名="C++" 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 ;

课程名="数据库" 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门)每个学生的学号、姓名、平均成绩、最低分、选课门数和院系,

第9 页, 共56 页

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

并按平均成绩降序排序,同时将结果存放到表TEST1中,请修改程序中的错误,并调试该程序,使之正确运行。不得增加或删减程序行。

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 值班时间="昼" INTO ARRAY zhou

SELECT 每天加班费 FROM ZHIBAN WHERE 值班时间="夜" INTO ARRAY ye

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,表结构描述如下:

第10 页, 共56 页

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

订单号字符型(6)

器件号字符型(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) 增加数据分组,分组表达式是 "order_list.客户号",组标头带区的内容是"客户号",组注脚带区的内容是该组订单的"总金额"合计;

(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

第11 页, 共56 页

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

2、第一处改为:if thisform.text1.value = thisform.text2.value, 第二处改为:thisform.release

将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

第12 页, 共56 页

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

COPY STRUCTURE TO OD_NEW

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 采购部

第13 页, 共56 页

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

05 人事部

2. 为dept表创建一个主索引(升序),索引名和索引表达式均是"部门号"。

3. 通过"部门号"字段建立salarys表和dept表间的永久联系。

4. 为以上建立的联系设置参照完整性约束:更新规则为"级联";删除规则为"限制";插入规则为"限制"。

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

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

第14 页, 共56 页

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

USE SVIEW

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日)的记录复制到一个新表"2001.dbf"中。

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的命令程序并执行,该程序实现下面的功能:将"商品表"进行备份,备份文件名为"SPBAK.dbf";将"商品表"中"商品号"前两位编号为"10"的商品的"单价"修改为出厂单价提高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)="10"

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的字段。

第15 页, 共56 页

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

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

3.在"雇员"表中,将所有记录的EMAIL字段值使用"部门号"的字段值加上"雇员号"的字段值再加上"@56ebc6bac77da26925c5b037"进行替换。

4.通过"部门号"字段建立"雇员"表和"部门"表间的永久联系。

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

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

2.建立一个名称为menu1的菜单,菜单栏有"文件"和"编辑浏览"两个菜单。"文件"菜单下有"打开"、"关闭退出"两个子菜单;"浏览"菜单下有"雇员编辑"、"部门编辑"和"雇员浏览"三个子菜单。

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

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

基本操作题答案:

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

3、Replace all email with 部门号+雇员号+“@56ebc6bac77da26925c5b037”

简单应用题答案:

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)中显示了工程号"J4"所使用的零件的零件名、颜色、和重量。单击"退出"按钮关闭表单。

简单应用题答案:

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 工程号="J4") into table ls

thisform.grid1.recordsource="ls"

“退出”命令按钮的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)。运行表单时,组合框中有三个条目"清华"、"北航"、"科学"(只有三个出版社名称,不能输入新的)可供选择,在组合框中选择出版社名称后,如果单击"统计"命令按钮,则文本框显示出"图书"表中该出版社图书的总数。单击"退出"按钮关闭表单。

简单应用题答案:

第16 页, 共56 页

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

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

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 出版社=56ebc6bac77da26925c5b037bo1.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表插入一条记录:学号为"993503433"、课程号为"0001"、成绩是99。

4. 打开表单MYFORM34,向其中添加一个"关闭"命令按钮(名称为Command1),单击此按钮关闭表单(不可以有多余的命令)。

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

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

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表建立主索引,索引名"PK",索引表达式"作者编号"。

3. 为BOOKS表分别建立两个普通索引,其一索引名为"RK",索引表达式为"图书编号";其二索引名和索引表达式均为"作者编号"。(注意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中所有书名中含有"计算机"3个字的图书复制到表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 上机试卷

第 18 页, 共 56 页

第 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 ;

姓名 = "林诗因" order by 持有数量 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分。

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

2、第二处将“while not eof()”改为“do while not eof()”

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 ;

外币名称="日元" INTO TABLE rate_ry

CASE thisform.myOption.option2.value=1

SELECT 姓名,持有数量 FROM rate_exchange,Currency_sl where rate_exchange.外币代码=Currency_sl.外币代码 and ;

外币名称="美元" INTO TABLE rate_my

CASE thisform.myOption.option3.value=1

SELECT 姓名,持有数量 FROM rate_exchange,Currency_sl where rate_exchange.外币代码=Currency_sl.外币代码 and ;

外币名称="欧元" INTO TABLE rate_oy

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("林红","讲师",10000,10200)

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

thisform.grid1.recordsource ="sele 姓名,课程名称,成绩 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"的项目所使用的任意一个零件相同的项目号、项目名、零件号和零件名称(包括项目号s1自身),结果按项目号降序排序,并存放于item_temp.dbf中,同时将你所使用的SQL语句存储于新建的文本文件item.txt 中。

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

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

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

简单应用题答案:

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

=项目信息.项目号 and 零件信息.零件号=使用零件.零件号 and 使用零件.零件号in (select 零件号 from 使用零件 where ;

第19 页, 共56 页

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

第 20 页, 共 56 页 项目号="s1") order by 使用零件.项目号 desc into table item_temp

综合应用题答案:

表单的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(56ebc6bac77da26925c5b037bo1.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) 按"Rate_exchange.基准价* Currency_sl.持有数量"降序排序;3) 将视图保存为view_rate 。

2. 使用SQL SELECT 语句完成一个汇总查询,结果保存在results.dbf 表中,该表含有"姓名"和"人民币价值"两个字段(其中"人民币价值"为每人持有外币的"Rate_exchange.基准价* 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="(a)"

“退出”命令按钮的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

语句保存为文本文件

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

two.txt。

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事件代码为56ebc6bac77da26925c5b037bel1.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”

第21 页, 共56 页

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

Top