江苏vfp二级考试上机2004au

更新时间:2023-05-24 07:35:01 阅读量: 实用文档 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

江苏vfp二级考试上机

江苏省高等学校非计算机专业学生

2004 年(秋)计算机基础知识和应用能力等级考试上机试卷

二级Visual FoxPro (试卷代号VFP01)

(本试卷完成时间 70分钟)

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

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

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

(1) (1) 将学分(xf)字段的默认值设置为3;

(2) (2) 为kcdh字段设置输入掩码:接受4个数字字符;

(3) (3) 设置课时数(kss)字段的有效性(验证)规则:大于等于2

并且小于等于6;

(4) (4) 为表增加一个备注字段kcsm,并将其标题设置为:课程说明;

(5) (5) 创建普通索引xfdh,要求先按xf字段排序,xf相同时再按课

程代号(kcdh)字段排序。

2. 2. 为KC标添加编辑说明:课程表。

3. 设置SJK中zy表的包含状态为:包含。

3. 4. 为学生表(XS)添加一个年龄字段,字段名为age、类型为数值型、宽度为2,然

后计算表中所有籍贯(jg)为“江苏南京”的学生年龄,计算结果存储在age字段中。(注:计算方法为当前日期的年份减去学生出生日期(csrq)的年份。

4. 5. JS表中已存在主索引jsgh,索引表达式为gh; GZ表已存在普通索引gzgh,索引

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

二、 二、 设计查询(8分)

TEST项目中已经存在查询chaxun,在SJK的学生(XS)表中含有班级编号(bjbh)、系代号(xdh)以及性别(xb)等字段,系名(XIM)表中含有系代号(xdh)和系名称(ximing)字段。按如下要求修改查询:

基于XIM表和XS表查询每个系个班级的人数以及女生所占比例,要求输出字段包括:xdh、ximing、bjbh、总人数、 女生人数和女生所占比例,查询结果按系代号升序排列,系代号相同是按班级编号升序排列。

三、 三、 设计菜单(5分)

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

1. 1. 按图1所示,在“系统设置”菜单栏后面增加“教师档案管理”菜单栏,并

为它设置子菜单;

2.

3.

4. 2. 为“教师工资管理”菜单栏下的“工资调整”菜单项编写命令:当代码执行

该菜单时,工资(GZ)表中所有教师的岗位津贴(gwjt)统一增加200元;

5. Update gz set gwjt=gwjt+200

6. 3. 将下列代码加到菜单的适当位置,使菜单运行时首先执行它。

CLEAR

CLOSE TABLES ALL

显示—常规选项—设置(选钩)—输入命令(在打开该表的前提下)

四、 四、 设计菜单(10分)

项目TEST中已经存在表单FormH。按下列要求修改该表单,修改完成后运行表单,其效果如图2所示。

江苏vfp二级考试上机

1. 1. 修改表单的有关属性,使之外观如Windows对话框(无最大/最小化按钮、

不可调整大小、自动居中);

2. 2. 修改表格第5列的列表头的有关属性,将显示的“zcdh”修改为“职称代号”;

3. 3. 修改列表框控件的有关属性,要求显示两列数据(ZC表中的两个字段), 且

通过对数据环境的设置使数据按职称代号排序;

4. 4. 完善下拉组合框的InterActiveChange事件代码,要求在源代码的基础上,

在合适的位置增加2条语句已完成如下功能:让标签控件Label2运行时可见,且用之显示系名;

5. 5. 完善“确定”命令按钮的Click事件代码,要求在源代码的基础上,在合适

的位置增加1条语句以完善功能:用列表框中选择的职称代号更新表格中当前记录的职称代号(zcdh)。

五、 五、 程序改错(5分)

下列程序的功能是:将十进制数字字符串转换为二进制数字字符串,其基本算法是“除2取余法”。要求:

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

注释部分不输入);

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

句数目。

LOCAL cDec, cBin, nDec,n

cDec=”67” && 十进制字符串

cBin=SPACE(0) &&二进制字符串

nDec=VAL(cDec)

IF cDec =”0”

cBin=”0”

ELSE

DO WHILE nDec>0

n= MOD(nDec,10)――2

nDec=INT(nDec/2)

cBin=STR(n,1)+cBin

ENDW――enddo

ENDIF

cMsg=”十进制数”+cDec+”的二进制表示为:”cBin=MESSAGEBOX(cMsg)

江苏vfp二级考试上机

江苏省高等学校非计算机专业学生

2004 年(秋)计算机基础知识和应用能力等级考试上机试卷

二级Visual FoxPro (试卷代号VFP02)

(本试卷完成时间 70分钟)

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

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

1. 1. 修改数据库中图书(TS)表的结构,要求:

(1) (1) 修改jg字段的宽度,使之能容纳4位整数和2 位小数;

(2) (2) 将cs字段的标题设置为“库存数”,默认值设置为10;

(3) (3) 设置cs字段的有效性(验证)规则和有效性(验证)信息;

库存数必须大于0;

(4) (4) 创建普通索引smrq ,要求先按书名(sm)排序,书名相同时

再按入库日期(rkrq)排序。

2. 2. 将自由表JSB添加到SJK中,并在项目中为该表添加编辑说明:“教师表”。

3. 3. 先修改软盘上TS1表的结构,添加一个类型、 宽度和小数位均与jg字段相

同的newjg字段,然后计算所有记录的该字段的值:jg值的基础上增加15%。

4. 4. 以KC表为主表、PK表中存在匹配的关键字值,则禁止在KC表中删除记录。

二、设计查询(8分)

在TEST项目中已经存在查询chaxun,且在SJK中包含一个名为XSCJST的视图,该视图记录了每一个学生的选课情况及选修课的性质,具体字段包括:学号(xh)、姓名(xm)、 课程代号(hcdh)、成绩(cj)、 是否必修(bxk)、学分(xf);在SJK的学生(XS)表中含有学生的学号(xh)和性别(xb)。按如下要求修改查询:

根据XS表和XSCJST视图查询每个学生的选课门数。要求输出字段包括:xh 、xm、 xb、必修课门数和选修课门数,查询结果按必修课门数从小到大排序。

三、设计菜单(10)分

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

1. 1. 按图1所示为“统计分析”菜单项创建子菜单;

2.

3. 2. 为“不及格统计”菜单项设置SQl命令:基于成绩表(CJ.DBF)统计各门课程

代号(kcdh)、不及格人次(注:成绩(cj)小于60分为不及格);

4. Select (iif(cj<60,1,0)) as 不及格人数 from cj group by kcdh

江苏vfp二级考试上机

5. 3. 将“学生档案管理”菜单项废止。跳过.t.

四、设计表单(10分)

项目TEST中已经存在表单FormC,该表单的功能是:利用JS表中的教师工号数据进行“摇号”,单击“开始”按钮,则文本框中随机的显示教师工号,按回车键停止。按下列要求修改表单,修改完成后运行表单,其效果如图2所示。

1. 1. 将表单的标题改为“摇号”;

2. 2. 将文本框改为数据只读;

3. 3. 修改形状控件Shap1的有关属性,使形状控件为三维效果;

4. 4. 删除表单上的编辑框控件,然后在标签控件Lable2的下方添加一个列表框控

件(List1),并将其大小设置为与形状控件Shap1相同(如图2所示);

5. 5. 修改“开始”命令按钮的Click事件代码:要求在源代码之后添加两条命令,

使得每次摇出的教师信息(由字符形变量cStr给定)添加到列表框中,且“开始”按钮可再次使用。

五、 程序改错(5分)

下列程序的功能是将一个英文词组中的每个单词的首字母改为大写(单词之间以空格分隔);例如“Microsoft visual foxpro” 经程序转换后为“Microsoft Visual Foxpro”。 其基本算法是:首先在字符串中查找到第一个空格,把空格左边的部分看作为一个单词,从字符串中截取左边的单词,并将首字母改为大写。剩余的部分用同样的方法进行处理,直到剩余的部分没有字符为止。要求:

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

② ② 在修改程序时,不允许修改程序的总体框架和算法,不允许增加或

减少语句数目。

cText=”Microsoft visual foxpro”

cResult=SPACE(0)

doWHILE NOT EMPTY(cText)

nSpacePos=AT(SPACE(1),cText)

IF nSpacePos>0

cWord=LEFT(cText,nSpacePos)

ElSE

