问答题
说明:1.启动VFP后在命令窗口中执行下列命令,以设置默认的工作目录:
SET DEFA TO T:
2.除非题目要求,否则不要对T盘上的文件进行重命名、复制和删除操作。
问答题 项目、数据库和表操作。
打开项目文件jxgl,在该项目中已有一个数据库jxsj。根据以下要求进行操作:
(1)在jxsj数据库中按如下表格中所示的结构创建ab.dbf表,并设置相关属性。
字段名 数据类型 宽度 字段标题
bxdh C 12 保险单号
qcph C 8 汽车牌号
rq D 生效日期
je N 8 保险金额
①设置保险单号字段的注释:自动编号。 ②设置保险金额字段的输入掩码:采用会计格式(即形如“1,234,457”)。 ③设置保险金额字段的有效性规则:大于或等于10000,且小于10000000。 ④设置表的删除触发器:不能删除。 ⑤创建普通索引,索引名为abcd,要求按“保险金额”降序排列。 (2)在ab表中输入如下记录:
bxdh qcph rq je
123420110012 苏ABC001 2011-04-02 1,200,000
(3)将自由表cjb添加到当前数据库中,并设置为“包含”。
(4)kc表已存在主索引kcdm,索引表达式为kcdm;cj表已存在普通索引kcdm,索引表达式为kcdm。以kc表为主表、cj表为子表,根据kcdm建立永久关系,并设置两表之间的参照完整性:更新级联、删除限制、插入限制。
【正确答案】
【答案解析】项目、数据库和表操作
字段输入掩码:99,999,999
索引表达式:je
字段有效性规则:BETWEEN(je, 10000, 10000000)或je>=10000 AND je
<10000000
删除触发器:.F.
问答题 设计查询。
院系专业表(yxzy)含有院系专业代码(yxzydm,C)、专业名称(zymc,C)等字段;学生表(xs)含省市(jg,C)和性别(xb,C)等字段。按如下要求修改jxgl项目中的查询chaxun:
基于yxzy表和xs表统计各专业各省市的男女学生人数。要求:输出字段为zymc、jg、xb、人数;查询结果按“专业名称”排序,相同时按“省市”排序;输出去向为屏幕。
【正确答案】
【答案解析】设计查询
SELECT yxzy.zymc, xs.jg, xs.xb, COUNT(*)AS人数, xs.yxzydm;
FROM jxsj! yxzy INNER JOIN jxsj! xs;
ON yxzy.yxzydm=xs.yxzydm;
GROUP BY xs.yxzydm, xs.jg, xs.xb;
ORDER BY yxzy.zymc, xs.jg;
TO SCREEN
问答题 设计菜单。
jxgl项目中已存在菜单MENU,其中已定义了“文件”菜单栏及其中的“退出菜单”项。按如下要求设计菜单,菜单运行后的效果如图所示。
【正确答案】
【答案解析】设计菜单
命令/过程:
CLEAR ALL
SET SYSMENU TO DEFAULT
问答题 设计表单。
表单F102D用于实现对矩阵进行转置。按下列要求修改表单,修改后表单运行时如图所示。
【正确答案】
【答案解析】设计表单
题号 对象名 属性/事件/方法名 属性值/代码
1 Form1 MaxButton .F.
MinButton .F.
BorderStyle 1
AutoCenter .T.
2 List1 ColumnLines .F.
RowSourceType 5
3 SpnRows InteractiveChange THISFORM.List2.ColumnCount=THIS.Value
THISFORM.Command1.Click()
4 Command2 Click THISFORM.TranArray()
THISFORM.List2.RowSollrce=”arr2”
问答题 程序改错。
下列程序的功能是:计算汉字的录入速度,单位为“字/分钟”。其基本算法是:从键盘录入汉字至一个字符型变量中,当按回车键时结束。统计该变量中汉字的个数及所用的时间,统计时忽略所有的非汉字字符(本题讨论的汉字均为GB2312—80的汉字)。要求:
①项目中有一个程序文件Pcode,将下列程序代码复制到其中并进行修改。
②在修改程序时,不允许修改程序的总体框架和算法,不允许增加或减少语句数目。
(1) CLEAR
(2) n=0
(3) t1=DATETIME()
(4) ACCEPT"开始输入:"TO s
(5) t2=DATETIME()
(6) DO WHILE LEN(s)>0
(7) IF ASC(LEFT(s, 1))>"127"
(8) n=n+1
(9) s=RIGHT(s, LEN(s)-2)
(10) ELSE
(11) s=LEFT(s, LEN(s)-1)
(12) ENDIF
(13) ENDDO
(14) p=n*60/(t2-t1)
(15) ?"汉字的录入速度为:", p
【正确答案】
【答案解析】程序改错
第7行改为:IF ASC(LEFT(s, 1))>127
第11行改为:s=SUBS(s, 2)或s=RIGHT(s, LEN(s)-1)