旧版上机题库DOC.docx
《旧版上机题库DOC.docx》由会员分享,可在线阅读,更多相关《旧版上机题库DOC.docx(41页珍藏版)》请在冰豆网上搜索。
旧版上机题库DOC
第1套
有两个数据表:
学生信息表(XS.DBF)和学生成绩表(CJ.DBF)。
其数据形式如下:
学生信息表(XS.DBF)
考号
姓名
07020104
李萍
07040109
黄程
07030106
王军
07020132
周小丽
07050223
程成
07010213
张伟
学生成绩表(CJ.DBF)
考号
笔试成绩
上机成绩
成绩合格否
07010213
86
优
.F.
07030106
45
缺考
.F.
07040109
91
优
.F.
07020132
74
及格
.F.
07050223
79
不及格
.F.
07020104
57
及格
.F.
2、建立程序文件COM-SQL711.PRG,要求将完成下列各小题任务的VFP数据表操作命令或VFP-SQL命令写在该程序文件中。
在程序首行用注释语句注明考生姓名和准考证号,并用注释语句标注小题号。
(30分)
(1)正确修改每个学生的“成绩合格否”字段,并填入学生成绩表CJ.DBF中。
规定笔试成绩<60或上机成绩为“缺考”或“不及格”,则该字段值为.F.,否则为.T.;
(2)在学生成绩表CJ.DBF中,查询并显示成绩合格学生的考号、姓名、笔试成绩和上机成绩;
(3)逻辑删除学生成绩表CJ.DBF中,上机考试缺考的考生;
(1)VFP命令:
USECJ
REPLACEALL成绩合格否WITH.T.FOR笔试成绩>=60AND(上机成绩=“及格”OR上机成绩=“优”)
SQL命令:
UPDATECJSET成绩合格否=.T.WHERE笔试成绩>=60AND(上机成绩=“及格”OR上机成绩=“优”)
(2)VFP命令:
SELECT1
USEXS
INDEXON考号TAGKH
SELECT2
USECJ
SETRELATIONTO考号INTOXS
LIST考号,XS.姓名,笔试成绩,上机成绩FOR成绩合格否=.T.
SQL命令:
SELECTXS.考号,姓名,笔试成绩,上机成绩FROMXS,CJWHEREXS.考号=CJ.考号AND成绩合格否=.T.
(3)VFP命令:
USECJ
deletefor上机成绩=“缺考”
SQL命令:
DELETEFROMCJWHERE上机成绩=“缺考”
第2套
有两个数据表:
职工数据表(ZGB.DBF)和工资数据表(GZB.DBF)。
其数据形式如下:
职工数据表ZGB.DBF
职工号
姓名
婚否
职称
020365
周尔杰
.T.
工人
020528
王雨
.T.
技术员
010234
李丽
.F.
技术员
020458
李长新
.T.
工程师
020636
郑然
.F.
工人
工资数据表GZB.DBF
职工号
基本工资
津贴
奖金
公积金
实发工资
020365
882.00
213.5
115
90
020528
1562.00
283.0
144
140
010234
1306.00
223.0
115
120
020458
1748.00
302.0
156
160
020636
864.00
143.0
98
70
2、建立程序文件COM-SQL712.PRG,要求将完成下列各小题任务的VFP数据表操作命令或VFP-SQL命令写在该程序文件中。
在程序首行用注释语句注明考生姓名和准考证号,并请用注释语句标注小题号。
(30分)
(1)计算每个职工的“实发工资”字段,并填入工资数据表GZB.DBF中。
其中:
实发工资=基本工资+津贴+奖金-公积金;
(2)显示未婚职工的职工号、姓名、基本工资和实发工资;
(3)计算工资表GZB中所有职工的平均奖金和实发工资总额;
(1)VFP命令:
USEGZB
REPLACEALL实发工资WITH基本工资+津贴+奖金-公积金
SQL命令:
UPDATEGZBSET实发工资=基本工资+津贴+奖金-公积金
(2)VFP命令:
SELECT1
USEzgb
INDEXON职工号TAGZGH
SELECT2
USEgzb
SETRELATIONTO职工号INTOZGB
LIST职工号,ZGB.姓名,基本工资,实发工资FORNOTZGB.婚否
CLOSEALL
SQL命令:
SELECTGZB.职工号,姓名,基本工资,实发工资FROMZGB,GZBWHEREZGB.职工号=GZB.职工号ANDNOTZGB.婚否
(3)VFP命令:
USEGZB
calculateavg(奖金),sum(实发工资)toa,b
?
”平均奖金:
”,a,”实发工资总额:
”,b
SQL命令:
selectavg(奖金)as平均奖金,sum(实发工资)as实发工资总额fromgzb
第3套
有两个数据表:
运动员基本情况表(JBB.DBF)和运动成绩表(YDCJ.DBF)。
其数据形式如下:
运动员基本情况表(JBB.DBF)
编号
姓名
部门
07001
张谦
机关
07003
吴静
机关
07005
陈冬梅
后勤
07002
王兰
机关
07004
刘涛
后勤
运动成绩表(YDCJ.DBF)
编号
跳高
游泳
其它
总成绩
07001
1
0
3
07002
5
5
3
07003
2
3
4
07004
0
7
7
07005
7
4
3
2、建立程序文件COM-SQL713.PRG,要求将完成下列各小题任务的VFP数据表操作命令或VFP-SQL命令写在该程序文件中。
在程序首行用注释语句注明考生姓名和准考证号,并请用注释语句标注小题号。
(30分)
(1)计算每位运动员的“总成绩”字段,并填入运动成绩表YDCJ.DBF中,其中:
总成绩=跳高+游泳+其它;
(2)按总成绩从高到低的顺序显示运动员的编号及总成绩;
(3)显示“机关”部门各运动员的编号、姓名和总成绩;
(1)VFP命令:
USEYDCJ
REPLACEALL总成绩WITH跳高+游泳+其它
SQL命令:
UPDATEYDCJSET总成绩=跳高+游泳+其它
(2)VFP命令:
USEYDCJ
INDEXON总成绩TAGZCJDESC
LIST编号,总成绩
SQL命令:
SELECT编号,总成绩FROMYDCJORDERBY总成绩DESC
(3)VFP命令:
SELECT1
USEJBb
INDEXON编号TAGZGH
SELECT2
USEYDCJ
SETRELATIONTO编号INTOZGB
LIST编号,JBB.姓名,总成绩FORJBB.部门=“机关”
SQL命令:
SELECTJBB.编号,姓名,总成绩FROMJBB,YDCJWHEREJBB.编号=YDCJ.编号AND部门=“机关”
第4套
有两个数据表:
学生信息表(XS.DBF)和食堂消费数据表(XF.DBF)。
其数据形式如下:
学生信息表(XS.DBF)
IC卡号
姓名
性别
有效期
07020104
赵鱼君
女
2008-7
07040109
芳心江
女
2008-7
07030106
艾世平
男
2008-7
07020132
周海龙
男
2008-7
07050223
陈康平
男
2008-7
07010213
邓娟
女
2008-7
食堂消费数据表(XF.DBF)
IC卡号
时间
类别
金额
07010213
2007-11-1
面点
5.5
07030106
2007-11-1
饮料
4
07040109
2007-11-1
饮料
7
07020132
2007-11-1
热菜
8
07030106
2007-11-2
凉菜
6
07020104
2007-11-2
热菜
7
2、建立程序文件COM-SQL721.PRG,要求将完成下列各小题任务的VFP数据表操作命令或VFP-SQL命令写在该程序文件中。
在程序首行用注释语句注明考生姓名和准考证号,并用注释语句标注小题号。
(30分)
(1)正确修改学生信息表XS.DBF中的“有效期”字段的值。
如果“IC卡号”的第4位的数值低于“4”(不包含),则有效期改正为“2008-12”;否则更改为“2009-7”;
(2)利用学生信息表和食堂消费表的一对多关联,查询并显示学生姓名为“艾世平”的食堂消费明细,包括IC卡号、时间、类别和金额;
(3)按“类别”汇总2007年11月份食堂消费金额;
(1)
VFP-命令:
Usexs
Replace有效期with"2008-12"forsubstr(IC卡号,3,1)<'4'
Replace有效期with"2009-7"forsubstr(IC卡号,3,1)>='4'
SQL-命令:
updatexsset有效期="2008-12";
wheresubstr(IC卡号,3,1)<'4'
updatexsset有效期="2009-7";
wheresubstr(IC卡号,3,1)>='4'
(2)
VFP-命令:
Select1
Usexs
IndexonIC卡号tagkh
select2
usexf
setrelationtoIC卡号intoxs
listIC卡号,时间,类别,金额forxs.姓名="艾世平"
SQL-命令:
seleIC卡号,时间,类别,金额fromxf;
wherexf.IC卡号=(selexs.IC卡号fromxswherexs.姓名="艾世平")
(3)
VFP-命令:
Usexf
Indexon类别taglb
Totalon类别tohzfields金额
usehz
list类别,金额
SQL-命令:
sele类别,sum(金额)fromxfgroupby类别
第5套
有两个数据表:
图书基本信息表(TUJ.DBF)和图书借阅情况表(JY.DBF)。
其数据形式如下:
图书基本信息表TUJ.DBF
书号
书名
单价
第一作者
020365
VFP开发实例导航
36
邵洋
020528
VFP程序设计教程
23
刘瑞新
020234
数据库系统原理教程
18
王珊
020458
VFP及其应用系统开发
32
史济民
020636
VFP入门与提高
56
史济民
030810
基于web的数据库应用
15
邵洋
图书借阅情况表JY.DBF
书号
借出日期
有效期(天)
借阅人
020365
2007.09.03
30
张开
020528
2007.09.23
15
章缀
020234
2007.09.21
45
张开
020365
2007.09.12
15
李航
020365
2007.09.18
30
王子
2、建立程序文件COM-SQL722.PRG,要求将完成下列各小题任务的VFP数据表操作命令或VFP-SQL命令写在该程序文件中。
在程序首行用注释语句注明考生姓名和准考证号,并请用注释语句标注小题号。
(30分)
(1)查询有效期低于30天(含)的已借出图书的信息,包括:
书号、书名、借出日期、有效期和借阅人;
(2)按第一作者分类汇总图书的总价值(即各书单价之和);
(3)以日期2007.10.15为界,将jy.dbf中超过有效借阅期的图书作删除标志;
(1)
VFP-命令:
Select1
Usetuj
Indexon书号tagsh
select2
usejy
setrelationto书号intotuj
list书号,日期,有效期,借阅人,tuj.书名for有效期<=30
SQL-命令:
selejy.书号,日期,有效期,借阅人,书名fromjy,tuj;
where有效期<=30andtuj.书号=jy.书号
(2)
VFP-命令:
Usetuj
Indexon第一作者tagsh
Totalon第一作者tohzfields单价
usehz
list第一作者,单价
SQL-命令:
sele第一作者,sum(单价)fromtujgroupby第一作者
(3)
VFP-命令:
Usejy
delefor日期+有效期>{^2007.10.15}
SQL-命令:
delefromjywhere日期+有效期>{^2007.10.15}
第6套
有两个数据表:
工作站表(works.DBF)和网站登陆表(logo.DBF)。
其数据形式如下:
工作站表(works.DBF)
IP地址
区域
202.202.0.1
2
202.202.0.2
2
202.202.0.11
3
202.202.0.12
3
202.202.1.10
4
202.202.10.18
5
网站登陆表(logo.DBF)
IP地址
日期
开始时间
结束时间
数据流量
202.202.0.1
2007-09-09
11:
12
online
0
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
2、建立程序文件COM-SQL723.PRG,要求将完成下列各小题任务的VFP数据表操作命令或VFP-SQL命令写在该程序文件中。
在程序首行用注释语句注明考生姓名和准考证号,并请用注释语句标注小题号。
(30分)
(1)假定当前统计时间为2007-09-0916:
00。
网站登陆的数据流量计算公式为:
登陆的总秒数,单位KB。
请根据网站登陆的开始、结束时间,更新数据流量。
注意结束时间标注为online的应取值16:
00。
时间跨度限制在24小时内;
提示:
将时间统一转换为以零点开始的秒数,比如:
11:
12,其零点开始的秒数为11×3600+12×60。
(2)按数据流量从高到低的顺序显示IP地址为202.202.0.12工作站的登陆明细,包括IP地址、区域、日期、开始时间、数据流量;
(3)按IP地址分类汇总数据流量;
(1)
VFP-命令:
Uselogo
replace流量with(16*3600)-(val(left(登陆,2))*3600+val(subs(登陆,4,2))*60)
for结束='online'
replace流量with(val(left(结束,2))*3600+val(subs(结束,4,2))*60)-(val(left(登陆,2))*3600+val(subs(登陆,4,2))*60)for结束<>'online'
SQL-命令:
updatelogoset流量=(16*3600)-(val(left(登陆,2))*3600+val(subs(登陆,4,2))*60)
where结束='online'
updatelogoset流量=(val(left(结束,2))*3600+val(subs(结束,4,2))*60)-(val(left(登陆,2))*3600+val(subs(登陆,4,2))*60)where结束<>'online'
(2)
VFP-命令:
Select1
Useworks
Indexon地址tagdz
select2
uselogo
setrelationto地址intoworks
Indexon流量taglldesc
list地址,works.区域,日期,开始时间,流量
SQL-命令:
selelogo.地址,区域,日期,开始时间,流量fromlogo,works;
wherelogo.地址=works.地址orderby流量desc
(3)
VFP-命令:
Uselogo
Indexon地址tagdz
totalon地址tohzfields流量
Usehz
list地址,流量
SQL-命令:
sele地址,sum(流量)fromlogogroupby地址
第7套
有两个数据表:
营销员数据表(YX.DBF)和产品销售记录表(XS.DBF)。
营业员数据表(YX.DBF)
营业员编号
姓名
职务
工作日期
1026
张曙光
经理
2005.12.25
1078
李解放
主管
2005.10.25
2123
王新华
主管
2006.03.24
2122
段德昌
办事员
2006.08.01
2105
赵跃望
办事员
2006.09.09
产品销售记录表(XS.DBF)
产品编号
营销员编号
数量
单价
销售月份
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、建立程序文件COM-SQL811.PRG,要求将完成下列各小题任务的VFP数据表操作命令或VFP-SQL命令写在该程序文件中。
在程序首行用注释语句注明考生姓名和准考证号,并用注释语句标注小题号。
(30分)
(1)查询单笔销售数量最大的营销员姓名和职务;
(2)查询全部职务为“主管”的营销人员的产品销售明细,包括姓名、产品编号、销售金额和月份;
(3)按“销售月份”分组汇总销售金额;
1)
VFP-命令:
Select1
Useyx
Indexon营销员编号tagbh
select2
usexs
setrelationto营销员编号intoyx
Indexon数量tagbhdesc
gotop
list营销员编号,yx.姓名,yx.职务
SQL-命令:
selecttop1xs.营销员编号,姓名,职务;
fromyxinnerjoinxsonxs.营销员编号=yx.营销员编号;
orderby数量desc
2)
VFP-命令:
Select1
Useyx
Indexon营销员编号tagbh
select2
usexs
setrelationto营销员编号intoyx
?
”姓名产品编号销售金额销售月份”
Scanforyx.职务='主管'
?
yx.姓名,产品编号,数量*单价,销售月份
endscan
SQL-命令:
selectyx.姓名,产品编号,数量*单价AS销售金额,销售月份;
fromyxinnerjoinxsonxs.营销员编号=yx.营销员编号where职务='主管'
3)
SQL-命令:
selectsum(数量*单价)AS销售金额,销售月份fromxsgroupby销售月份
第8套
两个表文件:
顾客信息表(顾客GK.DBF)和顾客消费数据表(XF.DBF)。
其数据形式如下:
顾客信息表(顾客GK.DBF)
顾客编号
姓名
性别
是否会员
085422
王小凤
女
.T.
074561
孙丽
女
.F.
081313
吴远平
男
.F.
072453
程志龙
男
.T.
085211
李娟娟
女
.T.
顾客消费数据表(XF.DBF)
顾客编号
购买商品
消费金额
消费积分
074561
化妆品
588.0
081313
西服
1280.0
085211
靴子
566.0
072453
食品
218.8
081313
食品
78.0
074561
帽子
128.0
085422
皮鞋
358.0
2、建立程序文件COM-SQL812.PRG,要求将完成下列各小题任务的VFP数据表操作命令或VFP-SQL命令写在该程序文件中。
在程序首行用注释语句注明考生姓名和准考证号,并用注释语句标注小题号。
(30分)
(1)计算消费积分,并填入XF.DBF表中。
(其中会员的积分为消费金额,不是会员的积分为消费金额的一半);
(2)输入任一顾客的姓名并查询顾客的消费明细,包括购买商品、消费金额和消费积分;
(3)汇总每位顾客的消费积分,并按总积分从大到小的顺序显示。
1)
VFP-命令:
SELE1
USEGK
INDEXON顾客编号TAGBH
SELE2
USEXF
SETRELATIONTO顾客编号INTOGK
REPLACE消费积分WITH消费金额/2FORnot是否会员
REPLACE消费积分WITH消费金额FOR是否会员
2)
VFP-命令:
USEGK
ACCEPT“输入顾客的姓名:
”TOXM
LOCATEFOR姓名=XM
BH=顾客编号
USEXF
LIST购买商品,消费金额,消费积分for顾客编号=BH
SQL-命令:
ACCEPT“输入顾客的姓名:
”TOXM
Select购买商品,消费金额,消费积分fromGK,xfwhereGK.顾客编号=xf.顾客编号and姓名=XM
3)
VFP-命令:
USEXF
INDEXON顾客编号TAGBH
TOTALON顾客编号TOHZ
USEHZ
INDEXON消费积分TAGJFDESC
LIST
SQL-命令:
Select顾客编号,sum(消费积分)as消费积分fromxf;
groupby顾客编号orderby消费积分desc
第9套