当前位置:文档之家› 2005年春上机试卷

2005年春上机试卷

2005年春上机试卷
2005年春上机试卷

江苏省高等学校非计算机专业学生 2005 年(春)计算机基础知识和应用能力等级考试上机试卷 二级Visual FoxPro (试卷代号VFP01) (本试卷完成时间 70分钟)

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

打开软盘根目录下的项目文件

TEST ,在该项目中已有一数据库SJK 。

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

(1) 为个人所得税(grsds )字段设置标题:个人所得税。 (2)

设置个人所得税(grsds )字段的注释:基本工资1000元以上征税; (3) 设置gz 表的记录有效性(验证)规则:如果jbgz 小于1000元,grsds 的值为0,否则grsds 的

值为jbgz 的5%(该规则对表中已有的数据不做验证);

(4) 设置gz 表的记录有效性信息:个人所得税按基本工资的5%收取;

(5) 创建一个普通索引gzjx ,要求按jbgz 降序排列。

2. 设置test 项目信息:作者为”张勇”,单位为”南京大学”。

3. 向kc 表中添加一条记录,记录内容为:

4. 修改js 表中简历(jl )字段的值,要求:所有xdh 为”02”的记录的简历都改为”计

算机系的教师”。

5. 设置js 表的插入触发器:gh 字段的值必须为5个字节的字符串(除去首尾空格),否则

不允许插入。

6. JS 表中已存在主索引jsgh ,索引表达式为gh;rk 表已存在普通索引rkgh ,索引表达式

为gh 。以JS 表为主表、rk 表为子表,按gh 建立永久关系,并设置JS 表和rk 表之间的参照完整性:删除级联。

二、 设计查询(8分)

在TEST 项目中已存在查询chaxun ,且在SJK 中包含一个名为XSCJST 的视图,该视图中包含学生的学号(xh),课程代号(kcdh)、课程名(kcm)和成绩(cj)字段,另外在SJK 的学生(xs )表含有学生的学号(xh )和所在班级编号(bjbh )字段。按如下要求修改查询:

基于xs 表和XSCJST 视图表查询每个班课程代号为“01”的考试情况。要求输出字段为:bjbh,kcdh,kcm,最高分,平均分,不及格人数,查询结果按bjbh 的升序排序(注:成绩低于60分为不及格)。

三、 设计菜单(5分)

项目TEST 中已存在菜单MenuK,利用菜单设计器按如

下要求修改菜单:

1. 按图所示,在”表操作”菜单栏增加一个”记录定

位”菜单项,并为它设置子菜单;

2. 为”追加记录”菜单项编写命令:当执行该菜单项时,

在学生表中增加一条记录,且该记录的学号等于它的

记录号(转换为6位字符型);

3.在”文件”菜单栏下插入系统菜单项”退出”。

四、设计表单(10分)

项目TEST 中已经存在表单FormM 。该表单的功能是根据选择的班级与课程录入学生成

绩,其基本思想是:单击”录入”命令按钮,则根据所选班级编号生成一个含该班所有学生的临时工作表TEMP(作为表格控件的数据源),以录入成绩;单击”入库”命令按钮,则将TEMP表中的数据追加到cj表中,然后执行”退出”命令按钮的click事件代码。按下列要求修改该表单,修改完成后运行表单,其效果如下图所示。

1.修改表单的有关属性,使得

控制图标和按钮如图2所示

(控制图标为软盘上的

net.ico文件);

2.修改表格控件第3列的标

头,显示”成绩”,且居中、

字号为11号;

3.修改下列组合框combo2的

有关属性,使得下拉列表中

显示课程表(kc)的课程代

号(kcdh)和课程名(kcm),

要求不修改该控件的

rowsourcetype属性;

4.完善”录入”命令按钮的

click事件代码,要求在原

代码的基础上添加2条语句,以实现功能:该命令按钮不可用,表单上的”入库”命令按钮可用;

5.为表单的destroy事件编写代码,需要完成的功能是:1)关闭所有表;2)如果存在表文件temp.dbf,则删除之。

五、程序改错(5分)

下列程序的功能是:随机出10道100以内整数加减法算术题。如果是加法,则两数的和不得大于100;如果是减法,则被减数不小于减数。要求:

①项目中有一个程序文件Pcode,将下列程序输入到其中并进行修改(注:注释部分不

需要输入);

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

Ts=1 &&题数计数

Do while ts<=10

Czf=iif(rand()>0.5, ”+”, ”-”) &&rand()函数的功能是返回一个0~1之间的随机数

Num1=rand()*100

Num2=rand()*100

If czf=”+”

If num1+num2>100

Loop

Endif

Else

If num1

Exit

Endif

Endif

? ”(”+str(ts,2)+ ”) ”+str(num1,3)+czf+str(num2,2)+ ”=”

ts=ts+1

endif

