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

第十五套 
一、基本操作题(共四小题,第1和2题是7分、第3和4题是8分) 
    1、在考生文件夹下建立数据库STSC 
    2、把自由表STUDENT、COURSE、SCORE加入到数据库中。 
    3、为SCORE表的"成绩"字段建立有效性规则:成绩大于等于零,否则提示信 
       息:成绩必须大于等于零 
4、为STUDENT表建立主索引,索引名为PRIMARYKEY,索引表达式为学号。 
本题的主要考核点: 
    数据库的建立、将自由表添加到数据库中、建立有效性规则、索引的建立。 
1.建立数据库的常用方法有以下三种: 
在项目管理器中建议数据库 
通过"新建"对话框建议数据库 
使用命令交互建议数据库,命令为: CREATE DATABASE [DatabaseName|?] 
其中DatabaseName给出了要建立的数据库的名称,如果不指定数据库名称或使用?号都会弹出创建对话框请用户输入数据库名称。 
此处可用后两种。 
2.将自由表添加到数据库中,可以在项目管理器或数据库设计器中完成。在数据库设计器中可以从"数据库"菜单或在数据库设计器上单击右键弹出菜单中选择"添加表",然后在"打开"对话框中选择要添加到当前数据库的自由表。还可用ADD TABLE命令添加一个自由表到当前数据库中。 
3.建立有效性规则比较简单直接的方法是在表设计器中建立。在表设计器中首先选中要定义有效性规则的字段"成绩",在"规则"一栏中输入"成绩>=0"(或用表达式生成器生成),在"信息"栏中输入:"成绩必须大于等于零"。 
4.建立索引在表设计器中的索引选项卡中完成。 
二、简单应用(2小题,每题20分,计40分) 
    1、在考生文件夹中有一个商品数据库COMMDB,其中有数据库表SP存放商品信 
       息,使用菜单设计器制作一个名为SMENU的菜单,菜单包括"数据操作"和 
       "文件"两个菜单栏。 
       每个菜单栏都包括一个子菜单。菜单结构如下: 
       数据操作 
           数据输出 
       文件 
           退出 
      其中: 
      数据输出子菜单对应的过程完成下列操作:打开数据库COMMDB,使用SQL的 
      SELECT语句查询数据库表SP中所有信息,然后关闭数据库。 
      退出菜单项对应的过程含有命令SET SYSMENU TO DEFAULT,使之可以返回到 
      系统菜单。 
   2、在考生文件夹中有一个数据库SDB,其中有数据库表STUDENT2、SC和 
      COURSE2。三个表如下所示: 
      STUDENT2(学号,姓名,年龄,性别,院系编号) 
      SC(学号,课程号,成绩,备注) 
      COURSE2(课程号,课程名,先修课号,学分) 
      用SQL语句查询"数据库"课程的考试成绩在85分以上(含85分)的学生的全部信 
      息并将结果按学号升序存入自由表NINE.DBF文件中。(库的结构同STUDENT2, 
      并在其后加入成绩字段) 
第1题,本题的主要考核点是建立菜单和foxpro中的基本命令。 
新建菜单可按下列步骤:选择"文件"菜单中的"新建"命令,在"新建"对话框中选择"菜单",单击"新建文件"按钮。在 "新建菜单"对话框中选择"菜单"按钮,调出"菜单设计器"。也可用CREATE MENU命令直接调出菜单设计器。在菜单名称中填入"数据操作",结果为子菜单,单击编辑;在子菜单的菜单名称中输入"�数据输出",结果为过程。在过程中输入下列命令: 
open data commdb 
select * from sp 
close all 
文件菜单创建过程同上。 
第2题  本题的主要考核点是SQL语句查询。 
SELECT Student2.*, Sc.成绩; 
 FROM  sdb!student2 INNER JOIN sdb!sc; 
    INNER JOIN sdb!course2 ; 
   ON  Sc.课程号 = Course2.课程号 ; 
   ON  Student2.学号 = Sc.学号; 
 WHERE Course2.课程名 IN ("数据库"); 
   AND Sc.成绩 >= 85; 
 ORDER BY Student2.学号; 
 INTO TABLE nine.dbf 
三、综合应用(1小题,计30分) 
    考生文件夹下有学生管理数据库stu_nine,数据库中有score1表,其库结构是学 
    号C(10)、少数民族L、优秀干部L、三好生L、考试成绩I、总成绩I。其中,前 
    五项已有数据 
    请编写并运行符合下列要求的程序: 
    设计一个名为form_stu的表单,表单中有两个命令按钮,按钮的名称分别为 
    cmdYes和cmdNo,标题分别为"计算"和"关闭"。 
    程序运行时,单击"计算"按钮应完成下列操作 
   (1)计算每一个学生的总成绩。总成绩的计算方法是:考试成绩+加分,加分的规 
      则是:如果该生是少数民族(相应数据字段为 .T.)加分5分,优秀干部加分10 
      分,三好生加分20分,加分不累计,取最高的。例如,如果该生既是少数民 
      族又是三好生,加分为20分。如果都不是,总成绩=考试成绩 
   (2)根据上面的计算结果,生成一个新的自由表 ZCJ,该表只包括学号和总成绩 
      两项,并按总成绩的升序排序,如果总成绩相等,则按学号的升序排序。 
      单击"关闭"按钮,程序终止运行。 
本题主要考核点: 
表单的建立、程序设计中循环结构、条件结构的应用、SELECT语句的应用等知识点

解题思路: 
第一步:利用表单设计器建立所要求的表单,将在表单上添加两个按钮控件。分别设置两个按钮控件的标题和名字属性。 
第二步:双击标题为"计算"的按钮控件,在新打开的窗口中添加此按钮的CLICK事件代码: 
        SET TALK OFF   &&在程序运行下关闭命令结果的显示 
        OPEN DATABASE STU_NINE    &&打开数据库文件 
        USE SCORE1                   &&打开成绩表 
        DO WHILE NOT EOF()          &&遍历成绩表中的每一条记录 
            STORE 0 TO JF             &&对变量JF赋值0 
            DO CASE                   
                CASE 三好生 
                      JF=20 
                CASE 优秀干部 
                      JF=10 
                CASE 少数民族 
                      JF=5 
                OTHERWISE 
                      JF=0 
            ENDCASE 
            &&DO CASE…..ENDCASE条件语句中每次仅运行其中的一组命令。 
            &&如果第一个 CASE 条件表达式 中条件表达式为.T.,则执行第一个CASE 
            &&和第二个CASE之间的语句,而即使下面的有满足条件的CASE也不再执行 
            &&如果所有的CASE条件都不满足,则执行OTHERWISE与ENDCASE之间的语句 
            &&所以这里要将"三好生"放在第一个CASE的位置;"优秀干部"话在第二个CASE中 
            &&"少数民族"放在第三个CASE中 
            REPLACE 总成绩 WITH 考试成绩+JF 
            &&用当前的成绩与可以加的分之和做为总成绩 
            SKIP 
        ENDDO 
        SELECT 学号,总成绩 FROM SCORE1 ORDER BY 总成绩,学号; 
        INTO TABLE ZCJ 
        &&利用ORDER BY 子句可以将查询结果集按一定的顺序进行排序 
        &&默认是以升序进行排序,如果要以降序进行排序,需在排序依据的后面加DESC 
        &&在排序的时候可以指定多个排序的依据,根据优先级的不同依次放在ORDER BY 的后面 
        &&利用INTO TABLE 表名 可以将结果集放入一个永久表中 
CLOSE ALL 
        SET TALK ON   &&恢复命令结果的显示 
第三步:双击标题为"关闭"的按钮控件,在新打开的窗口中添加此按钮的CLICK事件代码: 
        THISFORM.RELEASE             &&退出本表单 
第四步:以文件名form_stu保存表单,并运行表单 

责任编辑:小草

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