m=c(j-1)
c(j–1)=c(j)
c(j)=m
Lcontinue=.F.
ENDIF
ENDFOR
IFLcontinue=.F.
EXIT
ENDIF
ENDFOR
DISPLAYMEMOLIKEc*
江苏省高等学校非计算机专业学生
2008年(秋)计算机基础知识和应用能力等级考试上机试卷
二级VisualFoxPro(试卷代号VFP03)
一、项目、数据库和表操作(12分)
打开T盘根目录中的项目文件JXGL,在该项目中已有一数据库JXSJ。
1.将DMB表中LX字段值为“文化程度”的记录复制到AB表中(注:
使用COPYTO…FOR…命令),并将AB表添加到JXSJ数据库。
在此基础上,根据下列要求修改AB表:
(1)将AB表的DM字段名修改为WHCD;
(2)设置AB表的WHCD字段的标题属性:
文化程度;
(3)设置MC字段格式,使得在该字段中输入数据时自动删除其前导空格;
(4)创建一个主索引abcd,要求WHCD字段值不能重复录入。
2.为文化程度(AB)表设置编辑说明(即表注释):
文化程度信息表。
3.为JS表增加一个备注字段(字段名为BZ,类型为备注型),并为它赋值:
如果年龄大于或等于55,则BZ字段的值为“老教师”。
(注:
年龄为当前系统日期的年份减去出生日
期(cSRQ字段)的年份。
)
4.已知文化程度(AB)表和教师(JS)表存在相同的文化程度字段(WHCD)。
以WHCD为表达式,为JS表创建普通索引WHCD,以AB表为主表、JS表为子表,按文化程度代码建立永久关系,并且设置AB表和JS表之间的参照完整性:
更新级联。
二、设计查询(8分)
己知教师(JS)表存储了每名教师的基本信息,其中含院系专业代码(YXZYDM,C)、职称(ZC,C)等字段,院系专业(YXZY)表为院系专业代码与院系专业名称对照表,含院系专业代码(YXZYDM,C)、院系名称(YXMC,C)等字段。
按如下要求修改JXGL项目中的查询CHAXUN:
基于JS表和YXZY表统计各院系人数及职称为教授的人数.要求:
输出院系名称、人数和教授人数(字段名依次分别为YXMC、RS和JSRS),且仅输出教授人数占院系人数的比例大于或等于20%的记录,查询结果按教授人数降序排序。
三、设计菜单(5分)
JXGL项目中已存在菜单MENU,已定义了“系统管理”菜单栏及其中的“恢复系统菜单”菜单项。
按如下要求设计菜单,完成后的运行效果如图l所示。
图1
1.在“系统管理”菜单栏中插入VFP系统菜单“页面设置”,并将其访问键修改为P;
2.创建“教师管理”菜单栏,其访问键为T,并创建其子菜单“检索”、“统计”,和“打印”,分组线如图所示;
3.为“打印”菜单项设置快捷键CTRL+P,为“统计”菜单项设置提示信息“统计教师人数”,并为“统计”菜单项设置命令,其功能是运行查询文件CHAXUN.QPR。
1、设计表单(10分)
表单F081B用于浏览表数据。
按下列要求修改表单,修改后表单运行时如图2所示。
1.修改表单的有关属性,使其运行时自动居中。
2.将XS、CJ、JS、KC表添加到数据环境中。
3.在表单上添加一个选项按钮组和一个表格。
4.将表格下方左边的命令按钮换为标签控件。
5.使用生成器按图2所示修改选项按钮组的有关属性。
6.将选项按钮组的Value属性设置为“A”,并编;其Click事件代码,要求:
第1条命令为c=THIS.Value;第2条命令的功能是将表格数据源属性设置为C;第3条命令按图2所示设置标签控件的标题属性,显示被选中表的表名和“表浏览”信息。
图2
五、程序改错(5分)
下列程序的功能是:
比较两个字符串的差异,并将差异的位置显示出来。
例如:
C1="AbCDEFGHTP",C2="ABCDETG大P”,则比较以后显示位置差异:
2,6,8,9。
要求:
①将下列程序输入到项目的程序文件PCODE中,并对其中的2条错误语句进行修改;
②在修改程序时,不允许修改程序的总体框架和算法,不允许增加或减少语句数目。
CLEAR
c1="VisualFoxPro系统"
c2="visualfoxpro数据库"
n=MAX(LEN(c1),LEN(c2))
FORi=1TOn
Strl=SUBSTR(cl,i,1)
Str2=SUBSTR(c2,i,1)
IF!
Str1==Str2
IFCHR('Sfrl')>127
?
?
i,i+l
ENDIF
?
?
i
ENDIF
ENDIF
ENDFOR
江苏省高等学校非计算机专业学生
2008年(秋)计算机基础知识和应用能力等级考试上机试卷
二级VisualFoxPro(试卷代号VFP04)
一、项目、数据库和表操作(12分)
打开T盘根目录中的项目文件JXGL,在该项目中已有一数据库JXSJ。
1.按下列要求在数据库JXSJ中新建一个表名为AB的数据库表。
字段名
标题
类型
宽度
小数位数
BH
编号
N
4
XM
姓名
C
20
BMRQ
报名日期
D
KSRQ
考试日期
D
(1)按下表所示创建AB表的表结构(包括字段的标题属性):
(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.TXT.
三、设计菜单(5分)
JXGL项目中已存在菜单MENU,已定义了“系统管理”菜单栏及其中的“恢复系统菜
单”菜单项。
按如下要求设计菜单,完成后的运行效果如图1所示。
图1
1.在“系统管理”菜单栏中插入VFP系统菜单“导出”,并为其设置跳过条件:
当前工作区中无表打开时,该菜单跳过,即菜单项不可用(提示:
使用ALIAS()函数可以测试当前工作区中有无表打开);
2.创建“教师管理”菜单栏,其访问键为T,并创建其子菜单“录入”、“编辑”、“浏览”和“打印预览”,分组线如图1所示;
3.为“打印预览”菜单项设置命令,其功能是预览报表文件RTEST。
四、设计表单(10分)
表单F08lB用于口令输入。
按下列要求修改表单,修改后表单运行时如图2所示。
1.将左边命令按钮的标题设置为“确定”,且2个命令按钮的TOP属性均设置为82。
2.修改表单的有关属性,使其运行时自动居中,高度为120,宽度为280。
图2
3.在表单上添加一个标签控件和一个文本框控件,并按图2所示设置标签和文本框控件的有关属性(文本框l的“占位符’’属性为¨,,)。
4·编写“确定”命令按钮的Click事件代码,其功能是使用IF…ELSE…ENDIF结构实现:
若文本框的Value值等于“ABC”,则利用MESSAGEBOX()函数显示“OK!
”,否则显示“口令不正确!
”。
五、程序改错(5分)
下列程序的功能是:
将二进制数字字符串转换成十进制数字字符串(转换结果小数点后保持3位)。
其基本算法是:
将每一位二进制数字乘以其相应的权,并将乘积相加。
二进制数字的权为:
以小数点为界,整数部分从右向左依次为20、21、22、……;小数部分从左向右依次为2-1、2-2、2-3、……。
要求:
①将下列程序输入到项目的程序文件PCODE中,并对其中的2条错误语句进行修改;
②在修改程序时,不允许修改程序的总体框架和算法,不允许增加或减少语句数目。
CLEAR
cstr="1000.111"
n=AT(".",cstr)
cstr=IIF(n=0,cstr+".",cstr)
c1=SUBSTR(cstr,1,n-1)
c2=SUBSTR(cstr,n+1)
m1=0
m2=0
m=0
FORi=1TOLEN(c1)
ml=m1+VAL(LEFT(RIGHT(cl,i),1))*2**(i–1)
ENDFOR
FORj=1TOLEN(c2)
m2=m2+VAL(SUBSTR(c2,j,1))*2**(j)
ENDFOR
m=m1+m2
?
"二进制数"+cstr+"十进制表示为:
"+VAL(m,10,3)
江苏省高等学校非计算机专业学生
2008年(秋)计算机基础知识和应用能力等级考试上机试卷
二级VisualFoxPro(试卷代号VFP05)
一、项目、数据库和表操作(12分)
打开T盘根目录中的项目文件JXGL,在该项目中已有一数据库JXSJ。
1.按’卜列要求在数据库JXSJ中新建一个表名为AB的数据库表。
(1)按下表所示创建AB表的表结构(包括字段的标题属性);
字段名
标题
类型
宽度
小数位数
ZKZH
准考证号
C
16
YSWZF
语数外总分
N
3
XKI
选课l
C
1
XK2
选课2
C
1
(2)为字段XKl设置有效性规则:
XKI取值在“A”~“C”之问;
(3)为AB表设置更新触发器:
禁止更新;
(4)创建一个普通索引abcd,要求按YSWZF字段排序,YSWZF相同时按ZKZH字段排序。
2.为教材(JC)表设置插入触发器:
国际标准图书编号(ISBN字段)必须以“IS’’开头,否则不允许插入。
3.为学生(XS)表增加一政治情况字段(字段名为ZZQK,类型为C型,宽度为26),并为其赋值:
如果政治面貌代码(ZZMMDM字段)的值为“03”,则ZZQK字段的值为“共青团员”。
4.已知课程(KC)表和教材(JC)表存在相同的课程代码(KCDM)字段,以KC表为主表,JC表为子表,按KCDM建立永久关系,并设置KC表和JC表之间的参照完整性:
删除级联、插入限制。
二、设计查询(8分)。
已知教师(JS)表存储了每名教师的基本信息,其中含姓名(XM,C)、性别(XB,C)等字段。
教师姓名最多可以为6个汉字,且假设姓名所用汉字均为双字节编码。
按如下要求修改JXGL项目中的查询CHAXUN:
基于JS表按性别和姓名中汉字个数统计人数。
要求:
输出性别、姓名所用汉字个数和人数(字段名依次分别为XB、ZS和RS),且查询结果按性别降序排列,性别相同时按人数降序排列,输出去向为屏幕(即主窗口)。
(注:
可用STRTRAN(XM,SPACE
(1),SPACE(0))将XM字段值中的空格去除。
)
三、设计菜单(5分)
JXGL项目中已存在菜单MENU,已定义了“系统管理”菜单栏及其中的“恢复系统菜单”菜单项。
按如下要求设计菜单,完成后的运行效果如图1所示。
图1
1.在“系统管理”菜单栏中插入VFP系统菜单“Microsoft主页”,并为其设置快捷键CTILL+M,将其访问键修改为菜单名的第一个字母M,如图1所示;
2.创建“教师信息”菜单栏,其访问键为T,其子菜单为“档案”、“工资”,并为“档案”菜单项创建子菜单“浏览”和“统计”,分组线如图1所示;
3.为“统计”菜单项设置过程,其功能是首先消除屏幕,然后运行查洵文件CHAXUN。
四、设计表单(10分)
表单F081C用于输入表名能浏览表数。
按下列要求修改表单,修改后表单运时如图2所示。
1.修改表单的有关属性,使其运行时动居中。
且最大化、最小化按钮不可用,题为“输入表名浏览表”。
2.将标签控件的字号设置为10;
3.完善文本框控件的Valid事件代,其功能是使用IF…ELSE…ENDIF结构实现:
若输入的文件不存在,则利用MESSAGEBOX()函数显示“文件不存在!
”,否则将X作为表格的数据源,并且设置表格控件宽度为400。
图2
五、程序改错(5分)
下列程序的功能是:
统计一个字符串中有多少个不同的字符及汉字,以及每个字符或汉出现的次数。
要求:
①将下列程序输入到项目的程序文件PCODE中,并对其中的2条错误语句进行修改;
②在修改程序时,不允许修改程序的总体框架和算法,不允许增加或减少语句数目。
CLEAR
cStr="数据库管理系统(DBMS)"
DOWHILELEN(cStr)>0
nlen1=LEN((cStr))
x=ASC(LEFT(cStr,1))
IFx>127
cStrl=LEFT(cStr,2)
ELSE
cStrl=LEF'I'(cStr,1)
ENDIF
cStr=STRTRAN(cStr,cStrl,SPACE(0))
nl