江苏省高校计算机等级考试命题研究院 江苏省高校计算机等级考试辅导
2002年(春)Visual FoxPro (04)

2002年(春)江苏省等级考试上机试卷
二级 Visual FoxPro (VFP04)

(本试卷上机考试时间为70分钟)

说明:1.考试语言环境为Visual FoxPro 5.0/6.0
     2.运行考试软盘A中的“上机考试”应用程序文件以输入考生的准考证号、姓名、试卷代号。
     3.启动VFP系统后,首先在命令窗口中执行命令:
      set default to A:
     以设置默认的工作目录,然后再开始作题。

一、项目、数据库和表操作

打开软盘根目录中的项目文件TESTD,在该项目中已有一数据库SJK。
1.按如下要求修改SJK中CJ表(成绩)的结构:
(1)设置xh字段的标题为“学号”,默认值为“010”;
(2)修改cj字段(成绩)宽度,使得该字段仅能容纳2位整;
(3)设置cj字段(成绩)的有效性规则及提示信息:成绩应在0至99之间(包含0和99):
(4)创建普通索引kccj,要求先按kcdh排序,如果kcdh相同,再按cj排序,设置索引的过滤条件为cj低于60。
:.将软盘根目录中的表文件CJB.DBF添加为TESTD项目中的自由表。
3.修改CJB的表结构,增加一个宽度为1的数值字段cj5,用来填入5分制成绩,用你认为最快的方法根据cj字段的值在cj5字段中填入数据。假定百分制到5分制的转换规则如下:100分对应5分、99~80之间对应4分、79~60之间对应3分、59~40之间对应2分、其余成绩对应1分。
4.在SJK的JS表和RK表之间设置参照完整性:更新级联。

二、设计查询
1.在TESTD项目中已存在查询chaxuna,数据库SJK中含有JS表(教师),且JS表中含有csrq(出生日期)字段,假设教师的工龄都是连续计算。按如下要求设计查询:
依据g1(工龄)字段查询各教师参加工作时的年份和年龄,要求输出字段为:gh,xm,ximing,gl, 年份,年龄。查询结果按工龄降序排序,工龄相同者再年龄的降序排序。
2.在TESTD项日中己存在查询chaxunb,按如下要求设计该查询:
已知SJK数据库包含JS表(教师)和视图RKKC(包含任课信息和课程信息),RKKC视图中kss字段的含义为“每周课时数”;bxk字段表示是否是必修课,T表示是必修课。假定必修课一学期上20周,选修课上18周,且假定所有的任课都是在同一学期进行。试查询所有任课教师一学期的总课时数。要求输出字段:gh,xm,任课门数,总课时数(提示:一门课程的学期课时数可用表达式 rkkc.Kss*iif(rkkc.bxk,20,l8)计算得到)。查询结果按总课时数的降序排序。

三、设计菜单
TESTD项目中已存在菜单menud,利用菜单设计器按如下要求修改菜单:
1.为“编辑”菜单栏设置热键E;
2.在“文件”菜单栏下的子菜单中插入系统菜单栏“退出”;
3.在“编辑”菜单栏下的子菜单“重做”和“剪切”之间插入分组线;
4. 修改“文件”菜单栏下的“打开”项的过程,将其中的IF…ENDIF语句修改成DOCASE…ENDCASE结构:
5.将“文件”菜单栏下的“运行”项子菜单中的“程序”项的提示信息文本设置为“运行PRG程序文件”;

四、设计表单
根据下列要求修改项目文件中的表单formd,该表单用来查看每个系教师的基本工资及基本工资总额。
1.将组合框名字改成Cboximing:
2.根据组合框的RowSource属性值来设置它的RowSourceType属性;
3.将基本工资整数部分的显示格式设置成从小数点开始,从右至左每三位用逗号分隔;
4.JSB(教师表)已经按zc建立一个结构复合索引,索引标识为zc,在数据环境中设置相应的属性,使得表格中的数据按zc排序;
5.在组合框的Init事件中编写相应的代码,为组合框设置初值(即刚运行表单时,组合框的内容不为空),且表格中的数据要与组合框中初值相对应;
6.在“平均工资”标签后面增加一个文本框,运行时该文本框只读且不能获得焦点,并在组合框的InterActiveChange事件中增加相应的代码,使文本框中显示该系教师的平均工资。


完成上述修改以后,运行表单,屏幕显示: