2013年秋季江苏计算机二级VFP上机试卷VFP-01一、项目、数据库和表操作(12分)打开T盘根目录中的项目文件JXGL,在该项目中已有一数据库JxSJ。1.在JxSJ数据库中按下表所示的结构创建AB.DBF表,并按表格后的要求设置相关属性。(1)设置AB表的注释:毕业生就业情况一览表;(2)设置XH字段的输入掩码:只能输入12位数字;(3)设置SFJY字段的默认值:.F.;(4)设置表的插入触发器:只能插入2013年毕业的学生;(5)创建普通索引,索引名为abcd,要求按学号的前9位排序,学号前9位相同时,将已经就业的学生排在前面,未就业的学生排在后面;2.在AB表中输入如下记录3.在项目中创建一个程序文件,文件名为MP,该程序的功能为:打开CJB表并在浏览窗口中显示表记录。4.KC表与CJ表具有相同的字段KCDM,以kc表为主表,CJ表为子表,根据KCDM建立永久性关系,并设置两表之间的参照完整性:删除限制、插入限制。二、设计查询(8分)已知JXGL项目管理器中的图书(TSB)表含有分类号(FLH)、书名(SM)等字段;借阅(JYB)表含有分类号(FLH)、读者类型(LX)等字段,LX字段值为“J”表示读者为教师,LX字段值为“X”表示读者为学生。按如下要求修改查询chaxun:基于TSB表和JYB表查询每本图书借阅情况,要求输出字段包括:tsb.flh、tsb.sm、被借次数,教师借阅次数。输出结果按被借次数降序排序,被借次数相同时按FLH排序。查询结果仅输出被借次数在5次以上(包括5次)的记录。三、设计菜单(5分)项目JXGL中己存在菜单MENU,利用菜单设计器按如下要求修改菜单,完成后的运行效果如图l所示。1.增加“常用工具”菜单栏及其子菜单“记事本”、“计时器”和“图片处理”,在菜单项之间设置分组线,并且设置“计时器”菜单项快捷键Ctrl+Q。2.为“图片处理”菜单创建子菜单“Windows画图软件”和“Photoshop”,菜单项之间设置分组线,并且为两个菜单项设置访问键“W”和“P”。3.为“记事本”菜单项设置命令:启动Windows中的记事本(注:使用run命令调用Windows下的notepad.exe)。四、设计表单(10分)表单FMQ13a用于选择鼠标形状,按下列要求修改表单,修改后表单运行时如图2所示。1.设置表单的有关属性,使得表单的标题为“选择鼠标形状”,运行时自动居中并且表单无最大化和最小化按钮。2.在列表框控件右方添加一个命令按钮,然后设置有关属性使其无标题但显示由EXIT.ICO文件指定的图标,再编写其CLICK事件代码,功能是释放表单。3.修改列表框的Rowsource属性,在列表的末尾增加一个“沙漏”数据项。4.完善列表框控件的Mouseup事件代码,功能是:鼠标选定列表框中某一选项时,使鼠标指针的形状变成该选项内容指定的形状(如图2所示,选定列表框中“沙漏”选项时,鼠标指针位于列表框范围内则鼠标指针形状为沙漏)。这一步没法做五、程序改错(5分)下列程序的功能是利用随机函数rand(),随机产生100个100以内的整数,统计它们在049和50100之间出现的次数。要求:①目中有一个程序文件Pcode,将T盘中VFPOI.TXT中的程序代码复制到其中并进行修改。②修改程序时,不允许修改程序的整体框架和算法,不允许增加或减少语句。CREATEtablecurl(ri)FORi=1TO100INSERTINTOcurlVALUES(INT(RAND()*100))ENDFORSELECTcurlSKIPTOP&&n=0DOWHILE.NOT.EOF()IFcurl.r49N=N-1ENDIFSKIPENDDOCLEAR?小于50的次数是:+STR(100-n,2)?大于或等于50的次数是:+STR(n,2)USE2013年秋季计算机二级VFP上机试卷VFP02一、项目、数据库和表操作(12分)打开默认工作目录中的项目文件JXGL,在该项目中存在一个数据库JxSJ。1.在JxSJ数据库中,按照如下表格中所示的结构创建AB.DBF表,并按照表格后的要求设置相关属性。(1)设置AB表的注释:毕业生就业情况一览表;(2)设置JXLX的显示类:下拉列表框;(3)设置JXLX的默认值:常规就业;(4)设置表的插入触发器:只能插入就业类型为“常规就业”、“升学”或“入伍”的记录(5)创建索引名为ABCD的普通索引,要求按JYLX排序,JYLX相同时,按XH排序。2.在AB表中输入如下记录:3.在项目中创建一个程序文件,文件名为MP,该程序的功能为:打开CJB表并将成绩不及格的记录加上删除标记。4.KC表与CJ表具有相同的字段KCDM,以kc表为主表,CJ表为子表,根据KCDM建立永久性关系,并设置两表之间的参照完整性:删除级联、插入限制。二、设计查询(8分)己知JXGL项目管理器中的图书(TSB)表含有分类号(FLH)、书名(SM)等字段;借阅(JYB)表含有分类号(FLH)、借阅日期(JYRQ)、还书日期(HSRQ)等字段,该表中的图书均己还。按如下要求修改查询chaxun:基于TSB表和JYB表查询每本图书在每个月的借阅情况。要求输出字段包括:tsb.flh、tsb.sm、月份、被借次数、最少借阅天数。输出结果按FLH排序,FLH相同时按月份排序。输出字段个数、顺序必须符合题目要求。三、设计菜单(5分)项目JXGL中已经存在菜单menu,利用菜单设计器按如下要求修改菜单,完成后的运行效果如图1所示。1.增加“常用工具”菜单栏及其子菜单“记事本”、“计时器”和“声音处理”,在菜单项之间设置分组线。2.为“声音处理”菜单创建子菜单“Windows录音机软件”和“GoldWave”,菜单项之间设置分组线,并且为两个菜单项设置访问键“W”和“G”。3.为“Windows录音机软件”菜单项设置命令:启动Windows中的录音机(注:使用run命令调用WindowsT的SoundRecord.exe)。4.为“GoldWave”菜单项设置跳过条件:该菜单项不可用。四、设计表单(10分)表单FMQ13B用于鼠标写字。按下列要求修改表单,修改后表单运行时如图2所示。1.设置表单的有关属性,使得表单的标题为“鼠标写字”,运行时自动居中并且表单无最大化和最小化按钮。2.在标签L1右边添加一个标签控件,并且将其name属性修改为L2,autosize属性为真。3.为表单创建两个新属性,属性名为X、Y。4.(这一步没法做)将表单新方法abc程序代码复制到表单mousemove事件代码中,在程序代码末尾添加2条命令,要求见abc方法程序代码中的注释说明。五、程序改错(5分)下列程序的功能是利用随机函数rand(),随机产生1000个100以内的整数,统计这些数在50附近且与50之间的距离不超过5的频率。同时统计恰好为50的数在符合上述条件的数中所占的比例。要求:①目中有一个程序文件Pcode,将T盘中VFP02.TXT中的程序代码复制到其中并进行修改。②在修改程序时,不允许修改程序的整体框架和算法,不允许增加或减少语句。n=0m50=0FORi=1TO1000r=INT(RAND()*100)IFr-50=5n=n+1IFr=50m50=m50+1ENDIFENDIFENDFORsetrate=m50/n*100.0CLEAR?1000个随机数中在50附近的频率是:+STR(n/10,2)+%?恰好是50的比例是:+STR(rate,2)+%