2003(春)上机试卷

更新时间:2024-06-09 11:17:01 阅读量: 综合文库 文档下载

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

2003年(春)(试卷代号VFP01)

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

打开软盘根目录下的项目文件TEST, 在该项目中已有一数据库SJK。 1.按如下要求修改SJK中工资(GZ)表的结构: (1)为住房补贴(zfbt)字段设置标题:住房补贴; (2)设置zfbt字段的有效性(验证)规则:它的值或者为0或者为基本工资(jbgz)字段的19%; (3)设置zfbt字段的字段注释:98年以后参加工作的教师才有住房补贴; (4)增加一个备注型字段,字段名为bz;

(5)创建一个普通索引ghsfgz,要求先按工号(gh)字段排序,工号相同的再实发工资(sfgz)

字段排序。

2.为GZ表添加编辑说明:教师工资信息表。

3.把TEST项目中的自由表GZC的包含状态设置为“排除”。 4.修改GZC表中所有记录的实发工资(sfgz),计算实发工资的公式为:

sfgz = yfgz(应发工资)– zfgj(住房公积金)– ylbx(医疗保险)– grsds(所人所得税) 5.为GZ表设置删除触发器:工号为空的记录允许删除,否则不允许删除。

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

gh,以JS表为主表,GZ表为子表按gh建立永久关系,并设置JS表和GZ表之间的参照完整性:更新级联。 二、设计查询(8分)

在TEST项目中已存在查询chaxun,按如下要求修改该查询:

基于成绩(CJ)表和课程(KC)表查询每门课有多少学生选修、考试的最高成绩、考试的平均成绩。要求输出字段为:kcdh、kcm、选课人数、最高成绩、平均成绩,查询结果按 kcdh的升序排序。 三、设计菜单(5分)

TEST项目中已存在菜单menu,其中已定义了“文件”菜单栏及其中的“恢复系统菜单”项。按如下要求设计菜单:

1. 创建“系统”菜单栏,并为“系统”菜单设置热键“ALT + S”; 2. 在“系统”菜单中添加“数据录入”、“数据维护”和“选项”菜单项;

3. 创建“数据录入”菜单的子菜单,其中包含“成绩”和“教师工资”菜单项; 4. 设置“选项”菜单项为废止。

5. 在“数据维护”和“选项”菜单项之间插入分组线。 完成后的运行效果如右图所示。

四、设计表单(10分)

TEST项目中已存在表单formK,功能是从学生表中选择部分字段进行浏览,如图2所示。当从左侧列表中选择部分或全部字段到右侧列表,单击“浏览”按钮后,表单向右侧扩展,并在表格控件中显示选定字段的记录,如图3所示。按如下要求修改表单:

1. 设置表单的标题为“选字段浏览表”,边框类型为“固定对话框”;

2. 已知两个列表框和四个移动列表项的按钮都包含在同一个容器控件MoverLists1中。设置左

侧列表框(lstSource)的RowSourceType属性为“结构”,RowSource属性值为“xs”; 3. 在“浏览”按钮的左侧添加一个标题为“重选”的命令按钮,命名为“cmdReset”;

1将表格设4. 编写cmdReset的单击事件代码,以将表单恢复到如图2所示的初始状态,即,○

2将表单的宽度恢复为初始值(238)3调用MoverLists1容器中的第四个按置为不可见;○;○

钮cmdRemoveAll的Click事件代码,以将选在右侧列表中的字段全部移回到左侧列表中。 完成后,表单刚运行时的界面如图2所示,选取部分字段单击“浏览”按钮后,界面如图3所示。

图2 表单刚运行时 图3 运行时单击“浏览”按钮后的情形

五、程序改错(5分)

下列程序的功能是对一个字符串进行加密。其基本算法是对字符串中的每一个字符进行转换,转换后的字符的ASCII码等于原字符的ASCII码值加该字符的位置值,例如,字符串“ABC”加密后为“BDF”,其中A→B(第1个字符)、B→D(第2个字符)、C→F(第3个字符)。要求: ①项目中有一个程序文件Pcode,将下列程序输入到其中并进行修改;

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

cString='12345cz' &&赋初值 cResult=SPACE(0) IF LEN(cString)#0 FOR n=1 TO cString c=SUBSTR(cString,n,1) cResult=cResult+CHR(ASC(C)+1) ENDFOR ENDIF

WAIT WINDOWS '加密后为'+cResult

(试卷代号VFP02)

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

打开软盘根目录下的项目文件TEST, 在该项目中已有一数据库SJK。 1.按如下要求修改SJK中课程(KC)表的结构: (1)设置课时数(kss)字段的标题:课时数;

(2)设置学分(xf)字段的有效性(验证)规则:大于等于1小于等于6; (3)设置必修课(bxk)字段的默认值为T; (4)增加一个备注型字段,字段名为bz;

(5)创建一个普通索引ksskcdh,要求先按kss字段排序,kss相同的再按课程代号(kcdh)字

段排序。

2.为SJK中的ZY表添加编辑说明:专业代码表 3.向ZY表中增加一条记录,记录内容为: ZYDH ZYMC XZ 112004 4 日语 4.项目TEST中存在自由表GZC,假定个人所得税的计算方法是:应发工资(yfgz)小于等于1000

