2012春江苏省计算机二级VFP上机真题1
(总分100, 做题时间70分钟)
(本试卷完成时间为70分钟)

1.首先登录考生信息,然后启动VFP并在命令窗口中执行如下命令,以设置默认的工作

目录:

set defa to T:

2.除非题目要求,否则不要对T盘上的文件进行重命名、复制和删除操作。
1. 
项目、数据库和表操作(12分) 打开T盘根目录中的项目文件JXGL,在该项目中已有一数据库JXSJ。 1.在JXSJ数据库中按下表所示的结构创建AB.DBF表,并按表格中的要求设置相关属性。 (1)设置表的注释:世博会期间上海旅馆入住率统计表; (2)设置XJ字段的默认值:三星; (3)设置LGMC字段的显示类:下拉列表框; (4)设置RZL字段的有效性规则:大于等于0且小于等于100; (5)创建索引名为ABCD的普通索引,要求按日期排序,日期相同时按入住率排序 2.在AB表中输入如下记录: 3.计算JYB中FK字段的值:借阅天数超过30天的按超过天数罚款(借阅天数根据借阅日期JYRQ与还书日期HSRQ计算),学生(LX字段的值为X)超期每天罚0.1元,教师(LX字段的值为J)超期每天罚0.2元 4.YXZY表与JS表具有相同的字段YXZYDM,以YXZY表为主表,JS表为子表,根据YXZYDM建立永久关系,并设置两表之间的参照完整性:更新级联、插入限制。
2. 
设计查询(8分) 已知课程安排表(KCAP.DBF)存储了每个学期各班级所上的课程信息,其中含学期编码(XQBM,C)、班级编号(BJBH,c)等字段;课程表(KC.DBF)存储了每门课程的信息,其中含课程代码(KCDM,C),学分(XF,N)等字段,按如下要求修改JXGL项目中的查询CHAXUN: 基于KCAP表和KC表,查询每学年(由XQBM字段的前13个字节内容指定),每个班级的课程门数和总学分。要求输出字段依次为学年、BJBH、课程门数、总学分,查询结果按学年排序,输出去向为临时表(表名为ABCD)。
3. 
设计菜单 JXGL项目中已存在菜单MENU,其中已定义了"文件"菜单栏及其中的"退出菜单"项。按如下要求设计菜单,完成后的运行效果如图1所示。 1.将"文件"菜单栏修改为"文件管理",并设置其访问键"F"。 2.在"文件管理"菜单栏中添加菜单项"新建"、"打开"、"关闭"(其中"新建"、"打开"为系统菜单项),并在"打开"与"关闭"、"关闭"与"退出菜单"之间设置分组线。 3.为"关闭"菜单项创建子菜单"数据库"、"表"。 4.为"表"菜单项设置"跳过"条件,使该菜单项不可用。 5.为"数据库"菜单项设置命令,命令的功能是关闭所有已打开的数据库。
4. 
设计表单(10分) 表单FRM12E用于文字缩放演示。按下列要求修改表单,修改后的表单运行时如图2所示。 1.设置表单的标题为"文字缩放"。 2.添加标签对象Label1,并设置相关属性:标题为"等级考试",且能根据标题内容自动调节大小。 3.添加两个命令按钮,并按图2所示设置标题为"缩小"和"放大",同时设置"缩小"命令按钮的有关属性使其不可使用 4.为"放大"命令按钮编写Click事件代码:调用表单的方法XXX(已创建)。 5.将表单的XXX方法程序代码,复制到"缩小"命令按钮的Click事件代码中,修改程序代码的前3行,实现: (1)"缩小"命令按钮不可使用,“放大"命令按钮可使用; (2)标签对象标题逐渐缩小显示。
5. 
程序改错(5分) 下列程序中PrintPrime过程的功能是查找所有小于自然数nMax的素数,并按每行nCol个素数显示在主窗口中。素数是大于1且只能被1和自身整除的整数,如2、3、5、7等。判断一个自然数N是否是素数的方法是:用N除以从2到大于N的最小整数之间的每一个整数j,若所有的j都不能整除N,则N为素数。要求: 1.项目中有一个程序文件Pcode,将T盘中VFP01.TXT中的程序代码复制到其中并进行修改。 2.在修改程序时,不允许修改程序的总体框架和算法,不允许增加或减少语句数目。 1 CLEAR 2 DO PrintPrime(400,5) 3 PROCEDURE PrintPrime 4 PARA nMax,nCol 5 i=0 &&记录素数个数 6 FOR n=2 TO nMax 7 Flag=.T. 8 FOR j=2 TO INT(SQRT(n)) 9 IF n%j=0 10 Flag=.F. 11 RETURN 12 ENDIF 13 ENDFOR 14 IF FLag 15 ?? n 16 i=i+1 17 IF MOD(i,nCol)=0 18 ? 19 ENDIF 20 ENDIF 21 ENDFOR 22 ENDPROC
答题卡