第一套上机复习题
1.建立数据表文件,输入相应数据,
(1)图书档案表(Library.dbf):
书号
书名
作者
出版者
7-008959-0
VisualFoxPro程序设计
熊发涯
0012
7-002305-0
VisualBasic实例讲解
罗云
0012
7-552923-5
办公自动化教程
吴昌平
0064
7-05740-7
概念Flash5教程
谭浩强
0015
7-485003-1
新C程序设计
陈江枫
0055
(2)出版社表(Publishing.dbf)
出版者
出版社名称
地区
电话
0012
中国铁道出版社
北京
010-64046666
0064
华东大学出版社
上海
020-44562149
0015
重庆大学出版社
重庆
023-66574211
0055
清华大学出版社
北京
010-67851452
2.数据表如1题。程序设计,程序文件名为Ksll.prg(注:在程序开头处,必须用【注释】语句输入学校名、准考证号、姓名,否则该程序无效!)。
使用VFP数据表操作命令或者VFP-SQL命令,输入出版社所在地区,按下格式显示满足条件的图书目录。
XX地区的图书目录
————————————————————
书名 出版社名 作者
…… …… ……
3.表单设计。按以下要求设计程序界面,表单文件名为:FORM101.SCX
设计如图所示一个表单。包括3个标签,2个文本框,2个命令按钮(各控件的大小、颜色、字体、字号等属性由考生自定)。其中。
① 表单顶部的标签用来显示考生自己的姓名和考号;
② 文本框Text1和Text2的显示初值为空白;
③ 该表单运行后,可以在文本框Text1中输入圆半径(0~1000),左键单击“计算”命令按钮,则在文本框Text2中显示圆的面积;
④ 单击“退出”钮,结束表单程序的运行。
参考答案[此两表已建好,可到学校网站www.cqeec.com 下载练习配套材料]
[建表各10分(表名2分、字段名4分、数据类型2分、宽度2分),录入数据正确,各10分。一个记录出错,扣2分]
2.程序设计:
******************************************
* 重庆信息技术职业学院 0101001 王XX *
* KSLL.PRG *
******************************************
用VFP数据表操作命令,
SET TALK OFF
SET SAFETY OFF
CLEAR
SELECT 1
USE Library
INDEX ON 出版者 TO AA
SELECT 2
USE Publishing
SET RELATION TO 出版者 INTO A
ACCEPT "请输入地区名:" TO DQ (开库和输入地区名:10分)
LOCATE FOR 地区=DQ (查询:15分)
" "+DQ+"地区的图书目录”
"———————————————————————————"
" 书名 出版社名 作者" (标题:10分)
DO WHILE,NOT.EOF()
MN = 出版者
SELECT 1
LOCATE FOR 出版者 = MN
DO WHILE,NOT.EOF()
书名+B->出版社名称+" " +作者
CONTINUE
ENDDO
SELECT 2
CONTINUE && 找第二个同一地区的出版者
ENDDO (输出格式与内容显示正确25分)
RETURN
用SQL语句:
ACCEPT "请输入地区名:" TO DQ
SELECT 书名,出版社名称,作者 FROM Library,Publishing ;
WHERE Library.出版者=Publishing.出版者 AND地区 IN ;
(SELECT 地区 FROM Publishing WHERE 地区=DQ)
3,表单设计:
界面设计(10分)
主要属性、事件代码:
1)Text1和Text2的属性值为默认字符型(2分)
2)“计算”按钮的Click事件代码:(10分)
R = VAL(ThisForm.Text1.Value) && 文本框1(Text1)中输入的值赋给变量R
ThisForm.Text2.Value = 3.14*R*R && 把计算结果赋给Text2
,退出” 按钮的Click事件代码:(8分)
ThisForm.Release
第二套上机复习题
1.建立如下表文件,并输入数据:
数学兴趣小组表文件JSJ.DBF:
学号 姓名 性别 民族 政治面貌 籍贯 入学成绩
1104 王景录 男 回族 党员 云南省 750
1123 曾灵瑞 女 汉族 预备党员 重庆市 680
1205 赵小锐 男 苗族 无 贵州省 620
1109 王小云 女 藏族 团员 西藏 632
1101 向晓英 女 朝鲜族 团员 吉林省 589
英语兴趣小组表文件WY.DBF:
学号 姓名 性别 民族 政治面貌 籍贯 入学成绩
1101 向晓英 女 朝鲜族 团员 吉林省 589
1114 伍小录 女 汉族 团员 云南省 489
1123 曾灵瑞 女 汉族 预备党员 重庆市 680
1205 赵小锐 男 苗族 无 贵州省 620
1015 洪林 男 藏族 党员 重庆市 423
2.程序设计题:
上面的两个数据库文件的结构是完全相同的,数学兴趣小组JSJ.DBF和英语兴趣小组WY.DBF,它们的主关键字是“学号”字段。根据学校规定,一个学生同时参加两个课外活动小组时,以参加数学兴趣小组的优先。请使用VFP数据表操作命令编写程序PROG1.PRG(注:在程序开头处,必须用【注释】语句输入学校名、准考证号、姓名,否则该程序无效!),其功能是:
根据学号将同时参加两个小组的学生记录从英语兴趣小组中删除;并将删除的记录存放到结构相同的数据库CF.DBF中;并要求按学号升序排列输出CF.DBF中的所有记录。
3.请用VFP-SQL命令,编写程序,将同时参加两个小组的学生从英语兴趣小组中删除,并显示删除的记录。
4.表单设计。按以下要求设计程序界面,表单文件名为:FORM201.SCX
设计如图所示一个表单。包括4个标签,3个文本框,2个命令按钮(各控件的大小、颜色、字体、字号等属性由考生自定)。其中。
① 表单顶部的标签用来显示考生自己的姓名和考号;
② 文本框Text1、Text2和Text3的显示初值为0;
③ 该表单运行后,可以在文本框Text1、Text2中输入长方形的长和宽(0~1000),左键单击“计算”命令按钮,则在文本框Text3中显示长方形的周长;
④ 单击“退出”钮,结束表单程序的运行。
参考答案[此两表已建好,可到学校网站www.cqeec.com下载练习配套材料]
2.程序设计:
******************************************
* 重庆信息技术职业学院 0201001 王XX *
* PROG1.PRG *
******************************************
用VFP数据表操作命令:
SET TALK OFF
SET SAFETY OFF
CLEAR
SELECT 1
USE Jsj
INDEX ON 学号 TAG XH
SELECT 2
USE Wy
SET RELATION TO 学号 INTO A
DO WHILE NOT EOF()
IF 学号=A.学号
DELETE
ENDIF
SKIP
ENDDO
COPY TO Cf FOR DELETE()=.T.
PACK
USE Cf
RECALL ALL
INDEX ON 学号 TAG XH1
LIST
CLOSE ALL
RETURN
或:
SET TALK OFF
CLEAR
SELECT 1
USE Jsj
INDEX ON 学号 TAG XH
SELECT 2
USE Wy
SET RELATION TO 学号 INTO A
COPY TO Cf FOR 学号=A.学号
DELETE FOR 学号=A.学号
PACK
USE Cf
INDEX ON 学号 TAG XH1
LIST
RETURN
3.SQL语句:将同时参加两个小组的学生从英语兴趣小组中删除,并显示删除的记录
DELETE FROM Wy WHERE 学号 IN(SELECT 学号 FROM Jsj)
SELECT * FROM Wy WHERE FOR DELETE()=.T.
PACK
4.表单设计:
界面设计主要属性、事件代码:
1)Text1、Text2和Text3的Value属性值均为0
2)“计算”按钮的Click事件代码:
ThisForm.Text3.Value = ;
((ThisForm.Text1.Value) + (ThisForm.Text2.Value))*2
“退出” 按钮的Click事件代码:
ThisForm.Release
第三套上机复习题
1.在某超市销售管理系统中,以下2个数据表反映一个月内手机销售、库存情况。
(1)商品月库存表(Stockll.dbf)
商品代码
品名
型号
单价
库存数量
1536
波导
N8250
2250.00
16
2603
海信
3310
990.00
18
6054
西门子
8088
2090.00
12
7850
爱立信
T29
1380.00
14
5203
首信
2118
1470.00
18
(2)销售明细表(Sell.dbf)
商品代码
日期
销售数量
营业员
2603
2001-11-12
5
刘飞
6054
2001-11-12
6
刘飞
7850
2001-11-13
4
张和均
2603
2001-11-14
10
赵亮
按以上数据表内容创建Stockll.dbf和Sell.dbf数据文件,录入数据。
2,程序设计,要求将完成下列任务的VFP数据表操作命令或VFP-SQL命令写在该程序文件中程序文件名为Prog3.prg。(注:在程序开头处,必须用【注释】语句输入学校名、准考证号、姓名,否则该程序无效!),其功能是:
输入营业员姓名,比如:刘飞。显示该营业员本月销售明细表,及商品的销售金额。
要求按商品代码排序。格式如下:
XX营业员 的销售业绩
——————————————————————————
日期 商品名称 销售量 销售金额
… … … …
… … … …
3,请用VFP-SQL命令,编写程序,显示商品的品名、型号、单价、库存数量和库存金额。
4.表单设计。按以下要求设计程序界面,表单文件名为:FORM0202.SCX
设计如图所示一个表单。包括3个标签,1个文本框(各控件的大小、颜色、字体、字号等属性由考生自定)。其中。
① 表单顶部的标签用来显示考生自己的姓名和考号;
② 文本框Text1的显示初值为0;
③ 该表单运行后,在文本框Text1中输入正确口令“CQEEC”,左键单击表单任意空白处,则在文本框Text2中显示“欢迎光临!”,否则显示“口令错误!”;
④ 双击表单任意空白处结束表单程序的运行。
参考答案[此两表已建好,可到学校网站www.cqeec.com下载练习配套材料]
2.程序设计:
******************************************
* 重庆信息技术职业学院 0202001 王又发 *
* PROG3.PRG *
******************************************
用VFP数据表操作命令:
SET TALK OFF
CLEAR
SELECT 1
USE Stockll
INDEX ON 商品代码 TO A1
SELECT 2
USE Sell
INDEX ON 商品代码 TO A2
SET RELATION TO 商品代码 INTO A
ACCEPT "请输入营业员姓名:" TO NAME
" "+NAME+"营业员的销售业绩"
" ----------------------------------------------"
" 日期 商品名称 销售量 销售金额 "
DO WHILE NOT EOF()
IF 营业员=NAME
日期,SPACE(2),A.品名,销售数量,SPACE(6),销售数量*A.单价
ENDIF
SKIP
ENDDO
CLOSE ALL
RETURN
3.SQL语句:显示商品的品名、型号、单价、库存数量和库存金额。
SELECT 品名,型号,单价,库存数量,单价*库存数量 AS 库存金额 FROM Stockll
4.表单设计。
界面设计(10分)
主要属性、事件代码:
1)设置Text1的PasswordChar属性值为“*”
Text2的Caption属性值为“无”(使其在屏幕上不显示);(5分)
2)Text1的Valid(失去焦点)事件代码:(10分)
IF ThisForm.Text1.Value="CQEEC"
ThisForm.Label2.Caption="欢迎光临!"
ELSE
ThisForm.Label2.Caption="口令错误!"
ENDIF
3)Form1的DblClick(双击)事件代码:(5分)
ThisForm.Release
第四套上机复习题
1.建立如下表文件,并输入数据:
 现有职工数据表Zg.dbf和工资数据表Gz.dbf如下,
