VFP春上机试题.docx
《VFP春上机试题.docx》由会员分享,可在线阅读,更多相关《VFP春上机试题.docx(22页珍藏版)》请在冰豆网上搜索。
VFP春上机试题
上机部分
一、项目、数据库和表操作(12分)
练习1
打开T盘根目录下的项目文件JXGL,在该项目文件中已有一数据库JXSJ。
1.在JXSJ数据库中按如下表格所示的结构创建TAB.DBF表,并按表格后的要求设置相关属性。
字段名
数据类型
长度
字段标题
Cdcs
C
40
传递城市
Cdrq
D
传递日期
Cdrs
I
火炬手人数
Cdlxt
G
传递路线图
(1)设置TAB表的注释:
火炬传递城市信息表;
(2)设置Cdrq字段的有效性规则及信息:
传递日期必须在2008年8月8日前;
(3)将Cdrs字段的默认值设置为100;
(4)按Cdcs字段创建主索引,索引名为adcd。
2.在TAB表中输入如下记录:
Cdcs
Cdrq
Cdrs
Cdlxt
南京
2008/05/27
208
(插入lxt.jpg文件)“编辑”菜单—插入对象
3.设置CJ表的更新触发器,要求课程代码为“60023”的记录不允许修改。
4.已知JS表已存在主索引gh,索引表达式为gh,KCAP表已存在普通索引gh,索引表达式为gh,以JS表为主表,KCAP表为子表并按gh建立永久关系,并设置两表之间的参照完整性:
插入限制。
练习2
打开T盘根目录下的项目文件JXGL,在该项目文件中已有一数据库JXSJ。
1.在JXSJ数据库中按如下表格所示的结构创建TAB.DBF表,并按表格后的要求设置相关属性。
字段名
数据类型
长度
字段标题
Cdcs
C
40
传递城市
Bc
I
棒次
Xm
C
50
火炬手姓名
Jj
M
火炬手简介
(1)设置TAB表的注释:
火炬传递人员信息表;
(2)设置Bc字段的有效性规则及信息:
棒次必须在1至300之间;
(3)将Bc字段的默认值设置为1;
(4)创建候选索引,索引名为abcd,要求按传递城市和棒次顺序排列。
2.在TAB表中输入如下记录:
Cdcs
Bc
Xm
Jj
南京
1
杨阳
曾被誉为世界羽坛“四大天王”之首
3.修改JC表中的数据,将所有教材名称字段内容的两端加书名号“《》”,要求书名的最后一个字与右书名号“》”之间不允许留有空格。
4.设置JC表的删除触发器,要求只允许删除出版年份在2000年之前的记录。
5.已知YXZY表已存在主索引yxzydm,索引表达式为yxzydm,XS表已存在普通索引yxzydm,索引表达式为yxzydm,以YXZY表为主表,XS表为子表并按yxzydm建立永久关系,并设置两表之间的参照完整性:
更新级联。
练习3
打开T盘根目录下的项目文件jxgl,在该项目文件中已有一数据库jxsj。
1.在jxsj数据库中按如下表格所示的结构创建tab.dbf表,并按表格后的要求设置相关属性。
字段名
数据类型
长度
字段标题
xmbh
C
4
项目编号
xmmc
C
50
项目名称
jps
I
金牌数
xmjj
M
项目简介
(1)设置tab表的注释:
奥运项目信息表;
(2)设置jps字段的有效性规则及信息:
金牌数至多100;
(3)将jps字段的默认值设置为1;
(4)按xmbh字段创建主索引,索引名为abcd。
2.在tab表中输入如下记录:
xmbh
xmmc
jps
xmjj
0001
游泳
42
游泳项目繁多
3.按照成绩值修改自由表cjb表中的备注字段内容:
若成绩大于或等于90,则备注字段中的内容设置为“优秀”。
4.设置xs表的更新触发器,要求该表数据只能在上午8:
00至下午5:
00时间段内进行修改。
5.已知js表已存在主索引gh,索引表达式为gh,kcap表已存在普通索引gh,索引表达式为gh,以js表为主表,kcap表为子表并按gh建立永久关系,并设置两表之间的参照完整性:
删除限制。
练习4
打开T盘根目录下的项目文件jxgl,在该项目文件中已有一数据库jxsj。
1.在jxsj数据库中按如下表格所示的结构创建tab.dbf表,并按表格后的要求设置相关属性。
字段名
数据类型
长度
字段标题
playerid
C
4
运动员号码
playername
C
50
姓名
nation
C
16
国籍
game
C
20
参加项目
(1)设置tab表的注释:
运动员信息表;
(2)设置playerid字段的输入掩码,要求只允许输入4位数字字符;
(3)将nation字段的默认值设置为“中国”;
(4)按playeridh字段创建普通索引,索引名为abcd。
2.在tab表中输入如下记录:
playerid
playername
nation
name
0001
刘翔
中国
男子110米跨栏
3.按照成绩值修改自由表cjb表中的备注字段内容:
若成绩大于或等于90,则备注字段中的内容为“A”,若成绩大于或等于80且小于90,则备注字段中的内容为“B”。
4.设置jx表的更新触发器,要求工作日期在“1990/09/01”以前的记录才允许修改。
5.已知js表已存在主索引gh,索引表达式为gh,kcap表已存在普通索引gh,索引表达式为gh,以js表为主表,kcap表为子表并按gh建立永久关系,并设置两表之间的参照完整性:
插入限制。
练习5
打开T盘根目录下的项目文件jxgl,在该项目文件中已有一数据库jxsj。
1.在jxsj数据库中按如下表格所示的结构创建tab.dbf表,并按表格后的要求设置相关属性。
字段名
数据类型
长度
字段标题
bsxm
C
12
比赛项目
bssj
T
比赛时间
bscd
C
20
比赛场地
bsxz
C
6
比赛性质
(1)设置tab表的注释:
奥运赛程信息表;
(2)设置bsxz字段的有效性规则:
比赛性质只能是“预赛”、“半决赛”或“决赛”;
(3)将bsxz字段的默认值设置为“预赛”;
(4)创建一普通索引,索引名为abcd,要求按比赛和比赛项目排序。
2.在tab表中输入如下记录:
bsxm
bssj
bscd
bsxz
男子10米跳台
2008/08/2309:
00:
00
水立方游泳中心
决赛
3.设置kc表的更新触发器,要求只有课程代码长度为4的记录才允许修改。
4.已知kc表已存在主索引kcdm,索引表达式为kcdm,jc表已存在普通索引kcdm,索引表达式为kcdm,以kc表为主表,jc表为子表并按kcdm建立永久关系,并设置kc表和jc表两表之间的参照完整性:
更新限制、删除级联。
练习6
打开T盘根目录下的项目文件jxgl,在该项目文件中已有一数据库jxsj。
1.在jxsj数据库中按如下表格所示的结构创建tab.dbf表,并按表格后的要求设置相关属性。
字段名
数据类型
长度
字段标题
gj
C
18
国家或地区
jps
I
金牌数
yps
I
银牌数
tps
I
铜牌数
(1)设置tab表的注释:
奥运奖牌榜;
(2)设置jps字段的有效性规则及信息:
金牌数不能超过200枚;
(3)将jps字段的默认值设置为0;
(4)创建一普通索引,索引名为abcd,要求按金、银、铜牌总数降序排列。
2.在tab表中输入如下记录:
gj
jps
yps
tps
中国
42
50
25
3.设置kc表的更新触发器,要求课程类型为“专业核心课程”的记录不允许修改。
4.已知kc表已存在主索引kcdm,索引表达式为kcdm,jc表已存在普通索引kcdm,索引表达式为kcdm,以kc表为主表,jc表为子表并按kcdm建立永久关系,并设置kc表和jc表两表之间的参照完整性:
更新级联、删除限制。
练习7
打开T盘根目录下的项目文件jxgl,在该项目文件中已有一数据库jxsj。
1.在jxsj数据库中按如下表格所示的结构创建tab.dbf表,并按表格后的要求设置相关属性。
字段名
数据类型
长度
字段标题
cgmc
C
20
场馆名称
dz
C
50
地址
zws
I
座位数
cgzp
G
场馆照片
(1)设置tab表的注释:
奥运场馆信息表;
(2)设置zws字段的有效性规则及信息:
座位数必须介于1千至10万之间;
(3)将dz字段的默认值设置为“北京市”;
(4)按cgmc字段创建主索引,索引名为abcd。
2.在tab表中输入如下记录:
cgmc
dz
zws
cgzp
鸟巢
北京市
80000
(插入cgzpjpg文件)
3.设置jc表的更新触发器,要求只允许删除出版年份在“2000”年以前的记录。
4.已知yxzy表已存在主索引yxzydm,索引表达式为yxzydm,xs表已存在普通索引yxzydm,索引表达式为yxzydm,以yxzy表为主表,xs表为子表并按yxzydm建立永久关系,并设置yxzy表和xs表两表之间的参照完整性:
删除限制、插入限制。
二、设计查询(8分)
在TEST项目中已经存在查询chaxun
练习1
已知教材(JC)表存储了教材的基本信息,其中含出版社名称(CBSMC,C)、出版年月(CBNF,C)、定价(DJ,N,5.1)等字段。
按如下要求修改JXGL项目中的查询CHAXUN:
基于JC表统计各出版社2000年以后(含2000年)出版的教材种数及平均定价。
要求输出出版社名称、教材种数、平均定价(字段名依次分别为CBSMC、JCZS和PJDJ),查询结果按教材种数排序,输出去向为屏幕(即主窗口)。
(注:
JC表中每条记录为一种教材。
)
练习2
已知教材(JC)表存储了教材的基本信息,其中含出版社名称(CBSMC,C)、出版年月(CBNF,C)、定价(DJ,N,5.1)等字段。
按如下要求修改JXGL项目中的查询CHAXUN:
基于JC表统计各年份(CBNF字段的前6个字符)出版的教材种数及平均定价。
要求输出年份、教材种数、平均定价(字段名依次分别为NF、JCZS和PJDJ),查询结果按降价排序,且输出JCZS大于或等于5的记录,输出去向为TEMP.TXT文件。
(注:
JC表中每条记录为一种教材。
)
练习3
已知学生(xs)表存储了学生的基本信息,其中含学号(xh,C)、姓名(xm,C)等字段;成绩(cj)表中存储了学生的考试成绩,其中含学号(xh,C)、成绩(cj)等字段,每条记录为一位学生一门课程的考试成绩(成绩以百分制计,低于60分为不及格)。
按如下要求修改jxgl项目中的查询chaxun:
基于xs表和cj表统计各位学生的考试情况。
要求:
输出学号、姓名、考试门数和不及格门数(字段名依次分别为xh、xm、ksms和bjgms),查询结果按不及格门数排序,且仅输出bjgms大于或等于1的记录。
练习4
已知学生(xs)表存储了学生的基本信息,其中含学号(xh,C)、姓名(xm,C)等字段;成绩(cj)表中存储了学生的考试成绩,其中含学号(xh,C)、成绩(cj)等字段,每条记录为一位学生一门课程的考试成绩(成绩以百分制计,低于60分为不及格)。
按如下要求修改jxgl项目中的查询chaxun:
基于xs表和cj表查询成绩优良的学生(“成绩优良”是指平均成绩大于或等于80,且最低成绩大于或等于65)。
要求:
输出学号、姓名、平均成绩和最低成绩(字段名依次分别为xh、xm、pjcj和zdcj),查询结果按平均成绩降序排序。
练习5
已知学生(xs)表存储了学生的基本信息,其中含学号(xh,C)、姓名(xm,C)、性别(xb,C)等字段;院系专业(yxzy)表为院系专业代码名称对照表,含院系专业代码(yxzydm,C)、院系名称(yxmc,C)字段。
按如下要求修改jxgl项目中的查询chaxun:
基于xs表和yxzy表查询各院系的学生人数及男女生人数。
要求:
输出院系名称、人数、男生人数和女生人数(字段名依次分别为yxmc、rs、nanrs和nvrs),查询结果按人数降序排序,人数相同时按女生人数降序排列。
练习6
已知学生(xs)表存储了学生的基本信息,其中含学号(xh,C)、姓名(xm,C)、性别(xb,C)、民族代码(mzdm,C)等字段,学号的前两个字符表示学生的年级(例如,“04”表示04级学生),民族代码为“01”表示汉族;院系专业(yxzy)表为院系专业代码名称对照表,含院系专业代码(yxzydm,C)、院系名称(yxmc,C)字段。
按如下要求修改jxgl项目中的查询chaxun:
基于xs表和yxzy表查询各院系的学生人数及汉族学生人数。
要求:
输出院系名称、学生人数、汉族学生人数(字段名依次分别为jib、yxmc、rs和hanrs),查询结果输出到屏幕(即主窗口)。
练习7
已知教师(js)表存储了每名教师的基本信息,其中含性别(xb,C)、文化程度代码(whcd,C)、出生日期(csrq,D)等字段,视图whcd为文化程度代码与名称对照表,含文化程度代码(dm,C)和文化程度名称(mc,C)字段。
按如下要求修改jxgl项目中的查询chaxun:
基于js表和whcd视图,统计各类文化程度的人数和工作时的平均年龄。
要求:
输出文化程度代码、文化程度名称、人数和工作时的平均年龄(字段名依次分别为dm、mc、rs和pjnl),查询结果按平均年龄降序排序,输出去向为表文件temp。
(注:
教师的年龄按当前年份减去出生年份的年份)
三、设计菜单(5分)
练习1
JXGL项目中已存在菜单menu,已定义了“系统管理”菜单栏及其中的“恢复系统菜单”菜单项。
按如下要求设计菜单,完成后的运行效果如图1所示。
1.为“教材信息”菜单栏,其访问键为J,子菜单为“编辑”和“浏览”和“统计”,分组线如图1所示;
2.为“编辑”菜单项设置跳过条件,使该菜单项不可用;
3.为“统计”菜单创建子菜单“出版社”和“出版年月”;
4.为“出版社”菜单项设置快捷键CTRL+B,并为其设置过程代码:
首先清除屏幕(即主窗口),然后运行查询文件CHAXUN.QPR。
练习2
JXGL项目中已存在菜单menu,已定义了“系统管理”菜单栏及其中的“恢复系统菜单”菜单项。
按如下要求设计菜单,完成后的运行效果如图1所示。
1.为“教材管理”菜单栏,其访问键为B,子菜单为“修改”、“浏览”和“统计”,分组线如图1所示;
2.为“修改”菜单项设置跳过条件,使该菜单项不可用;
3.为“统计”菜单创建子菜单“出版社”和“出版年份”;
4.为“出版年份”菜单项设置快捷键CTRL+Y,并为其设置过程代码:
首先运行查询文件CHAXUN.QPR,然后利用MESSAGEBOX()函数显示提示信息“结果保存在TEMP.TXT文件中”。
练习3
JXGL项目中已存在菜单menu,已定义了“系统管理”菜单栏及其中的“恢复系统菜单”菜单项。
按如下要求设计菜单,完成后的运行效果如图1所示。
1.在“系统管理”菜单栏中插入VFP系统菜单“导入”和“导出”。
2.创建“成绩管理”菜单栏,其访问键为C,子菜单为“录入”、“编辑”、“查询”和“打印”,分组线如图1所示;
3.为“打印”菜单项设置快捷键“CTRL+Y”,并为其设置命令:
预览报表文件rtest。
练习4
JXGL项目中已存在菜单menu,已定义了“系统管理”菜单栏及其中的“恢复系统菜单”菜单项。
按如下要求设计菜单,完成后的运行效果如图1所示。
1.在“系统管理”菜单栏中增加“备份数据”、“恢复数据”和“退出”菜单项,其中“退出”菜单项为VFP系统菜单,分组线如图1所示。
2.为“备份数据”菜单创建子菜单“所有文件”、“数据库文件”和“表文件”,分组线如图1所示;
3.为“所有文件”菜单项设置快捷键“CTRL+A”,并为“表文件”菜单项设置过程:
首先关闭所有的表,然后将xs表复制到T盘根目录中。
练习5
JXGL项目中已存在菜单menu,已定义了“系统管理”菜单栏及其中的“恢复系统菜单”菜单项。
按如下要求设计菜单,完成后的运行效果如图1所示。
1.在“系统管理”菜单栏中增加“帐户设置”和“选项”菜单项,其中“选项”菜单项为VFP系统菜单,分组线如图1所示。
2.创建“学生管理”菜单栏,其访问键为X,其子菜单为“基本信息”和“统计信息”,分组线如图1所示;
3.为“按性别统计人数”菜单项设置SELECT-SQL命令:
查询并显示xs表中男女生人数,要求输出性别和人数(字段名分别为xb和rs)。
练习6
JXGL项目中已存在菜单menu,已定义了“系统管理”菜单栏及其中的“恢复系统菜单”菜单项。
按如下要求设计菜单,完成后的运行效果如图1所示。
1.在“系统管理”菜单栏中增加“密码设置”和“退出”菜单项,分组线如图1所示。
2.为“退出”菜单项设置快捷键F12,设置过程:
首先清除事件循环,然后退出系统。
3.创建“系统帮助”菜单栏,其访问键为H,子菜单为“帮助主题”、“目录”、“索引”和“检索”。
练习7
JXGL项目中已存在菜单menu,已定义了“系统管理”菜单栏及其中的“恢复系统菜单”菜单项。
按如下要求设计菜单,完成后的运行效果如图1所示。
1.在“系统管理”菜单栏中增加“帐户设置”、“系统设置”和“退出”菜单项,其中“退出”菜单项为VFP系统菜单,并为“退出”菜单项设置快捷键F12,分组线如图1所示。
2.创建“教师信息”菜单栏,其访问键为J,其子菜单为“基本信息”、“统计信息”和“其他”,分组线如图1所示;
3.为“统计信息”设置跳过条件:
若当期目录(文件夹)不存在文件temp.dbf,则该菜单不可用(即跳过)。
4.为“统计信息”设置SELECT-SQL命令:
浏览demp.dbf表中的数据。
四、设计表单(10分)
练习1
表单F081E的功能是:
用鼠标在表单上写汉字等操作。
按下列要求修改表单,修改后表单运行时如图2所示。
1.设置表单的有关属性,使其标题为“鼠标写字”,边框样式属性为“固定对话框”,背景颜色为“黄色”。
2.如图2所示在表单的上部添加一个标签控件,用来显示鼠标的位置,并将其对象名改为COORD,背景样式设置为“透明”。
3.在表单的下部添加一个文本框控件(对象名为Text1)和计时器控件(对象名为Timer1),并设置计时器控件的有关属性,使得表单运行时触发计时器事件的间隔时间为5秒。
4.编写计时器控件的Timer事件代码,实现在文本框中显示当前的系统日期和时间。
练习2
表单F081F的功能是:
通过连续播放BMP位图文件产生动画效果。
按下列要求修改表单,修改后表单运行时如图2-1、图2-2所示。
1.设置表单的有关属性,使其标题为“播放动画”,且无最大化、最小化按钮。
2.在“播放”命令按钮下方添加一个命令按钮,其标题属性设置为“退出”,且编写其Click事件代码,其功能是释放表单。
3.完善“播放”命令按钮的Click事件代码,其功能是:
单击该按钮则其标题在“播放”与“停止”之间切换(即播放动画时显示“停止”,停播时显示“播放“),并且如果单击的是”停止“按钮,则将计时器对象设置为不可使用。
练习3
在T盘中有10个图片文件1.BMP、2.BMP、…、10.BMP。
表单F081F的功能是:
通过连续播放BMP文件产生动画效果。
按下列要求修改表单,修改后表单运行时如图2所示。
1.将命令按钮的Left、Top属性分别修改为100和95。
2.设置表单的有关属性,使其标题为“播放二幅动画”,高度为140,宽度为210,且使其运行时自动居中。
3.在图像对象(Image1)右方添加一个图像对象(Image2)。
4.在计时器对象的Timer事件代码的末尾,添加一条命令,使Image2显示图片的顺序为10.BMP、9.BMP、…1.BMP。
5.修改“播放”命令按钮的Click事件代码:
保留第3条命令,删除其余命令。
练习4
表单F081E的功能是:
用鼠标在表单上写文字等操作。
按下列要求修改表单,修改后表单运行时如图2所示。
1.将表单的标题设置为“鼠标写字与小球移动”,边框样式设置为“固定对话框”。
2.在表单界面的右下方添加形状控件,并设置形状控件的有关属性,使其形状为圆形,背景颜色为红色。
3.修改表单的MouseDown事件代码,其功能是:
使表单前景颜色为蓝色以实现用鼠标在表单界面上写的文字为蓝色,并修改表单的MouseMove事件代码,删除其中的第六行语句(该语句为THISFORM.Coord.Caption=”(“+……)。
4.将表单对象新方法XYZ中的代码复制到形状控件的Click方法程序中。
练习5
表单F081g的功能是:
表单上显示奥运会五环图标和“2008北京”字样等。
按下列要求修改表单,修改后表单运行时如图2所示。
1.在表单的Activate事件代码的第2条命令后添加一条命令,实现表单运行开始时标题从右向左移动显示。
2.分别修改对象名为S1、S2、S3、S4、S5的五个形状控件的有关属性:
形状为“圆形”,边框颜色(BorderColor属性)分别为蓝色、黄色、黑色、绿色、红色,背景样式(BackStyle属性)为透明,边框宽度为3。
3.在表单的下方添加一个控件,并设置有关属性:
标题为“2008北京”,字号为16.前景颜色为红色。
4.将表单的背景颜色设置白色。
练习6
表单F081g的功能是:
表单上显示奥运会五环图标等。
按下列要求修改表单,修改后表单运行时如图2所示。
1.在表单的下方添加一个命令按钮控件,并将其标题设置为“显示”,将表单的新方法COL的程序代码复制到该命令按钮的Click事件代码中。
2.完善命令按钮的Click事件代码(在程序末尾添加4条命令),其功能是设置S5形状控件的有关属性:
形状设置为圆形,边框颜色(BorderColor属性)设置为红色,背景(BackStyle属性)设置为透明,边框宽度设置为3。
3.将表单的背景颜色设置为白色,并将标题修改为“同一个世界,同一个梦想”。
练习7
表单F081h上有一个命令按钮(cmdcj)和一个计时器(Timer1)控件,其功能是:
从学生表(xs)中抽取学生学号和姓名。
按下列要求修改表单,修改后表单运行时如图2所示。
1.设置表单的标题属性为“抽奖”,边框类型为“固定对话框”。
2.在表单的右方添加一个命令按钮控件,并设置标题为“退出”。
3.编写新添加的命令按钮的Click事件代码,其功能是释放表单。
4.在命令按(cmdcj)的下方添加一个列表框控件(对象名为List1)。
5.在计时器对象的Timer事件代码的末尾,添加一条命令,使得命令按钮(cmdcj)的标题显示当前记录中xh和xm字段值。
五、程序改错(5分)
练习1:
下列程序的功能是:
删除字符串(不包括汉字)中的空格,并将它按字符从小到大的顺序排列以后输出。
例如,字符串“BCefA“,输出结果为”ABCef“。
要求:
①将下列程序输入到项目中的程序文件PCODE中,并对其中的2条错误语句进行修改;
②在修改程序时,不允许修改程序的总体框架和算法,不允许增加或减少语句数目。
CLEAR
x=’BCefA’
y=’’
x=STRTRAN(x,SPA