仅用3条语句实现如下功能:(1)调用表单的RandArray(m,n)方法,将行数和列数微调框spnRows和spnCols中的值作为实参数,以生成数组,(2)将全局数组名“arr1”设置为List1的数据源;(3)设置“转置”按钮可操作。
4、编写微调框spnCols的InterActiveChange事件代码,当spnCols的值发生改变时,用一条语句实现列表框List1的列数与SpnCols的当前值保持一致。 五、程序改错
下列程序的功能是:将二进制转换成十进制数。其基本算法是:将每一位的二进制数字乘以其相应的权并将乘积相加。二进制数字的权为:以小数点为界,整数部分从右向左依次为20、21、22?;小数部分从左向右依次为2-1、2-2、2-3?。例如二进制数1011.11转换成十进制为1*23+0*22+1*21+1*20+1*2-1+1*2-2=11.75。要求:
① 将下列程序输入到项目中的程序文件PCODE中,并对其中的2条错误语句进行修改; ② 在修改程序时,不允许修改程序的总体框架和算法,不允许增加减少语句数目。 CLEAR
ACCEPT ?请输入二进制数字? TO s2
??二进制数?,s2,?的十进制表示为:?,Trf(s2) FUNCTION Trf() Parameters s2 n=AT(?.?,cstr)
cstr1=IIF(n>0,SUBSTR(cstr,1,n-1),cstr) cstr2=IIF(n>0,SUBSTR(cstr, n+1),??) STORE 0 TO m1,m2 FOR i=1 TO LEN(cstr1)
m1=m1+VAL(SUBSTR(cstr1,i,1))*2**(LEN(cstr1)-i)
ENDFOR
FOR j=1 TO LEN(cstr2)
m2=m2+VAL(SUBSTR(cstr2,i,1))*2**( -j)
ENDFOR ENDFUN m1+m2
2011C VFP04
一、项目、数据库和表操作
打开T盘根目录中的项目文件JXGL,在该项目中已有一数据库JXSJ。
1、在JXSJ数据库中按如下表格中所示的结构创建AB.DBF表,并按表格中的要求设置相关属性。
字段名 BZDH QCPH RQ JE 数据类型 C C D N 宽度 12 8 8 字段标题 保险单号 汽车牌号 生效日期 保险金额 (1) 设置保险单号字段的注释:自动编号;
(2) 这只保险金额字段的输入掩码:采用会计格式(即形如”1,234,457”); (3) 设置保险金额字段的有效性规则:大于等于一万,且小于一千万;
(4) 设置表的删除触发器:不能删除;
(5) 创建普通索引,索引名为abcd,要求按保险金额降序排列。 2、在AB表输入如下记录: BXDH 123420110012 QCPH 苏ABC001 RQ 2011-0402 JE 1,200,000 3、将自由表CJB表添加到当前数据库中,并设置为“包含”。
4、KC表已存在主索引KCDM,索引表达式KCDM;CJ表已存在普通索引KCDM,索引表达式为KCDM。以KC表为主表、CJ表为子表,根据KCDM建立永久关系,并设置两表之间的参照完整性:更新级联、删除限制、插入限制。 二、设计查询
院系专业表(YXZY)含有院系专业代码(yxzydm,C)、专业名称(zymc,C)等字段;学生表(XS)含省市(jg,C)和性别(xb,C)等字段。按如下要求修改JXGL项目中的查询CHAXUN:
基于YXZY表和XS表统计各专业各省市的男女学生人数。要求:输出字段为zymc、jg、xb、人数;查询结果按专业名称排序,专业名称相同时按省市排序;输出去向为屏幕。 三、设计菜单
JXGL项目中已存在菜单MENU,其中已定义了“文件”菜单栏及其中的“退出菜单”项。按如下要求设计菜单,菜单运行后如图1所示。
1、在“文件”菜单栏下插入系统菜单“新建(N)?”。 2、在菜单项“新建”和“退出菜单”之间插入分组线。 3、为菜单项“退出菜单”设置快捷键CTRL+E。
4、将菜单项“退出菜单”的“结果”类型由“命令”改为“过程”,并设置过程代码为:
CLEAR ALL
SET SYSMENU TO DEFAULT
5、在“文件”菜单栏右侧创建“管理信息系统”菜单栏。 四、设计表单
表单F102D用于实现对矩阵进行转置,按下列要求修改表单,修改后表单运行时如图2所示。
1、设置表单样式:无最大化、最小化控制按钮,单线边框,运行时自动居中。
2、设置列表框List1的列分割线隐藏,并设置其数据类型为“数组”。
3、编写微调框spnRows的InterActiveChange事件代码,要求实现当其值发生改变时,列表框List2的列数与spnRows的当前值保持一致,同时调用“生成”按钮的Click事件的方法程序,以重新生成矩阵。要求仅用2条语句完成。
4、已知表单已创建了一个用来对矩阵进行转置的方法程序TranArray(),该方法将List1中的行列数据进行转置,生成一个对应于转置矩阵的全局数组“arr2”,试编写“转置”按钮的Click事件代码,要求仅用2条语句实现:(1)调用表单的TranArray()方法程序以生成转置矩阵的全局数组“arr2”;(2)将数组名“arr2”设置为列表框List2的数据源。 五、程序改错
下列程序的功能是:计算汉字的录入速度,单位为:字/分钟。其基本算法是:从键盘录入汉字至一个字符变量中,当按回车键时结束。统计该变量中汉字的个数及所用的时间,统计时忽略所有的非汉字字符(本题讨论的汉字均为GB2312—80的汉字)。要求:
① 将下列程序输入到项目中的程序文件PCODE中,并对其中的2条错误语句进行修改; ② 在修改程序时,不允许修改程序的总体框架和算法,不允许增加减少语句数目。 CLEAR n=0
t1=DATETIME()
ACCEPT ?开始输入:? TO s t2=DATETIME()
DO WHILE LEN(s)>0
IF ASC(LEFT(s,1))>?127? n=n+1
s=RIGHT(s,LEN(s)-2) ELSE
s=LEFT(s,LEN(s)-1) ENDIF ENDDO
p=n*60/(t2-t1)
??汉字的录入速度为:?+p
2011C VFP05
一、项目、数据库和表操作
打开T盘根目录的项目文件JXGL,在该项目中已有一数据库JXSJ。
1、在JXSJ数据库中按如下表格中所示的结构创建AB.DBF表,并按表格中的要求 相关属性。
字段名 ND GJDQ JF BZ 数据类型 C C N M 宽度 4 20 6(小数1位) 字段标题 年度 国家地区 军费 备注 (1) 设置表的注释:世界各国(地区)军费;
(2) 设置年度字段的输入掩码:只能输入数字字符; (3) 设置国家地区字段的显示类:列表框;
(4) 设置表的更新触发器:只能更新年度为当前年度(以系统日期为准)或上一年度的记录(例如:当前系统日期为2011年,则只能修改2010和2011年度的记录);
(5) 创建普通索引,索引名为abcd,要求按年度排序,年度相同时按军费排序。 2、在AB表中输入如下记录: ND 2009 GJDQ 美国 JF 6120 BZ 3、将菜单文件MENU设置为项目“包含”。
4、KC表已存在主索引KCDM,索引表达式KCDM;CJ表已存在普通索引KCDM,索引表达式为KCDM。以KC表为主表、CJ表为子表,根据KCDM建立永久关系,并设置两表之间的参照完整性,更新级联、删除级联、插入限制。 二、设计查询
已知课程表(KC)含有课程代码(kcdm,C)、类型(lx,C)和课程名称(kcmc,C)等字段,成绩表(CJ)含有成绩(cj,N)和课程代号(kcdm,C)等字段。按如下要求修改JXGL项目中的查询CHAXUN:
基于KC表和CJ表查询各种类型课程的选课人数、获学分人数。要求:查询输出字段为lx、选课人数、获学分人数;查询结果按类型降序排序,类型相同时按选课人数排序; 去向为临时表TEMP。
注:获学分的条件是cj.cj>=60。 三、设计菜单
JXGL项目中已存在菜单MENU,其中已定义了“文件”菜单栏及其中的“退出菜单”项。按如下要求设计菜单,菜单运行后如图1所示。
1、在“文件”菜单栏下添加“画图”菜单项,为“画图”菜单项编写命令代码:RUN/N mspaint。
2、在“文件”菜单栏右侧创建“成绩管理”菜单栏。
3、为“成绩管理”菜单栏设置访问键“C”。 4、为“成绩管理”菜单栏创建子菜单“查询”和“计算学分”。
5、在“查询”和“计算学分”菜单项之间插入分组线。 四、设计表单
表单F102G用来按小组查看世界杯球队信息。按下列要求修改表单,修改后表单运行时如图2所示。
1、列表框List1用来显示选定组别的球队列表,设置其列数为3,数据源类型为“6-字段”,数据源设置为“组别,编号,国家”三个字段。
2、在“队名”标签右侧添加一个OLE绑定型控件,用来显示国旗。设置其绑定到“国旗”字段,并将图像显示方式设置为“变比填充”方式。
3、完善“组别”下拉列表看Combo1的InterActiveChange事件代码,在原有代码的IF?ENDIF语句汇总的空白行处加入一条语句实现:如果下拉列表框Combo1当前选择是“全部”,则取消对fifa表的筛选。此外,在原有代码的最后增加一条语句,使List1的第一项被选中。
4、编写列表框List1的InterActiveChange事件代码,实现:将标签Label3的标题设置为当前选定的fifa表中国家字段的值并刷新表单。 五、程序改错
下列程序的功能是:在屏幕上显示如图3所示的菱形。要求:
① 将下列程序输入到项目中的程序文件PCODE中,并对其中的2条错误语句进行修改; ② 在修改程序时,不允许修改程序的总体框架和算法,不允许增加减少语句数目。 CLEAR
=ff(10,?A?,?B?)
PROCEDURE ff() PARA 10,S1,S2 FOR i=1 TO m ??SPACE(m-i) FOR j=1 TO 2*m-1
??IIF(INT(i/2)=i/2,s1,s2)
ENDFOR ?
ENDFOR
FOR i=m-1 TO 1 STEP –1
??SPACE(m-i)
FOR j=2*i-1 TO 1 STEP –1 ??IIF(INT(i/2)=i/2,s1,s2) ENDFOR ? ENDFOR