2011春VFP上机试卷含答案
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
2011年春VFP上机试卷
2011C VFP01
一、项目、数据库和表操作
打开T盘根目录中的项目文件JXGL,在该项目中已有一数据库JXSJ。
1、在JXSJ数据库中按如下表格中所示的结构创建AB.DBF表,并按表格中的要求设置相关属性。
(1)
(2)设置RQ字段的默认值:当前系统日期;Date()
(3)设置单位字段的显示类:选项按钮组;OptionGroup
(4)设置表的更新触发器:日期字段的值等于当前系统日期时可以更新记录;
Rq =Date()
(5)创建普通索引,索引名为abcd,要求按日期排序,日期相同时按单价排序。
2、在
3、为项目设置项目信息:项目的图标为PC.ICO文件。右击项目管理器
4、KC表已存在主索引KCDM,索引表达式为KCDM;CJ表已存在普通索引KCDM,索引表达式为KCDM。以KC表位主表,CJ表为子表,根据KCDM建立永久关系,并设置两表之间的参照完整性:删除级联、插入限制。
二、设计查询
已知自由表图书表(TSB)含有分类号(flh,C)、册数(cs,N)、价格(jg,N)等字段。按如下要求修改JXGL项目中的查询CHAXUN;
基于TSB表查询图书类别、藏书册数等信息。要求:查询输出字段为图书类别、藏书册数和平均单价;查询结果按藏书册数降序排序,相同时按平均单价升序排序;输出去想为文本文件TEMP。
注:图书类别为flh中“.”前的内容(可用LEFT(…, A T(“.”, …)) 形式的表达式求得),藏书册数为同一图书类别册数之和。
LEFT(flh, AT(“.”,flh)-1) as 图书类别
Sum(cs) as 藏书册数
Avg(jg) as 平均单价
分组:图书类别
排序:自己写
去向:自己写
三、设计菜单
JXGL项目中已存在菜单MENU,其中已定义了“文件”菜单栏及其中的“退
出菜单”项。按如下要求设计菜单,菜单运行后的效果如图1所示。
1、在“文件”菜单栏右侧创建“图书管理系统”菜单栏。
2、为“图书管理系统”菜单栏创建子菜单“预约”、“借书”和“还书”。
3、在菜单项“预约”、“借书”和“还书”之间插入分组线。
4、为“借书”菜单项设置命令代码:DO FORM js
5、在“文件”菜单栏下插入系统菜单“全部关闭”。
四、设计表单
表单F102F用了按小组查看世界杯球队信息。按下列要求修改表单,修改后表单运行时如图2所示。
1、设置表格Grid1的数据只读,无滚动条,删除“组别”列。
ReadOnly .T.
在“属性”窗口中,选择组别这一列(Column3还是Column2来着?),然后在组别这一列的Text处点一下,再按键盘上的“Delete”删除键即可
2、在“组别”标签下方添加一个列表框控件List1(用来选择组别),设置其数据源类型为“3-SQL语句”,数据源为“SELECT DIST 组别FROM fifa INTO CURSOR tmp”。
RowSourceType RowSource里把代码抄进去,不要引号
3、编写表单的Load事件代码,实现:定义一个全局变量sGroup,并赋初值为字符“A”。
Public sGroup
sGroup=‟A‟
4、世界杯球队信息存储在自由表fifa中,表结构如下:组别(C,1)、编号(C,1)、国旗(G)、国家(C,12)、简介(M),且fifa表已添加在表
单的数据环境中。编写List1的InterActiveChange事件代码,
实现:(1)将List1中当前选定的值赋给变量sGroup,并对当
前数据工作区中的fifa标设置筛选条件;按sGroup变量中的
值对“组别”字段进行记录筛选;(2)将记录指针指向首行记
录,并刷新表单。会哪行写哪行,不会的空一行
sGroup=Thisform.List1.Value
Set Filter to 组别=sGroup
Go top
Thisform.Refresh
五、程序改错
回文数是指正读和反读都是一样的数,例如1001、1221
等。下列程序的功能是:求出大于1000小于2000的所有回文
数,并将它们打印出来(每行打印5个数,最后一行打印总个数)。要求:
①将下列程序输入到项目中的程序文件PCODE中,并对其中的2条错误语句进行修改;
②在修改程序时,不允许修改程序的总体框架和算法,不允许增加减少语句数目。STORE 0 TO n, n1, n2
FOR i=1000 TO 2000
s=ALLT(STR(i))
n1=LEN(s)
n2=INT(n1/2)
s1=‟‟
FOR j=1 TO n2
s1=s1+RIGHT(s, 1)
s=LEFT(s, n1-1)
ENDFOR
IF LEFT(s, n1)=s1
n=n+1
??i
IF INT(n/5)=n/5
?
ENDIF
ENDFOR &&改为ENDIF
ENDFOR
?‟小于2000的回文数共‟+STR(n)+‟个‟
2011C VFP02
一、项目、数据库和表操作
打开T盘根目录中的项目文件JXGL,在该项目中已有一数据库JXSJ。
1、在JXSJ数据库中按如下表格中的结构创建AB.DBF表,并按表格中的要求设置相关属性。
(1) 设置表的注释:影视记录;
(2) 设置片名字段的格式:删除字段值的前导空格;T
(3) 设置时长字段的有效性规则:大于或等于30;SC>=30
(4) 设置语种字段的显示类:列表框;ListBox
(5) 创建普通索引,索引名为abcd,要求按语种排序,语种相同时按时长排序。
第一种方法:浏览cjb表,在命令窗口中输入ZAP
第二种方法:(1)浏览cjb表,“表”菜单-“删除记录”,范围写ALL,FOR不写
(2)“表”菜单-“彻底删除”
4、KC表已存在主索引KCDM,索引表达式KCDM;CJ表已存在普通索引KCDM,索引表达式为KCDM。以KC表为主表、CJ表为子表,根据KCDM建立永久关系,并设置两表之间的参照完整性,更新级联、删除级联、插入限制。
二、设计查询
已知课程表(KC)含有课程代号(kcdm,C)、学分(xf,N)和课程名称(kcmc,C)等字段;成绩表(CJ)含有成绩(cj,N)、课程代码(kcdm,C)和备注(bz,M)等字段,成绩等级信息存放在备注字段的前7个字节中,按如下要求修改JXGL项目中的查询CHAXUN: