计算机等级考试:二级VFP机试第9套
来源:优易学  2011-12-9 20:42:57   【优易学:中国教育考试门户网】   资料下载   IT书店

第九套

一、基本操作题(共四小题,第1和2题是7分、第3和4题是8分)

    1、在考生文件夹下打开数据库CUST_M,为CUST表建立主索引,索引名为客户编号,

       索引表达式为客户编号。

    2、CUST表和ORDER1表中必要的索引已经建立,为两表建立永久性联系。

    3、为CUST表增为字段:客户等级C(2),字段值允许为空。

    4、为ORDER1表"金额"字段增加有效性规则:金额大于零,否则提示:金额必须

       大于零。

本题的主要考核点:

  主索引的建立、为已建立索引的表建立联系、字段的添加、字段有效性规则的建立。

解题思路:

1.在表设计器中的索引页面,建立索引名索引表达式都为客户编号的主索引。

2.建立两个表的联系。在父表中选中主索引,按住鼠标拖动至子表相应的普通索引上,释放鼠标,联系即已建立。

3.增加字段的方法:

打开CUST表的表设计器,将光标移动到最后的空字段格中,输入新的字段名、字段类型及长度。字段值允许为空,则选中"NULL"项。

4.建立有效性规则比较简单直接的方法是在表设计器中建立。在表设计器中首先选中要定义有效性规则的字段"金融",在"规则"一栏中输入"金额>0"(或用表达式生成器生成),在"信息"栏中输入:"金额必须大于零"。

二、简单应用(2小题,每题20分,计40分)

    1、在考生文件夹中有一个数据库SDB,其中有数据库表STUDENT2,SC和

       COURSE2。三个表如下所示:

       STUDENT2(学号,姓名,年龄,性别,院系编号)

       SC(学号,课程号,成绩,备注)

       COURSE2(课程号,课程名,先修课号,学分)

       在考生文件夹下有一个程序dbtest3.prg,该程序的功能是定义一个视图VS1,

       检索选课门数是3门以上的每个学生的学号、姓名、平均成绩、最低分、选

       课门数和院系编号,并按平均成绩降序排序。请修改程序中的错误,并调试

       该程序,使之正确运行。不得增加或删减程序行。

   2、在考生文件夹下有一个数据库CUST_M,数据库中有CUST和ORDER1两个表。请

       使用菜单设计器制作一个名为 MY_MENU的菜单,菜单只有"浏览"一个菜单

       项。

       浏览菜单项中有"客户"、"订单"和"退出"三个子菜单:

       客户子菜单使用SELECT * FROM CUST命令对CUST表查询;

       订单子菜单使用SELECT * FROM ORDER1命令对ORDER1表查询;

       退出子菜单使用SET SYSMENU TO DEFAULT命令返回系统菜单。

第1题,本题是一个程序修改题。第一个错误是在"USE DATABASE SDB"行,打开数据库的命令错误,应该是"OPEN DATABASE SDB"。第二个错误是在"FROM STUDENT2, COURSE2",按题目所给程序下一行"WHERE STUDENT2.学号 = SC.学号",可知此处应在STUDENT2和SC表中选择,应把COURSE2改为SC。第三个错误在"ORDER BY 成绩"行中,因要求按平均成绩降序排序,所以应改为"ORDER BY 平均成绩 DESC"。

第2题,本题的主要考核点是建立菜单。新建菜单可按下列步骤:选择"文件"菜单中的"新建"命令,在"新建"对话框中选择"菜单",单击"新建文件"按钮。在"新建菜单"对话框中选择"菜单"按钮,调出"菜单设计器"。也可用CREATE MENU命令直接调出菜单设计器。在菜单名称中填入"浏览",结果为子菜单,单击编辑;在子菜单的菜单名称中分别输入"客户"、"订单"和"退出",结果都为命令。分别在对应的命令栏内输入相应的命令,保存为MY_MENU。

三、综合应用(1小题,计30分)

    在考生文件夹下有学生管理数据库stu_3,数据库中有score_fs表,其表结构是

    学号C(10)、物理I、高数I、英语I和平均分 N(6.2)。成绩如果用-1表示,说明

    学生没有选学该门课程。其中 ,该表前四项已有数据。

    请编写并运行符合下列要求的程序:

    设计一个名为form_my的表单,表单中有两个命令按钮,按钮的名称分别为

    cmdYes和CmdNo,标题分别为"统计"和"关闭"。

    程序运行时,单击"统计"按钮应完成下列操作:

    (1)计算每一个学生的平均分存入平均分字段。注意:分数为-1不记入平均分,

       例如一个学生的三门成绩存储的是90,-1,70,平均分应是80。

    (2)根据上面的计算结果,生成一个新的表PJF ,该表只包括学号和平均分两

       项,并且按平均分的降序排序,如果平均分相等,则按学号升序排序。

单击"关闭"按钮,程序终止运行。

本题主要考核点:

表单的建立、程序设计中循环结构、条件结构的应用、SELECT语句的应用等知识点

解题思路:

第一步:利用表单设计器建立所要求的表单,将在表单上添加两个按钮控件。分别设置两个按钮控件的标题和名字属性。

第二步:双击标题为"统计"的按钮控件,在新打开的窗口中添加此按钮的CLICK事件代码:

SET TALK OFF                   &&在程序中要关闭命令结果的显示

SET SAFETY OFF                 &&关闭当生成的文件出现重名时的提示

OPEN DATABASE STU_3            &&打开数据库文件STU_3 (也可以直接将数据库文件加入到表单的数据环境之中)

USE SCORE_FS

GO TOP

DO WHILE NOT EOF()            &&遍历每一条记录

   STORE 0 TO RS,PJF          &&RS表示参加了几个科目的考试,PJF表示参加考试科目的成绩之和

   IF 物理<>-1 THEN           &&判断是否参加了物理科的考试

      RS=RS+1                 &&如果参加了物理科的考试,则考试科目加1

      PJF=PJF+物理            &&如果参加了物理科的考试,成绩加上物理科的成绩

ENDIF

IF 高数<>-1 THEN

   RS=RS+1

   PJF=PJF+高数

ENDIF

IF 英语<>-1 THEN

   RS=RS+1

   PJF=PJF+英语

ENDIF

IF RS<>0 THEN            &&在有参加科目考试的情况下计算出平均成绩

   REPLACE 平均分 WITH PJF/RS  && 计算出平均成绩并写入当前记录的"平均分"字段

ENDIF

SKIP

         ENDDO

SELECT学号,平均分 FROM SCORE_FS ORDER BY 平均分 DESC,学号 INTO TABLE PJF

&&利用SELECT语句中的ORDER BY 子句进行查询的排序,ORDER BY 子句默认的排序是升序,如果要指

&&写为降序需用DESC,如果有多个排序的依据,则按排序依据的优先顺序依次放在ORDER BY 子句的后面,

&&相互之间用,隔开;可以利用INTO TABLE子句将查询的结果生成一个永久表,也可以生成一个临时表

&&格式为:INTO CURSOR 临时表名

CLOSE ALL           &&关闭打开的数据库等

SET SAFETY ON       &&恢复原来的设置

SET TALK ON

第三步:用同样的方法为标题为"退出"的按钮控件添加如下的CLICK的事件代码:

thisForm.release   &&退出此表单。

责任编辑:小草

文章搜索:
 相关文章
热点资讯
资讯快报
热门课程培训