江苏省高校计算机等级考试命题研究院 江苏省高校计算机等级考试辅导
2003年(春)江苏省等级考试上机试卷 (05)

2003年(春)江苏省等级考试上机试卷

二级 Visual FoxPro (VFP05)

 

一、项目、数据库和表操作(12分)

打开软盘根目录下的项目文件TEST,在该项目中已有一数据库SJK。

1.按如下要求修改SJK中工资(GZ)表的结构:

(1) 为住房公积金(zfgj)字段设置标题:住房公积金;

(2) 设置zfgj字段的有效性(验证)规则:它的值必须为基本工资(jbgz)的8% ,该规则对表中已有的数据不作对照;

(3) 设置zfgj字段的有效性(验证)信息:住房公积金是基本工资的8%;

(4) 增加一个逻辑型字段,其字段名为yhdf;

(5) 创建一个普通索引jbgzzfgj,要求先按jbgz字段排序,jbgz相同的再按zfgj字段排序。

2. 为SJK添加编辑说明:教务管理数据库。

3.把TEST项目中的自由表GZC的包含状态设置为“排除”。

4. 调整GZC表中副教授的综合津贴(zhjt),调整办法是:1990年(含1990年)以前参加工作的副教授的综合津贴增加120元。

5. 为KC表设置删除触发器:若某一记录的学分(xf)字段的值为0,则允许删除,否则不允许删除。

6.     SJK中KC表已存在主索引kcdh,索引表达式为kcdh:RK表已存在普通索引kcdh,索引表达式为kcdh。以KC表为主表,RK表为子表按kcdh建立永久关系,并设置KC表和RK表之间的参照完整性:删除级联。

 

二.   计查询(8分)

TEST项目中已存在查询chaxun,且在SJK中包含一个名为RKVIEW的视图,该视图中包含教师的任课情况,其中有教师上的每一门课的课时数(kss)。假定教师的上课酬金为每学时20元,按如下要求修改查询:

基于RKVIEW视图和教师(JS)表查询每个教师的上课总学时及上课酬金。要求输出字段为:gh,xm、xb,总学时,上课酬金,查询结果按gh的升序排序。

 

三、设计菜单(5分)

TEST项目中已存在菜单menu,其中已定义了“文件”菜单栏及其中的“恢复系统菜单”项。按如下要求设计菜单,完成后的运行效果如图1所示。

1. 创建“学生管理”菜单栏,并为“学生管理”菜单设置访问键“ALT+M”;

2. 为“学生管理’’菜单创建子菜单“基本情况”、“统计”和“浏览学生表”:

3. 创建“统计”菜单的子菜单,其中包含“各课成绩”和“学生总分”菜单项;

4. 设置“浏览学生表”菜单项的废止条件为: .NOT.USED(“XS”):

5. 设置“浏览学生表”菜单命令为:BROWSE。

图1

 

四、设计表单(10分)

TEST项目中已存在表单formM,它是一个通过计时器控件控制的倒记时程序。按如下要求修改表单,完成后表单刚运行时的界面如图2所示,单击“开始”后界面如图3所示。

1. 设置表单的有关属性,使得表单运行在所有的窗口之上,并作为顶层表单;

2. 设置表单中文本框的字号为12;

3. 在表单中添加一个记时器控件Timerl,设置其初始状态为废止、Timer事件的时间间隔为1秒(1000毫秒);

4.  4. 编写Timerl记时器的Timer事件代码,使用If...else...endif结构完成如下功能:如果表单中文本框Textl的值大于0,则让文本框的值减1,否则关闭表单。

图2  刚运行时

图3  开始计时后

五、程序改错(5分)

下列程序用于计算一个字符串中包括多少个汉字(假设这些汉字均属于GB2312字符集)。其基本算法是从字符串中依次取一个字符,如果其AECII码值大于127,则为一个汉字内码的第一个字节。要求:

① 项目中有一个程序文件Pcode,将下列程序输入到其中并进行修改;

② 在修改程序时,不允许修改程序的总体框架和算法,不允许增加或减少语句数目。

cString=’微软(Microsoft)公司开发的视窗(Windows)操作系统’   &&赋初值

nCount=0

n=LEN(cString)

FOR m=1 tO n

IF ASC(SUBSTR(cString,m,1))>127

    nCount= nCount+1

    n=n+1

       ENDIF

ENDFOR

WAIT WINDOWS’汉字个数为’+nCount