问答题
说明:1.启动VFP后在命令窗口中执行下列命令,以设置默认的工作目录:
SET DEFA TO T:
2.除非题目要求,否则不要对T盘上的文件进行重命名、复制和删除操作。
问答题 项目、数据库和表操作。
打开项目文件JXGL,在该项目中已有一个数据库JXSJ。根据以下要求进行操作:
(1)在jxsj数据库中按如下表格中所示的结构创建ab.dbf表,并设置相关属性。
字段名 数据类型 宽度 字段标题
cph C 8 车牌号
wzdd C 50 违章地点
wzsj T 违章时间
yy M 原因
①设置tab表的注释:车辆违章信息表。 ②设置cph字段的验证规则及信息:首字符必须为汉字,紧随其后的必须是一个大写英文字母。 ③将yy字段的默认值设置为“闯红灯”。 ④创建索引名为abcd的普通索引,要求根据车牌号排序,车牌号相同时再根据违章时间排序。 (2)在tab表中输入如下记录:
cph wzdd wzsj yy
苏A66666 中山路与福建路路口 2012/6/9 10:40 闯红灯
(3)修改xsb表中的数据,要求将xm(姓名)只有两个字的记录的姓与名之间插入两个空格字符。
(4)设置xs表的删除触发器,要求只允许删除班级编号以“08”开头的记录。
(5)已知kc表已存在主索引kcdm,cj表已存在普通索引kcdm,索引表达式均为kcdm。以kc表为主表、cj表为子表,基于kcdm索引建立永久关系,并设置它们之间的参照完整性:更新级联。
【正确答案】
【答案解析】项目、数据库和表操作
验证规则表达式:ASC(LEFT(cph, 1)>127).AND.BETWEEN(SUBSTR(cph, 3, 1), "A", "Z")
索引表达式:cph+TFOC(wzsj, 1)
表数据操作语句:
UPDATE xsb SET xm=LEFT(xm, 2)+SPACE(2)+SUBS(xm, 3, 2);
WHERE LEN(ALLT(xm))=4
删除触发器表达式:LEFT(bjbh, 2)="08"
问答题 设计查询。
已知在jxsj数据库的学生(xs)表中含有学号(xh)、班级编号(bjbh)等字段;学生就业(xsjy)表中含有学号(xh)、单位(dw)、单位性质(dwxz)等字段。按如下要求修改查询chaxun:
基于xs表和xsjy表查询各班级学生就业人数以及在政府机关(dwxz字段值为“政府机关”)的人数,要求输出字段包括班级编号、就业人数、政府机关人数,输出结果按“班级编号”排序。
【正确答案】
【答案解析】设计查询
SELECT xs.bjbh AS班级编号, COUNT(*) AS就业人数, ;
SUM(IIF(dwxz="政府机关", 1, 0)) AS政府机关人数;
FROM jxsj! xs INNER JOIN jxsj! xsjy;
ON xs.xh=xsjy.xh GROUP BY xs.bjbh ORDER BY xs.bjbh
问答题 设计菜单。
项目jxgl中已存在菜单MENU,利用菜单设计器按如下要求修改菜单,完成后的运行效果如图所示。
【正确答案】
【答案解析】设计菜单
INSERT INTO cjb(xh, kcdm, cj)VALUE(040701002",60001",80)
USE cjb EXCEL
PACK
问答题 设计表单。
表单FRM13A3用于测试RGB调色板。按下列要求修改表单,修改后表单运行时如图所示。
【正确答案】
【答案解析】设计表单
题号 对象名 属性/事件/方法名 属性值/代码
1 Form Caption 调色板
AutoCenter .T.
AlwaysOntop .T.
2 Shape1 Height 120
Width 145
BackColor 255,255,255
BorderColor 255,255,255
3 Form ABC方法 THIS.Shape1.BackColor=;
RGB(THIS.Spinner1.Value, THIS.Spinner 2.Value, ;
THIS.Spinner3.Value)
THIS.Shape1.BorderColor=;
RGB(THIS.Spinner1.Value, THIS.Spinner 2.Value, ;
THIS.Spinner3.Valtie)
4 Spinner1 InteractiveChange THISFORM.ABC()
Spinner2 InteractiveChange THISFORM.ABC()
Spinner3 InteractiveChange THISFORM.ABC()
问答题 程序改错。
下列程序的功能是求出并显示九位累进可除数。所谓“九位累进可除数”,是指由数字1~9组成(每个数字仅出现一次),其前两位能被2整除,前三位能被3整除……前n位能被n整除,整个九位数能被9整除。注:九位累进可除数应为381654729,为避免程序运行时间过长,程序中第2条语句不用修改。要求:
①项目中有一个程序文件Peode,将下列程序代码复制到其中并进行修改。
②在修改程序时,不允许修改程序的总体框架和算法,不允许增加或减少语句数目。
(1) CLEAR
(2) FOR i=381534567 TO 391834567
(3) yn=.T.
(4) FOR j=1 TO 9
(5) IF!STR(j, 1)$STR(i, 9)AND VAL(LEFT(STR(i, 9), j))%j<>0
(6) yn=.F.
(7) EXIT
(8) ENDIF
(9) ENDFOR
(10) IF!yn
(11) LOOP
(12) ENDIF
(13) ?"九位累进可除数为:"+i
(14) EXIT
(15) ENDFOR
【正确答案】
【答案解析】程序改错
第5行改为:IF!STR(j, 1)$STR(i, 9)OR VAL(LEFT(STR(i, 9), j))%j<>0
第13行改为:?"九位累进可除数为:", i或者?"九位累进可除数为:"+STR(i)