问答题
说明:1.启动VFP后在命令窗口中执行下列命令,以设置默认的工作目录:
SET DEFA TO T:
2.除非题目要求,否则不要对T盘上的文件进行重命名、复制和删除操作。
问答题
项目、数据库和表操作。
打开项目文件JXGL,在该项目中已有一个数据库JXSJ。根据以下要求进行操作:
(1)在JXSJ数据库中按如下表格中所示的结构创建AB.DBF表,并设置相关属性。
字段名
数据类型
宽度
字段标题
stmc
C
20
社团名称
stxz
C
12
社团性质
szyx
C
30
所在院系
edrs
N
3,0
额定人数
jj
M
简介
①设置长表名:学校社团表。 ②设置slxz字段的默认值:体育。 ③设置syqgz字段的有效性规则:大于等于1000,且小于等于10000。 ④设置表的插入触发器:不能插入单位性质为“政府机关”的记录。 ⑤创建索引名为abcd的普通索引,要求按“所在院系”排序,相同时按“额定人数”排序。 (2)在AB表中输入如下记录:
stmc
stxz
szyx
edrs
东吴琴社
文艺
全校
30
(3)在项目中添加pc.ico文件,并将该文件设置为“包含”。
(4)KC表与JC表具有相同的字段kcdm,以KC表为主表,JC表为子表,根据kcdm建立永久关系,并设置两表之间的参照完整性:更新级联、删除限制。
【正确答案】
【答案解析】 项目、数据库和表操作
syqgz字段的有效性规则:BETWEEN(edrs, 10, 100)
表的插入触发器:stmc<>szyx
索引表达式:szyx+STR(edrs)
问答题
设计查询。
已知教师表(js)含有工号(gh,C)、姓名(xm,C)等字段;自由表图书借阅表(jyb)含有读者号(dzh,C)、分类号(flh,C)、借阅日期(jyrq,D)、还书日期(hsrq,D)等字段,教师的读者号与工号相同。按如下要求修改jxgl项目中的查询chaxun:
基于js表和jyb表查询教师借书情况,计算过期罚款信息。要求:查询输出字段为dzh、xm、罚款额;查询结果按“罚款额”降序排序;输出去向为文本文件temp。
注:罚款计算方法为30天以上超过部分每本每天0.10元,未还书者(即还书日期为空的记录)不统计。
【正确答案】
【答案解析】 设计查询
SELECT jyb.dzh, js.xm, SUM(IIF(hsrq-jyrq>30, (hsrq-jyrq-30)*0.1, 0.0))
AS罚款额;
FROM jxsj!js INNER JOIN jyb ON js.gh=jyb.dzh;
WHERE EMPTY(jyb.hsrq)<>.T.; 或WHERE !EMPTY(jyb.hsrq);
GROUP BY jyb.dzh;
ORDER BY 3 DESC;
TO FILE temp.txt
问答题
设计菜单。
利用菜单设计器,按如下要求修改项目JXGL中的菜单MENU,修改后菜单运行效果如下图所示。
问答题
设计表单。
项目JXGL中的表单F101A用于统计输入文本中各类字符的个数。按下列要求修改表单,修改后表单运行时如图所示。
【正确答案】
【答案解析】 设计表单
题号
对象名
属性/事件/方法名
属性值/代码
1
Form1
Caption
字符数统计
Text1
Text2
Text3
Enabled
.F.
2
Label_Sum
(添加操作)
Name
Label_Sum
Caption
总字符数
Text4
(添加操作)
3
Command1
Click
THISFORM.Edit1.Value="
THISFORM.SETALL("Value", 0, "TextBox")
或STORE 0 TO THISFORM.Text1.Value, ;
THISFORM.Text2.Value, THISFORM.Text3.Value, ;
THISFORM.Text4.Value
4
Command2
Click
THISFORM.Count()
THISFORM.Text4.Value=;
THISFORM. Text1. Value + THISFORM. Text2.
Value+;
THISFORM.Text3.Value
问答题
程序改错。
下列程序的功能是找出100~999以内同时满足以下条件的数:个位数字与十位数字之和与10的模等于百位数;该数是素数(仅能被1和本身整除的数称为“素数”),如101、211、239等。要求:
①将下列程序输入到项目中的程序文件PCODE中,并对其中的2条错误语句进行修改。
②在修改程序时,不允许修改程序的总体框架和算法,不允许增加或减少语句数目。
(1) CLEAR
(2) FOR i=100 TO 999
(3) yn=.T.
(4) FOR j=3 TO i-1
(5) IF MOD(j, i)=0
(6) yn=.F.
(7) EXIT
(8) ENDIF
(9) ENDFOR
(10) IF vn
(11) s=STR(i, 3)
(12) s1=SUBS(s, 3, 1)
(13) s2=SUBS(s, 2, 1)
(14) s3=SUBS(s, 1, 1)
(15) IF MOD(VAL(s1)+VAL(s2))=VAL(s3)
(16) ? i
(17) ENDIF
(18) ENDIF
(19) ENDFOR
【正确答案】
【答案解析】 程序改错
第5行改为:IF MOD(i, j)=0
第15行改为:IF MOD(VAL(s1)+VAL(s2), 10)=VAL(s3)
提交答案
关闭