江苏省高校计算机等级考试命题研究院 江苏省高校计算机等级考试辅导
2000年(秋)二级 Visual FoxPro 上机

2000年(秋)江苏省普通高校非计算机专业学生

计算机基础知识和应用能力等级考试上机试卷

二级 Visual FoxPro 5.0 (VFP03)

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

说明:1.考试语言环境一律为Visual FoxPro 5.0

2.运行考试软盘A中的“准考证”应用程序文件,输入考生的准考证号、试卷代号。

3.启动VFP5.0系统后,首先在命令窗口中执行命令:

set default to A:

   以设置默认的工作目录,然后再开始作题。

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

打开软盘根目录中的项目文件TESTB,在该项目文件中已存在一数据库SJK,根据下列要求在项目中完成有关数据库及表的操作。

1. 修改SJK数据库中CJ表的结构,要求:

(1)CJ字段能容纳三位整数,一位小数;

(2)增加一个批改日期字段,字段名为PGRQ

2. 设置XS表的字段属性,要求:

(1)将XS表中JG字段的标题设置为“籍贯”;

(2)将XS表中XB字段的默认值设置为“男”;

(3)将XS表的删除触发器设置为不可以删除。

3. 根据下列表格中列出的要求对CJ表建立结构复合索引:

索引名
类型
表达式
XD
普通索引
XH+KCDH

4.已知XS表已按XH字段建立主索引,索引名为XSXH,CJ表已按XH字段建立普通索引,索引名为CJXH,试基于XH建立XS表与CJ表的永久关系。

5. 已知JS表和RK表已按GH建立永久性关系,试按下列要求设置两个表之间的参照完整性的更新规则:

如果在JS表中修改了GH字段,则RK表中的字段作相应的更改。

6. 把自由表xsb添加到项目文件中,且仍然以自由表形式存在。

二、设置查询

1. 在TESTB项目中已存在自由表cjb(成绩)和查询chaxuna,cjb表中包含3个字段:xh(学号)、kcdh(课程代号)和cj(成绩)。利用查询向导按如下要求创建基于cjb表的交叉表查询chaxuna(覆盖已存在的同名文件):

(1)交叉表的行显示学号;

(2)交叉表的各数据单元显示各学生各门课程的成绩;

(3)交叉表的列显示课程代号,并在最后一列统计每个学生各门课程的成绩总和。

2. 在SJK数据库中KC表(课程)和CJ表(成绩)存在一对多关系。在TESTB项目中已存在查询chaxunb,按如下要求设计该查询:

基于kc表和cj表查询各课程不及格成绩中的最高分(注:60分以下为不及格)。要求输出字段为:kcdh,kcm,不及格最高分。查询结果按kcdh升序排列,查询结果的输出去向为临时表tmpb。

三、设计类

基于基类Container创建子类yearmonth,并将它保存在类库文件mylib中。要求如下:

1. 向容器中添加两个Spinner控件,它们的Name属性分别为Spnyear,Spnmonth;

2. 控件Spnyear用来显示年份,Spnmonth用来显示月份,试根据实际情况为控件Spnmonth设置最大值和最小值,且它的初值为1;

3. 向容器中添加两个标签,标题分别为“年”,“月”;

4. 向容器中添加一个命令按钮,标题为“确定”;

5. 当按下该命令按钮时,形成一个表示年月的日期文本,形式为 xxxx年xx月。如1999年04月,并将该文本存储在变量ny中。试为该命令按钮编辑相应的事件代码。

完成上述操作后,容器控件如下图所示。

四、 设计表单

按下列要求修改项目文件中的表单文件formB:

1. 表单自动居中;

2. 背景色为128,128,128;

3. 表单中的表格不显示删除标记;

4. 表单上的表格能获得焦点,但数据为只读;

5. 已知JS表已经按JBGZ(基本工资)字段建立一个结构复合索引,索引名为JBGZ,编制相应的事件代码,要求在表单空白上双击时,表格中的内容按JBGZ重新排列;

6. 在表单中加一个命令按钮,该按钮的标题为“退出”,并要求当按下该按钮时,清除该表单。

进行上述设置以后运行表单,并对着表单空白处双击鼠标,屏幕显示如下图所示: