2010年(春)计算机基础知识和应用能力等级考试上机试卷(试卷代号VFP01)
一、项目、数据库和表操作
打开T盘根目录中的项目JXGL,在该项目中已有一数据库JXSJ。
1.在JXSJ数据库中按如下表格中所示的结构创建AB.DBF表,并按表格中的要求设置相关属性。
(1)设置AB表的长表名为:发表论文登记表;
(2)设置BMBH字段的格式:删除输入的前导空格;
(3)创建唯一索引,索引名为abcd,要求按作者姓名排序,姓名相同时再按论文名排序;
(4)设置LX字段的显示类为复选框控件类。
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.设置复选框控件Check1的初始状态为选中;
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
CREA TE 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
LOCA TE FOR cc=c
IF EOF()
INSERT INTO TEMP(cc,nn) V ALUE(c,1)
OTHER
REPLACE nn WITH nn+1
ENDIF
ENDFOR
SELECT TOP 10 cc,nn FROM temp ORDER BY 2 DESC。