cWord=cText

ENDIF

cWord=UPPER(LEFT(cWord,1))+SUBSTR(cWord,2)

cResult=cWord+cResult—cresult+cword

cText=LTRIM(SUBSTR(cText,nSpacePos))

江苏vfp二级考试上机

ENDDO

WAIT WINDOW cResult

江苏省高等学校非计算机专业学生

2004 年(秋)计算机基础知识和应用能力等级考试上机试卷

二级Visual FoxPro (试卷代号VFP03)

(本试卷完成时间 70分钟)

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

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

1.按如下要求修改SJK中图书(TS)表的结构:

(1) (1) 将分类号(flh)字段的标题设置为“分

类号”;

(2) (2) 设置rkrq字段的有效性(验证)规则:

必须是在当前日期(包括当前日期)之前;

(3) (3) 设置rkrq字段的有效性(验证)信息:

入库日期无效;

(4) (4) 为分类号(flh)字段设置输入格式:删

除输入字段前导空格;

(5) (5) 创建一个普通索引zj,要求先按作者(zz)

字段排序,作者相同的再按价格(jg)字段从小到大排序。Zz+str(jg)

2.把TEST项目中的自由表GZC移出项目。

3.把软盘中的表文件TS1.DBF添加为TEST项目中的自由表,并为TS1表添加一条记录,记录内容如下表所示:

xdh,

索引表达式为xdh。以XIM表为主表,按xdh建立永久关系,并设置XIM表和JS表之间的参照完整性:更新级联;

二、设计查询(8分)

TEST项目中已经存在查询chaxun,且在SJK中包含了一个名为XSCJST 的视图,该视图记录了每一个学生的选修课情况以及选修课程学分值,具体数字段包括:学号(xh)、姓名(xm)、课程代号(kcdh)、成绩(cj)、和学分(xf);在SJK的学生(XS)表中含有学生的学号(xh)和性别(xb)。按如下要求修改查询:

基于XS表和XSCJST视图查询每个学生的选课门数、总学分、输出字段包括xh、xm、xb、选课门数和总学分,查询结果按总学分从高到低排列。

注:如果该学生的成绩(cj)字段的值小于60分。则该课的学分为0。

三、设计菜单(5分)

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

1. 1. 按图1所示,为“学生成绩管理”菜单项创建子菜单;

江苏vfp二级考试上机

2.

3. 2. 为“成绩查询”菜单项编制SQL命令:基于成绩表(Cj.DBF)查询总成绩大于

300分的学生清单,要求当执行该菜单时在浏览窗口显示学号(xh)和总成绩;

4. Select sum(cj) as 总成绩.xh from cj where sum(cj)>300 group by xh

5. 3. 在“文件”菜单栏下插入系统菜单项“打开”。

文件—子菜单—编辑—插入栏—打开—

四、 设计表单(10分)

项目TEST中已经存在表单FormB,该表单的功能是根据输入的学号查询、显示相应学生的成绩。按下列要求修改该表单,修改完后运行表单,其效果如图2所示。

1. 1. 将表单左上角的控制图标改为软盘中NET.ICO文件所示图标;

2. 2. 修改表格控件的有关属性,使表格中的数据只读期可获得焦点;

3. 3. 修改表格控件的Init事件代码,使得表格中显示的学生成绩:如果成绩不及格(小

于60分),则该行以红色显示,否则以黑色显示;

4. 4. 向表单上添加一个“退出”命令按钮(如图2所示),并设置其有关属性、编写Click

事件代码,要求:对象名为cmdExit,单击该命令按钮时关闭所有打开的表和临时表,并关闭表单。

五、 程序改错(5分)

VFP中LEFT(cExp,n)函数的功能是从字符串表达式cExp的值中取出左边n个字节长度的字符子串。如果表达式cExp的值是中英文混合的字符串,因一个汉字占两个字节(设这里讨论的汉字均为GB2312-80中的汉字),则LEFT函数很容易把一个汉字取“破”,从而出现“乱码”。

下列自定义函数CLEFT(cExp,n)的功能是:取字符串cExp左边n 个字符。如果cExp字符串中包含汉字,则将每个汉字与英文字符同等看作长度为1。例如CLEFT(“VFP上机考试”,5)的返回值是“VFP上机”,而不是“VFP上”。要求:

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

(注:注释部分不输入);

② ② 在修改程序时,不允许修改程序的总体框架和算法,不允许增加或

减少语句数目。

江苏vfp二级考试上机

WAIT WINDOW CLEFT(“VFP上机考试”,5)

FUNCTION CLEFT

PARA cExp,n

LOCAL ch,nCh,cResult

cResult=SPACE(0)

nPos=1

FOR i=1 TO n

Ch=SUBTR(cExp,nPos,1)

***一个汉字有两个字节,汉字每个字节的ASCII码值大于127

IF ASC(ch)>127

cResult=cResult + SUBSTR(cExp,nPos,2)

nPos=nPos+2

ELSEIF--else

cResult=cResult + SUBSTR(cExp,nPos,1)

nPos=nPos+1

ENDIF

ENDFOR

RETURN n--cresult

ENDFUNC

江苏省高等学校非计算机专业学生

2004 年(秋)计算机基础知识和应用能力等级考试上机试卷

二级Visual FoxPro (试卷代号VFP04)

(本试卷完成时间 70分钟)

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

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

1. 1. 按如下要求修改SJK中的教师(JS)表结构:

(1) (1) 为工作日期(gzrq)字段设置标题:工作日期;

(2) (2) JS表中含有日期(csrq),设置JS的纪录有效性(验证)规则:

18岁以后(18岁)才能参加工作;

(3) (3) 为职称代号(zcdh)字段设置输入掩码:接受2个字符,且只

接受数字字符;

(4) (4) 增加一个备注字段,字段名为zwjs;

(5) (5) 创建一个普通索引xdhcsrq,要求先按xdh字段排序,相同时

再按csrq字段排序。

2. 2. 为JS表添加编辑说明:教师基本信息表。

3. 3. 把软盘中的表文件GZB.DBF添加到SJK库中。

4. 4. 假定增加教师的基本工资(jbgz)的具体方法是:教授加500元,副教授加300

元,讲师和助教加200元。请按上述方法来修改GZC表中所有纪录得基本工资(jbgz)字段的值。

5. Replace jbgz with jbgz+500 for zc=””教授

6. Replace jbgz with jbgz+200 for zc=”讲师”or zc=“讲师” or zc=”助教”

7. 5. KC表中已存在主索引kcdh,索引表达式为kcdh; RK表已存在普通索引kcdh,索

引表达式为kcdh。以KC表为主表、RK表为子表,按kcdh建立永久关系,并设置KC表和RK表之间的参照完整性:更新级联。

8. 筛选 kcdh 分组依据 bjbh

二、 设计查询(8分)

江苏vfp二级考试上机

TEST项目中已经存在查询chaxun,且在SJK中包含一个名为BJCJST的视图,该视图记录了各个班级的学生考试成绩表,具体字段包括班级编号(bjbh)、学号(xh)、课程代号(kcdh)、成绩(cj);

在SJK的课程(KC)表中含有课程代号(kcdh)和课程名称(kcm)字段。按如下要求修改查询:

基于视图BJCJST和KC表查询各班学生参加课程号“03”的课程的考试情况,输出字段包括:bjbh、kcm、总人数、优秀率、不及格率,查询结果按班级编号升序排序。 (注:优秀率=成绩90分以上(包括90分)的人数/总人数,

不及格率=不及格(成绩小于60分)人数/总人数)

三、 设计菜单(5分)

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

1. 1. 按图1所示,为“人事管理”菜单栏编制子菜单;

2.

3. 2. 为“薪资管理”菜单栏下的“工资调整”菜单项编写命令,当执行该菜单项时,

将工资(GZ)表中所有基本工资(jbgz)低于800元的纪录都调整到800元;

4. Update gz set jbgz=800 where jbgz<800

5. 3. 在“系统设置”菜单栏下插入系统菜单栏“打印”。

四、设计表单(10分)

项目TEST中已经存在表单FormI,该表单的功能是打印某学生或某课程的成绩。按下列要求修改表单,修改文成后运行表单,其效果如图2所示。

1. 1. 将表单左上角的控制图标改为软盘中NET.ICO文件所示图标;

2. 2. 向表单上添加一个下拉列表框控件Combo1,要求与选项按钮组左对齐、能显示

2列数据,其数据源(RowSource属性)为查询语句:

SELECT xh,xm FROM xs ORDER BY 1 INTO CURSOR temp1

并且据此设置Combo 1控件的RowSourceType 属性;

3. 3. 修改选项按钮组控件,使之无边框(如图2所示),并为该控件的

InterActiveChange事件代码增加两条语句,用于清除下拉列表框的值,并使下拉列表框获得焦点;

4. 4. 完善“打印”命令按钮的Click事件代码,要求在源代码之后增加一条语句,

用于预览报表文件BB;

5. 5. 为“取消”命令按钮设置Click事件代码,其功能是:关闭表单。

江苏vfp二级考试上机

五、程序修改(5分)

下列程序的功能是:根据指定日期显示中文的日期与星期表示形式。例如,对于日期“2001/10/16”,显示的结果是“2004年10月16日 星期六”。要求:

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

注释部分不输入);

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

句数目。

LOCAL dDate,cWeekStr,nWeek,cMsg

SET DATE TO LONG

SET FDOW TO 1

dDate =CTOD(“2004/10/16”)

IF TYPE(dDate)=”D”---dcurrentdate

nWeek=DOW(dDate)

cWeekStr=”日一二三四五六”

eWeek=[星期]+SUBSTR(cWeekStr,2*cWeek-1,2)

cMsg=DTOC(dDate)+SPACE(2)+c(n)Week

ELSE

cMsg=”无效的日期!”

ENDIF

=MESSAGEBOX(cMsg)

江苏省高等学校非计算机专业学生

2004 年(秋)计算机基础知识和应用能力等级考试上机试卷

二级Visual FoxPro (试卷代号VFP05)

(本试卷完成时间 70分钟)

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

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

1.按如下要求修改SJK中的教师(JS)表结构:

(1) (1) 将简历(jl)字段标题设置为:简历;

(2) (2) 为工号(gh)字段设置输入掩码:接受5个字节的字符,且

第1个字符必须为大写字母,后4个字符只接受数字;!9999

(3) (3) 设置工作日期(gzrq)字段的有效性(验证)规则:工作日

期的年份必须小于等于2004年且大于等于1960年;

(4) (4) 设置gzrq字段的有效性(验证)信息:必须在1960-2004年

之间;

(5) (5) 创建一个普通索引xdhzc,要求先按系代号(xdh)字段排序,

系代号相同时再按职称代号(zcdh)字段排序;

2.将软盘目录中的表文件GZB.DBF添加为TEST项目中的自由表,并为其添加说明信息:工资信息表。--编辑说明

3.将GZB表中所有讲师的其他(qt)工资项设置为150元。

4.为JS表设置更新触发器:仅允许更新1960年(含1960年)以前参加工作的教师纪录。 Year(??)<= 1960.

5.SJK中JS表已存在主索引jsgh,索引表达式为gh;GZ表已存在普通索引gzgh,索引表达式为gh。以JS 表为主表、GZ表为子表,按gh 建立永久关系,并设者JS表和GZ表之间的参照完整性:删除级联。

二、设计查询(8分)

在成绩(CJ)表中输入成绩时,如果输入了课程(KC)表中没有的课程代号(kcdh),那

江苏vfp二级考试上机

么该学生的该成绩应视为无效,CJ表中这样的纪录称为“孤立纪录”,利用查询可以找出这些孤立纪录。在TEST项目中已存在查询CHAXUN,按如下要求修改该查询:

基于KC表和Cj表查询成绩表中的“孤立纪录”,要求输出两个表的所有字段,相同的行在查询结果中之出现一次,且按学号(xh)升序排序。

(提示:使用“右联接”联接KC和CJ表,然后在结果中选出来源于KC标的kcdh字段值为Null值的纪录。)

三、设计菜单(5分)

项目TEST中已存在菜单MenuE,按如下要求修改该菜单,完成后运行效果如图1所示。

(1) (1) 为“文件”菜单栏创建子菜单,并在子菜单中插入菜单项“导

出”;

(2)

(3) (2) 为“成绩管理”菜单栏创建子菜单,该子菜单包括二个菜单

项“学生成绩录入”、“学生成绩查询”,并用分割线隔开;

(4) (3) 为“课程管理”菜单栏下的菜单项“课程代码录入”设置快

捷键“CTRL+L”

(5) (4) 为“课程管理”菜单栏下的“课程代码查询”菜单项设置SQL

命令,要求:当执行该菜单项时,在浏览窗口中显示课程(KC)表中所有

纪录的所有字段;browse all

(6) (5) 废止“教师任课管理”菜单栏。

四、设计表单(10分)

项目TEST中已经存在表单FormE,该表单的功能是:更改用户的密码(用户、及相关信息存储在表user中)。按下列要求修改该表单,修改完成后运行表单,其效果如图2所示。

1. 1. 将表单的标题改为“更改密码”;

2. 2. 将Combo1控件设置为下拉列表框,且修改该控件的有关属性,使得该控件

在表单运行时,下拉后显示两列数据;USER表中的编号(no)和用户名(name)字段;

3. 3. 修改Text1 文本框控件的有关属性,使得表单运行时,该文本框中输入的字

符均为字符“*”显示;

4. 4. 完善“确定”命令按钮的Click事件代码,其功能为:如输入的原密码正确

江苏vfp二级考试上机

且两次输入的新密码相同,则更改user表中的相应密码(password字段)、关闭表单,否则利用MESSAGEBOX函数显示信息提示框(提示信息为“原密码不对”或“两次输入的新密码不一致”);

5. 5. 为“取消”命令按钮编写Click事件代码,其功能为关闭表单。

五、程序改错(5分)

下列程序的功能是:找出所有满足如下条件的三位十六进制数xyz,其个位数字x 、y、 z成等差递增(如123,135, 9AB, DEF),程序运行后显示如图3所示。要求:

① ① 项目中有一个程序文件Pcode,将下列程序输入到其中并进行修改; ② ② 在修改程序时,不允许修改程序的总体框架和算法,不允许增加或

减少语句数目。

CLEAR

cResult=SPACE(0)

FOR x=1 TO 13

FOR y=x+1 TO 14

Z=2*y+x

IF z<16

dx=IIF(x<10,STR(x,1),CHR(55+x))

dy=IIF(y<10,STR(y,1),CHR(55+y))

dx=IIF(z<10,STR(z,1),CHR(55+z))

cResult=cResult + SPACE(1)+dx+dy+dz

ENDF

cResult= cResult+CHR(13)

ENDF

WAIT WINDOW cResult <![endif]>

江苏省高等学校非计算机专业学生

2004 年(秋)计算机基础知识和应用能力等级考试上机试卷

二级Visual FoxPro (试卷代号VFP06)

(本试卷完成时间 70分钟)

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

江苏vfp二级考试上机

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

1.按如下要求修改SJK中成绩(CJ)表结构:

1)将成绩(cj)字段的标题设置为“成绩”;

2)设置成绩(cj)字段的有效性(验证)规则:大于等于0且小于等于100;

3)设置cj字段的有效性(验证)信息:成绩必须在0-100之间;

4)对cj字段设置字段注释:成绩小于60分为不合格;

5)创建一个普通索引xhcj,要求先按学号(xh)字段排序,学号相同时再按cj字段排序。 xh+str(cj)

2.为CJ表添加编辑说明:“学生成绩表”。

3.将软盘根目录中的表文件GZB.DBF添加为TEST项目中的自由表。

4.计算GZB表中所有纪录的应发工资(yfgz),应发工资的计算公式为:yfgz= jbgz+gwjt+ zhjt+zfbt+qt

浏览-替换字段-jbgz+gwjt+ zhjt+zfbt+qt

5.为CJ表设置更新触发器:kcdh的值为“06”或“09”的允许更新,否则不允许更新。 Kcdh=”06” or kcdh=”09”

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

二、 设计查询(8分)

在TEST项目中已纪存在查询chaxun,且在SJK中包含一个名为XSST的视图。该视图中包含学号包含学号(xh)、姓名(xm)、班级编号(bjbh)、系代号(xdh)、党员(dy);在SJK的系名(XIM)表中含有系代号(xdh) 、系名称(ximing)字段。按如下要求修改查询:

基于XSST视图和XIM表查询每个系学生党员的人数以及男、女生党员各占的比例。输出字段包括:xdh、ximing、党员人数、 男党员比例、女党员比例,查询结果按系代号升序排列。

Sum(iif(dy,1,0)) as 党员人数

Sum(iif(dy and xb=”男”,1,0))/sum(iif(dy,1,0)) as 男党员比例

Sum(iif(dy and xb=”女”,1,0))/sum(iif(dy,1,0)) as 女党员比例

分组依据:xdh

排序依据:xdh

三、设计菜单(5分)

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

1. 1. 按图1所示为“成绩查询”菜单项创建子菜单;

2.

3. 2. 已知在A盘根目录下存在表文件CJ.DBF。为“按课程号查”菜单项设置SQL

命令,统计各门课的选修人数,要求当执行该菜单时在浏览窗口显示课程代号(kcdh)、选修人数;

Select cj.kcdh,count(*) as 选修人数 from cj

4. 3. 为“文件”下的恢复系统菜单项设置命令,当执行该菜单时,将VFP的主菜单

恢复为系统默认菜单。

Set sysmenu to default

四、设计表单(10分)

项目TEST中已经存在表单FormD,该表单的功能是:利用JS表中的教师工号数据进行“摇号”,单击“开始”按钮,则文本框中随机地显示教师工号,按回车键停止。按下列要求修

江苏vfp二级考试上机

改表单,修改完成后运行表单,其效果如图2所示。

1. 1. 将表单的标题改为“摇号”,将文本框改为不可获得焦点(即不可用);

2. 2. 向表单上添加一个矩形的形状控件(位置如图2所示),要求将其设置为三维效

果,并利用“布局”工具栏将其“置后”(否则会遮盖“开始”按钮等控件);

3. 3. 在列表框的下方添加一个“总清”命令按钮,设置其对象名为cmdClear,并设

计其Click事件代码,其功能是:将列表框中所有的列表项清除;

4. 4. 设计表单的Destroy事件代码,其功能是关闭所有打开的表或临时表。

五、程序改错(5分)

下列程序的功能是:将10万元 以内金额(整数)转换为大写形式。例如20005转换后为“贰万零伍元整”,2100转换后为“贰仟壹佰元整”。要求:

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

注释部分不输入);

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

句数目。

nNum=$2100

cDigitStr=“零壹贰叁肆伍陆柒捌玖”

cUniStr=“元拾佰仟万”

nLen=LEN(ALLT(STR(nNum)))

cResult=”整”

FROM(for) i =1 TO nLen && 从右边数字开始依次读每一位 nDigit=INT(MOD(nNum,10))

IF nDigit<>0 &&数位不为0的情况

cResult=SUBSTR(cDigitStr,nDigit*2+1,2)+SUBSSTR(cUnitStr,i*2-1,2)+cResult

ELSE &&数位为0的情况

IF i=1 &&个位数为0

cResult=cResult+”元”—-“元”+cresult

ELSE

IF.NOT.LEFT(cResult,2)$”零元”

cResult=”零”+cResult

ENdIF

ENDIF

ENDIF

nNum=INT(nNum/10) &&去掉最后一位

ENDFOR

江苏vfp二级考试上机

WAIT WINDOW ALLT(cResult)

江苏省高等学校非计算机专业学生

2004 年(秋)计算机基础知识和应用能力等级考试上机试卷

二级Visual FoxPro (试卷代号VFP07)

(本试卷完成时间 70分钟)

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

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

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

1) 1) 将课时数(kss) 字段的标题设置为“课时数”;

2) 2) 设置课时数(kss)字段的有效性(验证)规则:大于等于2且小于

等于8; kss>=2 and kss<=8

3) 3) 设置kss字段的有效性(验证)信息:课时数范围为2-8;

“课时数范围为2-8”

4) 4) 修改CZB表中所有记录的综合津贴(zhjt)字段的值,算法为:综

合津贴(zhjt)为基本工资(jbgz)的5%。

5) 替换字段——替换为jbgz*0.05

6) 5) 创建一个普通索引ksskcdh,要求先按kss字段排序,kss 相同时

再按kcdh字段排序。 Kss+kcdh

2. 2. 为KC表添加编辑说明:课程信息表。

3. 右击KC表—编辑说明

4. 3. 把软盘中的表文件GZB.DBF添加为TEST项目中的自由表。

5. 4. 修改GZB表中所有记录的综合津贴(zhjt)字段的值,算法为:综合津贴(zhjt)

为基本工资(jbgz)的5%。

6. 5. 为KC表设置删除触发器:不允许删除。删除触发器中直接输入——.f.

7. 6. SJK中KC表已存在主索引kcdh,索引表达式为kcdh;CJ表已存在普通索引

cjkcdh,索引表达式为kcdh。以KC表为主表、CJ表为子表、按kcdh建立永久关系,并设置KC表和CJ表之间的参照完整性:删除限制。

二、

三、

四、

五、

六、 一、设计查询(8分)

TEST项目中已经存在查询chaxun,在SJK的教师(JS)表中含有教师的出生日期(csrq)字段和教师所在的系代号(xdh)字段,系名(XIM)表中含有系代号(xdh)和系名称(ximing)字段。按如下要求修改查询:

基于XIM表和JS表查询每个系(xdh)教师的年龄结构。输出字段包括:xdh、ximing、总人数、四十岁以下人数、四十岁以上人数。查询结果按系代号升序排列。

Sum(iif(year(date)-year(csrq)<=40,1,0)) as 四十岁以下人数

Sum(iif(year(date)-year(csrq)>=40,1,0)) as 四十岁以上人数

分组依据xdh

排序依据xdh

注:年龄用表达式YEAR(DATE())-YEAR(js.csrq)计算。

七、 二、设计菜单(5分)

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

江苏vfp二级考试上机

1. 1. 按图1所示,为“教师任课管理”菜单栏编制子菜单;

2.

3. 2. 已知课程(KC)表存在索引kcdh,索引表达式为kcdh。为“任课管理”

菜单栏下的“课程代码查询”菜单项编制过程,该过程完成的功能是:首先打开KC表将kcdh设置为主索引,然后用SEEK命令查找kcdh为“08”的纪录;

Use kc order kcdh

4. Seek kcdh=”08”

5.

6. 3. 为“文件”菜单栏下的“返回”菜单项设置提示信息“返回系统菜单”

(在菜单运行过程中,当鼠标指针指向该菜单项时在屏幕左下角显示该提示信息)。文件—子菜单—编辑—选项—信息-返回系统菜单

八、 三、设计表单(10分)

项目TEST中已经存在表单FormG,该表单的功能是修改教师的职称信息。按下列要求修改该表单,其效果如图2所示。

1. 1.设置标签控件Label2的有关属性,要求在表单刚运行时,该控件不可见(隐

藏);

2. 2.修改表格控件的有关属性,要求表格无水平滚动条、无删除标志列,且第5

列(zcdh)数据可改写;

3. 3.添加一个列表框控件,要求:RowSourceType属性为“别名”,能显示zc表中

的zcdh和zc两个字段,并为该列表框控件设置InterActiveChange事件代码,该代码的功能是调用表单的zc_change方法;

4. 4.完善下拉列表框Combo1的InterActiveChange事件代码,要求在原代码的基

础上,在合适的位置增加4条语句以完成如下功能:利用标签控件Label2显示系名、表格中仅显示所进系的教师信息、刷新表单。

九、 四、程序改错(5分)

下列程序的功能是:求Fibonacci(斐波纳契)数列1,1,2,3,5,8,....(从第3项开始,每一项的值为前2项之和)的前20项,并分别计算奇数项和偶数项的和。要求:

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

(注:注释部分不输入);

② ② 在修改程序时,不允许修改程序的总体框架和算法,不允许增加或

减少语句数目。

n =20

DIME fib[n]

Fib[20]=1―――fib=1

STORE 1 TO nSumEven && 奇数项和偶数项的和初值均设为1

CLEAR

?fib[1],fib[2]

FOR i=3 TO n

Fib[i]=fib[i-2]+fib[i-1]

IF MOD(i,2) =1

?fib[i]

nSumOdd=nSumOdd+fib[i]

OTHERWISE---else

??fib[i]

江苏vfp二级考试上机

nSumEnen=nSumEven+fib[i] ENDIF

ENDFOR

?nSumOdd,SumEven

本文来源:https://www.bwwdw.com/article/n124.html

Top