2011春机试试卷及参考答案.doc_第1页
2011春机试试卷及参考答案.doc_第2页
2011春机试试卷及参考答案.doc_第3页
2011春机试试卷及参考答案.doc_第4页
2011春机试试卷及参考答案.doc_第5页
已阅读5页,还剩13页未读 继续免费阅读

下载本文档

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

文档简介

2011年春江苏省计算机等级考试试卷(二级VFP机试)2011年春VFP01一、项目、数据库和表操作(12分)打开T盘根目录中的项目文件JXGL,在该项目中已有一数据库JXSJ。1在JXSJ数据库中按如下表格中所示的结构创建AB.DBF表,并按表格中的要求设置相关属性。字段名数据类型宽度字段标题RQD日期PMC20品名DWC10单位DJN5(小数1位单价(1) 设置表的注释:蔬菜批发价格表;(2) 设置RQ字段的默认值:当前系统日期;(3) 设置单位字段的显示类:选项按钮组;(4) 设置表的更新触发器:日期字段的值等于当前系统日期时可以更新记录;(5) 创建普通索引,索引名为abcd,要求按日期排序,日期相同时按单价排序。2在AB表中输入如下记录:RQPMDWDJ2010-515青菜公斤2.43为项目设置项目信息:项目的图标为PC.ICO文件。4KC表已存在主索引KCDM,索引表达式为KCDM;CJ表已存在普通索引KCDM,索引表达式为KCDM。以KC表为主表、CJ表为子表,根据KCDM建立永久关系,并设置两表之间的参照完整性:删除级联、插入限制。二、设计查询(8分) 已知自由表图书表(TSB)含有分类号(FLH,C)、册数(CS,C)、价格(JG,N)等字段。按如下要求修改JXGL项目中的查询CHAXUN:基于TSB表查询图书类别、藏书册数等信息。要求:查询输出字段为图书类别、藏书册数和平均单价;查询结果按藏书册数降序排序,相同时按平均单价升序排序;输出去向为文本文件TEMP。注:图书类别为FLH中“.”前的内容(可用LEFT(,AT(“.”,))形式的表达式求得),藏书册数为同一图书类别册数之和。三、设计菜单(5分)图1 JXGL项目中已存在菜单MENU,其中已定义了“文件”菜单栏及其中的“退出菜单”项。按如下要求设计菜单,完成后的运行效果如图1所示。1在“文件”菜单栏右侧创建“图书管理系统”菜单栏。2为“图书管理系统”菜单栏创建子菜单“预约”、“借书”和“还书”。3在菜单项“预约”、“借书”和“还书”之间插入分组线。4为“借书”菜单项设置命令代码:DO FORM js。5在“文件”菜单栏下插入系统菜单“全部关闭”。四、设计表单(10分)表单F102F用于按小组查看世界杯球队信息。按下列要求修改表单,修改后表单运行时如图2所示。1 设置表格Grid1的数据只读,无滚动条,删除“组别”列。2 在“组别”标签下方添加一个列表框控件List1(用来选择组别),设置其数据源类型为“3-SQL语句”,数据源为“SELECT DIST 组别 FROM fifa INTO CURSOR tmp”。3 编写表单的Load事件代码,实现:定义一个全局变量sGroup,并赋初值为字符“A”。图24 世界杯球队信息存储在自由表fifa中,表结构如下:组别(C,1)、编号(C,1)、国旗(G)、国家(C,12)、简介(M),且fifa表已添加在表单的数据环境中。编写List1的InterActiveChange事件代码,实现:(1)将List1中当前选定的值赋给变量sGroup,并对当前数据工作区中的fifa表设置筛选条件:按sGroup变量中的值对“组别”字段进行记录筛选;(2)将记录指针指向首行记录,并刷新表单。五、程序改错(5分) 回文数是指正读和反读都是一样的数,例如1001、1221等。下列程序的功能是:求出大于1000小于2000的所有回文数,并将它们打印出来(每行打印5个数,最后一行打印总个数)。要求: 将下列程序输入到项目中的程序文件PCODE中,并对其中的2条错误语句进行修改: 在修改程序时,不允许修改程序的总体框架和算法,不允许增加或减少语句数目。STORE 0 TO n,n1,n2FOR i=1000 TO 2000s=ALLT(STR(i)n1=LEN(s)n2=INT(n1/2)s1=FOR j=1 TO n2s1=s1+RIGHT(s,1)s=LEN(s,n1-1)ENDFORIF LEFT(s,n1)=s1n=n+1?iIF INT(n/5)=n/5?ENDIFENDFORENDFOR?小于2000的回文数共+STR(n)+个2011年春VFP02一、项目、数据库和表操作(12分) 打开T盘根目录中的项目文件JXGL,在该项目中已有一数据库JXSJ。1 在JXSJ数据库中按如下表格中所示的结构创建AB表,并按表格中的要求设置相关属性。字段名数据类型宽度字段标题RQD日期QCPHC8汽车牌号DDC20地点TPG图片 (1)设置AB表的表注释:汽车违停记录; (2)设置日期字段的默认值:当前系统日期减1; (3)设置地点字段的显示类:列表框;(4)设置汽车牌号字段的有效性规则:不能为空;(5)创建普通索引,索引名为abcd,要求按地点排序,相同时根据汽车牌号排序。2 在AB表中输入如下记录:RQQCPHDD(默认值)苏A88888世纪广场 3修改JC表数据:所有记录的单价字段的值取整。 4JS表已存在主索引GH,索引表达式为GH;KCAP表已存在普通索引GH,索引表达式为GH。以JS表为主表、KCAP表为子表,根据GH建立永久关系,并设置两表之间的参照完整性:更新级联、插入限制。二、设计查询(8分) 已知学生表(XS)含有学号(xh,C)、姓名(xm,C)等字段;自由表图书借阅表(JYB)含有读者号(dzh,C)、分类号(flh,C)、借阅日期(jyrq,D)和还书日期(hsrq,D)等字段,其中学生的读者号与学号相同。按如下要求修改JXGL项目中的查询CHAXUN:基于XS表和JYB查询学生借书情况,计算过期罚款信息。要求:查询输出字段为dzh、xm、罚款;查询结果按罚款额降序排序;输出去向为文本文件TEMP。注:罚款计算方法为30天以上超过部分每本每天0.05元,未还书者(即还书日期为空的记录)不统计。三、设计菜单(5分) JXGL项目中已存在菜单MENU,其中已定义了“文件”菜单栏及其中的“退出菜单”项。按如下要求设计菜单,完成后的运行效果如图1所示。1在“文件”菜单栏右侧创建“成绩管理”菜单栏; 2在“成绩管理”菜单栏下创建子菜单“查询”和插入系统菜单“导出(E)”菜单项;图13为“查询”菜单项设置命令:SELECT * FROM cj4为“导出”菜单项设置跳过条件:CJ表打开时才可操作(启用);5在菜单项“查询”和“导出”之间插入分组线。四、设计表单(10分) 表单F101C用于数据的录入。按下列要求修改表单,修改后表单运行时如图2所示。1设置文本框控件的输入掩码,使其只能接受四位数字,不允许输入字母、汉字或其他字符,并设置文本框中的数字以粗体显示。2在表单的空白区域添加一个复选框控件Check1(如图所示),设置其标题为“自动排序”,值为逻辑假(.F.),并设置有关属性使其能自动调整大小。3若复选框Check1被选中,表示列表框List1中的项自动排序,否则不自动排序。编写Check1的Click事件代码,根据Check1的值,用一条语句设置列表控件List1的自动排序属性(Sorted)。4编写“清除”按钮的Click事件代码,用2条语句实现如下功能:将列表框List1的所有数据项清空,将文本框Text1的值置零。五、程序改错(5分)我国古代数学家张丘建在算经一书中曾提出著名的“百钱买百鸡”问题,该问题是:1只公鸡5元、1只母鸡3元、3只仔鸡1元,若用100元恰好买100只鸡,则公鸡、母鸡和仔鸡各多少只?修改下列程序以解决上述问题,要求:将下列程序输入到项目中的程序文件PCODE中,并对其中的2条错误语句进行修改: 在修改程序时,不允许修改程序的总体框架和算法,不允许增加或减少语句数目。CLEARcString=FOR i=0 TO 100/5FOR j=0 TO 100/3FOR k=0 TO 3*100IF accord(i,j,k)=1cString=公鸡:+ALLT(STR(i)+只,母鸡:+ALLT(STR(j);+只,小鸡:+ALLT(STR(k)+只?cStringENDIFENDFORENDIFENDFORFUNCTION accordPARA i,j,kIF 5*i+3*j+k/3=100 OR i+j+k=100RETURN 1ELSERETURN 0ENDIFENDFUNC2010年秋VFP03一、项目、数据库和表操作(12分) 打开T盘根目录中的项目文件JXGL,在该项目中已有一数据库JXSJ。1 在JXSJ数据库中按如下表格中所示的结构创建AB表,并按表格中的要求设置相关属性。字段名数据类型宽度字段标题RQD日期DWC20报销单位XMC20开支项目JEN6(小数位1)金额 (1)设置AB表的表注释:账目登记; (2)设置日期字段的默认值:系统当前日期; (3)设置报销单位字段的显示类:列表框;(4)设置日期字段的有效性规则:不能为星期六和星期日(提示:使用DOW()函数);(5)创建普通索引,索引名为abcd,要求按报销单位排序,相同时根据日期排序。2在AB表中输入如下记录:RQDWXMJE(系统当前日期)数学系机动费2345.6 3将DMB中类型(LX)为“文化程度”的记录复制到新的表中(表名为WHCDB)。 4XS表已存在主索引XH,索引表达式为XH;CJ表已存在普通索引XH,索引表达式为XH。以XS表为主表、CJ表为子表,根据XH建立永久关系,并设置两表之间的参照完整性:更新限制、插入限制、删除级联。二、设计查询(8分) 已知教师表(JS)含有工号(gh,C)、院系专业代码(yxzydm,C)等字段;自由表工资表(GZB)含有工号(gh,C)、基本工资(jbgz,N)、岗位津贴(gwjt,N)、综合津贴(zhjt,N)、住房补贴(zfbt,N)等字段。按如下要求修改JXGL项目中的查询CHAXUN:基于JS表和GZB查询各院系专业教师人数和应发工资总额。要求:查询输出字段为yxzydm、人数、应发工资总额;查询结果按应发工资总额降序排序,且仅输出应发工资总额最多的前三个院系专业;输出去向为表文件TEMP。注:应发工资总额=jbgz+gwjt+zhjt+zfbt。三、设计菜单(5分) JXGL项目中已存在菜单MENU,其中已定义了“文件”菜单栏及其中的“退出菜单”项。按如下要求设计菜单,菜单运行后的效果如图1所示。1在“文件”菜单栏右侧创建“数据库”菜单栏; 图12在“数据库”菜单栏下创建子菜单“浏览文件”;3为“浏览文件”菜单项设置快捷键“CTRL+D”;4在“数据库”菜单栏下插入系统菜单“打开”和系统菜单“关闭”;5为“浏览文件”菜单项设置命令代码: DIR *.dbc。四、设计表单(10分) 表单F101G用于实现用户登录。按下列要求修改表单,修改后表单运行时如图2所示。1设置文本框Text1的相关属性,使其最多能输入6个字符,且文本居中显示;设置文本框Text2的密码占位符为“*”。2创建一个包含当前表单的表单集FormSet1,然后在该表单集中添加一个新表单Form2,并设置Form2的有关属性,使其在初始运行时隐藏。图23为了使文本框Text1输入的字符数不少于4,可通过其Valid事件进行检验。编写其Valid事件代码,要求:当Text1中字符数小于4时返回.F.(表示验证不通过,焦点不会离开)。4修改“登录”按钮的Click事件代码,实现如下功能:如果文本框Text1中输入的用户名为“admin”且Text2中输入的密码为“123456”,则显示Form2表单,同时关闭Form1表单。五、程序改错(5分)回文数是指正读和反读都一样的数,例如121、1001、1221等。下列程序的功能是:求出小于2000的所有回文数,并将它打印出来(每行打印5个数,最后一行打印总个数)。要求:将下列程序输入到项目中的程序文件PCODE中,并对其中的2条错误语句进行修改: 在修改程序时,不允许修改程序的总体框架和算法,不允许增加或减少语句数目。STORE 0 TO n,n1,n2FOR i=1 TO 2000s=ALLT(STR(i)n1=LEN(s)n2=INT(n1/2)istrue=.T.FOR j=1 TO n2IF SUBSTR(s,j,1)=SUBSTR(s,n1-j+1,1)istrue=.F.EXITENDIFELSEIF istruen=n+1?iIF INT(n/5)=n/5?ENDIFENDIFENDFOR?小于2000的回文数共+STR(n)+个2010年秋VFP04一、项目、数据库和表操作(12分)打开T盘根目录中的项目文件JXGL,在该项目中已有一数据库JXSJ。1在JXSJ数据库中按如下表格中所示的结构创建AB表,并按表格中的要求设置相关属性。字段名数据类型宽度字段标题RQD日期DDC20地点QCPHC8汽车牌号CSN3车速 (1)设置AB表的表注释:汽车超速记录; (2)设置日期字段的默认值:当前系统日期; (3)设置地点字段的显示类:列表框;(4)设置车速字段的有效性规则:大于120或小于60;(5)创建普通索引,索引名为abcd,要求根据地点排序,相同时根据车速排序。2在AB表中输入如下记录:RQDDQCPHCS(默认值)沪宁高速镇江段苏A88888142 3修改JC表数据:所有记录的单价字段的值增加10%。 4JS表已存在主索引GH,索引表达式为GH;KCAP表已存在普通索引GH,索引表达式为GH。以JS表为主表、KCAP表为子表,根据GH建立永久关系,并设置两表之间的参照完整性:更新级联、插入限制。二、设计查询(8分) 已知教师表(JS)含有工号(gh,C)、院系专业代码(yxzydm,C)等字段;自由表图书借阅表(JYB)含有读者号(dzh,C)、借阅日期(jyrq, D)、还书日期(gwjt, D)等字段,教师的读者号与工号相同。按如下要求修改JXGL项目中的查询CHAXUN:基于JS表和JYB查询各院系专业借书情况。要求:查询输出字段为yxzydm、借书本数、未还本数、最大借阅天数;查询结果按最大借阅天数降序排序;输出去向为临时表TEMP。注:借阅天数为hsrq与jyrq之差,未还的图书按当前系统日期计算借阅天数。三、设计菜单(5分) JXGL项目中已存在菜单MENU,其中已定义了“文件”菜单栏及其中的“退出菜单”项。按如下要求设计菜单,菜单运行后的效果如图1所示。1在“文件”菜单栏右侧创建“数据管理”菜单栏; 2在“数据管理”菜单栏下创建子菜单“教师”和“学生”;图13为“教师”菜单项设置跳过条件:JS表打开时菜单项才可操作(启用);4在“教师”菜单项创建子菜单“浏览”、“复制”,并且插入分组线;5为“复制”菜单项设置命令代码: COPY TO bfjs。四、设计表单(10分) 表单F101D用于实现系列数据的录入。按下列要求修改表单,修改后表单运行时如图2所示。1设置列表框控件List1的列数为2列,并设置2列的宽度分别为30和60。2在表单的空白区域添加一个微调框控件Spinner1(如图2所示),用来控制列表框中数据的最大行数。设置其初值为5,微调可达最小值为5、最大值为50。3在“添加”按钮的Click事件代码中增加一条语句,要求实现在向列表框中添加一行新的数据后,在该行的第二列显示行号,且行号显示宽度为2个字符。图24将“添加”按钮的Click事件的所有代码放入一个IF ENDIF语句结构中,要求根据微调框控件的值来控制向列表框中添加数据,即如果列表框中的数据行数已经达到Spinner1的值,则用MESSAGEBOX()函数给出提示“已经达到最大行数,不能添加!”,否则执行原来的所有代码。五、程序改错(5分)有红、黄、绿三种颜色的球,其中红球3个,黄球3个,绿球6个,现将这12个球混放在一个盒子中,从中任意摸出m个球,问会出现多少种不同情况?下列程序的功能是解决上述问题。要求:将下列程序输入到项目中的程序文件PCODE中,并对其中的2条错误语句进行修改: 在修改程序时,不允许修改程序的总体框架和算法,不允许增加或减少语句数目。CLEARFOR m=1 TO 12?任意取+ALLT(STR(m)+球的取法有+ALLT(STR(solutionCount(m)+种ENDFORFUNCTION solutionCount()PARA iNumsumNUm=0FOR i=0 TO 3FOR j=0 TO 3FOR k=0 TO 6IF i+j+k=12sumNum=sumNum+1ENDIFENDFORENDFORENDFOREXIT sumNumENDFUNC2010年秋VFP05一、项目、数据库和表操作(12分)打开T盘根目录中的项目文件JXGL,在该项目中已有一数据库JXSJ。1在JXSJ数据库中按如下表格中所示的结构创建AB表,并按表格中的要求设置相关属性。字段名数据类型宽度字段标题HMC11手机号码TKST通话开始时间TJST通话结束时间LXC8通话类型 (1)设置AB表的表注释:通话记录; (2)设置通话开始时间字段的默认值:当前系统日期与时间; (3)设置通话类型字段的显示类:选项按钮组;(4)设置记录有效性规则:通话结束时间大于通话开始时间;(5)创建普通索引,索引名为abcd,要求按手机号码排序,相同时按通话类型排序。2在AB表中输入如下记录:HMTKSTJSL系统当前日期与时间)(考生自定)本地呼叫 3为JC表增加一个字段名为NDJ、类型为数值型、宽度为2的字段,并计算该字段的值:NDJ字段的值为单价(DJ)字段值的70%,小数部分四舍五入。 4XS表已存在主索引XH,索引表达式为XH;CJ表已存在普通索引XH,索引表达式为XH。以JS表为主表、CJ表为子表,根据XH建立永久关系,并设置两表之间的参照完整性:更新级联、插入级联。二、设计查询(8分) 已知学生表(XS)含有学号(xh,C)、院系专业代码(yxzydm,C)等字段;自由表图书借阅表(JYB)含有读者号(dzh,C)、借阅日期(jyrq, D)、还书日期(gwjt, D)等字段,学生的读者号与学号相同。按如下要求修改JXGL项目中的查询CHAXUN:基于XS表和JYB表查询各院系专业借书情况。要求:查询输出字段为yxzydm、借书本数、未还本数、最大借阅天数;查询结果按最大借阅天数降序排序;输出去向为临时表TEMP。注:借阅天数为hsrq与jyrq之差,未还的图书按当前系统日期计算借阅天数。三、设计菜单(5分) JXGL项目中已存在菜单MENU,其中已定义了“文件”菜单栏及其中的“退出菜单”项。按如下要求设计菜单,菜单运行后的效果如图1所示。1在“文件”菜单栏右侧创建“图书管理系统”菜单栏; 图12在“图书管理系统”菜单栏下创建子菜单“采购”、“流通”和“统计”;3为“流通”菜单项创建子菜单“读者”、“借阅”和“还书”;;4在“流通”菜单项设置快捷键“CTRL+L”;5为“借阅”设置提示信息: “每本书一次借阅不能超过30天”。四、设计表单(10分) 表单F101E用于实现对汉字文本加密。按下列要求修改表单,修改后表单运行时如图2所示。1设置表单边框类型为“固定对话框。表单已创建了一个方法程序Encrypt,其功能是对给定的汉字字符串进行加密,并返回密文字符串,设置该方法的说明文本:“汉字字符串加密”。2设置编辑框控件的Edit的有关属性,使其最多只能输入20个汉字。设置编辑框控件Edit2的有关属性,使其内容不可修改,但可获得焦点。图23在表单空白区域添加一个命令按钮Command1,设置其标题为“清空”(如图2所示),并编写该按钮的Click事件代码,要求实现清空两个编辑框中的文本。4为了确保编辑框控件Edit1只能输入汉字,可在该控件的KeyPress事件发生时(即按键时),对字符的键值(nKeyCode)进行检查,如果键值小于127,则取消按键操作(用CANCEL命令)。编写Edit1控件的KeyPress事件代码,实现上述功能。五、程序改错(5分)15个男生和15个女生(共30人)围成一圆圈,从第一个人开始依次报数,每数到第九个人就出列,如此循环直到仅余15人为止。问怎样排法才能使每次出列的人均是女生?下列程序给出的排法可以使得每次出列的人均是女生(程序中数组a(30)表示30个人,数组元素的值为“1”表示男生、“0”表示女生)。要求:将下列程序输入到项目中的程序文件PCODE中,并对其中的2条错误语句进行修改: 在修改程序时,不允许修改程序的总体框架和算法,不允许增加或减少语句数目。CLEARDIME a(30)a=1STORE 0 TO i,j,mDO WHILE m15DO WHILE .T.i=IIF(i+1=31,1,i+1)IF a(i)=0j=j+1ENDIFIF j=9a(i)=0m=m+1j=0LOOPENDIFENDDOENDDOFOR i=1 TO 30?a(i)ENDFOR2010年秋VFP06一、项目、数据库和表操作(12分)打开T盘根目录中的项目文件JXGL,在该项目中已有一数据库JXSJ。1在JXSJ数据库中按如下表格中所示的结构创建AB表,并按表格中的要求设置相关属性。字段名数据类型宽度字段标题ZKZC10准考证号码XMC12姓名BSCJN2笔试成绩SJCJN2机试成绩QKL是否缺考 (1)设置AB表的表注释:考生成绩; (2)设置是否缺考字段的默认值:.F.; (3)设置是否缺考字段的显示类:复选框;(4)设置笔试成绩字段的有效性规则:大于或等于0,且小于或等于60;(5)创建普通索引,索引名为abcd,要求按笔试成绩与上机成绩之和排序。2在AB表中输入如下记录:ZKZXMBSCJSJCJQK1110520111李小4228.F. 3将DMB表中类型(LX)为“民族”的记录复制到新的表中(表名为MZB)。 4XS表已存在主索引XH,索引表达式为XH;CJ表已存在普通索引XH,索引表达式为XH。以XS表为主表、CJ表为子表,根据XH建立永久关系,并设置两表之间的参照完整性:更新限制、删除级联。二、设计查询(8分) 已知教师表(JS)中含有姓名(xm,C)和出生日期(csrq, D)等字段。按如下要求修改JXGL项目中的查询CHAXUN:基于JS表查询统计教师生日信息。要求:查询输出字段为姓名、年龄、生日信息;查询结果仅输出年龄为5的整数倍的记录;输出结果按年龄降序排序,年龄相同时按生日信息排序(生日信息用月日表示,可用MONTH()和DAY()从出生日期中求得)。三、设计菜单(5分) JXGL项目中已存在菜单MENU,其中已定义了“文件”菜单栏及其中的“退出菜单”项。按如下要求设计菜单,菜单运行后的效果如图1所示。1在“文件”菜单栏下插入系统菜单“打开”; 2在“文件”菜单栏右侧创建“工资处理”菜单栏;3为“工资处理”菜单创建子菜单“基本工资”、“住房补贴”和“住房公积金”,并且插入分组线;图14在“基本工资”菜单项设置命令:SELECT gh, jbgz FROM gzb ORDER BY 2 DESC5为“基本工资”菜单项设置访问键“B”。四、设计表单(10分) 表单F101F用于实现对汉字文本加密。按下列要求修改表单,修改后表单运行时如图2所示。1在“加密”按钮的左侧添加一个标签控件Label3和一个组合框控件Combo1。设置标签的标题为“加密方式”;设置组合框的样式为“下拉列表框”,数据源类型为“值”,数据源为“方式1,方式2”。2编写组合框Combo1的Init事件代码,要求只用一条语句实现:在表单运行后,默认选中“方式2”(即该控件的ListIndex属性值取2)。图23表单已创建了用于加密的方法程序:Encrypt(enType,SourceStr),其中enType参数表示加密方式,可取整数值1或2;SourceStr参数表示需要加密的原文,返回值为密文字符串。修改“加密”按钮的Click事件代码,以实现:根据组合框控件Combo1当前选定的加密方式,对Edit1控件中的原文加密,并将密文显示在Edit2控件中,要求只在原代码上修改,不允许增加新的语句。提示:enType参数可取Combo1当前选定的索引号(ListIndex).五、程序改错(5分)下列程序的功能是:求一个4位整数ABCD和一个1位整数E(1除外),它们的乘积等于DCBA,如2178*4=8712。要求:将下列程序输入到项目中的程序文件PCODE中,并对其中的2条错误语句进行修改: 在修改程序时,不允许修改程序的总体框架和算法,不允许增加或减少语句数目。CLEARDIME n(4),m(4)FOR i=1000 TO 9999FOR j=1 TO 4n(j)=SUBS(ALLT(STR(i),j,1)ENDFORFOR k=2 TO 9s=i*jIF s=9999FOR p=1 TO 4m(p)=SUBS(ALLT(CHR(s),p,1)ENDFORIF m(4)=n(1) AND m(3)=n(2) AND m(2)=n(3) AND m(1)=n(4)?i,kENDIFENDIFENDFORENDFOR2010年秋VFP07一、项目、数据库和表操作(12分)打开T盘根目录中的项目文件JXGL,在该项目中已有一数据库JXSJ。1在JXSJ数据库中按如下表格中所示的结构创建AB表,并按表格中的要求设置相关属性。字段名数据类型宽度字段标题RQD日期CGMCC20场馆名称CGRSN6参观人数 (1)设置AB表的表注释:世博会各场馆参观人数; (2)设置日期字段的默认值:当前系统日期; (3)设置场馆名称字段的显示类:列表框;(4)设置参观人数字段的有效性规则:参观人数小于50000;(5)创建普通索引,索引名为abcd,要求按场馆名称排序,相同时根据参观人数排序。2在AB表中输入如下记录:RQCGMCCGRS(默认值)中国馆38808 3为KC表中学分为5和6的所有记录均加注删除标记。 4JS表已存在主索引GH,索引表达式为GH;KCAP表已存在普通索引GH,索引表达式为GH。以JS表为主表、KCAP表为子表,根据GH建立永久关系,并设置两表之间的参照完整性:更新限制、删除级联。二、设计查询(8分) 已知课程安排表(KCAP)是用来存储每学期各班教学课程安排信息的表,含有学期编码(xqbm,C)、班级编号(bjbh,C)、课程代码(kcdm,C)和教师工号(gh,C)等字段;课程表(KC)中含有课程代码(kcdm,C)和课时数(kss,N)等字段。按如下要求修改JXGL项目中的查询CHAXUN:基于KCAP表和KC表查询每个教师每学期各门课程的任课班级数、课时数。要求:输出字段为gh、xqbm、kcdm、班级数、课时数;查询结果按gh排序;输出去向为表文件TEMP。三、设计菜单(5分) JXGL项目中已存在菜单MENU,其中已定义了“文件”菜单栏及其中的“退出菜单”项。按如下要求设计菜单,菜单运行后的效果如图1所示。1在“文件”菜单栏右侧创建“数据管理”菜单栏; 2在“数据管理”菜单栏创建子菜单“数据查询”、“备份”和“数据打印”;3为“数据打印”菜单项创建子菜单“课程表”、“教师表”和“教材表”;;图14在菜单项“课程表”、“教师表”和“教材表”之间插入分组线; 5为“教师表”设置过程代码: USE jsLIST TO PRINT四、设计表单(10分) 表单F101B用于实现自动统计输入文本中各类字符的个数。按下列要求修改表单,修改后表单运行时如图2所示。1设置计时器控件Timer1的相关属性,使其计时器事件发生的间隔为2秒,初始状态为禁用。2在表单的空白区域添加一个复选框控件Check1(如图2所示),并设置其标题为“自动统计”,初始值为.F.。3编写Check1的Click事件代码,用一条语句实现如下功能:如果Check1被选中,则启用Timer1控件,否则禁用Timer1控件。图24表单已定义了一个Count()方法,用来对Edit1编辑框中的文本框进行字符数统计。编写Timer1控件的Timer事件代码,以实现对表单的Count()方法的调用。五、程序改错(5分)15个男生和15个女生(共30人)围成一圆圈,从第一个人开始依次报数,每数到第九个人就出列,如此循环直到仅余15人为止。问怎样排法才能使每次出列的人均是女生?下列程序给出的排法可以使得每次出列的人均是女生(程序中数组a(30)表示30个人,数组元素的值为“1”表示男生、“0”表示女生)。要求:将下列程序输入到项目中的程序文件PCODE中,并对其中的2条错误语句进行修改: 在修改程序时,不允许修改程序的总体框架和算法,不允许增加或减少语句数目。CLEARn=0FOR i=0 TO 100/5FOR j=0 TO (100-i*5)/3FOR k=0 TO 100-i*5-j*3IF i*5+j*3+k/3=100 AND i+j+k=100n=n+1?公鸡:,i,母鸡:,j,小鸡:,kENDIFENDFORENDFORENDFOR?共:+n+种结果部分参考答案2010Q01一、1(3)RQ字段显示类为:Spinner (4)记录有效性规则:SJRS=5二、SELECT Jyb.dzh, Js.xm,; SUM(IIF(Jyb.hsrq-Jyb.jyrq30,(Jyb.hsrq-Jyb.jyrq-30)*0.1,0.0) AS 罚款额; FROM jxsj!js INNER JOIN jyb ; ON Js.gh = Jyb.dzh; WHERE EMPTY(Jyb.hsrq) = .F.; GROUP BY Jyb.dzh; ORDER BY 3 DESC四、1设置字数统计的三个文本框的Enabled属性为.F.3Thisform.Edit1.Value= Thisform.Text4.Value=04Thisform.countThisform.Text4.Value=Thisform.Text1.Value+Thisform.Text2.Value+Thisform.Text3.Value五、第5行:将MOD(j,i)改为 MOD(i,j)倒数第5行:将MOD(VAL(s1)+VAL(s2)改为MOD(VAL(s1)+VAL(s2),10)2010Q02一、1(3)DD字段显示类:ListBox (4)索引表达式:DD+QCPH3REPLACE ALL dj WITH INT(dj)二、SELECT Jyb.dzh, Xs.xm,; IIF(Jyb.hsrq-Jyb.jyrq30,(Jyb.hsrq-Jyb.jyrq-30)*0.05,0.00) AS 罚款; FROM jxsj!xs INNER JOIN jyb ; ON Xs.xh = Jyb.dzh; WHERE !EMPTY(Jyb.hsrq); GROUP BY Jyb.dzh; ORDER BY 3 DESC; TO FILE temp三、4设置“导出”菜单项跳过条件:!USED(cj)四、1文本框InputMask属性设为9999、FontBold属性为.T.2添加复选框Check1,设其Caption属性为“自动排序”;Value属性为.F.;AutoSize属性为.T.4复选框的Click事件代码:Thisform.List1.Sorted= This.Value5“清除”按钮的Click事件代码:Thisform.List1.ClearThisform.Text1.Value=0五、第12行:将ENDIF改为ENDFOR倒数第6行:将OR改为AND2010Q03一、1(3)RQ字段有效性规则表达式:DOW(DATE()0 AND DOW(DATE()7 (4)索引表达式:DW+DTOC(RQ,1)3USE dmb COPY TO whcdb FOR Lx=文化程度二、SELECT TOP 3 Js.yxzydm, COUNT(*) AS 人数,; SUM(Gzb.jbgz+Gzb.gwjt+Gzb.zhjt+Gzb.zfbt) AS 应发工资总额; FROM jxsj!js INNER JOIN gzb ; ON Js.gh = Gzb.gh; GROUP BY Js.yxzydm; ORDER BY 3 DESC; INTO TABLE temp.dbf四、1设置文本框Text1的MaxLength属性为6、Alignment为2、PasswordChar为 *2“表单”“创建表单集”“添加新表单”;设置表单Form2的Visible属性为.F.3文本框Text1的VALID事件代码:IF LEN(THIS.VALUE)4RETURN .F.ENDIF4在空白处添加以下两行代码:ThisformSet.Form2.Visible=.T.ThisformSet.Form1.Release五、第8行:将=改为第12行:将ELSE改为ENDFOR2010Q04一、1(4)CS字段有效性规则表达式:CS=120 OR CS60(5)索引表达式:DD+STR(CS)3使用修改记录命令:REPLACE ALL dj WITH dj*1.1 或者用“字段替换”菜单命令进行界面操作:浏览JC表,利用VFP主菜单“表”“替换字段”命令,替换字段dj、替换为 dj*1.1、作用范围选 ALL二、SELECT Js.yxzydm, COUNT(*) AS 借书本数,; SUM(IIF(EMPTY(Jyb.hsrq),1,0) AS 未还本数,; MAX(IIF(EMPTY(Jyb.hsrq),DATE()-Jyb.jyrq,Jyb.hsrq-Jyb.jyrq) AS 最大借阅天数; FROM jxsj!js INNER JOIN jyb ; ON Js.gh = Jyb.dzh; GROUP BY Js.yxzydm; ORDER BY 4 DESC; INTO CURSOR temp三、3设置“教师”菜单项跳过条件:!USED(js)四、1设置列表框List1属性:ColumnCount为2、ColumnWidths为:30,602添加微调框Spinner1并设其属性:Value为5、SpinnerLowValue为5、SpinnerHighValue为503在代码空白处添加如下代码:Thisform.List1.List(Thisform.List1.ListCount,2)=STR(Thisform.List1.ListCount,2)4IF Thisform.List1.ListCount=Thisform.Spinner1.Value MESSAGEBOX(已经达到最大行数,不能添加!,64)ELSE thisform.List1.additem(thisform.text1.text) THISform.Text1.value=int(rand()*1000) Thisform.List1.List(Thisform.List1.ListCount,2)=

温馨提示

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

评论

0/150

提交评论