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