1888年春VFP01—第1页江苏省高等学校非计算机专业学生计算机基础知识和应用能力等级考试上机试卷二级VisualFoxPro(试卷代号VFP01)(本试卷完成时间70分钟)说明:1.首先运行考试软盘中的“上机考试”应用程序以输入考生的准考证号、姓名和试卷代号;2.启动VisualFoxPro系统后,首先在命令窗口中执行命令:SETDEFAULTTOA:以设置默认的工作目录,然后再开始做题。一、项目、数据库和表操作(12分)打开软盘根目录下的项目文件TEST,在该项目中已有一数据库SJK。1.按如下要求修改SJK中学生(XS)表的结构:(1)设置姓名(xm)字段的宽度,使之最多能容纳4个汉字。(2)为了使xm字段在输入数据时自动删除前导空格,设置xm字段的相关属性。(3)设置性别(xb)字段的默认值为“男”。(4)增加一个备注型字段,字段名为“备注”。(5)创建唯一索引jsjg,要求按籍贯(jg)字段升序排序,且仅对“江苏”籍的学生记录排序。(6)为XS表设置说明信息:学生基本信息表。2.设置TEST项目的作者为考生自己的姓名。3.彻底删除CJ表中所有xh字段值开头为“99”的记录。4.为XS表设置插入触发器:学号开头两位只能是“00”至“10”。5.如果在XS表中更改了某个学生的xh字段值,则要求自动同步更改成绩(CJ)表中相应xh字段值,根据此要求设置这两个表之间的参照完整性。二、设计查询(8分)已知班级(BJ)表中含有班级编号(bjbh)、系代号(xdh)和专业代号(zydh)字段,按如下要求修改TEST项目中的查询CHAXUN:基于班级(BJ)表和学生(XS)表以系为单位,按性别统计各系男女学生的人数,要求输出字段为:xdh、xb、人数,查询结果按系代号和性别升序排序。三、设计菜单(5分)项目TEST中已存在菜单MENUK,其中已定义了“文件”、“记录浏览”和“记录定位”三个菜单栏,按如下要求修改菜单,完成后的运行效果如图1所示。1.为“文件”菜单栏下的“恢复系统菜单”菜单项设置快捷键“CTRL+R”。2.在“文件”菜单栏下插入系统菜单“关闭”。3.为“记录浏览”菜单栏设置子菜单,该子菜单包括二个菜单项“教师表”和“教师任课表”,并用分隔线隔开。4.为“记录定位”菜单栏下的“上一条”设置过程,要求当记录指针未指向文件头时,记录指针向上移动一条记录。5.将下列代码加到菜单的适当位置,使运行该菜单时,首先执行此代码。代码如下:IFUSED(js)SELECTjsELSEUSEjsENDIF图11888年春VFP01—第2页四、设计表单(10分)TEST项目中已经存在表单FORMK,该表单用来查询需补考(成绩低于60分)的学生及其成绩情况,根据下列要求修改表单,完成以后运行表单,效果如图2、图3所示。1.表单运行时自动居中。2.根据列表框List1的RowSource属性值,来设置它的RowSourceType属性值。3.增加一页,它的标题为“补考成绩”。4.为表单编写Activate事件代码,使得表单激活时调用List1的InterActiveChange事件代码(List1的InterActiveChange事件代码的功能是:根据List1中选定的课程,将页框第1页中表格的RecordSource属性设置为一个SQL语句,该语句生成一个包含bjbh字段和补考人数的临时表cBkrstmp。5.完善页框第2页的Activate事件代码,要求根据List1中选定的课程和页框第1页中选定的班级,在第2页的表格中显示指定课程和指定班级的补考学生清单。例如,第一页显示课程号为“01”的课程000403041班有8人补考,010405011班有1人补考,如图2所示。选定000403041班,然后点击第二页,此时第二页显示该班8个学生的补考清单,如图3所示。五、程序改错(5分)下列程序的功能是:对英文字符串进行加密处理。加密算法是:将字符串中的第2、4、6、8(偶数位)个字符换成其“对称”字符(a与z对称,A与Z对称,b与y对称,B与Y对称,等等)。例如,字符串“ABcdEF”加密后为“AYcwEU”。要求:1.项目中有一个程序文件PCODE,将下列程序输入到其中并进行修改。2.在修改程序时,不允许修改程序的总体框架和算法,不允许增加或减少语句数目。cString=ABcdEFcResult=SPACE(0)FORn=1TOLEN(cString)IFMOD(n,2)=0cResult=cResult+SUBSTR(cString,n,1)ELSEc=SUBSTR(cString,n,1)IFISUPPER(c)&&ISUPPER()函数的功能是判断一字符(串)是否为大写cResult=cResult+STR(25-(ASC(c)-ASC(A))+ASC(A))ELSEcResult=cResult+STR(25-(ASC(c)-ASC(a))+ASC(a))ENDIFENDIFENDFORWAITWINDOWS字符串加密后为+cResult图2图31989年春VFP02—第1页江苏省高等学校非计算机专业学生计算机基础知识和应用能力等级考试上机试卷二级VisualFoxPro(试卷代号VFP02)(本试卷完成时间70分钟)说明:1.首先运行考试软盘中的“上机考试”应用程序以输入考生的准考证号、姓名和试卷代号;2.启动VisualFoxPro系统后,首先在命令窗口中执行命令:SETDEFAULTTOA:以设置默认的工作目录,然后再开始做题。一、项目、数据库和表操作(12分)打开软盘根目录下的项目文件TEST,在该项目中已有一数据库SJK。1.按如下要求修改SJK中学生(XS)表的结构:(1)设置学号(xh)字段的有关属性,使之至多能容纳10个字符。(2)设置xh字段的相关属性,使xh字段在输入数据时自动删除前导空格。(3)设置xh字段的字段注释:主关键字,不允许重复或空。(4)删除zp字段。(5)创建一个候选索引xh,要求按学号(xh)字段升序排序,且仅对以“01”开头的学号排序。(6)设置XS表的插入触发器:班级编号(bjbh)字段值不能为空字符串和Null值。2.将“A:\GZB.DBF”文件添加为TEST项目中的自由表,并设置说明信息:工资表备份。3.彻底删除XS表中所有班级编号为“990403022”的记录。4.在数据库SJK的存储过程中创建自定义函数ntoc(),代码如下:PARAMETERSpDigitLOCALcStringcString=零一二三四五六七八九returnsubstr(cString,pDigit*2+1,2)5.如果成绩(CJ)表中存在某个学号的成绩记录,则不允许删除XS表中相同学号的学生记录,根据此要求设置这两个表之间的参照完整性。二、设计查询(8分)已知班级(BJ)表中含有班级编号(bjbh)、系代号(xdh)和专业代号(zydh)字段,按如下要求修改TEST项目中的查询CHAXUN:基于班级(BJ)表和学生(XS)表,以系为单位统计各专业的人数,要求输出字段为:xdh、zydh、人数,查询结果按系代号和专业代号升序排序。三、设计菜单(5分)项目TEST中已存在菜单MENUL,其中已定义了“文件”、“显示”和“记录定位”三个菜单栏,按如下要求修改菜单,完成后的运行效果如图1所示。1.为“文件”菜单栏下的“恢复系统菜单”设置快捷键“CTRL+R”。2.在“文件”菜单栏下插入系统菜单“打印预览”。3.在“记录定位”菜单栏下增加“第一条”和“最后一条”两个菜单项,增加位置如图1所示。4.为“记录定位”菜单栏下的“下一条”菜单项设置废止条件:EOF()。5.为“显示”菜单栏下的“浏览”菜单项设置命令:当执行该菜单项时,在浏览窗口中显示当前表的内容。图11989年春VFP02—第2页四、设计表单(10分)TEST项目中已经存在表单FORML,该表单用来查询学生成绩信息。根据下列要求修改表单,完成以后运行表单,效果如图2所示。1.分别设置Spinner1和Spinner2微调控件的有关属性,使单击向上箭头按钮时的最大值为100,单击向下箭头按钮时的最小值为0。2.设置Spinner1的默认值为60,Spinner2的默认值为100。3.用户按回车键,则使“查询”按钮得到焦点,并自动执行它的Click事件代码。4.使表格中的数据不可以更改,但能获得焦点。5.已知在表单的Load事件中已经建立一可读写的临时表CUR_CJ,且表单中Grid1的RecordSource属性已设置为该临时表。完善“查询”按钮的Click事件代码,使得当点击该按钮时表格中显示指定分数段的学生成绩清单。6.为“退出”按钮编制的相应代码,当点击该按钮时,关闭临时表CUR_CJ,同时关闭表单。图2五、程序改错(5分)下列程序的功能是:显示10000以内所有的回文数的个数及其平均值。所谓回文数是指左右数字完全对称的自然数。例如,11、121、1221等都是回文数。要求:1.项目中有一个程序文件PCODE,将下列程序输入到其中并进行修改。2.在修改程序时,不允许修改程序的总体框架和算法,不允许增加或减少语句数目。STORE0TOnCount,nSumFORn=11to10000c1=STR(n)c2=SPACE(0)FORm=1TOLEN(c1)c2=SUBSTR(c1,m,1)+c2ENDFORIFc1=c2nCount=nCount+1nSum=nSum+c1ENDIFENDFORWAITWINDOW回文数个数及其平均值分别为:+STR(nCount)+,+STR(nSum/nCount)1840年春VFP03—第1页江苏省高等学校非计算机专业学生计算机基础知识和应用能力等级考试上机试卷二级VisualFoxPro(试卷代号VFP03)(本试卷完成时间70分钟)说明:1.首先运行考试软盘中的“上机考试”应用程序以输入考生的准考证号、姓名和试卷代号;2.启动VisualFoxPro系统后,首先在命令窗口中执行命令:SETDEFAULTTOA:以设置默认的工作目录,然后再开始做题。一、项目、数据库和表操作(12分)打开软盘根目录下的项目文件TEST,在该项目中已有一数据库SJK。1.按如下要求修改SJK中课程(KC)表的结构:(1)设置课程代号(kcdh)字段的标题:课程代号。(2)设置kcdh字段的相关属性,使kcdh字段在输入数据时自动删除前导空格。(3)设置学分(xf)字段的显示类为微调控件。(4)增加一个备注型字段,字段名为kcjj。(5)创建一个普通索引xf,要求按xf字段降序排序,且仅对学分超过3的课程排序。(6)为KC表创建记录级有效性规则:课时数(kss)不能少于学分(xf)。2.修改KC表中所有记录的课程名(kcm)字段值,将各课程的kcdh值插入到课程名前面。3.彻底删除KC表中kcdh为“25”的记录。4.为了禁止向KC表中插入记录,设置KC表的相关触发器。5.KC表已存在主索引kcdh,索引表达式为kcdh,成绩(CJ)表已存在普通索引cjkcdh,索引表达式为kcdh。以KC表为主表,CJ表为子表,基于kcdh建立永久关系,并设置它们之间的参照完整性:更新级联。二、设计查询(8分)已知数据库SJK中含有视图BJST,视图中包含班级编号(bjbh)、系代号(xdh)、系名(ximing)、专业代号(zydh)和专业名称(zymc)字段,按如下要求修改TEST项目中的查询CHAXUN:基于BJST视图和学生(XS)表以系为单位,按籍贯(jg)统计各系各地学生的人数,要求输出字段为:ximing、jg、人数,查询结果首先按系名升序排序,同一个系再按人数降序排序。三、设计菜单(5分)项目TEST中已存在菜单MENUM,其中已定义了“文件”、“显示”和“表操作”三个菜单栏。按如下要求修改菜单,完成后的运行效果如图1所示。1.为“文件”下的“恢复系统菜单”设置快捷键“CTRL+R”。2.在“文件”菜单栏下插入系统菜单“