2010秋江苏二级Visual FoxPro上机试卷 |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
2010秋二级Visual FoxPro上机试卷 (本试卷完成时间为70分钟) 考试说明: 1.首先登录考生信息,然后启动VFP并在命令窗口中执行下列命令,以设置默认的工作 目录:SET DEFA TO T: 2.除非题目要求,否则不要对T盘上的文件进行重命名、复制和删除操作。 一、项目、数据库和表操作(12分) 打开T盘根目录中的项目文件JXGL,在该项目中已有一数据库JXSJ。 1.在JXSJ数据库中按如下表格所示的结构创建AB表,并按表格中的要求设置相关属性。
(1)设置AB表的表注释:参观人数; (2)设置日期字段的默认值:当前系统日期; (3)设置日期字段的显示类:微调框; (4)设置记录有效性规则:实际参观人数小于或等于售出门票数量; (5)创建普通索引,索引名为abcd,要求按实际参观人数与售出门票数量之比排序。 2.在AB表中输入如下记录:
3.给KC表中所有学分大于或等于5的记录加删除标记。 4.js表已存在主索引GH,索引表达式为GH;KCAP表已存在普通索引GH,索引表达式为GH。以js表为主表、KCAP表为子表,根据GH建立永久关系,并设置两表之间的参照完整性:更新级联、删除级联。 二、设计查询(8分) 已知教师表(JS)含有工号(gh,c)、姓名(xm,C)等字段;自由表图书借阅表(JYB)含有读者号(dzh,c)、分类号(flh,C)、借阅日期(jyrq,D)、还书日期(hsrq,D)等字段,教师的读者号与工号相同。按如下要求修改JXGL项目中的查询CHAXUN: 基于JS表和JYB表查询教师借书情况,计算过期罚款信息。要求:查询输出字段为dzh、 xm、罚款额;查询结果按罚款额降序排序;输出去向为文本文件TEMP。 注:罚款计算方法为30天以上超过部分每本每天0.10元,未还书者(即还书日期为空的 记录)不统计。 三、设计菜单(5分) JXGL项目中已存在菜单MENU,其中已定义了"文件"菜单栏及其中的"退出菜单"项。按如下要求设计菜单,菜单运行后的效果如图1所示。 1.在"文件"菜单栏右侧创建"数据管理"菜单栏。 2.在"数据管理"菜单栏下创建子菜单"查询"和"数据备份"。 3.为"查询"菜单项设置快捷键:F12。 4.在菜单项"查询"和"数据备份"之间插入分组线。 5.为"数据备份"菜单项设置过程代码: d=GETFILE("dbf"."*.dbf") USE &d COPY To bf1 四、设计表单(10分) 表单F 行时如图2所示. 1.修改表单的有关属性,使表单的标题为"字符数统计",并设置字数统计的三个文本框禁用。 2.适当加大Shape1形状的高度,在其区域内增加一个标签控件Label—Sum和一个文本框控件Text4,并设置Label_Sum的标题为"总字符数:"。 3.编写"清空"按钮的Click事件代码,用2条语句实现如下功能:(1)清除编辑框Edit1中的文本;(2)使"字数统计"矩形区域内的4个文本框的值均置零。 4.表单已定义了一个Count()方法,用来对Edit1编辑框中的文本进行字数统计。编写"统计"按钮的Click事件代码,以实现:先调用表单的Count()方法,然后将文本框Text1、Text2和Text3的值相加后显示在文本框Text4中。 五、程序改错(5分) 下列程序的功能是找出100~999以内同时满足以下条件的数:个位数字与十位数字之和与10的模等于百位数;该数是素数(仅能被1和本身整除的数称为"素数’’)。例如,101、 (1)将下列程序输入到项目中的程序文件PCODE中,并对其中的2条错误语句进行修改; (2)在修改程序时,不允许修改程序的总体框架和算法,不允许增加或减少语句数目。 CLEAR FOR i=1 To 999 yn=.T. FOR j=3 TO i-1 IF MOD(j,i)=0 yn=.F. EXIT ENDIF ENDFOR IF yn s=STR(i,3) s1=SUBS(s,3,1) s2=SUBS(s,2,1) s3=SUBS(s,1,1) IF MOD(VAL(s1)+VAL(s2))=VAL(s3) ?i ENDIF ENDIF ENDFOR 参考答案 一、项目、数据库和表操作 索引表达式;SJRS/SCSL 有效性规则:SJRS<=SCSL 二、设计查询 SELECT Jyb.dzh,Js.xm,SUM(IIF(hsrq-jyrq>30,(hsrq-jyrq-30)*0.1,0.O)) AS罚款额; FROM jxsj!js iNNER JOIN jyb ON Js.gh=Jyb.dzh; WHERE EMPTY(Jyb.hsrq)<>.T.; GROUP BY Jyb.dzh; ORDER BY 3 DESC; TO FILE temp.txt 三、设计菜单 命令/过程: d=GETFILE('dbf','*dbf') USE &d COPY TO bn 四.设计表单
五.程序改错 If Mod(j,i)=0 改为:Mod(i,j) If Mod(Val(s1)+Val(s2))=Val(s3) 改为:Val(s2),10 |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||