职工数据表Zg.db
编号 姓名 职称
027 陈林  讲师
015 曾丽 教授
135 王军 讲师
687 林忠 教授
工资数据表Gz.dbf
编号 基本工资 补贴  水电
015  2590.00 565.00 85.00
135  2500.00 374.00 95.00
687  1958.00 771.00 65.00
027  1894.00 468.00 75.00
2.程序设计题:
  编程序完成以下任务(程序文件名PROG4.PRG。注:在程序开头,必须用[注释]语句输入学校名、准考证号、姓名,否则无效!)。要求:
 (1)利用上面提供的两个数据表,输入要查询的职称名称;
 (2)使用VFP数据表操作命令或者VFP-SQL命令,根据职称名称查询该职称的情况和工资情况,并按如下格式显示。
输入职称=XX(如输入“教授“职称)
[注:实发工资 = 基本工资 + 补贴 - 水电 ]
教授职称职工情况表编号 姓名 职称 基本工资  补贴  水电 实发工资
015   曾丽 教授 2950.00  565.00 85.00 3070.00
687   林忠 教授 1958.00   771.00 65.00 2664.00
。。。 。。。 。。。 。。。 。。。 。。。 。。。
3.表单设计。按以下要求设计程序界面,表单文件名为:FORM0401.SCX(30分)
设计如图所示一个表单。包括2个标签,1个文本框,2个命令按钮及工资数据表Gz.dbf中的几个字段(各控件的大小、颜色、字体、字号等属性由考生自定)。其中。
① 表单顶部的标签用来显示考生自己的姓名和考号、第2个标签中输入“请输入职工编号:”;
② 该表单运行后,可以在文本框Text1中输入职工编号,单击“查询”钮,则在表单中显示该职工的工资情况;
③ 单击“退出”钮,结束表单程序的运行。
参考答案[此两表已建好,可到学校网站www.cqeec.com下载练习配套材料]
2.程序设计:
******************************************
* 重庆教授技术职业学院 0401001 王XX *
* PROG4.PRG *
******************************************
用VFP数据表操作命令:
SET TALK OFF
SET SAFETY OFF
CLEAR
SELECT 1
USE Gz
INDEX ON 编号 TAG XH
SELECT 2
USE Zg
SET RELATION TO 编号 INTO A
ACCEPT "请输入职称名称:" TO ZY
" " + ZY+"职称职工情况表"
" 编号 姓名 职称 基本工资 补贴  水电 实发工资"
LOCATE FOR 职称=ZY
DO WHILE,NOT.EOF()
IF 职称 = ZY
T = A->基本工资+ A->补贴 - A->水电
" "+编号+" "+姓名+职称+STR(A->基本工资,8,1);
+STR(a->补贴,8,1)+STR(a->水电,8,1)+STR(T,8,1)
ENDIF
SKIP
ENDDO
用SQL语句:
ACCEPT "请输入职称名称:" TO ZY
SELECT Gz.编号,姓名,职称,基本工资,补贴,水电,基本工资+补贴-水电 as 实发工资 ; FROM Gz,Zg WHERE Gz.编号=Zg.编号 AND 职称= ZY
3.表单设计:
界面设计(10分)
主要属性、事件代码:
1)进入“表单设计器”后,将表GZ添加到“数据环境设计器”中,并将表中字段逐个拖入到“表单设计器”中,并调整大小和位置;
“查询”按钮的Click事件(单击)代码:
LOCATE FOR 姓名=ALLTRIM(ThisForm.Text1.Value)
IF EOF()
?"查无此人!",
ENDIF
ThisForm.Refresh
,退出”按钮的Click(单击)事件代码:
ThisForm.Release
第五套上机复习题
1.建立如下表文件,并输入数据:
已知商品销售业绩表(SPXS.dbf),有如下所示的数据记录:
编号
商家
冰箱
空调
洗衣机
微波炉
101
重百
75
86
85
76
102
新世纪
82
76
67
99
405
国美电器
35
73
75
84
507
苏宁电器
78
92
66
75
545
重客隆商场
74
58
65
88
414
源隆发商场
59
85
64
94
415
商贸城
88
48
70
97
2.程序设计题:
编程完成以下任务(程序文件名PROG5.PRG。注:在程序开头,必须用【注释】语句输入学校名、准考证号、姓名,否则无效!)。
要求:
(1)使用VFP数据表操作命令或者VFP-SQL命令,显示每位商家的四种商品的总销售量,公式:总销售量=冰箱+空调+洗衣机+微波炉。包括编号、商家、总销售量等栏目。
(2)查找四种商品最高销售量的商品名,以及销售最多的商家名。按如下格式显示:
商品销售业绩排行榜冰箱 最高销售量:*** 商家名:*****
空调 最高销售量:*** 商家名:*****
洗衣机 最高销售量:*** 商家名:*****
微波炉 最高销售量:*** 商家名:*****
销售冠军 *** (总销售量)商家名:******
3.按以下要求设计程序界面,表单文件名为:FORM501.SCX。
根据全国人大于05年10月通过的“中华人民共和国个人所得税法”规定:“工资、薪金所得,以每个月收入额减除费用一千六百元后的余额,为应纳税所得额”,在“个人所得税税率表”中明确规定:所得额不超过500元的税率为5%、超过500元至2000元的部分税率为10%、超过2000元至5000元的部分税率为15%、超过5000元至20000元的部分税率为20%、……。
计算公式,所得额P = 收入-1600 个人所得税Q = P * 税率-扣除数所得额
税率
扣除数
0<P≤500
5
0
500<P≤2000
10
25
2000<P≤5000
15
125
5000<P≤20000
20
375
20000<P≤40000
25
1375
40000<P≤60000
30
3375
60000<P≤80000
35
6375
80000<P≤100000
40
10375
100000<P
45
15375
若某公司职工收入均不超过21600元,请设计如图所示一个表单。包括4个标签,3个文本框,2个命令按钮(各控件的大小、颜色、字体、字号等属性由考生自定)。其中。
① 表单顶部的标签用来显示考生自己的姓名和考号;
② 文本框Text1和Text2的显示初值为0;
③ 该表单运行后,可以在文本框Text1中输入职工的收入(0~21600),左键单击“计算”命令按钮,则在文本框Text2中显示该职工的个人所得税;
④ 单击“退出”钮,结束表单程序的运行。
参考答案[此表已建好,可到学校网站www.cqeec.com下载练习配套材料]
2.程序设计题:
******************************************
* 重庆信息技术职业学院 0501001 王XX *
* PROG5.PRG *
******************************************
(1)VFP数据表操作命令:
USE SPXS
LIST 编号,商家,冰箱+空调+洗衣机+微波炉
SQL语句:
SELECT 编号,商家,冰箱+空调+洗衣机+微波炉 AS 总销售量 FROM SPXS
(2)VFP数据表操作命令:
SET TALK OFF
USE SPXS
STORE 0 TO M1,M2,M3,M4,MZ,MR1,MR2,MR3,MR4,MRZ
DO WHILE,NOT.EOF()
IF 冰箱>M1
M1=冰箱
MR1=RECNO()
ENDIF
IF 空调>M2
M2=空调
MR2=RECNO()
ENDIF
IF 洗衣机>M3
M3=洗衣机
MR3=RECNO()
ENDIF
IF 微波炉>M4
M4=微波炉
MR4=RECNO()
ENDIF
IF 冰箱+空调+洗衣机+微波炉>MZ
MZ=冰箱+空调+洗衣机+微波炉
MRZ=RECNO()
ENDIF
SKIP
ENDDO
SPACE(10)+" 商品销售业绩排行榜"
GO MR1
" 冰箱 最高销售量:",M1," 商家名:"+商家
GO MR2
" 空调 最高销售量:",M2," 商家名:"+商家
GO MR3
" 洗衣机 最高销售量:",M3," 商家名:"+商家
GO MR4
" 微波炉 最高销售量:",M4," 商家名:"+商家
GO MRZ
" 销售冠军(总销售量):",MZ," 商家名:"+商家
USE
SET TALK ON
SQL语句:
SELECT MAX(冰箱) AS 冰箱最高销售量,商家 FROM SPXS;
WHERE 冰箱= (SELECT MAX(冰箱) FROM SPXS )
SELECT MAX(空调) AS 空调最高销售量,商家 FROM SPXS ;
WHERE 空调= (SELECT MAX(空调) FROM SPXS )
SELECT MAX(洗衣机) AS 洗衣机最高销售量,商家 FROM SPXS ;
WHERE 洗衣机= (SELECT MAX(洗衣机) FROM SPXS )
SELECT MAX(微波炉) AS 微波炉最高销售量,商家 FROM SPXS;
WHERE 微波炉= (SELECT MAX(微波炉) FROM SPXS )
SELECT MAX(冰箱+空调+洗衣机+微波炉) AS 销售冠军,商家 ;
FROM SPXS WHERE 冰箱+空调+洗衣机+微波炉= ;
(SELECT MAX(冰箱+空调+洗衣机+微波炉) FROM SPXS )
3,表单设计:
界面设计(10分)
主要属性、事件代码:
1)Text1和Text2的Value属性值均为0(5分)
2)“计算”按钮的Click事件代码:(10分)
DO CASE
CASE VAL(THISFORM.TEXT1.VALUE)<=1600
THISFORM.TEXT2.VALUE = 0
CASE VAL(THISFORM.TEXT1.VALUE)<=2100
THISFORM.TEXT2.VALUE = (VAL(THISFORM.TEXT1.VALUE)-1600) * 0.05
CASE VAL(THISFORM.TEXT1.VALUE)<=3600
THISFORM.TEXT2.VALUE = (VAL(THISFORM.TEXT1.VALUE)-1600) * 0.1 - 25
CASE VAL(THISFORM.TEXT1.VALUE)<=6500
THISFORM.TEXT2.VALUE = (VAL(THISFORM.TEXT1.VALUE)-1600) * 0.15 - 125
CASE VAL(THISFORM.TEXT1.VALUE)<=21600
THISFORM.TEXT2.VALUE = (VAL(THISFORM.TEXT1.VALUE)-1600) * 0.2 - 375
ENDCASE
“退出” 按钮的Click事件代码:
ThisForm.Release
第六套上机复习题
1.建立一个计算机等级考试管理数据库,文件名为JKG.DBC,并输入数据(40分)
该数据库有两个数据表:考生数据表文件(STU.DBF)和合格考生数据表文件学(HG.DBF)。其数据形式如下:
考生数据表文件(STU.DBF)
准考证号
笔试成绩
上机成绩
总评
1102
90.00
48.00
1101
120.00
92.00
1103
69.00
72.00
1105
88.00
60.00
1104
98.00
80.00
合格考生数据表文件HG..DBF:
准考证号
姓名
性别
出生日期
合格否
1104
赵文娟
女
04/24/79
F
1102
李亚男
女
10/12/80
F
1101
张爱民
男
05/08/79
F
1103
李玉芬
女
01/21/80
F
1105
周明远
女
04/24/79
F
要求,将数据库(JKG.DBC)中的STU.DBF(父表)和HG.DBF(子表)以“准考证号”建立一对一的永久关系。
2.建立程序文件,要求将完成下列各小题任务的VFP数据表操作命令或VFP-SQL命令写在该程序文件中。在程序首行用注释语句注明考生姓名和准考证号,并用注释语句标注小题号。(30分)
1)(程序文件名为PROG61.PRG)笔试成绩在108分及其以上,并且上机成绩在90分及其以上,则“总评”字段的值为“优秀”,笔试成绩在108分以下,72分及其以上,并且上机成绩在90分以下,60分及其以上,则“总评”字段的值为“及格”,其余情况均为“不及格”;根据STU.DBF表的笔试成绩和上机成绩,将“总评”字段的值填上。
2)(程序文件名为PROG62.PRG)修改HG.DBF表中“合格否”字段的值,将那些“总评”为“优秀”或“合格”的记录的“合格否”字段改为.T.,“不合格”的记录的“合格否”字段值改为.F.
3)(程序文件名为PROG63.PRG)按如下格式显示合格者清单计算机等级考试合格考生名单准考证号 姓名 笔试成绩 上机成绩 总评
…… …… …… …… ……
…… …… …… …… ……
3.表单设计:按以下要求设计程序界面,表单文件名为:FORM0601.SCX(30分)
设计如图所示一个表单。包括3个标签,2个文本框,2个命令按钮(各控件的大小、颜色、字体、字号等属性由考生自定)。其中。
① 表单顶部的标签用来显示考生自己的姓名和考号、第2个标签中输入“请输入准考证号:”、第3个标签中输入“该生平均分为:”;
② 该表单运行后,可以在文本框Text1中输入考生准考证号,单击“统计”钮,则在表单中显示该考生的平均分情况;
③ 单击“退出”钮,结束表单程序的运行。
参考答案[此两表已建好,可到学校网站 www.cqeec.com下载练习配套材料]
程序1:
******************************************
* 重庆信息技术职业学院 123456 王XX *
* PROG5.PRG *
******************************************
VFP数据表操作命令:
SET TALK OFF
CLEAR
USE STU
SCAN
DO CASE
CASE 笔试成绩>=108 AND 上机成绩>=90
REPLACE 总评 WITH,优秀”
CASE
REPLACE 总评 WITH,及格”
OTHERWISE
REPLACE 总评 WITH,不及格”
ENDCASE
ENDSCAN
SQL语句:
UPDATE STU SET 总评=“优秀” WHERE 笔试成绩>=90 AND 上机成绩>=90
UPDATE STU SET 总评=“及格” WHERE 笔试成绩<108 ;
AND 笔试成绩>=72 AND 上机成绩<90 AND 上机成绩>=60
UPDATE STU SET 总评=“不及格” WHERE 笔试成绩<72 AND 上机成绩<60
程序2:
VFP数据表操作命令:
SET TALK OFF
CLEAR
SELECT 1
USE STU
INDEX ON 准考证号 TAG ZKZH
SELECT 2
USE HG
SET RELATION TO 准考证号 INTO A
SCAN
IF A.总评=“优秀” OR A.总评=”及格”
REPLACE 合格否 WITH,T.
ELSE
REPLACE 合格否 WITH,F.
ENDIF
ENDSCAN
SQL语句:
UPDATE HG SET 合格否=,T,WHERE STU.准考证号=HG.准考证号 ;
AND (STU.总评=“优秀” OR STU.总评=”及格”)
程序3:
VFP数据表操作命令:
SET TALK OFF
CLEAR
SELECT 1
USE STU
INDEX ON 准考证号 TAG KH
SELECT 2
USE HG
SET RELATION TO 准考证号 INTO A
,计算机等级考试合格考生名单”
"准考证号 姓名 笔试成绩 上机成绩 总评"
SCAN FOR 合格否=.T.
准考证号+" "+姓名+STR(A.笔试成绩,8,2)+STR(A.上机成绩,8,2)+" "+A.总评
ENDSCAN
SQL语句:
SELECT STU.准考证号,姓名,笔试成绩,上机成绩,总评 FORM STU,HG ;
WHERE STU.准考证号=HG.准考证号 AND合格否=.T.
3.表单设计:
界面设计主要属性、事件代码:
“统计”按钮的Click事件代码:
USE STU
LOCATE FOR 准考证号=ALLTRIM(ThisForm.Text1.Value)
X = (笔试成绩 + 上机成绩)/2
ThisForm.Text2.Value = STR(x,6,2)
“退出” 按钮的Click事件代码:
ThisForm.Release
第七套上机复习题
1.建立如下表文件,并输入数据:
 已知某学生情况表Xs.dbf,有如下记录:
