2005年(秋)vfp上机(2) |
|||||||
江苏省高等学校非计算机专业学生 (本试卷完成时间 70分钟)
一、项目、数据库和表操作(12分) 打开软盘根目录中的项目文件TEST,在该项目中已有一数据库SJK及若干表。 1. 按以下要求修改SJK数据库中TS表: (1) 为TS表设置表注释:教学用图书。 (2) 添加一个字段,字段名为cover,其类型应适用于存储图书的封面图片。 (3) 设置分类号(flh)字段的有关属性,使该字段中输入的字母均为大写字母。 (4) 设置册数(cs)字段的有关属性,使得将该字段从表单的数据环境中拖放到表单上时,生成的相应控件为微调控件。 (5) 创建一个普通索引abcd,要求以书名(sm)的长度进行排序(sm字段值的首尾空格字符不计)。 (6) 设置书名(sm)字段的有效性规则:其值不能为空字符串,或仅有空格组成的字符串,相应的有效性说明为“书名不能为空”。 (7) 为TS表添加一条记录,其记录内容为:
2、 在项目中,将XIM表设置为“包含”状态。 3、 XS表和CJ表已存在以学号(xh)字段为索引表达式的主索引xsxh和普通索引cjxh。以XS表为主表,CJ表为子表按xh建立永久关系,并根据以下要求设置参照完整性规则:在XS表中删除记录时,若CJ表中有相对应的记录(xh字段的值),则禁止删除XS表记录。 二、 设计查询(8分) 在TEST项目中已经存在查询chaxun,SJK数据库中的XSJY视图包括学生学号(xh)、借阅日期(jyrq)、还书日期(hsrq),SJK数据库中的学生(XS)表含有学号(xh)、姓名(xm)、所在班级编号(bjbh)。按如下要求修改查询: 基于XS表和XSJY视图查询每个班每个学生借书本数、过期罚款数。要求输出字段为:Xs.bjbn,Xs.xh,Xs.xm,借书本数、罚款 数。查询结果按bjbh排序,bjbh相同的,按Xs.xh排序。 注:每本书的借阅时限为30天,没超过一天罚款0.05元计算;同一本书借阅两次时,以两本书计;小数点保留2位。 已知项目TEST中已存在菜单menu,利用菜单设计器,按如下要求修改菜单。 1、 按图1所示要求为“表操作”菜单栏下各子菜单项设置分组线; 2、 在“文件”菜单栏下插入一个“退出”菜单项,并编写命令: 图 1 当执行该菜单时能关闭VFP系统; 3、 为“数据浏览”菜单栏下的“学生”菜单项编写过程代码:当执行该菜单项时,选择学生(XS)表为当前表(若未打开,则首先打开之),并用BROWSE命令浏览学生表。 四、 设计表单(10分) 项目管理器中已经存在表单FB,该表单用来更改用户的密码。根据下列要求修改表单,设计时和运行时的效果分别如图2和图3所示。 1、 设置表单为模式表单,背景为白色,并在运行是自动居中, 2、 设置“确定”控件按钮为禁用。 3、 添加一个图象控件,并指定显示的图象为Lock.jpg文件所存图象。 4、 完善“重复新密码”文本框控件txtNewB的InterActiveChange事件代码(提示:在原代码中的空行处添加适当的代码) ,要求:用IF结构语句判断文本框“新密码”和“重复新密码”的值是否一致,如果一致,则启用“确定”命令按钮,否则禁用 “确定”命令按钮。 5、 编写“确定”命令按钮的相关事件代码,使得单击该按钮时,将“txtNewA”文本框的值赋给给变量pPassWord。
图2 设计时 图3 运行时 五、 程序改错题(5分) 下列程序的功能是找出1000之内所有的完数,并统计它们的个数。完数是指:数的各因子之和正好等于该数本身(例如6的因子是1、2、3,而1+2+3=6,所以6是完数)。要求: (1) 项目中有一个程序文件Pcode,将下列程序输入到其中并进行修改; (2) 在修改程序时,不允许修改程序的总体框架和算法,不允许增加或减少语句数目 CLEAR n1=1 nCount=0 DO WHILE n1<=1000 m=0 FOR n2=INT(n1/n2)TO 1 STEP-1 IF n1/n2=INT(n1,n2) m=m+n1 ENDIF ENDFOR IF n1=m nCount=nCount+1 ?n1 ENDDO n1=n1+1 ENDDO WAIT WINDOWS"完整的个数为"+STR(nCount)
|
|||||||