04春上机(40-55).doc_第1页
04春上机(40-55).doc_第2页
04春上机(40-55).doc_第3页
04春上机(40-55).doc_第4页
04春上机(40-55).doc_第5页
已阅读5页,还剩12页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

江苏省高等学校非计算机专业学生2004年(春)计算机基础知识和应用能力等级考试上机试卷二级Visual FoxPro (试卷代号 VFP01)(本试卷完成时间 70分钟)说明:1.首先运行考试软盘中的“上机考试”应用程序以输入考生的准考证号、姓名和试卷代号;2.启动Visual FoxPro系统后,首先在命令窗口中执行命令: SET DEALUT TO A:以设置默认的工作目录,然后再开始做题。一、 项目、数据库和表操作(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 为“记录定位”菜单栏下的“上一条”设置过程,要求当记录指针未指向文件头时,记录指针向上移动一条记录。图15 将下列代码加到菜单的适当位置,使运行该菜单时,首先执行此代码。代码如下:IF USED(”js”)SELECT jsELSEUSE jsENDIF四、 设计表单(10分)TEST项目中已存在表单FORMK,该表单用来查询需补考(成绩低于60分)的学生及其成绩情况,根据下列要求修改表单,完成以后运行表单,效果如图2、图3所示。1 表单运行时自动居中。2 根据列表框List1的RowSource属性值,来设置它的RowSourceType属性值。3 增加一页,它的标题为“补考成绩”。4 为表单编写Active事件代码,使得表单激活时调用List1的InterActiveChange事件代码(List1)的InterActiveChange事件代码的功能是:根据List1中选定的课程,将页框第1页中表格的RecordSource属性设置为一个SQL语句,该语句生成一个包含bjbh字段和补考人数的临时表cBkrstmp。5 完善页框第2页的Active事件代码:要求根据List1中选定的课程和页框第1页中选定的班级,在第2页的表格中显示指定课程和指定班级的补考学生清单。例如,第一页显示课程号为“01”的课程000403041班有8人补考,010405011班有1人补考,如图2所示。选定000403041班,然后点击第二页,此时第二页显示该班8隔学生的补考清单,如图3所示。图2 图3 五、 程序改错(5分)下列程序的功能是:对英文字符串进行加密处理。加密算法上一:将字符串中的第2、4、6、8(偶数位)个字符换成其“对称”字符(a与z对称,A与Z对称,b与y对称,B与Y对称,等等)。例如,字符串“ABcdEF ”加密后为“AYcwEU”。要求:1 项目中有一个程序文件PCODE,将下列程序输入到其中并进行修改。2 在修改程序时,不允许修改程序的总体框架和算法,不允许增加或减少语句数目。cString=”ABcdEF”cResult=SPACE(0)FOR n=1 TO LEN(cString)IF MOD(n,2)=0cResult= cResult+SUBSTR(cString,n,1)ELSEc=SUBSTR(cString,n,1)IF ISUPPER(c) & ISUPPER()函数的功能是判断一字符(串)是否为大写cResult= cResult+STR(25-(ASC(c)- ASC(“A”)+ ASC(“A”)ELSEcResult= cResult+STR(25-(ASC(c)- ASC(“a”)+ ASC(“a”)ENDIFENDIFENDFORWAIT WINDOW “字符串加密后为”+ cResult苏省高等学校非计算机专业学生2004年(春)计算机基础知识和应用能力等级考试上机试卷二级Visual FoxPro (试卷代号 VFP02)(本试卷完成时间 70分钟)说明:1.首先运行考试软盘中的“上机考试”应用程序以输入考生的准考证号、姓名和试卷代号;2.启动Visual FoxPro系统后,首先在命令窗口中执行命令: SET DEALUT TO A:以设置默认的工作目录,然后再开始做题。一、 项目、数据库和表操作(12分)打开软盘根目录下的项目文件TEST,在该项目中已有一数据库SJK。1 如下要求修改SJK中学生(XS)表的结构:(1) 设置学号(xh)字段的有关属性,使之至多能容纳10个字符。(2) 设置xh字段的相关属性,使xh字段在输入数据时自动删除前导空格。(3) 设置xh字段的字段注释:主关键字,不允许重复或空。(4) 删除zp字段。(5) 创建一候选索引xh,要求按学号(xh0字段升序排序,且仅对以“01”开头的学号排序。(6) 设置XS表的插入触发器:班级编号(bjbh)字段值不能为空字符串和Null值。2 将“A:GZB.DBF”文件添加为TEST项目中的自由表,并设置说明信息:工资表备份。3 彻底删除XS表中所有班级编号为“990403022”的记录。4 在数据库SJK的存储过程中创建自定义函数nto(),代码如下:PARAMETERS pDigit LOCAL cStringcString=”零一二三四五六七八九”return substr(cString, pDigit*2+1,2)5 如果成绩(CJ)表中存在某个学号的成绩记录,则不允许删除XS表中相同学号的学生记录,根据此要求设置这两个表之间的参照完整性。二、 设计查询(8分)已知班级(BJ)表中含有班级编号(bjbh)、系代号(xdh)和专业代号(zydh)字段,按如下要求修改TEST项目中的查询CHAXUN:基于班级(BJ)表和学生(XS)表,以系为单位统计各专业的人数,要求输出字段为:xdh、zydh、人数,查询结果按系代号和专业代号升序排序。三、 设计菜单(5分)图1项目TEST中已存在菜单MENUL,其中已定义了“文件”、“显示”和“记录定位”三个菜单栏,按如下要求修改菜单,完成后的运行效果如图1所示:1 为“文件”菜单栏下的“恢复系统菜单”设置快捷键“CTRL+R”。2 在“文件”菜单栏下插入系统菜单“打印预览”。3 在“记录定位”菜单栏下增加“第一条”和“最后一条”两个菜单项,增加位置如图1所示。4 为“记录定位”菜单栏下的“下一条”菜单项设置废止条件:EOF()。5 为“显示”菜单栏下的“浏览”菜单项设置命令:当执行菜单项时,在浏览窗口中显示当前表的内容。四、 设计表单(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 在修改程序时,不允许修改程序的总体框架和算法,不允许增加或减少语句数目。STORE 0 TO nCount,nSumFOR n=11 TO 10000c1=STR(n)c2=SPACE(0)FOR m=1 TO LEN(c1)c2=SUBSTR(c1,m,1)+c2ENDFORIF c1=c2nCount= nCount+1nSum= nSum+c1ENDIFENDFORWAIT WINDOW”回文数整个数及其平均值分别为:”+STR(nCount)+”,”+STR(nSum/ nCount)江苏省高等学校非计算机专业学生2004年(春)计算机基础知识和应用能力等级考试上机试卷二级Visual FoxPro (试卷代号 VFP03)(本试卷完成时间 70分钟)说明:1.首先运行考试软盘中的“上机考试”应用程序以输入考生的准考证号、姓名和试卷代号;2.启动Visual FoxPro系统后,首先在命令窗口中执行命令: SET DEALUT TO A:以设置默认的工作目录,然后再开始做题。一、 项目、数据库和表操作(12分)打开软盘根目录下的项目文件TEST,在该项目中已有一数据库SJK。3 按如下要求修改SJK中课程(KC)表的结构:(1) 设置课程代号(kcdh)字段的标题:课程代号(2) 设置kcdh字段的相关属性,使kcdh字段在输入数据时自动删除前导空格。(3) 设置学分(xf)字段的显示类为微调框控件。(4) 增加一个备注字段,字段名为kcjj。(5) 创建一个普通索引xf,要求按xf字段降序排序,且仅对学分超过3的课程排序。(6) 为KC表创建记录级有效性规则:课时数(kss)不能少于学分(xf)。4 修改KC表中所有记录的课程名(kcm)字段值,将各课程的kcdh值插入到课程名前面。5 彻底删除KC表中kcdh为“25”的记录。6 为了禁止向KC表中插入记录,设置KC表的相关触发器。7 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在“文件” 菜单栏下插入系统菜单“导出”。3为“表操作” 菜单栏下的“记录定位”菜单项图2设置子菜单,该子菜单包含四个菜单项“第一条”、“上一条”、“下一条”和“最后一条”。4为“表操作”菜单栏下的菜单项“增加记录”设置命令:当执行该菜单项时,在当前表文件中增加一个空白记录。5 为“显示” 菜单栏设置访问键“ALT+S”。四、 设计表单(10分)TEST项目中已存在表单FORMM,该表单用来进行学生补考成绩查询,根据下列要求修改表单,完成以后运行表单,效果如图2、图3所示。1 列表框List1中显示课程代号(kcdh)也课程名(kcm)两列内容。2 在List1的上方加一个标签,标签的Caption属性为“课程列表”。3 表单运行时,页框初始激活第一页。4 为List1编制Init事件代码,使得程序刚运行时光标停在List1的第一行上。5 完善List1的InterActiveChange事件代码:当选择不同的课程时,页框的第一页显示该课程的补考人数,第二页显示该课程补考学生清单。图2 图3 五、 程序改错(5分)下列程序的功能是验证命题:若一个三位数是37的倍数,则将这个三位数的三个数字循环移位得到的另两个三位数也是37的倍数(例如,148是37的倍数,481、814也是37的倍数)。要求:1 项目中有一个程序文件PCODE,将下列程序输入到其中并进行修改。2 在修改程序时,不允许修改程序的总体框架和算法,不允许增加或减少语句数目。lResult=.t.FOR n=1 TO 999IF MOD(N,37)#0c=ALLTRIM(STR(n)c1=LEFT(c,1)c2=SUBSTR(c,2,1)c3=RIGHT(c,1)IF MOD(VAL(c1+ c2+ c3),37)#0 OR MOD(VAL(c2+ c3+ c1),37)#0lResult=.f.RETURNENDIFENDIFENDFORWAIT WINDOW IIF(lResult,”命题成立”,”命题不成立”)江苏省高等学校非计算机专业学生2004年(春)计算机基础知识和应用能力等级考试上机试卷二级Visual FoxPro (试卷代号 VFP04)(本试卷完成时间 70分钟)说明:1.首先运行考试软盘中的“上机考试”应用程序以输入考生的准考证号、姓名和试卷代号;2.启动Visual FoxPro系统后,首先在命令窗口中执行命令: SET DEALUT TO A:以设置默认的工作目录,然后再开始做题。一、项目、数据库和表操作(12分)打开软盘根目录下的项目文件TEST,在该项目中已有一数据库SJK。1 如下要求修改SJK中课程(KC)表的结构:(1) 设置必修课(bxk)字段的默认值为逻辑真(.T.)(2) 设置课程代号(kcdh)字段的输入掩码:课程代号只能是四位数字字符。(3) 设置bxk字段的显示类为复选框。(4) 增加日期型字段,字段名为“开设日期”。(5) 为KC表添加注释:课程基本信息表。2 为KC表创建一个普通索引kcmlen,要求按照课程名(kcm)的实际长度(去掉前后空格以后的长度)从短到长排序。3 彻底删除KC表中课程名(kcm)为“英国语言文学”的记录。4 修改KC表中所有记录的课程名(kcm)字段的值,修改方法是:所有必修课(bxk字段值为.T.)的课程名前加字母“B”,所有非必修课的课程名前加字母“X”。5 设置KC表的有关触发器,使得当任课(RK)表和成绩(CJ)表同时打开不允许修改记录。6 KC表已存在主索引kcdh,索引表达式为kcdh,RK表已存在普通索引kcdh,索引表达式为kcdh,以KC表为主表,RK表为子表,基于kcdh建立永久关系,并设置它们之间的参照完整性:更新级联。二、设计查询(8分)在TEST项目中已存在查询CHAXUN,按如下要求修改查询:基于课程(KC)表和成绩(CJ)表查询尚未有成绩登记的那些课程,要求输出两个表的所有字段,相同的课程在查询结果中只出现一次,且按课程代号(kcdh)升序排序。(提示:使用“左联接”联接KC和CJ表,然后在结果中选出CJ表中kcdh字段为Null值的记录)三、设计菜单(5分)项目TEST中已存在菜单MENUM,其中已定义了“文件”、“课程管理”、“成绩管理”和“教师任课管理”四个菜单栏,按如下要求修改菜单,完成后的运行效果如图1所示:1 为“文件”菜单栏下的“恢复系统菜单”设置快捷键“CTRL+R”。2 在“文件”菜单栏下插入系统菜单“关闭”。图13 为“教师任课管理”菜单栏设置子菜单,该子菜单包括二个菜单项“教师任课录入”、“教师任课查询”,并用分隔线隔开。4 为“成绩管理”菜单栏下的菜单项“成绩查询”设置命令:当执行该菜单项时,运行当前目录下的表单文件FORML。5将“课程管理”菜单栏无条件启用。四、设计表单(10分)TEST项目中已经存在表单FORMN,该表单用来查询学生成绩。根据下列要求修改表单,完成以后运行表单,效果如图2所示。1 Spinner1和Spinner2由键盘输入时的最小值为0,最大值为100。2 Spinner1和Spinner2中的数值居中显示。3 “查询”按钮设置访问键“ALT+L”。4 表单运行时不能最大化。5 将表格的横向滚动条去掉。6 合法性要求:Spinner1的值要小于等于Spinner2的值。在Spinner2的Valid事件中校验该规则,当条件不合法时给出提示信息:“设定的查询范围不正确!”(如图3所示),并禁止焦点离开。根据此要求完善Spinner2的Valid事件代码。图3图2五、程序改错(5分)下列程序的功能是:显示1080之间的所有具有abcd=badc(ab,cd)特性的数。例如,1242=2124,1263=2136,等等。要求:1 项目中有一个程序文件PCODE,将下列程序输入到其中并进行修改。2 在修改程序时,不允许修改程序的总体框架和算法,不允许增加或减少语句数目。CLEARnCount=0FOR m=10 TO 80FOR n=m TO 80a=LEFT(ALLT(STR(m),1)b=RIGHT(ALLT(STR(m),1)c=LEFT(ALLT(STR(n),1)d=RIGHT(ALLT(STR(n),1)IF n*m=VAL(ba)*VAL(dc) AND a#b AND c#dnCount= nCount+1?”第”+ALLTRIM(STR(nCount)+”组数:”,m,nENDFENDFENDF江苏省高等学校非计算机专业学生2004年(春)计算机基础知识和应用能力等级考试上机试卷二级Visual FoxPro (试卷代号 VFP05)(本试卷完成时间 70分钟)说明:1.首先运行考试软盘中的“上机考试”应用程序以输入考生的准考证号、姓名和试卷代号;2.启动Visual FoxPro系统后,首先在命令窗口中执行命令: SET DEALUT TO A:以设置默认的工作目录,然后再开始做题。一、项目、数据库和表操作(12分)打开软盘根目录下的项目文件TEST,在该项目中已有一数据库SJK。1 按如下要求修改SJK中工资(GZ)表的结构:(1) 将应发工资(yfgz)字段的数据类型修改为货币型。(2) 设置工号(gh)字段的格式,使工号字段中的字母自动大写。(3) 增加货币型字段kk。(4) 创建一个普通索引recsort,按物理记录顺序的倒序排序,即记录号为1的记录排最后。(5) 为GZ表设置注释:工资信息表。2 在项目信息中为TEST项目附加图标文件“A:NET.ICO”。3 计算表GZ中所有教师的医疗保险(ylbx),计算方法是:医疗保险是基本工资(jbgz)的6%。4 设置GZ表的记录级有效性规则:医疗保险必须使基本工资(jbgz)的6%,该规则不对照已有的记录。5 设置GZ表的更新触发器,只有当JS表打开时才能更新GZ表中的数据。6 SJK中教师(JS)表已存在主索引jsgh,索引表达式为gh,GZ表已存在主索引gzgh1,索引表达式为gh。以JS表为主表,GZ表为子表,基本gh建立“一对一”的永久关系,并设置JS表和GZ表之间的参照完整性:删除限制。二、设计查询(8分)在成绩(CJ)表中插入成绩时,如果课程代号(kcdh)输入了课程(KC)表中所没有的课程代号,那么该学生的成绩就无效,CJ表中这样的记录称为“孤立记录”,通过查询可以查询出这些孤立记录。在TEST项目中已存在查询CHAXUN,按如下要求修改查询:基于课程(KC)表和成绩(CJ)表查询成绩表中的“孤立记录”,要求输出两个表的所有字段。相同的行在查询结果中只出现一次,且按学号(xh)升序排序。(提示:使用“右联接”联接KC和CJ表,然后在结果中选出KC表中kcdh字段为Nnll值的记录。)三、设计菜单(5分)项目TEST中已存在菜单MENUO,其中已定义了“文件”、“课程管理”、“成绩管理”和“教师任课管理”四个菜单栏,按如下要求修改菜单,完成后的运行效果如图1所示:1 在“文件”菜单栏下插入系统菜单“导出”。图12 为“成绩管理”菜单栏设置子菜单,该子菜单包括二个菜单项“学生成绩录入”、“学生成绩查询”,并用分隔线隔开。3 为“课程管理”菜单栏下的菜单项“课程代码录入”设置快捷键“CTRL+L”。4 为“课程管理”菜单栏下的菜单项“课程代码查询”设置SQL命令,当执行该菜单项时,在浏览窗口中显示课程(KC)表中所有记录的所有字段。5 废止“教师任课管理”菜单栏。四、设计表单(10分)TEST项目中已经存在表单FORM0,该表单用来查询教师工资信息。可以根据要查看的工资项目自动调整右边表格中显示的内容。根据下列要求修改表单,完成后运行表单,效果如图2所示:1 为Grid1的第2列Column中的对象Check设定标题为“选择”。2 为Grid1各列设置标题如图2所示。3 为Grid1中工号列和姓名列设置ControlSource属性,使得工号列和姓名列的内容分别与工资(GZ)表的工号、教师(JS)表的姓名相对应。4 表单的数据环境中已经添加了工资项目(XM)表,该表已有三各字段:项目名称(xmmc)、字段名称(fieldmc)和是否选择(isxz)。“项目名称”表示工资表中的工资项目,如基本工资,岗位津贴等,“字段名称”表示该项目名称对应GZ表中的哪个字段,如基本工资对应工资表只能感jbgz字段,“是否选择”表示该工资项目是否要在右边表格中显示,如为.T.,则显示,否则不显示。已知Grid1的RecordSource属性值为“XM”,第一列的ControlSource属性值为“xm.xmmc”,第二列ControlSource属性值为“xm.isxz”,Grid2中显示其工资项,否则不显示其工资项。5 完善表单的Resize事件代码,使得表单宽度变化时,Grid2的宽度与表单的宽度同步变化。图2五、程序改错(5分)下列程序的功能是:找出并显示一个四位数,它的9倍恰好是其反序数(反序数例:1234与4321互为反序数)。要求:7 项目中有一个程序文件PCODE,将下列程序输入到其中并进行修改。8 在修改程序时,不允许修改程序的总体框架和算法,不允许增加或减少语句数目。CLEARFOR n=1000 TO 9999a=SUBS(STR(n,4),1)b=SUBS(STR(n,4),2)c=SUBS(STR(n,4),3)d=SUBS(STR(n,4),4)IF n*9=d+c+b+a?nENDIFENDFOR江苏省高等学校非计算机专业学生2004年(春)计算机基础知识和应用能力等级考试上机试卷二级Visual FoxPro (试卷代号 VFP06)(本试卷完成时间 70分钟)说明:1.首先运行考试软盘中的“上机考试”应用程序以输入考生的准考证号、姓名和试卷代号;2.启动Visual FoxPro系统后,首先在命令窗口中执行命令: SET DEALUT TO A:以设置默认的工作目录,然后再开始做题。一、项目、数据库和表操作(12分)打开软盘根目录下的项目文件TEST,在该项目中已有一数据库SJK。1 将如下要求修改SJK中工资(GZ)表的结构:(1) 将实发工资(sfgz)字段的数据类型修改为货币型。(2) 设置工号(gh)字段的格式,使工号中的字母自动大写。(3) 删除yfgz字段。(4) 设置基本工资(jbgz)字段的有效性规则:基本工资在400元到1800元之间。(5) 创建一个普通索引recsort,按物理记录顺序的倒序排序,即记录号为1的记录排最后。(6) 为GZ表设置注释:教师工资表。2 在项目信息中为TEST项目附加图标文件“A:NET.ICO”。3 将GZ表中基本工资(jbgz)在1000元以上(包括1000元)记录的其他(qt字段清为零)。4 设置GZ表的删除触发器,只有当JS表打开时菜允许删除GZ表中的数据。5 JS表已存在主索引jsgh,索引表达式为gh,GZ表已存在主索引gzgh1,索引表达式为gh。以JS表为主表,GZ表为子表,基本gh建立永久关系,并设置参照完整性:删除限制。二、设计查询(8分)按如下要求修改TEST项目中的查询CHAXUN:为了检查工资(GZ)表中有没有遗漏某些教师,可以基于JS表和GZ表查询出在教师表中存在而在工资、表中不存在的那些教师记录,要求输出教师表的所有字段和工资表的工号(gh)字段,查询结果中相同的行只需出现一次,并按JS表的gh字段升序排序。(提示:使用“左联接”联接JS和GZ表,然后在结果中选出GZ.gh字段为Null值的记录)三、设计菜单(5分)项目TEST中已存在菜单MENUO,其中已定义了“文件”、“课程管理”、“成绩管理”和“教师任课管理”四个菜单栏,按如下要求修改菜单,完成后的运行效果如图1所示:1 为“文件”菜单栏下的“恢复系统菜单”设置快捷键“CTRL+R”。图12 为“课程管理”菜单栏下的“课程查询”菜单项设置子菜单,该子菜单包括二个菜单项“课程基本信息查询”、“学生选课查询”,并用分隔线隔开。3 为“成绩管理”菜单栏下的“成绩查询”菜单项设置命令,当执行该菜单项时,调用当前目录下的表单文件FORMQ。4 废止“教师任课管理” 菜单栏下的“教师基本情况查询”。5 将“CLEAR”命令添加到菜单的“清理”代码段中。四、设计表单(10分)TEST项目中已经存在表单FORMP,该表单用来统计教师基本工资的最高值、最低值和平均值。已知Grid1的RecordSource属性值为工资(GZ)表,工号列的ControlSource属性值为gz.gh,基本工资列的ControlSource属性值为gz.jbgz。当选择选项按钮组中的某一项时,在表单中Text1文本框内显示相应的统计值。根据下列要求修改表单,完成以后运行表单,效果如图2所示。1 为Grid1中“姓名”列设置ControlSource属性,使得该列的内容与教师表的姓名相对应。2 选项按钮的默认值为“最高值”。3 Text1可获得焦点但不可编辑其中的值。4 将“基本工资”列中的数据格式设置为:小数点向左每三位数字用逗号分隔,如图2所示。5 完善Op1的Click事件代码,使点击不同的选项按钮时,Text1中显示相应的统计值。6 在表单的Init事件中添加代码,该表单运行时Text1中显示教师基本工资的最高值。图2 五、程序改错(5分)有3个非零数字,用它们可以组合出6个不同的三位数,这些三位数的和是2886。如果将这3个数字按从大到小和从小到大的顺序依次排列成2个三位数,它们的差是396。下列程序的功能是找出并显示这3个数字。要求:1 项目中有一个程序文件PCODE,将下列程序输入到其中并进行修改。2 在修改程序时,不允许修改程序的总体框架和算法,不允许增加或减少语句数目。nCount=0FOR a=1 TO 9FOR b=a TO 9FOR c=b TO 9x=ALLT(STR(a)y=ALLT(STR(b)z=ALLT(STR(c)e=MAX(a,b,c)f=MIN(a,b,c)IF VAL(x+y+z) +VAL(x+z+y)+VAL(y+x+z)-VAL(y+z+x)+VAL(z+x+y);+VAL(z+y+x)=2886;OR VAL(e)*100+VAL(f)-VAL(f)*100-VAL(e)=396nCount= nCount+1?”第”+ALLT(STR(nCount)+“组数字为:”+x+”,”+y+”,”+zENDIFENDFORENDFORENDFOR江苏省高等学校非计算机专业学生2004年(春)计算机基础知识和应用能力等级考试上机试卷二级Visual FoxPro (试卷代号 VFP07)(本试卷完成时间 70分钟)说明:1.首先运行考试软盘中的“上机考试”应用程序以输入考生的准考证号、姓名和试卷代号;2.启动Visual FoxPro系统后,首先在命令窗口中执行命令: SET DEALUT TO A:以设置默认的工作目录,然后再开始做题。一、项目、数据库和表操作(12分)打开软盘根目录下的项目文件TEST,在该项目中已有一数据库SJK。1 按如下要求修改SJK中工资(JS)表的结构:(1) 设置gh字段的有关属性,使得JS表在浏览窗口中,gh列的列表头显示为:工号。(2) 设置gh字段的有关属性,使gh字段中的字母以大写形式显示。(3) 设置xb的显示类为选项按钮组。(4) 设置xb字段允许输入空值Null。(5) 创建一个普通索引,索引名为ghxb,要求按gh字段的首字符和性别(xb)升序排序。2 把软盘根目录中的程序文件main.prg添加到TEST项目中的适当位置,并将该文件设置为项目的主文件。3 在JS表中更改所有教师记录的简历(jl),修改方法为:将gzrq转化为字符串,然后在字符串的前面加上“工作日期:”,且不管原来日期是哪一种显示格式,转化后的字符串格式都为yyyymmdd。如gzrq字段值为08/09/70,则更改以后该记录简历字段的值为“工作日期:19700809”。4 逻辑删除自由表GZC中工号(gh)首字母不是“F”的记录。5 为JS 表设置更新触发器:GZ表打开时不允许更新数据。6 JS表已存在主索引jsgh,索引表达式为gh,RK表已存在普通索引rkgh,索引表达式为gh。以JS表为主表,RK表为子表,基于gh建立永久关系,并设置JS表和RK表之间的参照完整性:插入限制。二、设计查询(8分)在TEST项目中已存在查询CHZXUN,按如下要求修改查询:为了检查工资(GZ)表中有没有输入错误的工号(gh),可以基本教师(JS)表和GZ表查询出在GZ表中存在而在JS表中不存在的那些记录,要求输出JS表的gh字段和GZ表的所有字段,查询结果中相同行只需出现一次,并按GZ表的gh字段升序排序。(提示:使用“右联接”联接JS和GZ表,然后在结果中选出JS表中gh字段为Null值的记录)三、设计菜单(5分)项目中已存在菜单MENUQ,其中已定义了“文件”、“显示”和“表操作”三个菜单栏,按如下要求修改菜单,完成后运行效果如图1所示。1 在“文件”菜单栏下增加一个菜单项“恢复系统菜单”,并为它设置命令: set sysmenu to default。图12 将下列代码加到菜单的适当位置,使得菜单执行时先执行该段代码。IF USED(”gzb”)SELECT gzbELSEUSE gzbENDIF3 为“显示”菜单栏下的“编辑”菜单项设置命令:EDIT,当执行该菜单项时,以编辑方式显示工资表(GZB)中的记录。4 为“表操作”菜单栏设置子菜单,该子菜单包括“追加记录”和“删除记录”二个菜单项,5 废止“删除记录”菜单项。四、设计表单(10分)TEST项目中已存在表单FORMQ,该表单用来查询和录入学生成绩。在下拉组合框中选择一个学号后,在表格中录入该学生的所有成绩。根据下列要求修改表单,完成以后运行表单,效果如图2所示。1 在表格Grid1的“课程号”列后加一列,该列的标题为“课程名”,并将ControlSource属性设置为课程表(KC)的课程名(kcm)字段。2 表单的标题为“学生成绩录入”。3 修改下拉组合框的有关属性,使其展开时能显示学号和姓名两列内容。4 编写下拉组合框Init事件代码,使表单刚运行时,它的值为下拉列表只能感的第一行。5 表单中已添加了新方法AddNew,该方法用来向成绩(CJ)表中增加了一条记录。为“新增”按钮编制Click事件代码,当点击该按钮时,调用表单的AddNew方法。图2五、程序改错(5分)下列程序的功能时:对密码组进行译码。密码组是若干个用数字8分隔的八进制数组成的字符串,每个八进制数所对应的十进制是一个字符的ASCII码。例如:“126810681208”译码后显示为“VFP”。要求:3 项目中有一个程序文件PCODE,将下列程序输入到其中并进行修改。4 在修改程序时,不允许修改程序的总体框架和算法,不允许增加或减少语句数目。cString=”126810681208”cResult=SPACE(0)DO WHILE LEN(cString)0m=AT(“8”, cString)cTemp=SUBSTR(cString,1,m)cString=SUBSTR(cString,m+1)x=0FOR n=1 TO LEN(cTemp)x=x*8+VAL(SUBSTR(cTemp,n,1)ENDFORcResult=cResult+ASC(x)ENDDOWAIT WINDOW”译码后为:”+ cResult江苏省高等学校非计算机专业学生2004年(春)计算机基础知识和应用能力等级考试上机试卷二级Visual FoxPro (试卷代号 VFP08)(本试卷完成时间 70分钟)说明:1.首先运行考试软盘中的“上机考试”应用程序以输入考生的准考证号、姓名和试卷代号;2.启动Visual FoxPro系统后,首先在命令窗口中执行命令: SET DEALUT TO A:以设置默认的工作目录,然后再开始做题。一、项目、数据库和表操作(12分)打开软盘根目录下的项目文件TEST,在该项目中已有一数据库SJK。1 按如下要求修改SJK中工资(JS)表的结构:(1) 设置xm字段的有关属性,使得JS表在浏览窗口中,xm列的列表头显示为:姓名。(2) 设置性别(xb)字段的有效性规则:xb取值只能是“男”或“女”或Null值。(3) 设置xb字段允许输入空值(Null)。(4) 将xb的默认值设置为空值(N

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

最新文档

评论

0/150

提交评论