江苏省高等学校非计算机专业学生 2005 年(春)计算机基础知识和应用能力等级考试上机试卷 二级Visual FoxPro (试卷代号VFP02) (本试卷完成时间 70分钟)

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

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

SJK 。

1. 按如下要求修改SJK 中课程(XS )表的结构:

(1) 设置学号(xh )字段设置为只接受8个数字字符。

(2) 设置xm 字段的有效性(验证)规则:xm 的有效宽度(不含首尾空格)必须4个字节以上,

且首字符必须为汉字(汉字的首字节的ASCLL 码值大于

(3) 设置xm 字段的字段注释:姓名的首字符必须为汉字;

(4) 删除zp 字段。

(5) 创建一个普通索引xbrq ,要求先按性别(xb )字段升序排序,性别相同再按出生日期(csrq)

字段降序排序;

2. 将软盘中xs.txt 文件添加到项目中,并将其包含状态设置为“排除”。

3. 修改软盘中jsb 表的所有记录的工号(gh )字段值:用系代号(xdh )的值替换原工号中的第2与第3

位。例如:工号为“E0001”,系代号为“05”,则替换后的工号就是“E0501”。 4. 设置xs 表的插入触发器:只有学号开头两位是“00”至“03”的记录允许插入,否则

不允许插入。

5. xs 表中已存在主索引xsxh ,索引表达式为xh;cj 表已存在普通索引cjxh ,索引表达式

为xh 。以xs 表为主表、cj 表为子表,按xh 建立永久关系,并设置xs 表和cj 表之间的参照完整性:更新级联。

二、 设计查询(8分)

在TEST 项目中已存在查询chaxun ,且在SJK 中学生(xs )表包含学号(xh )、姓名(xm )、性别(xb )、班级编号(bjbh )、系代号(xdh )和专业代号(zydh )字段,专业(zy )表含有专业代号(zydh )和专业名称()zymc )字段,按如下要求修改查询:

基于xs 表和zy 表查询“01”年级每个专业女生所占比例。要求输出字段为:zydh,zymc,年级,女生人数和女生所占比例,查询结果按女生所占比例从高到低排序(假定bjbh 字段值的前二位表示年级)。

三、 设计菜单(5分)

项目TEST 中已存在菜单MenuL,利用菜单设计器按如下要求修改菜单:

1. 按图所示,在“表操作”菜单栏增加一个“显示”菜

单项,并为它设置子菜单;

2. 为“表操作”菜单栏下的“删除记录”菜单项编写

SQL 命令:当执行该菜单项时,删除学生表(xs )

中所有姓名(xm )为空(指均为空格字符)的记录;

3. 将下列代码添加到菜单的适当位置,使菜单程序运行是首先执行

它。

IF USED (“XS ”)

SELECT XS

ELSE

USE XS IN 0

ENDIF

四、设计表单(10分)

项目TEST中已经存在表单FormN。该表单的功能是根据选择的班级与课程录入学生成绩,其基本思想是:单击“录入”命令按钮,则根据所选班级编号生成一个含该班所有学生的临时工作表TEMP(作为表格控件的数据源),以录入成绩;单击“入库”命令按钮,则将TEMP表中的数据追加到cj表中;单击“作废”命令按钮,则TEMP表中的成绩总清。按下列要求修改该表单,修改完成后运行表单,其效果如图所示。

1.修改表单的有关属性,使得标题为

“成绩录入”,表单的控制图标和按钮

为系统默认值;

2.修改表格控件的前2列有关属性,

使得其数据只读;

3.修改下列组合框combo2的有关属

性,使得下拉列表中显示课程表

(kc)的课程代号(kcdh)和课程名

(kcm),要求不允许修改该控件的

rowsourcetype属性;

3.加一个“作废”命令按钮(其外

观和大概位置如图所示),并为该命

令按钮编写click事件代码,需要

完成的功能是:TEMP表中的成绩

均替换为0;

4.表单的destroy事件编写代码,需要完成的功能是:

1)关闭所有表;

2)如果存在表文件temp.dbf,则删除之。

五、程序改错(5分)

下列程序的功能是:随机产生一个10至100之间的整数,然后分解质因数,例如:45=3*3*5。

要求:①项目中有一个程序文件Pcode,将下列程序输入到其中并进行修改(注:注释部分不输入);

②在修改程序时,不允许修改程序的总体框架和算法,不允许增加或减少语句数目。Nint=int(rand()*100)

Do while between(nint,10,100)

Nint=int(rand()*100)

Enddo

Cresult=str(nint,3)+”=”

N=2

Do while nint>1

If mod(nint,n)=1

Cresult=cresult+ltrim(str(n))+”*” &<rim()函数的功能是删除字符串的前

导空格

Nint=nint/n

Else

N=n+1

If nint

Exit

Endif

Endif

Enddo

Cresult=left(cresult,len(cresult)-1)

=messagebox(cresult)

相关主题
文本预览
相关文档 最新文档