不交税,应发工资大于1000的部分,税率为10%。请按上述方法来修改GZC表中所有教授的

个人所得税(grsds)字段的值。 5.已知数字“0”的ASC码为48,“9”的ASC码为57,为XS表设置插入触发器:学号必须以数

字开头,否则不允许插入。

6.SJK中表ZY已存在主索引zydh,索引表达式为zydh,XS表已存在普通索引zydh,索引表达

式为zydh,以ZY表为主表,XS表为子表按zydh建立永久关系,并设置ZY表和XS表之间的参照完整性:更新级联。 二、设计查询(8分)

在TEST项目中已存在查询chaxun,且在SJK中包含一个名为XSST的视图,该视图中包含学生的xb(性别),所在的系代号 (xdh)、系名称(ximing),专业代号 (zydh),另外在SJK的专业(ZY)表中含有专业名称(zymc)字段。按如下要求修改查询:

基于XSST视图和专业(ZY)表查询每个系各专业男、女生的人数。要求输出字段为:xdh、ximing、zydh、zymc、xb、学生人数,查询结果按xdh的升序排序,如果xdh相同,则按zydh的升序排序,同一专业的学生男生排在前面。 三、设计菜单(5分)

TEST项目中已存在菜单menu,其中已定义了“文件”菜单栏及其中的“恢复系统菜单”项。按如下要求设计菜单:

1. 创建“成绩管理”菜单栏,并为“成绩管理”菜单设置热键“ALT + M”; 2. 在“成绩管理”菜单中添加“成绩输入”、“成绩统计”和“浏览成绩表”菜单项; 3. 创建“成绩统计”菜单的子菜单,其中包含“按课程”和“按

学生”菜单项;

4. 在“成绩统计”和“浏览成绩表”菜单项之间插入分组线; 5. 设置“浏览成绩表”菜单项的废止条件为: .NOT. USED(\。 完成后的运行效果如右图所示。 四、设计表单(10分)

TEST项目中已存在表单formL,用来浏览学生基本情况。表单中包含一个页框和一组记录导航按钮,页框中只有一个页面,其中文本框的数据源来自学生视图“xsview”。按如下要求修改表单:

1. 设置表单的有关属性,使表单在运行时始终处于其他窗口之上; 2. 设置命令按钮组cmgNav的边框样式为“无”;

3. 在页框pgf中增加一个页面Page2,设置Page2的标题为“记录列表”; 4. 在Page2中添加一个表格控件Grid1,设置Grid1的记录源类型为“别名”,记录源为“xsview”; 5. 为了使页框中两个页面在切换时数据显示保持同步。编写Page2的Activate事件代码,实现

1刷新本页面;○2使页面中的表格获得焦点。 如下功能:○

完成并运行表单的界面如图2所示,选择第二页时界面如图3所示。

图2 第一个页面 图3 第二个页面 五、程序改错(5分)

下列程序的功能用于计算数列1/1!,1/2!,1/3!,1/4!,??,1/n!之和(注:n!=1*2*3*4*??*n),当某一数列项的值小于0.01时停止计算。要求:

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

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

SET DECI TO 2 n=1 nM=1 nSum=0

DO WHILE .T. nM=nM/n IF nM<0.01 LOOP ENDIF

nSum=nSum+nM nM=nM+1 ENDDO

WAIT WINDOWS '该数列之和为'+STR(nSum,10,2)

(试卷代号VFP03)

一、项目、数据库和表操作(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),调整办法是:70年(含70年)以前参加工作的副教

授的综合津贴增加120元,要求调整以后应发工资(yfgz)字段的值作相应的变动。

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. 创建“学生管理”菜单栏,并为“学生管理”菜单设置热键“ALT + M”; 2. 在“学生管理”菜单中添加“基本情况”、“统计”和“浏览学生表”菜单项; 3. 创建“统计”菜单的子菜单,其中包含“各课成绩”和“学生总分”菜单项; 4. 设置“浏览学生表”菜单项的废止条件为:.NOT. USED(\; 5. 设置“浏览学生表”菜单命令为:BROWSE。 完成后的运行效果如右图所示。

四、设计表单(10分)

TEST项目中已存在表单formM,它是一个通过计时器控件控制的倒记时程序。按如下要求修改表单:

1. 设置表单的有关属性,使得表单运行在所有的窗口之上,并运行在Windows桌面上且作为

顶层表单;

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

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

秒(1000毫秒);

4. 编写Timer1记时器的Timer事件代码,使用If…else…endif结构完成如下功能:如果表单

中文本框Text1的值大于0,则让文本框的值减1,否则关闭表单。

完成后,表单刚运行时的界面如图1所示,单击“开始”后,界面如图2所示。

图1 刚运行时 图2 开始记时后 五、程序改错(5分)

下列程序用于计算一个字符串中包括多少个汉字(假设这些汉字均属于GB2312字符集)。其基本算法是从字符串中依次取一个字符,如果其ASCII码值大于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

(试卷代号VFP04)

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

打开软盘根目录下的项目文件TEST, 在该项目中已有一数据库SJK。 1.按如下要求修改SJK中工资(GZ)表的结构:

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

Top