问答题
说明:1.启动VFP后在命令窗口中执行下列命令,以设置默认的工作目录:
SET DEFA TO T:
2.除非题目要求,否则不要对T盘上的文件进行重命名、复制和删除操作。
问答题
项目、数据库和表操作。
打开项目文件jxgl,在该项目中已有一个数据库jxsj。根据以下要求进行操作:
(1)在jxsj数据库中按如下表格中所示的结构创建ab.dbf表,并设置相关属性。
字段名
数据类型
宽度
字段标题
xsrq
D
销售日期
xsdd
C
20
销售地点
mplb
C
20
门票类别
sl
N
6
数量
dj
N
3
单价
①设置表的注释:世博会门票销售表。 ②设置xsrq字段的默认值:当前系统日期。 ③设置xsdd字段的显示类:下拉列表框。 ④设置mplb字段的默认值:平日普通票。 ⑤设置表的有效性规则:如果门票类别是“夜票”,则单价等于90元。 ⑥创建索引名为abcd的普通索引,要求按“销售日期”排序,相同时按“销售地点”排序。 (2)在ab表中输入如下记录:
xsrq
xsdd
mplb
sl
dj
2010-7-25
园区门口
夜票
5
90
(3)计算并修改gzb自由表中所有记录的sfgz字段值,计算公式如下:
sfgz=jbgz+gwjt+zhjt+zfbt+qt-zfgj-ylbx
(4)kc表与kcap表具有相同的字段kcdm,以kc表为主表、kcap表为子表,根据kcdm建立永久关系,并设置两表之间的参照完整性:更新级联、插入限制。
【正确答案】
【答案解析】 项目、数据库和表操作
xsrq字段的默认值:DATE()
mplb的有效性规则:mplb<>"夜票"OR dj=90
索引表达式:DTOC(xsrq, 1)+xsdd
问答题
设计查询。
已知学生表(xs.dbf)存储了学生基本信息,其中含学生的民族代码(mzdm,C)等字段;代码表(dmb.dbf)存储了一些代码信息,其中含类型(lx,C)、代码(dm,C)、名称(mc,C)等字段,类型(lx)为“民族”时,相应的记录为我国各民族的代码与名称。按如下要求修改jxgl项目中的查询chaxun:
基于xs表和dmb表,查询各民族的学生人数。要求:输出字段依次为mzdm、mc、人数,查询结果按“人数”降序排列,且查询去向为文本文件abcd。
【正确答案】
【答案解析】 设计查询
SELECT xs.mzdm, dmb.mc, COUNT(*)AS人数;
FROM jxsj! xs INNER JOIN jxsj! dmb;
ON xs.mzdm=dmb.dm;
WHERE dmb.lx="民族";
GROUP BY xs.mzdm;
ORDER BY 3 DESC;
TO FILE abcd.txt
问答题
设计菜单。
jxgl项目中已存在菜单MENU,其中已定义了“文件”菜单栏及其中的“退出菜单”项。按如下要求设计菜单,菜单运行后的效果如下图所示。
问答题
设计表单。
表单FRM11E用于显示图形和颜色。按下列要求修改表单,修改后表单运行时如下图所示。
【正确答案】
【答案解析】 设计表单
题号
对象名
属性/事件/方法名
属性值/代码
1
Form1
Caption
图形和颜色
AutoCenter
.T.
2
Shape1
Height
80
Width
80
3
OplionGroup1
ButtonCount
9
Option9
Caption
退出
4
Click Event
5行:THISFORM.Shape1.Curvature=0
8行:THISFORM.Shape1.Curvature=0
16行:THISFORM.Shape1.BackColor=RGB(255,0,0)
23行:OTHERWISE
24行:THISFORM.Release
问答题
程序改错。
下列程序的功能是:验证一个身份证号是否有效,验证的条件如下:
(1)宽度只能是15位或18位。
(2)如果是15位,则从第7位开始的6位子串必须是一个合法的日期。
(3)如果是18位,则从第7位开始的8位子串必须是一个合法的日期。
对输入的身份证参数pCID,如果满足上述条件,则CheckCID函数返回.T.;否则返回.F.。要求:
①项目中有一个程序文件Pcode,将下列程序代码复制到其中并进行修改。
②在修改程序时,不允许修改程序的总体框架和算法,不允许增加或减少语句数目。
(1) DO CheckCID WITH "320502199611152524"
(2) PROC CheckCID
(3) PARA pCID
(4) LOCAL Result, sMsg, i, iLen, sBirth
(5) SET DATE TO ymd
(6) Result=.T.
(7) sMsg="有效身份证号"
(8) iLen=LEN(pCID)
(9) WHILE iLen<>15 OR iLen<>18
(10) sMsg="身份证号长度不合要求!"
(11) Result=.F.
(12) ELSE
(13) d=IIF(iLen=15, 0, 2)
(14) sBirth=SUBS(pCID, 7, 6+d)
(15) sBmh=LEFT(sBirth, 2+d)+"/"+SUBS(sBiah, 3+d, 2)+"/"+
(16) RIGHT(sBiah, 2)
(17) IF EMPTY(CTOD(sBirth))
(18) sMsg="身份证号中出生日期部分无效!"
(19) Result=.F.
(20) ENDIF
(21) ENDIF
(22) WAIT WIND sMsg
【正确答案】
【答案解析】 程序改错
第9行改为:IF iLen<>15.AND.iLen<>18
提交答案
关闭