二级vfp2005年(秋)上机4 |
|
江苏省高等学校非计算机专业学生 (本试卷完成时间 70分钟)
一、项目、数据库和表操作(12分) 打开软盘根目录中的项目文件TEST,在该项目中已有一数据库SJK及若干表。 1. 按以下要求修改SJK数据库中TS表: (1) 设置表的触发器:当册数(cs)不为0时,禁止删除。 (2) 添加一个字段,字段名为publisher,宽度以最多能存储“外语教学与研究出版社”字符串为准,并为其设置默认值“出版 社” (3) 设置国际标准图书编号(isbn)字段的标题属性,使该字段的字段名在浏览窗口中显示为“国际标准图书编号”。 (4) 创建一个普通索引abcd,要求册数(cs)字段进行排序,相同时以价格(jg)字段排序。 (5) 设置rkrp字段的有效性规则,要求不超过当前系统日期。 2、 将GZ表中qt字段的值全部设置为0 3、 修改项目TEST的项目信息:附加图标NET.ICO。 4、 XS表和CJ表已存在以学号(xh)字段为索引表达式的主索引xsxh和普通索引cjxh。以XS表为主表,CJ表为子表按xh建立永久关系,并根据以下要求设置参照完整性规则:在XS表中修改和删除记录时,若CJ表中有相对应的记录(xh字段的值),则同时修改和删除CJ表相应记录。 二、 设计查询(8分) 在TEST项目中已经存在查询chaxun,已知在SJK的课程(KC)表中含有课程代号(kcdh)、课程名(kcm)字段,成绩(CJ)表中含有学生学号(xh)、课程代号(kcdh)、成绩(cj)等字段。按如下要求修改查询: 基于KC表和CJ表查询每门课程选课人数、成绩优秀人数和成绩不及格人数,输出字段包括:KC、kcdh、Kc、kcm、选课人数、优秀人数、不及格人数。输出结果按选课人数降序排序(注:成绩大于等于90为优秀,小于60为不及格) 三、 设计菜单(5分) 已知项目TEST中已存在菜单menu,利用菜单设计器,按如下要求修改菜单。 1、 按图1所示要求为“表操作”菜单栏前增加一个“编辑”菜单栏及其子菜单,并为“教师”菜单设置访问键: 2、 在“编辑”菜单栏下的“学生”菜单项添加过程代码; 当执行该菜单项时,选择学生表(XS)为当前使用表(若该表未打开,则首先打开之),并逻辑删除学生表中xh前二位为“00”的记录。 图 1 四、 设计表单(10分) 项目管理器中已经存在表单FD(如图2所示)。该表单用来预览DBF表记录,根据下列要求修改表单,完成以后运行表单,效果如图3所示。 1、 设置表单可调整到的最小高度和最小宽度分别为200和250。 2、 设置Grid1表格的有关属性,使表格不显示删除标记列,并且使显示的数据只读但可获得焦点。 3、 在命令按钮组控件cmg中增加一个命令按钮,并设置该按钮的标题为“退出”。 4、 编写Resize事件的代码,是表单运行后改变表单窗口大小时,表格始终与表单同宽,表格的高度始终比表单高度小45。 5、 根据“打开表”命令按钮的Click事件代码中所指定的打开表的工作区,编写“关闭表”命令按钮的Click事件代码,要求仅用一天语句使该工作区中的表关闭。
图2 设计时
图3 运行时 五、 程序改错题(5分) 下列程序的功能是找出1992至2010年中的闰年年份。判断闰年的条件是:能被4整除但不能被100整除的年份,或能被400整除的年份。如1989、1900年不是闰年,1992,2000是闰年。要求: (1) 项目中有一个程序文件Pcode,将下列程序输入到其中并进行修改; (2) 在修改程序时,不允许修改程序的总体框架和算法,不允许增加或减少语句数目 n=1992 y=1 DO WHILE n<=2010 IF INT(n/4)=n/4 IF INT(n/100)<>n/100 y=1 ELSE IF INT(n/400)=n/400 y=1 ELSE y=0 ENDIF ENDIF ENDIF y=0 ENDIF WAIT WINDOW VAL(n)+'是'+IIF(y=1,'闰年','非闰年') n=n+1 ENDDO |
|