-rake
期末考试的上机随机抽查一套
第
1
套
有两个数据表:
学生信息表(
)和学生成绩表(
)
。其数据形式如下:
学生信息表(
)
考
号
姓
名
李
萍
黄
程
王
军
周小丽
程
成
张
伟
学生成
绩表(
)
考
号
笔试成绩
上机成绩
成绩合格否
86
优
.F.
45
缺考
.F.
91
优
.F.
74
79
57
及格
不及格
及格
.F.
.F.
.F.
2
< br>、
建立程序文件
,要求将完成下
列各小题任务的
VFP
数据表操作命令或
VFP-SQL
命令写在该程序文件中。
在程序首行用注释语
句注明考生姓名和准考证号,
并用注
释语句标注小题号。
(
30
分)
(
1
)正确修改每个学生的“成绩合格否”字
段,并填入学生成绩表
中。规定笔试
成
绩
<60
或上机成绩为“缺考”或“不及格”
< br>,则该字段值为
.F.
,否则为
.T.
;
(
2
)
在学生成绩表
中,
查询并显示成绩合格学生的考号、姓名、
笔试成绩和上
机
成绩;
(
3
)逻辑删除学生成绩表
中,上机考试
缺考的考生;
(
1
< br>)
VFP
命令:
USE CJ
REPLACE ALL
成绩合格否
WITH .T. FOR
笔试成绩
>=60 AND (<
/p>
上机成绩
=
“及
格”
OR
上机成绩
=
“优”
)
SQL
命令:
UPDATE
CJ
SET
成绩合格否
=.T.
WHERE
笔试成绩
>=60
AND
(
上机成绩
< br>=
“及
格”
OR
上机成绩
=
“优”
)
(
2
)
VFP
命令:
SELECT 1
USE XS
INDEX ON
考号
TAG
KH
SELECT 2
USE CJ
SET RELATION TO
考号
INTO XS
LIST
考号
,XS.
姓名
,
笔试成绩
,
上机成绩
FOR
成绩合格否
=.T.
SQL
命令:
SELECT
XS.
考号,姓名,笔试成绩,上机成绩
FROM
XS,CJ WHERE XS.
考
号
=CJ.
考号
AND
成绩合格否
=.T.
(
3
)
VFP
命令:
USE CJ
DELETE FOR
上机成
绩
=
“缺考”
SQL
命令:
DELETE FROM
CJ WHERE
上机成绩
=
“缺考”
第
2
套
有两个数据表:
职工数据表(
)和工资数据表(
)
。其数据形式如下:
职工数据表
职工号
姓名
婚否
职称
周尔杰
.T.
工人
王雨
.T.
技术员
李丽
.F.
技术员
李长新
.T.
工程师
郑然
.F.
工人
工资数据表
职工号
基本工资
津贴
奖金
公积金
实发工资
882.00
213.5
115
90
1562.00
283.0
144
140
1306.00
223.0
115
120
1748.00
302.0
156
160
864.00
143.0
98
70
2
、
建立程序文件
,要求将完成下列各小题
任务的
VFP
数据表操作命令或
VFP
-SQL
命令写在该程序文件中。
在程序首行用注释语句注明考
生姓名和准考证号,
并请用
注释语句标注小题号。
(
30
分)
(
1
)计算每个职工的“实发工资”字段,并填入工
资数据表
中。其中:实发
工资
=
基本工资
+
津贴
p>
+
奖金
-
公积金;
(
2
)显示
未婚职工的职工号、姓名、基本工资和实发工资;
(
3
)计算工资表
GZB
中所有职工的平均奖金和实发工资总额;
(
< br>1
)
VFP
命令:
USE GZB
REPLACE
ALL
实发工资
WITH
基本工资
+
津贴
+
奖金
-
公积金
SQL
命令:
UPDATE GZB
SET
实发工资
=
基本工资
+
津贴
+
奖金
-
公积金
(
2
)
VFP
命令:
SELECT 1
USE ZGB
INDEX ON
职工号
TAG
ZGH
SELECT 2
USE GZB
SET RELATION TO
职工号
INTO ZGB
LIST
职工号
,ZGB.
姓名
,
基本工资
,
实发工资
FOR NOT ZGB.
婚否
CLOSE ALL
SQL
命令:
SELECT GZB.
职工号
,
姓名
,
基本工资
,
实发工资
FROM ZGB,GZB WHERE ZGB.
职工
号
=GZB.
职工号
AND
NOT ZGB.
婚否
(
3
)
VFP
命令:
USE GZB
CALCULATE AVG(
奖金
),SUM(
实发工资
) TO A,B
?
”平均
奖金:”
,A,
”
实发工资总额:”
,B
SQL
命令:
SELECT
AVG(
奖金
) AS
平均奖金
,SUM(
实发工资
)
AS
实发工资总额
FROM GZB
第
3
套
有两个数据表:
运动员基本情况表(
)和运动成绩表(
)
。其数据形
式如下:
运动员基本情况表(
)
编号
姓名
部门
07001
07003
07005
07002
07004
张谦
吴静
陈冬梅
王兰
刘涛
机关
机关
后勤
机关
后勤
总成绩
运动成绩表(
)
编号
跳高
游泳
其它
07001
1
0
5
3
7
4
3
3
4
7
3
07002
5
07003
2
07004
0
07005
7
2
、
建立程序文件
,要求将完成下列各小题任务的
VFP
数据表操作命令或
VFP-SQL
命令写在该程序文件中。
在程序首行用注释语句注明考生姓名和准考证号,
并请用
注释语句标注小题号。
(
30
分)
(
1
< br>)计算每位运动员的“总成绩”字段,并填入运动成绩表
中,其中:总成
绩
=
跳高+游泳+其它
;
(
2
)按
总成绩从高到低的顺序显示运动员的编号及总成绩;
(
3
)显示“机关”部门各运动员的编号、姓名和总成绩;
(
1
< br>)
VFP
命令:
USE
YDCJ
REPLACE ALL
总成绩
WITH
跳高
+
游泳
+
其它
SQL
命令:
UPDATE YDCJ
SET
总成绩
=
跳高
+
游泳
+
其它
(
2
)
VFP
命令:
USE YDCJ
INDEX ON
总成绩
TAG
ZCJ DESC
LIST
编号,总成绩
SQL
命令:
SELECT
编号,总成绩
FROM YDCJ ORDER BY
总成绩
DESC
(
3
)
VFP
命令:
SELECT 1
USE JBB
INDEX ON
编号
TAG ZGH
SELECT 2
USE
YDCJ
SET RELATION TO
编号
INTO ZGB
LIST
编号
,JBB.
姓名
,
总成绩
FOR JBB.
部门
=
“机关”
SQL
命令:
SELECT JBB
.
编号
,
姓名
,
总成绩
FROM JBB,YDCJ WHERE JB
B.
编号
=YDCJ.
编号
AND
部门
=
“机关”
第
4
套
有两个数据表:
学生信息表
(
)
和食堂消费数据表
(
)
。
其数据形式如下:
学生信息表(
)
IC
卡号
姓
名
性别
有效期
赵鱼君
女
2008-7
芳心江
女
2008-7
艾世平
男
2008-7
周海龙
男
2008-7
陈康平
男
2008-7
邓
娟
女
2008-7
食堂消费数据表(<
/p>
)
IC
卡号
时间
类别
金额
2007-11-1
面点
5.5
2007-11-1
饮料
4
2007-11-1
饮料
7
2007-11-1
热菜
8
2007-11-2
凉菜
6
2007-11-2
热菜
7
2
、
建立程序文件
,要求将完成下列各小题任务的
VFP
数据表操作命令或
VFP-SQL
命令写在该程序文件中。
在程序首行用注释语句注明考生姓名和准考证号,
并用注
释语句标注小题号。
(
30
< br>分)
(
1
)正确修改学生信息表
中的“有效期”字段的值。如果“<
/p>
IC
卡号”的第
4
位
的数值低于“
4
”
(不包含)
,则有效期改正为“
2008-12
”
;否则更改为“
2009-7
”
;
(
2
)利用学生信息表和食堂消费表的一对多关联,查询并显示学生姓名为“艾世
平”的
食堂消费明细,包括
IC
卡号、
时间、类别和金额;
(
3
)按“类别”汇总
2007
年
11
月份食堂消费金额;
(
1
)
VFP
-命令:
Use xs
Replace
有效期
WITH
卡号
,3,1) <'4'
Replace
有效期
WITH
卡号
,3,1) >='4'
SQL
-命令:
UPDATE XS SET
有效期
=
WHERE
SUBSTR(IC
卡号
,3,1) <'4'
UPDATE XS SET
有效期
=
WHERE
SUBSTR(IC
卡号
,3,1) >='4'
(
2
)
VFP
-命令:
Select 1
Use xs
Index on IC
卡号
TAG
KH
SELECT 2
USE XF
SET RELATION TO
IC
卡号
INTO XS
LIST
IC
卡号
,
时间
,
类别
,
金额
FOR XS.
姓名
=
艾世平
p>
SQL
-命令:
SELE IC
卡号
,
时间
,
类别
,
金额
FROM XF
WHERE
卡号
= ( SELE
卡号
FROM XS WHERE XS.
< br>姓名
=
艾世平
< br>(
3
)
VFP
-命令:
Use xf
Index
on
类别
tag lb
Total
on
类别
to hz
fields
金额
USE HZ <
/p>
LIST
类别
,
金额
SQL
-命令:
sele
类别
,sum(
金额
) from xf group by
类别
第
5
套
有两个数据表:
图书基本信息表(<
/p>
)和图书借阅情况表(
< br>)
。其数据形
式如下:
图书基本信息表
书号
书名
单价
第一作者
VFP
开发实例导航
36
邵洋
VFP
程序设计教程
23
刘瑞新
数据库系统原理教程
18
王珊
VFP
及其应用系统开发
32
史济民
VFP
入门与提高
56
史济民
基于
web
的数据库应用
15
邵洋
图书借阅情况表
书号
借出日期
有效期(天)
借阅人
2007.09.03
30
张开
2007.09.23
15
章缀
2007.09.21
45
张开
2007.09.12
15
李航
2007.09.18
30
王子
2<
/p>
、建立程序文件
,要求将完成下列各小题
任务的
VFP
数据表操作命令或
VFP
-SQL
命令写在该程序文件中。
在程序首行用注释语句注明考
生姓名和准考证号,
并请用
注释语句标注小题号。
(
30
分)
(
1
)查询有效期低于
30
天(含)的已借出图书的信息,包括:书号、书名、借出日期、
有效期和借阅人;
(
2
)按第一作者分类汇总图书的总价值(即各书单价之和)
;
< br>
(
3
)以日期
2007.10.15
为界,将
中超过有效借阅期的图书作删除标志;
(
1
)
VFP
-命令:
Select 1
Use tuj
Index on
书号
TAG SH
SELECT 2
USE JY
SET RELATION TO
书号
INTO TUJ
LIST
书号
,
日期
,
有效期
,
借阅人
,TUJ.
书名
FOR
有效期
<=30
SQL
-命令:
SELE JY.
书号
,
日期
,
有效期
,
借阅人
,
书名
FROM JY,TUJ
WHERE
有效期
<=30 AND TUJ.
书
号
=JY.
书号
(
2
)
VFP
-命令:
Use tuj
Index on
第一作者
TAG SH
Total
on
第一作者
TO HZ
FIELDS
单价
USE HZ
LIST
第一作者
,
单价
SQL
-命令:
SELE
第一作者
,SUM(
单价
) FROM TUJ GROUP BY
第一作者
(
3
)
VFP
-命令:
Use jy
dele for
日
期
+
有效期
>{^2007.10.1
5}
SQL
-命令:
dele from jy where
日期
+
有效期
>{^2007.10.15}
第
6
套
有两个数据表:
工作站表(
)和网站登陆表(
)<
/p>
。其数据形式如下:
工作站表(
)
IP
地址
区域
202.202.0.1
202.202.0.2
202.202.0.11
202.202.0.12
202.202.1.10
202.202.10.18
2
2
3
3
4
5
数据流量
0
网站登陆表(
)
IP
地址
日期
开始时间
结束时间
202.202.0.1
2007-09-09
11:12
ONLINE
202.202.0.2
2007-09-09
12:30
ONLINE
0
202.202.0.11
2007-09-09
12:30
ONLINE
0
202.202.0.12
2007-09-09
11:30
11:55
0
202.202.0.12
2007-09-09
12:00
13:30
0
202.202.0.12
2007-09-09
14:09
ONLINE
0
p>
2
、
建立程序文件
,要求将完成下列各小题任务的
VFP
数据表操作命令或
VFP-SQL
命令写在该程序文件中。
p>
在程序首行用注释语句注明考生姓名和准考证号,
并请用
注释语句标注小题号。
(
30
分)
(
1
)假定当前统计时间为
2007-09-09 16
:
p>
00
。网站登陆的数据流量计算公式为:登陆
的总秒数,单位
KB
。请根据网站登陆的开始、结束时间,更
新数据流量。注意结束时间标
注为
ONLINE
的应取值
16:00
。时间跨度限制在
24
小时内;
提示:将时间统一转换为以零点开始的秒数,比如:
11
:
12
,其零点开始的秒数为
11
×
3600+12
×
60
。
(
2
)按数据流量从高到低的顺序显示
IP
地址为
202.202.0.12
工作站的登陆明细
,包括
IP
地址、区域、日期、开始时间、数据流量;
(
3
)按
IP
地址分类汇总数据流量;
(
1
)
VFP
-命令:
Use LOGO
REPLACE
流量
WITH (1
6*3600)-(VAL(LEFT(
登陆
,2))*360
0+VAL(SUBS(
登陆
,4,2))*60)
FOR
结束
='ONLINE'
REPLACE
流量
WITH (VA
L(LEFT(
结束
,2))*3600+VAL(SUBS(
结束
,4,2))*60)-(VAL(LEFT(
登
陆
,2))*3600+VAL(SUBS(<
/p>
登陆
,4,2))*60) FOR
结束
<>'ONLINE'
SQL
-命令:
UPDATE
LOGO
SET <
/p>
流量
=(16*3600)-(VAL(LEFT(
登陆
,2))*3600+VAL(SUBS(
登陆
,4,2))*60)
WHERE
结束
='ONLINE'
UPDATE
LOGO
SET <
/p>
流
量
=(VAL(LEFT(
结
束
,2))*3600+VAL(SUBS(<
/p>
结
束
,4,2))*60)-(VAL(
LEFT(
登
陆
,2))*3600+
VAL(SUBS(
登
陆
,4,2))
*60)
WHERE
结
束
<>'ONLINE'
(
2
)
VFP
-命令:
Select 1
Use works
Index on
地址
TAG DZ
SELECT 2
USE LOGO
SET RELATION TO
地址
INTO WORKS
Index on
流量
TAG
LL DESC
LIST
地址
,W
ORKS.
区域
,
日期
,
开始时间
,
流量
SQL
-命令:
SELE LOGO.
地址
,
区域
,
日期
,
开始时间
,
流量
FROM LOGO,WORKS;
WHERE LOGO.
地址
=WORKS.
地址
ORDER BY
流量
DESC
(
3
)
VFP
-命令:
Use LOGO
Index
on
地址
TAG DZ
TOTAL
ON
地址
TO HZ
FIELDS
流量
Use hz
list
地址
,
流量
SQL
-命令:
sele
地址
,sum(
流量
) from logo group by
地址
第
7
套
p>
有两个数据表:营销员数据表(
)和产品销
售记录表(
)
。
营业员数据表
()
营业员编号
姓名
职务
工作日期
1026
1078
2123
2122
2105
张曙光
李解放
王新华
段德昌
赵跃望
经理
主管
主管
办事员
办事员
2005
.
12
.
25
< br>2005
.
10
.
25
2006
.
03
p>
.
24
2006
.
08
.
01
2006
.
09
.
< br>09
产品销售记录表(
)
产品编号
营销员编号
数量
单价
销售月份
589-1685
1026
300
1289
.
45
2
589-1685
1026
98
1289
.
45
3
589-1685
1078
100
1289
.
45
4
589-1685
2122
134
1289
.
45
3
589-2000
2105
56
1190
.
34
2
589-2000
2123
76
1190
.
34
3
2
、建立程序文件
,要求将完成下列各小题任务的
VFP
数据表操作命令或
VFP-SQL
命令写在该程序文件
中。在程序首行用注释语句注明考生姓名和准考证号,并用注
释语句标注小题号。
(
30
分)
(
1
)
查询单笔销售数量最大的营销员姓名和职务;
(
2
)
p>
查询全部职务为“主管”的营销人员的产品销售明细,包括姓名、产品编号、
销售金额和月份;
(
3
)
按“销售月份”分组汇总销售金额;
1
)
VFP
-命令:
Select 1
Use yx
Index on
营销员编号
TAG
BH
SELECT 2
USE XS
SET RELATION TO
营销员编号
INTO YX
Index on
数量
TAG
BH DESC
GO TOP
LIST
< br>营销员编号
,YX.
姓名
,
YX.
职务
SQL
-命令:
SELECT TOP 1 XS.
营销员编号
,
姓名
,
职务
FROM YX INNER JOIN XS ON XS.
营销员编号
=YX.
营销员编号
ORDER BY
数量
DESC
2
)
VFP
-命令:
Select 1
Use yx
Index on
营销员编号
TAG
BH
SELECT 2
USE XS
SET RELATION TO
营销员编号
INTO YX
?
”
姓名
产品编号
销售金额
销售月份”
Scan for yx
.
职务
='
主管
'
?YX.
姓名
,
产品编号
,
数量
*
单价
,
销售月份