学号
系别
姓名
年龄
籍贯
入学总分
10300301
计算机
张佳
22
太原
489
10100116
数学
伍洪
21
重庆
514
10200332
英语
洪伟
21
太原
467
10300441
计算机
汪洋
22
重庆
465
10100428
数学
刘柳
24
云南
428
10300313
计算机
张丽
23
浙江
519
2.程序设计题:
 编程序完成以下任务,要求用VFP数据表操作命令或VFP-SQL命令写在该程序文件中。(程序文件名PROG7.PRG。注:在程序开头,必须用[注释]语句输入学校名、准考证号、姓名,否则无效!)。要求:
 (1)利用上面提供的学生情况(Xs.dbf)表,输入相应的系别,统计该系的人数;
 (2)根据系别计算属于该系的学生的平均年龄和平均入学总分,并按如下格式显示。
输入系别=XX(如输入“数学”)
数学系 学生情况表
  学号 姓名  年龄 籍贯 入学总分
10100116 伍洪  21 重庆 514
  …… …… …… …… ……
XX 系的总人数 = X
XX 系的平均年龄 = XX.X
XX 系的平均入学总分 = XXXX
3.表单设计。按以下要求设计程序界面,表单文件名为:FORM0502.SCX
设计如图所示一个表单。包括5个标签,1 个组合框、3个文本框,2个命令按钮(各控件的大小、颜色、字体、字号等属性由考生自定)。其中。
① 表单顶部的标签用来显示考生自己的姓名和考号;
②组合框可显示学生情况表Xs.dbf中的系别;
③ 其于的标签和文本框见右图;
④ 该表单运行后,可以从组合框中选择系别,然后单击“统计”钮,则显示该系学生的总人数、平均年龄和平均入学总分;
⑤ 单击“退出”钮,结束表单程序的运行。
参考答案[此表已建好,可到学校网站www.cqeec.com下载练习配套材料]
2,程序设计题:
******************************************
* 重庆信息技术职业学院 0502001 王XX *
* PROG1.PRG *
******************************************
SET TALK OFF
SET SAFETY OFF
CLEAR
USE Xs
ACCEPT "请输入系别名:" TO ZC
SPACE(4)+ZC+"系 学生情况表"
" 学号 姓名 年龄 籍贯 入学总分"
COUNT TO A FOR 系别= ZC
AVERAGE ALL 年龄 TO A1 FOR 系别= ZC
AVERAGE ALL 入学总分 TO A2 FOR 系别= ZC
*CALCULATE CNT(年龄),AVG(年龄),AVG(入学总分) TO A,A1,A2 FOR 系别=ZC
SCAN FOR 系别 = ZC
学号,姓名,年龄,籍贯,入学总分
ENDSCAN
" "
ZC+”系的总人数=”+STR(A)
ZC+”系的平均年龄=”+STR(A1)
ZC+”系的平均入学总分=”+STR(A2)
CLOSE DATA
RETURN
用SQL语句:
ACCEPT "请输入系别名:" TO ZC
SELECT 学号,姓名,年龄,籍贯,入学总分 FROM Xs WHERE 系别= ZC
SELECT COUNT(*) AS 总人数,AVG(年龄) AS 平均年龄,;
AVG(入学总分) AS 平均入学总分 FROM Xs WHERE 系别= ZC
3.表单设计。按以下要求设计程序界面,表单文件名为:FORM511.SCX(30分)
界面设计(10分)
主要属性、事件代码:
1) 组合框Combo1的ControlSource属性值为“XS.系别”(5分)
2)“统计”按钮的Click事件代码:(10分)
COUNT FOR 系别=ThisForm.Combo1.Value TO A
ThisForm.Text1.Value=A
AVERAGE 年龄 FOR 系别=ThisForm.Combo1.Value TO B
ThisForm.Text2.Value=B
AVERAGE 入学总分 FOR 系别=ThisForm.Combo1.Value TO C
ThisForm.Text3.Value=C
或:CALCULATE COUNT(),AVG(年龄),AVG(入学总分) ;
FOR 系别=ThisForm.Combo1.Value TO A,B,C
ThisForm.Text1.Value=A
ThisForm.Text2.Value=B
ThisForm.Text3.Value=C
3)“退出”按钮的Click事件代码:(5分)
ThisForm.Release
第八套上机复习题
1、建立如下表文件,并输入数据:
已知笔记本电脑交易数据表文件Dnjy.dbf,有如下所示的数据记录:
商品代码
品名
单价
库存量
提货量
A6T4
华硕
5349
200
110
W300
神舟承运
4900
450
150
C220
索尼
9290
210
520
F205
神舟天运
5900
240
150
1501
戴尔
5299
300
210
F406
联想
7799
190
250
V3212
惠普
6700
456
328
R60
IBM
6900
136
250
2、程序设计题:
编程完成以下任务(程序文件名PROG8.PRG。注:在程序开头,必须用【注释】语句输入学校名、准考证号、姓名,否则无效!)。
要求:
(1)使用VFP数据表操作命令或者VFP-SQL命令显示库存量减去提货量大于零的所有笔记本电脑的名称、单价、库存量和提货量;
(2)编程模拟笔记本电脑进出货过程,更新Dnjy.dbf数据表内容,要求输入商品代码,如果商品代码存在,输入进货量,将此进货量累加到库存量字段,如果该电脑库存量小于提货量,显示信息“该电脑库存不够!”;如果商品代码不存在,显示显示信息“该电脑不存在!”。
(3)以上过程应能反复进行,直到输入的商品代码为空,则退出程序。
3、表单设计。按以下要求设计程序界面,表单文件名为:FORM0601.SCX
设计如图所示一个表单。包括4个标签,3个文本框,2个命令按钮(各控件的大小、颜色、字体、字号等属性由考生自定)。其中。
① 表单顶部的标签用来显示考生自己的姓名和考号;
② 文本框Text1、Text2和Text3的显示初值为0;
③ 该表单运行后,可以在文本框Text1、Text2中输入数A 和数B(0~1000),左键单击“计算”命令按钮,则在文本框Text3中显示两数的和;
④ 单击“退出”钮,结束表单程序的运行。
参考答案[此两表已建好,可到学校网站www.cqeec.com下载练习配套材料]
2,程序设计题:
*******************************************
* 重庆信息技术职业学院 0601001 王大发 *
* PROG8.PRG *
*******************************************
(1)显示库存量减去提货量大于零的所有笔记本电脑的名称、单价、库存量和提货量
SQL语句:
SELECT 品名,单价,库存量,提货量 FROM Dnjy WHERE(库存量-提货量)>0
VFP数据表操作命令:
USE Dnjy
LIST 品名,单价,库存量,提货量 FOR (库存量-提货量)>0
(2)模拟笔记本电脑进出货过程:
CLEAR
SET TALK OFF
USE Dnjy
DO WHILE,T.
ACCEPT,请输入商品代码:” TO DM
IF EMPTY(DM)
EXIT
ELSE
LOCATE FOR 商品代码=DM
IF FOUND()
INPUT,请输入库存量:” TO GWL
IF 库存量+GWL<提货量
,该电脑库存不够!”
ENDIF
REPLACE 库存量 WITH 库存量+GWL FOR 商品代码=DM
ELSE
,该电脑不存在!”
LOOP
ENDIF
ENDIF
ENDDO
RETURN
3.表单设计。按以下要求设计程序界面,表单文件名为:FORM0601.SCX(30分)
界面设计(10分)
主要属性、事件代码:
1)Text1、Text2和Text3的Value属性值均为0(5分)
2)“计算”按钮的Click事件代码:(10分)
A= VAL(ThisForm.Text1.Value)
B= VAL(ThisForm.Text2.Value)
ThisForm.Text3.Value = A + B
“退出”按钮的Click事件代码:(5分)
ThisForm.Release
第九套上机复习题建立一个图书交易管理数据库,文件名为SJY.DBC,并输入数据:
该数据库有两个数据表:书籍表SJ.DBF和交易表JY.DBF。其数据形式如下:
书籍表SJ.DBF
书号
书名
2030
计算机原理
4644
离散数学
6426
软件工程
3535
高等数学
3376
经济法
3679
大学语文
4636
大学英语
5675
基础会计
交易表JY.DBF
书号
已售
定价
册数
总金额
2030
.T.
21.20
134
4644
.F.
17.60
128
6426
.T.
30.00
69
3535
.F.
18.80
306
3376
.T.
22.30
238
3679
.T.
19.00
112
4636
.F.
25.40
168
5675
.F.
18.50
280
要求:将数据库(SJY.DBC)中的SJ.DBF和JY.DBF两表以“书号”建立一对多的永久关系。[注:已售为真(,T.),即此书已销售 ]
2、操作数据库表。要求将相关命令保留到程序文件CQEEC9.PRG中。
注:使用VFP-SQL命令和VFP数据表操作命令,一个任务可由若干个命令组成,请用注释语句标注题号。
(1)根据定价和册数计算书籍的总金额,并将计算结果写入JY.DBF表中;
(2) 查询已经销售的书籍信息,要求显示书名,册数,定份及销售总金额,已经交易的为.T.
(3)按已售书籍汇总册数和销售总金额,并显示已售和汇总后的册数和销售总金额
(4)将JY.DBF中还没有销售的书籍逻辑删除。
3、程序填空,要求输入并完善程序,程序文件名为PROG9.PRG
注:在程序开头,必须用注释语句输入学校名,准考证号,姓名以下程序的功能是能反复输入书号(按‘Q’键退出),并输出该书籍的销售情况,格式为:“书名,已售,销售总金额”最后输出该书籍已经销售的总数量和总金额。
程序代码:
SELECT 1
USE SJ
INDEX ON 书号 TAG SH
SELECT 2
USE JY
SET RELATION TO 书号 INTO A
X=.T.
DO WHILE X
ACCEPT "请输入书号:" TO DM
IF UPPER(ALLTRIM(DM))="Q"

