江苏省计算机等级考试二级 VFP部分.docx
《江苏省计算机等级考试二级 VFP部分.docx》由会员分享,可在线阅读,更多相关《江苏省计算机等级考试二级 VFP部分.docx(30页珍藏版)》请在冰豆网上搜索。
江苏省计算机等级考试二级VFP部分
模拟试卷一(试卷代号VFP01)
一、项目、数据库和表操作(12分)
打开moni1-5文件夹中的项目文件TEST,在该项目中已有一数据库SJK。
1.按以下要求做题:
(1)在SJK数据库中创建一张表TS,表结构为:
TS(smC(20),flhC(10),jgN(6,2),zzC(8),cbsjD,cbsM)
(2)添加一备注型字段,字段名为summary,并设置其标题为“内容概要”。
(3)设置分类号(flh)字段的有关属性,使该字段中输入的字母均为大写字母。
(4)创建一个普通索引abcd,要求以分类号(flh)为第一索引关键字、书名(sm)为第二索引关键字排序。
(5)设置价格(jg)字段的有效性规则和有效性说明信息,要求:
其值不能小于1。
(6)修改TS1表中作者(zz)字段的值,要求在原作者名后加汉字“等”。
例如,第一条记录的作者由“路云”改为“路云等”。
2.在项目中,将FF表单设置为“排除”状态。
3.XS表和CJ表已存在以学号(xh)字段为索引表达式的主索引xsxh和普通索引cjxh。
以XS表为主表,CJ表为子表按xh建立永久关系,并根据以下要求设置参照完整性规则:
在CJ表中添加记录时,若XS表中没有相对应的记录(xh字段的值),则禁止添加记录。
二、设计查询(8分)
在TEST项目中已经存在查询chaxun1,已知在SJK的学生(XS)表中含有系代号(xdh)、学号(xh)、姓名(xm)等字段;成绩(CJ)表中含有学号(xh)、课程代号(kcdh)、成绩(cj)等字段。
按如下要求修改查询:
基于XS表和CJ表查询“刘玉敏”同学所在系的每位同学的平均成绩,输出xdh、xh、xm、平均成绩,查询结果按姓名排序。
(提示:
筛选条件中使用SELECTxdhFROMxsWHERExm=‘刘玉敏’;查询保存并关闭设计器,可能无法再次在设计器中打开,只能在编辑窗口中修改该查询的SELECT-SQL语句。
)
三、设计菜单(5分)
已知项目TEST中已存在菜单menu1,利用菜单设计器,按如下要求修改菜单。
1、按图1所示要求为“表操作”菜单栏下的“添加记录”菜单项增加子菜单,为“表操作”菜单栏下的各菜单项设置分组线;
2、在“文件”菜单栏下插入VFP系统菜单项“退出”;图1
3、为“数据查询”菜单栏下的“课程”菜单项编写SQL命令:
当执行该菜单时,在浏览窗口显示kcdh、kcm及平均成绩(注:
根据KC表及CJ表查询)。
四、设计表单(10分)
项目管理器中已经存在表单FA,该表单用来更改用户的密码。
根据下列要求修改表单,设计时和运行时的效果分别如图2和图3所示。
1、将文本框控件txtUserName设置为禁用,并将其与全局内存变量pUserName绑定;
2、将“老密码”文本框控件txtOldPwd的密码占位符设置为字符“#”
3、添加一个“重置”命令按钮(如图3所示),对象名为cmdReset,标题为“重置”;
4、为“重置”按钮设置Click事件代码,要求清除“新密码”和“新密码重复”相应文本框控件的文本值;
5、已知在表单的Init事件代码中已定义了全局变量pPassWord,用来存放已登录用户的密码,完善“确定”按钮的Click事件代码(提示:
在原代码中的空行处添加一条语句),要求:
当老密码与全局变量pPassWord的值相等时,检查“新密码”和“新密码重复”相应文本框控件的文本值是否相等,如果相等,则将“新密码”文本框txtNewPwd1的值赋给全局变量pPassWord。
图2设计时图3运行时
五、程序改错题(5分)
下列程序的功能是找出1000之内所有的完数,并统计它们的个数。
完数是指:
数的各因子之和正好等于该数本身(例如6的因子是1、2、3,而1+2+3=6,所以6是完数)。
要求:
(1)项目中有一个程序文件pcode1,将下列程序输入到其中并进行修改;
(2)在修改程序时,不允许修改程序的总体框架和算法,不允许增加或减少语句数目
CLEAR
nCount=0
FORn1=1TO1000
m=0
FORn2=1TOn1-1
IFn1/n2=MOD(n1,n2)
m=m+n2
ENDIF
ENDIF
IFn1=m
?
n1
nCount=nCount+1
ENDIF
ENDFOR
WAITWINDOWS"完整的个数为"+STR(nCount)
模拟试卷二(试卷代号VFP02)
一、项目、数据库和表操作(12分)
打开moni1-5文件夹中的项目文件TEST,在该项目中已有一数据库SJK及若干表。
1.按以下要求进行操作:
(1)在SJK数据库中创建一张表TS2,其表结构为TS2(flhc(10),smc(30),jgn(6,2),zzc(8),csi,cbsjd,cbsm)
(2)为TS2表设置表注释:
教学用图书。
(3)添加一个字段,字段名为cover,其类型应适用于存储图书的封面图片。
(4)设置分类号(flh)字段的有关属性,使该字段中输入的字母均为大写字母。
(5)设置册数(cs)字段的有关属性,使得将该字段从表单的数据环境中拖放到表单上时,生成的相应控件为微调控件。
(6)创建一个普通索引abcd,要求以书名(sm)的长度进行排序(sm字段值的首尾空格字符不计)。
(7)设置书名(sm)字段的有效性规则:
其值不能为空字符串,或仅有空格组成的字符串,相应的有效性说明为“书名不能为空”。
(8)为TS2表添加一条记录,其记录内容为:
FLH
SM
ZZ
TP31.15
VisualFoxPro实验指导
崔建忠等
2、在项目中,将XIM表设置为“包含”状态。
3、XS表和CJ表已存在以学号(xh)字段为索引表达式的主索引xsxh和普通索引cjxh。
以XS表为主表,CJ表为子表按xh建立永久关系,并根据以下要求设置参照完整性规则:
在XS表中删除记录时,若CJ表中有相对应的记录(xh字段的值),则禁止删除XS表记录。
二、设计查询(8分)
在TEST项目中已经存在查询chaxun2,SJK数据库中的XSJY视图包括学生学号(xh)、借阅日期(jyrq)、还书日期(hsrq),SJK数据库中的学生(XS)表含有学号(xh)、姓名(xm)、所在班级编号(bjbh)。
按如下要求修改查询:
基于XS表和XSJY视图查询每个班每个学生借书本数、过期罚款数。
要求输出字段为:
Xs.bjbn,Xs.xh,Xs.xm,借书本数、罚款数。
查询结果按bjbh排序,bjbh相同的,按Xs.xh排序。
注:
每本书的借阅时限为30天,没超过一天罚款0.05元计算;同一本书借阅两次时,
以两本书计;小数点保留2位。
三、设计菜单(5分)
已知项目TEST中已存在菜单menu1,利用菜单设计器,按如下要求修改菜单。
图1
1、如图所示要求为“表操作”菜单栏下的“数据浏览”建立各子菜单;
2、在“文件”菜单栏下插入一个“退出”菜单项,并编写命令,当执行该菜单时能关闭VFP系统;
3、为“数据浏览”菜单栏下的“学生”菜单项编写过程代码:
当执行该菜单项时,选择学生(XS)表为当前表(若未打开,则首先打开之),并用BROWSE命令浏览学生表。
四、设计表单(10分)
项目管理器中已经存在表单FB,该表单用来更改用户的密码。
根据下列要求修改表单,设计时和运行时的效果分别如图2和图3所示。
1、设置表单为模式表单,背景为白色,并在运行是自动居中
2、设置“确定”控件按钮为禁用。
3、添加一个图象控件,并指定显示的图象为Lock.jpg文件所存图象。
4、完善“重复新密码”文本框控件txtNewB的InterActiveChange事件代码(提示:
在原代码中的空行处添加适当的代码),要求:
用IF结构语句判断文本框“新密码”和“重复新密码”的值是否一致,如果一致,则启用“确定”命令按钮,否则禁用“确定”命令按钮。
5、 编写“确定”命令按钮的相关事件代码,使得单击该按钮时,将“txtNewA”文本框的值赋给给变量pPassWord。
图2设计时图3运行时
五、程序改错题(5分)
下列程序的功能是找出1000之内所有的完数,并统计它们的个数。
完数是指:
数的各因子之和正好等于该数本身(例如6的因子是1、2、3,而1+2+3=6,所以6是完数)。
要求:
(1)项目中有一个程序文件pcode2,将下列程序输入到其中并进行修改;
(2)在修改程序时,不允许修改程序的总体框架和算法,不允许增加或减少语句数目
CLEAR
n1=1
nCount=0
DOWHILEn1<=1000
m=0
FORn2=INT(n1/n2)TO1STEP-1
IFn1/n2=INT(n1/n2)
m=m+n1
ENDIF
ENDFOR
IFn1=m
nCount=nCount+1
?
n1
ENDDO
n1=n1+1
ENDDO
WAITWINDOWS"完整的个数为"+STR(nCount)
模拟试卷三(试卷代号VFP03)
一、项目、数据库和表操作(12分)
打开moni1-5文件夹中的项目文件TEST,在该项目中已有一数据库SJK及若干表。
1.按以下要求进行操作:
(1)创建一个名为zytc.dbf的自由表。
表结构如下表所示:
字段名
字段类型
字段宽度
bh
字符型
8
zy
字符型
10
xm
字符型
8
xb
字符型
2
zynx
整型
4
zc
字符型
10
yysp
字符型
8
(2)将zytc表添加到SJK数据库中。
(3)添加一个备注型字段,字段名为JL,并设置其标题为“简历”。
(4)设置xm字段有效性规则,要求其值必须包含非空格字符。
(注:
对现有数据不做验证)
(5)将xb字段的默认值设置为“男”。
(6)创建一个普通索引abcd,要求根据bh和xm进行排序(先按bh后按xm排序)。
2.利用项目管理器操作,从磁盘上删除自由表gzb。
3.修改项目test的项目信息:
附加图标net.ico。
4.TS1表和jy表已存在以分类号(flh)字段为索引表达式的主索引tsflh和普通索引flh。
以ts1表为主表、jy表为子表,基于flh字段建立永久关系,并设置参照完整性规则:
(1)在ts1表中修改记录(flh1字段的值)时,若jy表中有相关的记录,则禁止对ts1表进行修改;
(2)在ts1表中删除记录时,若jy表中有相关的记录,则同步删除jy表中相应记录。
二、设计查询(8分)
已知在sjk数据库的系名(xim)表中含有系代号(xdh)、系名(ximing)等字段,学生(xs)表中含有学号(xh)、姓名(xm)、出生日期(csrq)、系代号(xdh)等字段。
按如下要求修改查询chaxun3
基于xim表和xs表查询各系的学生人数及平均年龄,要求输出字段为xdh、ximing、人数和平均年龄,查询结果按人数降序排序,且查询结果输出至文本文件abc。
三、设计菜单(5分)
项目test中已存在菜单menu,利用菜单设计器按如下要求修改菜单:
1.如图所示,为“系统管理”菜单栏增加菜单项,其中“退出”为VFP系统菜单项;
2.将“数据恢复”菜单项设置为不可用(即跳过);
3.为“数据备份”菜单项编写过程,要求利用两条命令实现功能:
将当前打开的所有表均关闭,然后将所有的表文件复制到D盘根目录下。
(注:
复制时可用命令“copyfile*.dbftod:
\”)
四、设计表单(10分)
下列表单formb用来设置用户的权限,根据下列要求修改表单。
1.设置表单运行时自动居中,表单不能最大化和最小化;
2.根据组合框的RowsoureType属性值设置组合框的Rowsoure属性值,使它能显示user表的usemame字段值;
3.已知考生文件夹目录下存在用户(user)表和菜单(menutable)表,user表含有用户名(username)、用户权限(userright)等字段;menutable表含有菜单名(menuname)、模块名(modulename)、权限(isright)等字段。
假定user表的usemame字段值不重复,menutable表的modulename字段值也不重复。
user表的userright字段中存放各用户能够使用的模块名列表,模块之间用逗号隔开。
编制组合框的InterActiveChange事件代码,使得当选定一个用户时,调用组合框的Init事件代码,使得表格中显示该用户的权限;
4.添加命令按钮“重置”(如图所示),对象名为CmdReset,并为之编写Click事件代码:
单击该按钮时,所有模块的权限都不选中(即所有的复选框均不选中)。
完成上述修改后,运行表单,界面如下图所示:
五、程序改错(5分)
下列程序的功能是将小写金额(假设小于10万且无小数位)转换为中文大写形式。
例如,213转换为“贰佰壹拾叁元”,3002转换为“叁仟零佰零拾贰元”。
要求:
①将下列程序输人到项目中的程序文件PCODE3中,并对其中的2条错误语句进行修改;
②在修改程序时,不允许修改程序的总体框架和算法,不允许增加或减少语句数目。
nMoney=10249
cMoney=ALLT(STR(nMoney))
cString1=’零壹贰叁肆伍陆柒捌玖’
cString2=’万仟佰拾元’
cResult=0
FORn=1TOLEN(cMoney)
c=SUBSTR(cMoney,n)
cResult=cResult+SUBS(cString1,VAL(c)*2+1,2)+SUBS(cString2,n*2-1,2)
ENDFOR
WAITWINDOWS’大写金额为:
’+cResult
模拟试卷四(试卷代号VFP04)
一、项目、数据库和表操作(12分)
打开moni1-5文件夹中的项目文件TEST,在该项目中已有一数据库SJK及若干表。
1.按以下要求做题:
(1)在SJK数据库中创建一张表TS4,其结构为TS4(flhc(10),smc(30),jgn(6,2),zzc(8),csi,rkrqd,isbnc(10),cbsm),设置表的触发器:
当册数(cs)不为0时,禁止删除。
(2)添加一个字段,字段名为publisher,宽度以最多能存储“外语教学与研究出版社”字符串为准,并为其设置默认值“出版社”
(3)设置国际标准图书编号(isbn)字段的标题属性,使该字段的字段名在浏览窗口中显示为“国际标准图书编号”。
(4)创建一个普通索引abcd,要求册数(cs)字段进行排序,相同时以价格(jg)字段排序。
(5)设置rkrp字段的有效性规则,要求不超过当前系统日期。
2、将GZ表中qt字段的值全部设置为0
3、修改项目TEST的项目信息:
附加图标NET.ICO。
4、XS表和CJ表已存在以学号(xh)字段为索引表达式的主索引xsxh和普通索引cjxh。
以XS表为主表,CJ表为子表按xh建立永久关系,并根据以下要求设置参照完整性规则:
在XS表中修改和删除记录时,若CJ表中有相对应的记录(xh字段的值),则同时修改和删除CJ表相应记录。
二、设计查询(8分)
在TEST项目中已经存在查询chaxun4,已知在SJK的课程(KC)表中含有课程代号(kcdh)、课程名(kcm)字段,成绩(CJ)表中含有学生学号(xh)、课程代号(kcdh)、成绩(cj)等字段。
按如下要求修改查询:
基于KC表和CJ表查询每门课程选课人数、成绩优秀人数和成绩不及格人数,输出字段包括:
KC.kcdh、Kc.kcm、选课人数、优秀人数、不及格人数。
输出结果按选课人数降序排
序(注:
成绩大于等于90为优秀,小于60为不及格)
三、设计菜单(5分)
已知项目TEST中已存在菜单menu1,利用菜单设计器,按如下要求修改菜单。
1、按图1所示要求为“表操作”菜单栏前增加一个“编辑”菜单栏及其子菜单,并为“教师”菜单设置访问键;
2、在“编辑”菜单栏下的“学生”菜单项添加过程代码;图1
当执行该菜单项时,选择学生表(XS)为当前使用表(若该表未打开,则首先打开之),并逻辑删除学生表中xh前二位为“00”的记录。
四、设计表单(10分)
项目管理器中已经存在表单FD(如图2所示)。
该表单用来预览DBF表记录,根据下列要求修改表单,完成以后运行表单,效果如图3所示。
1、设置表单可调整到的最小高度和最小宽度分别为200和250。
2、设置Grid1表格的有关属性,使表格不显示删除标记列,并且使显示的数据只读但可获得焦点。
3、在命令按钮组控件cmg中增加一个命令按钮,并设置该按钮的标题为“退出”。
4、编写Resize事件的代码,是表单运行后改变表单窗口大小时,表格始终与表单同宽,表格的高度始终比表单高度小45。
5、根据“打开表”命令按钮的Click事件代码中所指定的打开表的工作区,编写“关闭表”命令按钮的Click事件代码,要求仅用一条语句使该工作区中的表关闭。
图2设计时
图3运行时
五、程序改错题(5分)
下列程序的功能是找出1992至2010年中的闰年年份。
判断闰年的条件是:
能被4整除但不能被100整除的年份,或能被400整除的年份。
如1989、1900年不是闰年,1992,2000是闰年。
要求:
(1)项目中有一个程序文件pcode4,将下列程序输入到其中并进行修改;
(2)在修改程序时,不允许修改程序的总体框架和算法,不允许增加或减少语句数目
n=1992
y=1
DOWHILEn<=2010
IFINT(n/4)=n/4
IFINT(n/100)<>n/100
y=1
ELSE
IFINT(n/400)=n/400
y=1
ELSE
y=0
ENDIF
ENDIF
ENDIF
y=0
ENDIF
WAITWINDOWVAL(n)+'是'+IIF(y=1,'闰年','非闰年')
n=n+1
ENDDO
模拟试卷五(试卷代号VFP05)
一、项目、数据库和表操作(12分)
打开moni1-5文件夹中的项目文件TEST,在该项目中已有一数据库SJK。
1.按如下要求创建并修改SJK中课程(KC1)表的结构;
(1)在SJK数据库中创建kc1表,其表结构为kc1(kcdhc
(2),kcmc(20),xfn(4,1),kssI)。
向表中输入两条记录:
kcdh
kcm
xf
kss
25
VFP程序设计
4
80
27
大学英语
(1)
3.5
70
(2)将学分(xf)字段的默认值设置为3;
(3)为kcdh字段设置输入掩码:
接受4个数字字符;
(4)设置课时数(kss)字段的有效性(验证)规则:
大于等于2并且小于等于100;
(5)为表增加一个备注字段kcsm,并将其标题设置为:
课程说明;
(6)创建普通索引xfdh,要求先按xf字段排序,xf相同时再按课程代号(kcdh)字段排序。
2.设置KC1表注释:
课程表。
3.设置SJK中zy表的包含状态为:
包含。
4.为学生表(XS)添加一个年龄字段,字段名为age、类型为数值型、宽度为2,然后计算表中所有籍贯(jg)为“江苏南京”的学生年龄,计算结果存储在age字段中。
(注:
计算方法为当前日期的年份减去学生出生日期(csrq)的年份。
5.JS表中已存在主索引jsgh,索引表达式为gh;GZ表已存在普通索引gzgh,索引表达式为gh。
以JS表为主表、GZ表为子表,按gh建立永久关系,并设置JS表和GZ表之间的参照完整性:
删除限制。
二、设计查询(8分)
TEST项目中已经存在查询chaxun5,在SJK的学生(XS)表中含有班级编号(bjbh)、系代号(xdh)以及性别(xb)等字段,系名(XIM)表中含有系代号(xdh)和系名称(ximing)字段。
按如下要求修改查询:
基于XIM表和XS表查询每个系各班级的学生人数以及女生所占比例,要求输出字段包括:
xdh、ximing、bjbh、总人数、女生人数和女生所占比例,查询结果按系代号升序排列,系代号相同是按班级编号升序排列。
三、设计菜单(5分)
项目TEST中已存在菜单menuh,利用菜单设计器按如下要求修改菜单:
1.按图1所示,在“系统设置”菜单栏后面增加“教师档案管理”菜单栏,并为它设置子菜单;
2.为“教师工资管理”菜单栏下的“工资调整”菜单项编写命令:
当代码执行该菜单时,工资(GZ)表中所有教师的岗位津贴(gwjt)统一增加200元;
3.将下列代码加到菜单的适当位置,使菜单运行时首先执行它。
CLEAR
CLOSETABLESALL
四、设计表单(10分)
项目TEST中已经存在表单Formh。
按下列要求修改该表单,修改完成后运行表单,其效果如图2所示。
1.修改表单的有关属性,使之外观如Windows对话框(无最大/最小化按钮、不可调整大小、自动居中);
2.修改表格第5列的列表头的有关属性,将显示的“zcdh”修改为“职称代号”;
3.修改列表框控件的有关属性,要求显示两列数据(ZC表中的两个字段),且通过对数据环境的设置使数据按职称代号排序
4.完善下拉组合框的InterActiveChange事件代码,要求在源代码的基础上,在合适的位置增加2条语句已完成如下功能:
让标签控件Label2运行时可见,且用之显示系名;
5.完善“确定”命令按钮的Click事件代码,要求在源代码的基础上,在合适的位置增加1条语句以完善功能:
用列表框中选择的职称代号更新表格中当前记录的职称代号(zcdh)。
五、程序改错(5分)
下列程序的功能是:
将十进制数字字符串转换为二进制数字字符串,其基