江苏省VFP2005 年(秋)上机(1) |
|
江苏省高等学校非计算机专业学生 (本试卷完成时间 70分钟)
一、项目、数据库和表操作(12分) 打开软盘根目录中的项目文件TEST,在该项目中已有一数据库SJK及若干表。 1. 按以下要求修改SJK数据库中TS表: (1) 为TS表设置长表名:图书档案表。 (2) 添加一备注型字段,字段名为summary,并设置其标题为“内容概要”。 (3) 设置分类号(flh)字段的有关属性,使该字段中输入的字母均为大写字母。 (4) 创建一个普通索引abcd,要求以分类号(flh)为 第一索引关键字、书名(sm)为第二索引关键字排序。 (5) 设置价格(jg)字段的有效性规则和有效性说明信息,要求:其值不能小于1。 (6) 修改作者(zz)字段的值,要求在原作者名后加汉字“等”。例如,第一条记录的作者由“路由”改为“路由等”。 2. 在项目中,将FF表单设置为“排除”状态。 3. XS表和CJ表已存在以学号(xh)字段为索引表达式的主索引xsxh和普通索引cjxh。以XS表为主表,CJ表为子表按xh建立永久关系,并根据以下要求设置参照完整性规则:在CJ表中添加记录时,若XS表中没有相对应的记录(xh字段的值),则禁止添加记录。 二、 设计查询(8分) 在TEST项目中已经存在查询chaxun,已知在SJK的学生(XS)表中含有系代号(xdh)、学号(xh)、姓名(xm)等字段;成绩(CJ)表中含有学号(xh)、课程代号(kcdh)、成绩(cj)等字段。按如下要求修改查询: 基于XS表和CJ表查询“刘玉敏”同学所在系的每位同学的平均成绩,输出xdh、xh、xm、平均成绩,查询结果按姓名排序。(提示:筛选条件中使用SELECT xdh FROM xs WHERE xm=‘刘玉敏’;查询保存并关闭设计器,可能无法再次在设计器中打开,只能在编辑窗口中修改该查询的SELECT-SQL语句。) 三、 设计菜单(5分) 已知项目TEST中已存在菜单menu,利用菜单设计器,按如下要求修改菜单。 1、 按图1所示要求为“表操作”菜单栏下的“添加记录”菜单项增加子菜单,为“表操作”菜单栏下的各菜单项设置分组线; 2、 在“文件”菜单栏下插入VFP系统菜单项“退出”; 3、 为“数据查询”菜单栏下的“课程”菜单项编写SQL命令: 当执行该菜单时,在浏览窗口显示kcdh、kcm及平均成绩(注:根据KC表及CJ表查询)。 四、 设计表单(10分) 图1 项目管理器中已经存在表单FA,该表单用来更改用户的密码。根据下列要求修改表单,设计时和运行时的效果分别如图2和图3所示。 1、 将文本框控件txtUserName设置为禁用,并将其与全局内存变量pUserName绑定; 2、 将“老密码”文本框控件txtOldPwd的密码占位符设置为字符“#”; 3、 添加一个“重置”命令按钮(如图3所示),对象名为cmdReset,标题为“重置”; 4、 为“重置”按钮设置Click事件代码,要求清除“新密码”和“新密码重复”相应文本框控件的文本值; 5、 已知在表单的Init事件代码中已定义了全局变量pPassWord,用来存放已登录用户的密码,完善“确定”按钮的Click事 件代码(提示:在原代码中的空行处添加一条语句),要求:当老密码与全局变量pPassWord的值相等时,检查“新密码”和“新 密码重复”相应文本框控件的文本值是否相等,如果相等,则将“新密码”文本框txtNewPwd1的值赋给全局变量pPassWord。
图2 设计时 图3 运行时 五、 程序改错题(5分) 下列程序的功能是找出1000之内所有的完数,并统计它们的个数。完数是指:数的各因子之和正好等于该数本身(例如6的因子是1、2、3,而1+2+3=6,所以6是完数)。要求: (1) 项目中有一个程序文件Pcode,将下列程序输入到其中并进行修改; (2) 在修改程序时,不允许修改程序的总体框架和算法,不允许增加或减少语句数目 CLEAR nCount=0 FOR n1=1 TO 1000 m=0 FOR n2=1 TO n1-1 IF n1/n2=MOD(n1,n2) m=m+n2 ENDIF ENDIF IF n1=m ?n1 nCount=nCount+1 ENDIF ENDFOR WAIT WINDOWS"完整的个数为"+STR(nCount)
|
|