2011年春VFP上机试卷
2011C VFP01
一、项目、数据库和表操作
打开T盘根目录中的项目文件JXGL,在该项目中已有一数据库JXSJ。
1、在JXSJ数据库中按如下表格中所示的结构创建AB.DBF表,并按表格中的要求设置相关属性。
字段名 RQ PM DW DJ 数据类型 D C C N 宽度 20 10 5(小数1位) 字段标题 日期 品名 单位 单价 (1) 设置表的注释:蔬菜批发价格表; (2) 设置RQ字段的默认值:当前系统日期; (3) 设置单位字段的显示类:选项按钮组;
(4) 设置表的更新触发器:日期字段的值等于当前系统日期时可以更新记录; (5) 创建普通索引,索引名为abcd,要求按日期排序,日期相同时按单价排序。 2、在AB表中输入如下记录: RQ 2010-5-15 PM 青菜 DW 公斤 DJ 2.4 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(…, AT(“.”, …)) 形式的表达式求得),藏书册数为同一图书类别册数之和。 三、设计菜单
JXGL项目中已存在菜单MENU,其中已定义了“文件”菜单栏及其中的“退出菜单”项。按如下要求设计菜单,菜单运行后的效果如图1所示。
1、 在“文件”菜单栏右侧创建“图书管理系统”菜单栏。 2、 为“图书管理系统”菜单栏创建子菜单“预约”、“借书”和“还书”。 3、 在菜单项“预约”、“借书”和“还书”之间插入分组线。 4、 为“借书”菜单项设置命令代码:DO FORM js 5、 在“文件”菜单栏下插入系统菜单“全部关闭”。 四、设计表单
表单F102F用了按小组查看世界杯球队信息。按下列要求修改表单,修改后表单运行时如图2所示。
1、设置表格Grid1的数据只读,无滚动条,删除“组别”列。
2、在“组别”标签下方添加一个列表框控件List1(用来选择组别),设置其数据源类型为“3-SQL语句”,数据源为“SELECT DIST 组别 FROM fifa INTO CURSOR tmp”。
3、编写表单的Load事件代码,实现:定义一个全局变量sGroup,并赋初值为字符“A”。 4、世界杯球队信息存储在自由表fifa中,表结构如下:组别(C,1)、编号(C,1)、国旗(G)、国家(C,12)、简介(M),且fifa表已添加在表单的数据环境中。编写List1的InterActiveChange事件代码,实现:(1)将List1中当前选定的值赋给变量sGroup,并对当前数据工作区中的fifa标设置筛选条件;按sGroup变量中的值对“组别”字段进行记录筛选;(2)将记录指针指向首行记录,并刷新表单。 五、程序改错
回文数是指正读和反读都是一样的数,例如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 ENDFOR
??小于2000的回文数共?+STR(n)+?个?
2011C VFP02
一、项目、数据库和表操作
打开T盘根目录中的项目文件JXGL,在该项目中已有一数据库JXSJ。
1、在JXSJ数据库中按如下表格中的结构创建AB.DBF表,并按表格中的要求设置相关属性。
字段名 PM YZ SC RKRQ 数据类型 C C N D 宽度 20 10 3 字段标题 片名 语种 时长 入库日期 (1) 设置表的注释:影视记录; (2) 设置片名字段的格式:删除字段值的前导空格; (3) 设置时长字段的有效性规则:大于或等于30; (4) 设置语种字段的显示类:列表框;
(5) 创建普通索引,索引名为abcd,要求按语种排序,语种相同时按时长排序。 2、在AB表中数额如下记录: PM Avatar YZ 英语 SC 150 PKRQ 2010-5-15 3、将自由表CJB中的所有记录彻底删除(即物理删除)。 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:
基于KC表和CJ表查询每门课程成绩优秀和不及格的学生信息。要求:查询输出字段为kcmc、xh、学分、成绩等级、补考日期;查询结果按课程名称排序,课程名称相同的按成绩等级排序;仅输出成绩等级为“A优秀”或“F不及格”的记录。
注:当cj.cj>=60时,学分为xf字段的值,否则为0;当cj.cj <60时,补考日期的值为“2010.09.06”,否则为10个字符的空字符串。 三、设计菜单
JXGL项目中已存在菜单MENU,其中已定义了“文件”菜单栏及其中的“退出菜单”项。按如下要求设计菜单,菜单运行后的效果如图1所示。
1、在“文件”菜单栏下插入系统菜单“发送(D)?”。 2、在“文件”菜单栏右侧创建“管理信息系统”菜单栏。
3、为“管理信息系统”菜单栏创建子菜单“使用说明”和“主程序”。 4、为“使用说明”菜单项设置命令代码:MODI COMM 操作说明.TXT。
5、设置有关选项,使菜单运行时执行“清理”代码:CLOSE TABLES ALL 四、设计表单
表单F102E用来按小组查看世界杯球队信息。按下列要求修改表单,修改后表单运行时如图2所示。
1、设置表格grdFifa不显示删除标记列;不显示滚动条,行高设置为27.
2、在表格grdFifa的“国旗”列中,删除文本框控件Text1,添加一个OLE绑定型控件。并设置该控件在显示图像时按“等比填充”方式显示。
3、世界杯球队信息存储在自由表fifa中,表结构如下:组别(C,1)、编号(C,1)、国旗(G)、国家(C,12)、简介(M)。该表已添加在表单的数据环境中。表单中的选项按钮组Optiongroup1用来选择小组赛的组别。在表单的Init事件代码中,已定义了一个全局变量cGroup,用来存储当前选定的组别,完善Init事件代码,实现:(1)对当前数据工作区中的fifa表设置筛选条件:按cGroup变量中的值对“组别”字段进行筛选;(2)将记录指针指向首行记录。
4、编写选项按钮组Optiongroup1的InterActiveChange事件代码,实现:调用表单Init事件的方法程序,并刷新表单。 五、程序改错
下列程序用来产生20个0~100之间不重复的随机整数,并将结果输出。要求: ① 将下列程序输入到项目中的程序文件PCODE中,并对其中的2条错误语句进行修改; ② 在修改程序时,不允许修改程序的总体框架和算法,不允许增加减少语句数目。 CLEAR
DIMENSION a(20) a=0
FOR i=1 TO 20
x=INT(RAND()*100) iscf=.F.
FOR j=0 TO i-1 IF a(j)=x Iscf=.T. EXIT ENDIF ENDFOR IF iscf=.F. a(i)=x OTHERWISE i=I-1 ENDIF ENDFOR
DISPLAY MEMORY LIKE a*
2011C VFP03
一、项目、数据库和表操作
打开T盘根目录中项目文件JXGL,在该项目中已有一数据库JXSJ。
1、在JXSJ数据库中按如下表格中所示的结构创建AB.DBF表,并按表格中的要求设置相关属性。 字段名 BH 数据类型 C 宽度 5 字段标题 机器编号 IP DW ZRR RQ C C C D 15 30 12 IP地址 单位 负责人 注册日期 (1) 设置机器编号字段的输入掩码:第一个字符为任意字符,其它只能输入数字字符; (2) 设置单位字段的默认值:南京大学;
(3) 设置IP地址字段的注释:只能为C类地址; (4) 设置责任人字段的有效性规则:不能为空; (5) 创建普通索引,索引名为abcd,要求按注册日期排序,注册日期相同时按单位排序。 2、在AB表中输入如下记录: BH B1023 IP 194.11.12.222 DW 南京大学XX系 ZRR 张小 RQ 2010-05-14 3、将自由表CJB添加到当前数据库中,并设置为“包含”。
4、XS表已存在主索引XH,索引表达式为XH;CJ表已存在普通索引XH,索引表达式为XH。以XS表为主表、CJ表为子表,根据XH建立永久关系,并设置两表之间的参照完整性:更新级联、删除级联。 二、设计查询
已知自由表图书表(TSB)含有分类号(flh,C)、书名(sm,C)、价格(jg,N)等字段;自由表图书借阅表(JYB),含有读者类型(lx,C)、分类号(flh,C)等字段,按如下要求修改JXGL项目中的查询CHAXUN:
基于TSB和JYB表查询价格在20(含20)元以上的图书借阅情况。要求:查询输出字段为FLH、SM、教师借阅次数、学生借阅次数、价格;查询结果按价格降序排列;输出去向为表文件TEMP。
注:lx字段值为“J”时表示是教师;为“X”时表示是学生。 三、设计菜单
JXGL项目中已存在菜单MENU,其中已定义了“文件”菜单栏及其中的“退出菜单”项。按如下要求设计菜单,菜单运行后的效果如图1所示。
1、在“文件”菜单栏右侧创建“窗口”菜单栏。
2、在“窗口”菜单栏下插入“数据工作期”和“命令窗口”二个系统菜单项。
3、在菜单项“数据工作期”和“命令窗口”之间插入分组线。 4、在“文件”菜单栏下添加“字号还原”菜单项。
5、为“字号还原”菜单项设置命令:_SCREEN.FontSize=9。 四、设计表单
表单F102C用于实现对矩阵进行转置。按下列要求修改表单,修改后表单运行时如图2所示。
1、设置“行数”微调框spnRows可输入数值的最小值为1,最大值为5,初始值为3.
2、在“生成”按钮的右侧添加一个命令按钮Command2,设置标题为“转置”,初始状态为禁用。
3、已知表单已经创建了一个方法程序RandArray(m,n),功能是生成一个m行n列的全局数组arr1.编写“生成”命令按钮的事件代码,要求