问答题
说明:1.启动VFP后在命令窗口中执行下列命令,以设置默认的工作目录:
SET DEFA TO T:
2.除非题目要求,否则不要对T盘上的文件进行重命名、复制和删除操作。
问答题 项目、数据库和表操作。
打开项目文件JXGL,在该项目中已有一个数据库JXSJ。根据以下要求进行操作:
(1)在jxsj数据库中按如下表格中所示的结构创建tab.dbf表,并按表格后的要求设置相关属性。
字段名 数据类型 宽度 字段标题
qq C 15 QQ号
fqq C 15 好友QQ号
jrsj T 加入时间
bzmc C 10 备注名称
①设置长表名:qq好友表。 ②设置qq字段注释:主关键字构成之一。 ③设置jrsj的默认值:当前系统的日期时间。 ④创建索引名为abcd的主索引,要求先根据qq字段排序,相同时根据fqq字段排序。 (2)在tab表中输入如下记录:
qq fqq jrsj bzmc
323988481 4323461997 2012/10/11 9:30:00 AM 表弟阿宝
(3)修改cjb表中的成绩,将所有成绩增加到大于该成绩的最小的10的倍数,如果成绩正好是10的倍数,则不修改。例如,70分则不改,71~79分则改为80分……
(4)设置xs表的更新触发器,要求只有籍贯(jg)为“江苏南京”的学生记录允许修改。
(5)已知kc表已存在主索引kcdm,cj表已存在普通索引kcdm,索引表达式均为kcdm。以kc表为主表、cj表为子表,基于kcdm索引建立永久关系,并设置它们之间的参照完整性:删除限制。
【正确答案】
【答案解析】项目、数据库和表操作
默认值表达式:DATETIME()
索引表达式:qq+fqq
表数据操作语句:UPDATE cjb SET cj=CEILING(cj/10)*10
或者:UPDATE cjb SET cj=INT((cj+9)/10)*10
触发器表达式:jg="江苏南京"
问答题 设计查询。
已知在jxsj数据库的学生(xs)表中含有学号(xh)、班级编号(bjth)等字段;学生就业(xsjy)表中含有学号(xh)、单位(dw)、单位性质(dwxz)、试用期月工资(syqygz)等字段。按如下要求修改查询chaxun:
基于xs表和xsjy表查询各班级学生在不同性质单位的就业人数及试用期平均月工资,要求输出字段包括班级编号、单位性质、就业人数、试用期平均月工资,输出结果按“班级编号”排序,相同时按“试用期平均月工资”降序排序。
【正确答案】
【答案解析】设计查询
SELECT xs.bjbh AS班级编号, xsjy.dwxz AS单位性质, COUNT(*)AS就业人数, ;
AVG(xsjy.syqygz)AS试用期平均月工资;
FROM jxsj! xs INNER JOIN jxsj! xsjy;
ON xs.xh=xsjy.xh;
GROUP BY xs.bjbh, xsjy.dwxz;
ORDER BY xs.bjbh, 4 DESC
问答题 设计菜单。
项目jxgl中已存在菜单MENU,利用菜单设计器按如下要求修改菜单,完成后的运行效果如图所示。
【正确答案】
【答案解析】设计菜单
菜单项命令:RUN/N NotePad.exe
跳过条件表达式:!FILE("superplayer.exe")
问答题 设计表单。
表单FRM13A1用于将十进制数转换为二进制数。按下列要求修改表单,修改后表单运行时如下图所示。
【正确答案】
【答案解析】设计表单
题号 对象名 属性/事件/方法名 属性值/代码
1 Form BorderStyle 2-固守对话框
AutoCenter .T.
2 Text1 InputMask 999999
Text2 ReadOnly .T.
ForeColor 0,0,255
3 Command2 Caption 转换
4 Command1 Click THISFORM.Text1.Value="
THISFORM.Text2.Value="
5 Command2 Click THISFORM.Text2.Value=t2
问答题 程序改错。
下列程序是计算100以内素数之和。所谓素数是指大于1且只能被1和自己整除的自然数。要求:
①项目中有一个程序文件Pcode,将下列程序代码复制到其中并进行修改;
②在修改程序时,不允许修改程序的总体框架和算法,不允许增加或减少语句数目。
(1) SET TALK OFF
(2) CLEAR
(3) sum1=0
(4) FOR i=2 TO 100
(5) prime=.T.
(6) FOR i=2 TO i-1
(7) IF MOD(i, j)<>0
(8) Prime=.F.
(9) EXIT
(10) ENDIF
(11) ENDFOR
(12) IF prime
(13) ?? i
(14) sum1=sum1+i
(15) ENDIF
(16) ENDFOR
(17) ?"100以内素数之和为:"+sum1
(18) SET TALK ON
(19) RETU
【正确答案】
【答案解析】程序改错
第7行改为:IF MOD(i, j)=0
第17行改为:?"100以内素数之和为:", sum1