LOOP
ENDIF
?"书名 已售 册数 销售金额"
SCAN FOR ②
A.书名,已售,册数,总金额
ENDSCAN
CALCULATE ③ TO S1,S2 FOR 已售 AND 书号=DM
"该书籍已经销售的总数量 总金额"
S1,S2
ENDDO
CLOSE ALL
SET TALK ON
RETURN
4、表单设计。按以下要求设计程序界面,表单文件名为:FORM0601.SCX
设计如图所示一个表单。包括7个标签,6个文本框,3个命令按钮(各控件的大小、颜色、字体、字号等属性由考生自定)。其中。
① 表单顶部的标签用来显示考生自己的姓名和考号;
② 其于的标签和文本框在数据环境中从学生情况(Xs.dbf)表中拖出;
③ 该表单运行后,可以单击“添加”钮或“删除”钮进行添加或删除学生记录的操作;
④ 单击“退出”钮,结束表单程序的运行。
参考答案[此两表已建好,可到学校网站www.cqeec.com下载练习配套材料]
*******************************************
* 重庆信息技术职业学院 0602001 王XX *
* PROG9.PRG *
*******************************************
1、将数据库中的SJ.DBF和JY.DBF两表以“书号”建立一对多的永久关系。
两表已建好,自己在数据库(SJY.DBC)中建一对多的永久关系(在数据库中,先建索引,父表要设为主索引,然后用鼠标拖索引标记到子表)
2、操作数据库表。要求将相关命令保留到程序文件CQEEC9.PRG中(40分)。
注:使用VFP数据表操作命令或者VFP-SQL命令,一个任务可由若干个命令组成,请用注释语句标注题号。
(1)根据股份和册数计算每次交易的总金额,并将计算结果写入JY.DBF表中;
SQL语句:
UPDATE JY SET 总金额 = 册数*定价
VFP数据表操作命令:
USE JY
REPLACE ALL 总金额 WITH 册数*定价
(2)查询已经交易的股票信息,要求显示书名,册数,股份及交易总金额,已经交易的为.T.
SQL语句:
SELECT 书名,册数,定价,总金额 FROM SJ,JY ;
WHERE SJ.书号=JY.书号 AND 已售
VFP数据表操作命令:
SELECT 1
USE SJ
INDEX ON 书号 TAG DM
SELECT 2
USE JY
SET RELATION TO 书号 INTO SJ
LIST SJ.书名,册数,定价,总金额 FOR 已售 OFF
(3)按已售汇总册数和交易总金额,并显示已售和汇总后的册数和交易总金额
SQL语句:
SELECT 已售,SUM(册数),SUM(总金额) ;
FROM JY GROUP BY 已售
VFP数据表操作命令:
USE JY
INDEX ON 已售 TAG LX
TOTAL ON 已售 TO HZ
USE HZ
LIST 已售,册数,总金额 OFF
(4)将JY.DBF中还没有交易的股票逻辑删除。
SQL语句:
DELETE FROM JY WHERE NOT 已售
[注:“NOT 已售”,表示已售为假(,F.),即此书没销售]
VFP数据表操作命令:
USE JY
DELETE FOR NOT 已售
3、程序填空,要求输入并完善程序,程序文件名为PROG9.PRG(30分)
注:在程序开头,必须用注释语句输入学校名,准考证号,姓名以下程序的功能是能反复输入书号(按‘Q’键退出),并输出该股票的交易情况,格式为:“书名,已售,交易总金额”最后输出该股票已经交易的总数量和总总金额。
程序代码:
① X=.F,
② 书号=DM
③ SUM(册数),SUM(总金额)
4、表单设计。按以下要求设计程序界面,表单文件名为:FORM0601.SCX(30分)
界面设计(5分)
主要属性、事件代码:
1) 从数据环境将数据表XS.DBF中相应字段加到表单中。(10分)
2)“添加”按钮的Click事件代码:(5分)
APPEND BLANK
ThisForm.Refresh
3)“删除”按钮的Click事件代码:(5分)
DELETE
PACK
ThisForm.Refresh
4)“退出”按钮的Click事件代码:(5分)
ThisForm.Release
第十套上机复习题
1.建立一个计算机考试成绩管理数据库,文件名为SJXG.DBC,并输入数据。
该数据库有两个数据表:商家信息表(SJXS.DBF)和商家情况表(XG CJ.DBF)。其数据形式如下:
商家信息表(SJ.DBF) 商家情况表(XG.DBF)
编号
商家
0701
力天公司
0702
宏伟公司
0703
万丰联
0704
精斌科技
0705
慧发实业
0706
益达电子
编号
等级
信誉度
合格否
0702
8
优
.F.
0704
4.5
无
.F.
0703
9
优
.F.
0701
7
良
.F.
0705
6.9
劣
.F.
0706
5.7
中
.F.
要求:将数据库(SJXG.DBC)中的SJ.DBF(父表)和XG.DBF(子表)以“编号”建立一对一的永久关系。
2、建立程序文件PROG10.PRG,要求将完成下列各小题任务的VFP数据表操作命令或VFP-SQL命令写在该程序文件中。在程序首行用注释语句注明考生姓名和准考证号,并用注释语句标注小题号。(30分)
(1)正确修改每个商家的“合格否”字段,并填入商家情况表XG.DBF中。规定等级<6或信誉度为“无”或“劣”,则该字段的值为.F.,否则为.T.;
(2)在商家情况表XG.DBF中,查询并显示合格商家的编号、商家、等级和信誉度;
(3)逻辑删除商家情况表XG.DBF中信誉度为“无”的商家记录。
3、表单设计。按以下要求设计程序界面,表单文件名为:FORM0701.SCX(30分)
设计如图所示一个表单。包括4个标签,3个文本框,1个命令按钮(各控件的大小、颜色、字体、字号等属性由考生自定)。其中。
① 表单顶部的标签用来显示考生自己的姓名和编号;
② 文本框Text1、Text2和Text3的显示初值为0;
③ 该表单运行后,可以在文本框Text1、Text2中输入成绩(0~100),左键单击“计算”命令按钮,则在文本框Text3中显示平均成绩,要求保留一位小数;
④ 双击表单任意空白处结束表单程序的运行。
参考答案[此两表已建好,可到学校网站www.cqeec.com下载练习配套材料]
*******************************************
* 重庆信息技术职业学院 0701001 张小晓 *
* PROG10.PRG *
*******************************************
1.(共40分)数据库和表都已建好,自己建一对一的永久关系(在数据库中,先建索引,父表要设为主索引,然后用鼠标拖索引标记到子表)
评分标准如下:
正确建立2个表的数据结构(表结构设计正确)20分数据正确15分永久关联正确5分
2.(共30分)每小题10分。
(1)正确修改每个商家的“合格否”字段,并填入商家情况表XG.DBF中。规定等级<60或信誉度为“无”或“劣”,则该字段的值为.F.,否则为.T.;
VFP数据表操作命令:
USE XG
REPLACE ALL 合格否 WITH,T,FOR 等级>=6 AND (信誉度=“优” OR 信誉度=“良” OR 信誉度=“中”)
SQL语句:
UPDATE XG SET 合格否=.T,;
WHERE 等级>=6 AND (信誉度=“优” OR 信誉度=“良” OR 信誉度=“中”)
(2)在商家情况表XG.DBF中,查询并显示合格商家的编号、商家名、等级和信誉度;
VFP数据表操作命令:
SELECT 1
USE SJ
INDEX ON 编号 TAG KH
SELECT 2
USE XG
SET RELATION TO 编号 INTO A
LIST 编号,A.商家,等级,信誉度 FOR 合格否=.T.
SQL语句:
SELECT SJ.编号,商家,等级,信誉度 FROM SJ,XG ;
WHERE SJ.编号=XG.编号 AND 合格否=.T.
(3)逻辑删除商家情况表XG.DBF中信誉度为“无”的商家记录。
VFP数据表操作命令:
USE XG
DELETE FOR 信誉度=“无”
SQL语句:
DELETE FROM XG WHERE信誉度=“无”
3.表单设计。按以下要求设计程序界面,表单文件名为:FORM711.SCX(30分)
界面设计(10分)
主要属性、事件代码:
1)Text1、Text2和Text3的Value属性值均为0(5分)
2)“计算”按钮的Click事件代码:(10分)
X1=ThisForm.Text1.Value
X2=ThisForm.Text2.Value
ThisForm.Text3.Value=Round((X1+X2)/2,1)
3)Form1的DblClick事件代码:ThisForm.Release (5分)