2010春江苏VFP上机考试试题 |
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||
2010春二级Visual FoxPro上机试卷 (本试卷完成时间为70分钟) 考试说明: 1.首先登录考生信息,然后启动VFP并在命令窗口中执行下列命令,以设置默认的工作目录:SET DEFA TO T: 2.除非题目要求,否则不要对T盘上的文件进行重命名、复制和删除操作。 一、项目、数据库和表操作(12分) 打开T盘根目录中的项目文件JXGL,在该项目中已有一数据库JXSJ。 1.在JXSJ数据库中按如下表格中所示的结构创建AB.DBF表,并按表格中的要求设置相关属件。
(1)设置AB表的长表名为:发表论文登记表; (2)设置BMBH字段的格式:删除输入的前导空格; (3)创建唯一索引,索引名为abcd,要求按作者姓名排序,姓名相同时再按论文名排序; (4)设置LX字段的显示类为复选框控件类。 2.在AB表中输入如下记录: BMBH ZZXM LWM LX KWMC BO0002 李峰 电脑病毒预防 .T. 计算机世界 3.为KC表设置删除触发器:LX字段值为"专业核心课程"的记录不允许删除。 4.JS表已存在主索引GH,索引表达式为GH,KCAP表已存在普通索引GH,索引表达式 为GH,以JS表为主表、KCAP表为子表按GH建立永久关系,并设置两表之间的参照完整性: 更新级联。 二、设计查询(8分) 课程表(KC)中含有课程代码(kcdm,C)、课程名称(kcmc,c)和学分(xf,N)等字段,在成 绩表(CJ)中含有学生学号(xh,c)、成绩(cj,N)、课程代码(kcdm,c)等字段。按如下要求修 改JXGL项目中的查询CHAXUN: 若成绩不低于60分学生可以取得对应课程的学分,总学分大于或等于20的学生可以毕 业,则基于Kc表和cJ表查询所有不能毕业的学生列表。要求查询输出字段为:学号、总学 分,查询结果按总学分降序排序。 三、设计菜单(5分) JXGL项目中已存在菜单MENU,其中已定义了"文件"菜单栏及其中的"退出菜单"项。按如下要求设计菜单,完成后的运行效果如图1所示。 1.在"文件"菜单栏右侧创建"教学管理"菜单栏; 2.在"教学管理"菜单栏下创建子菜单"学生"和"课程"; 3.为"学生"菜单项设置跳过条件:xs表打开时才可操作; 4.在菜单项"学生"和"课程"之间插入分组线; 5.设置整个菜单的清理代码:CLOSE TABLES ALL。 四、设计表单(10分) JXGL项目中已经存在表单Formj,该表单用来设置表单中表格控件Grd1的相关属性,如图2所示。按下列要求修改表单: 1.设置表单的标题为"表格属性设置"; 2.设置表格Grd1中的数据为只读,但能获得焦点,表格的RecordSourceType属性值为"0一表"; 3.在"数据源"标签控件右侧添加一个组合框控件,并设置其Name属性为"Cbo2"、RowSourceType属性为"7一文件"、RowSource属性为当前目录下的所有.DBF文件; 4.设置复选框控件Checkl的初始状态为选中: 5.为组合框控件Cbo1编写Init事件代码,使它的初值等于"3(缺省值)水平滚动条和垂直滚动条"(即初始选中下拉列表中的第4条列表项); 6.为组合框控件Cbo2编写InterActiveChange‘事件代码,使表单中Grd1控件的RecordSource属性与Cbo2中选定的值一致。 ‘ 五、程序改错(5分) 下列程序的功能是:输入一个由ASCII码字符和GB2312字符集中汉字字符组成的字符串后,统计并显示出现次数最多的10个字符及其出现次数。要求: 1.将下列程序输入到项目中的程序文件PCODE中,并对其中的2条错误语句进行修改; 2.在修改程序时,不允许修改程序的总体框架和算法,不允许增加或减少语句数目。 CLEAR ACCEPT '请输入:' TO cccc &&该语句功能是交互式地输入数据(字符串) n=LEN(cccc) IF n=0 RETURN ENDIF CREATE CURSOR TEMP (cc c(2),nn i) &&创建临时表存储字符及出现的次数 FOR i=1 TO n c=SUBS(CCCC,i,1) IF ASC(c)>127 &&汉字字符 c=SUBS(cccc,i,2) i=2 ENDIF LOCATE FOR cc=c IF EOF() INSERT INTO TEMP(cc,nn) VALUE(c,1) Other REPLACE nn WITH nn+1 ENDIF ENDFOR SELECT TOP 10 cc,nn FROM temp ORDER BY 2 DESC 参考答案 一、项目、数据库和表操作 AB表BMBH字段格式:T AB表索引表达式;zzxm+lwm KC表删除触发器:lx#"专业核心课程" 或!lx="专业核心课程" 二、设计查询 SELECT cj.xh,SUM(IIF(CJ>=60,XF,O)) AS 总学分; FROM jxsj!kc INNER JOIN jxsj!cj; ON kc.kcdm=cj.kcdm; GROUP BY cj.xh; HAVING总学分<20; ORDER BY 2 DESC 三、设计菜单 跳过条件表达式:NOT USED("xs") 四.设计表单
五.程序改错 1.i=2 改为i=i+1 2.ohter 改为else
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||