要求:第1条命令为c=THIS.VALUE;第2条命令的功能是将表格数据源属性设置为C;第3条命令按图2所示设置标签控件的标题属性,显示被选中表的表名和“表浏览”信息?
五、程序改错(5分)
下列程序的功能是:比较两个字符串的差异,并将差异的位置显示出来?例如:C1=“AbCDEFGHTP”,C2=“ABCDETG大P”,则比较以后显示位置差异:2,6,8,9?要求
1、将下列程序输入到项目中的程序文件PCODE中,并对其中的2条错误语句进行修改;
2、在修改程序时,不允许修改程序的总体框架和算法,不允许增加或减少语句数目?
CLEAR
c1=“Visual FoxPro系统” c2=“visual foxpro 数据库” n=MAX(LEN(c1),LEN(c2)) FOR i=1 TO n
Str1=SUBSTR(c1,i,1) Str2=SUBSTR(c2,i,1) IF !str1==str2 IF CHR(‘Str1’)>127
?? i, i+1 ENDIF
?? i ENDIF ENDIF ENDFOR
江苏省高等学校非计算机专业学生
2008(秋)计算机基础知识和应用能力等级考试上机试卷
二级Visual FoxPro(试卷代号 VFP04)
一、项目、数据库和表操作(12分)
打开T盘根目录中的项目文件JXGL,在该项目中已有一数据库JXSJ? 1、按下列要求在数据库JXSJ中新建一个表名为AB4的数据库表。 (1)按下表所示创建AB4表的表结构(包括字段的标题属性): 字段名 标题 类型 宽度 小数倍数 BH 编号 N 4 XM 姓名 C 20 BMRQ 报名日期 D KSRQ 考试日期 D (2)为表设置记录有效性规则:要求先报名、后考试; (3)为BH字段设置默认值:为当前记录号;
(4)创建一个普通索引abcd,要求按BMRQ字段排序,BMRQ相同时按BH字段排序。
2、为学生(XS)表设置插入触发器:班级编号(BJBH字段)的前二位必须为入学年份(来源于入学日期(RXRQ)字段。例如2008年入学的学生BJBH必须以“08”开头)。
3、为学生(XS)表增加一个是否转专业字段(字段名为ZZY,类型为逻辑型),并为其赋值:如果院系专业代码(YXZYDM字段)的前四位与学号(XH字段)中的第3~6位不一致,则ZZY字段的值设置为.T.。 4、已知课程(KC)表和课程安排(KCAP)表存在相同的课程代码(KCDM)字段,以KC表为主表,KCAP表为子表,按KCDM建立永久关系,并设置KC表和KCAP表之间的参照完整性:更新级联、删除限制。
二、设置查询(8分)
已知教师(JS)表存储了每名教师的基本信息,其中含院系专业代码(YXZYDM,C)、性别(XB,C)等字段,院系专业(YXZY)表为院系专业代
码与与院系专业名称对照表,含院系专业代码(YXZYDM,C)、院系名称(YXMC,C)等字段。按如下要求修改JXGL项目中的查询CHAXUN:
基于JS表和YXZY表统计各院系人数及男教师人数。要求:输出院系名称、人数和男教师人数(字段名依次分别为YXMC、RS和NANRS),且查询结果按男教师人数降序排列,输出去向为文本文件TEMP.TMP。
三、设计菜单(5分)
JXGL项目中已存在菜单MENU,已定义了“系统管理”菜单栏及其中的“恢复系统菜单”菜单项?按如下要求设计菜单,完成后的运行效果如图1所示?
图1
1、在“系统管理”菜单栏中插入VFP系统菜单“导出”,并为其设置跳过条件:当前工作区中无表打开时,该菜单跳过,即菜单不可用(提示:使用ALIAS()函数可以测试当前工作区中有无表打开);
2、创建“教师管理”菜单栏,其访问键为T,并创建其子菜单“录入”和“编辑”、“浏览”和“打印预览”,分组线如图1所示;
3、为“打印预览”菜单项设置命令,其功能是预览报表文件RTEST。
四、设计表单(10分)
表单F081B用于口令输入。按下列要求修改表单,修改后表单运行时如图2所示。
1、将左边命令按钮的标题设置为“确定”,且2个命令按钮的TOP属性均设置为82。
2、修改表单的有关属性,使其运行时自动居中,高度为120,宽度为
280。 图 2
3、在表单上添加一个标签控件和一个文本框控件,并按图2所示设置标签和文本框控件的有关属性(文本框的“占位符”属性为“*”)。
4、编写“确定”命令按钮的Click事件代码,其功能是使用IF...ELSE...ENDIF结构实现:若文本框的Value值等于“ABC”,则利用MESSAGEBOX()函数显示“OK!”,否则显示“口令不正确!”。
五、程序改错(5分)
下列程序的功能是:将二进制数字字符串转换成十进制数学字符串(转换结果小数点后保留3位)。其基本算法是:将每一位二进制数字乘以相应的权,并将乘积相加。二进制数字的权为:以小数点为界,整数部分向从右向左依次为2、2、2、??;小数部分从左向右依次为2、2、2、??要求:
①将下列程序输入到项目中的程序文件PCODE中,并对其中的2条错误语句进行修改;
②在修改程序时,不允许修改程序的总体框架和算法,不允许增加或减少语句数目?
CLEAR
cstr=\n=AT('.',cstr)
cstr=IIF(n=0, cstr+'.', cstr) c1=SUBSTR(cstr, 1, n-1) c2=SUBSTR(cstr, n+1) m1=0 m2=0
FOR i=1 TO LEN(c1)
m1=m1 + VAL(LEFT(RIGHT(c1, i), 1)) *2**(i-1) ENDFOR
FOR j=1 TO LEN(c2)
0
1
2
-1
-2
-3
m2=m2+VAL(SUBSTR(c2, j, 1)) *2 **(j) ENDFOR m1=m1+m2
?'二进制数' + cstr +'十进制表示为:' + VAL(m, 10, 3)