就业数据资源平台
当前位置:首页 > Visual FoxPro
计算机等级考试二级VFP机试试题6

第六套


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



    1、在考生文件夹下建立数据库KS7;并将自由表SCOR加入数据库中。



    2、按下面给出的表结构。给数据库添加表STUD



          字段      字段名       类型     宽度    小数



           1         学号       字符型     2      



           2         姓名       字符型     8



           3         年龄       数值型     2      0      



           4         性别       字符型     2



           5         院系号     字符型     2



    3、为表STUD建立主索引,索引名为学号,索引表达式为学号



       为表SCOR建立普通索引,索引名为学号,索引表达式为学号



4、STUD表和SCOR表必要的索引已建立,为两表建立永久性的联系。



本题的主要考核点:



  数据库的建立、将自由表添加到数据库中、在数据库中建立新表、主索引和普通索引的建立、为已建立索引的表建立联系



解题思路:



1.建立数据库的常用方法:



在项目管理器中建立数据库;



通过"新建"对话框建立数据库;



使用命令交互建立数据库,命令为: CREATE DATABASE [DatabaseName|?]



将自由表添加到数据库中,可以在项目管理器或数据库设计器中完成。在数据库设计器中可以从"数据库"菜单或在数据库设计器上单击右键弹出的菜单中选择"添加表",然后在"打开"对话框中选择要添加到当前数据库的自由表。还可用ADD TABLE命令添加一个自由表到当前数据库中。



2.打开数据库设计器,在"数据库"菜单中或在数据库设计器上单击右键弹出的菜单中选择"新建表",新建表并输入字段。



3.在表设计器中的索引页面建立索引。



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



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



    1、在考生文件夹中有一个学生数据库STU,其中有数据库表STUDENT存放学生信



       息,使用菜单设计器制作一个名为STMENU的菜单,菜单包括"数据操



       作"和"文件"两个菜单栏。



       每个菜单栏都包括一个子菜单。菜单结构如下:



         数据操作



           数据输出



         文件



           保存



           退出



         其中:



       数据输出子菜单对应的过程完成下列操作:打开数据库STU,使用SQL的



       SELECT语句查询数据库表STUDENT 中所有信息,然后关闭数据库。



       退出菜单项对应的命令为SET SYSMENU TO DEFAULT,使之可以返回到系统菜



       单。保存菜单项不做要求。



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



       COURSE2。三个表如下所示:



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



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



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



     用SQL语句查询"计算机软件基础"课程的考试成绩在85分以下(含85分)的学



       生的全部信息并将结果按学号升序存入 NOEX.DBF文件中。(库的结构同



       STUDENT2,并在其后加入成绩字段)



第1题,本题的主要考核点是菜单的制作和数据库基本命令。



新建菜单可按下列步骤:选择"文件"菜单中的"新建"命令,在"新建"对话框中选择"菜单",单击"新建文件"按钮。在 "新建菜单"对话框中选择"菜单"按钮,调出"菜单设计器"。也可用CREATE MENU命令直接调出菜单设计器。在菜单名称中填入"数据操作",结果为子菜单,单击编辑;在子菜单的菜单名称中输入"�数据输出",结果为过程。在过程中输入下列命令:



OPEN DATA STU



SELECT * FROM STUDENT



CLOSE ALL



"文件"菜单同上,其中"退出"菜单对应结果为命令,命令为SET SYSMENU TO DEFAULT



第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 noex.dbf



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



   现有医院数据库DOCT3,包括三个表文件:YISHENG.DBF(医生)、



   YAO.DBF(药品)、CHUFANG.DBF(处方)。设计一个名为CHUFANG3的菜单,



   菜单中有两个菜单项"查询"和"退出"。



   程序运行时,单击"查询"应完成下列操作:查询同一处方中,包含"感冒"两个



   字的药品的处方号、药名和生产厂,以及医生的姓名和年龄,把查询结果按处方



   号升序排序存入JG9数据表中。JG9的结构为:(姓名,年龄,处方号,药名,生产



   厂)。最后统计这些医生的人数(注意不是人次数),并在JG9中追加一条记录,将



   人数填入该记录的处方号字段中。



   单击"退出"菜单项,程序终止运行。



   (注:相关数据表文件存在于考生文件夹下)



本题主要的考核点:



菜单的建立、结构化查询语言(SQL)中的联接查询、查询的去向等知识点



解题思路:



利用菜单设计器定义两个菜单项,在菜单名称为"查询"的菜单项的结果列中选择"过程",并通过单击"编辑"按钮打开一个窗口来添加"查询"菜单项要执行的命令。在菜单名称为"退出"的菜单项的结果列中选择"命令",并在后面的"选项"列中输入以下退出菜单的命令:SET SYSMENU TO DEFAULT



"查询"菜单项要执行的程序:



首先打开数据库文件 OPEN DATABASE DOCT3.DBC



我们分析最后的结果是要从三个有相互联系的表中得到信息,这自然要用到联接查询。可以通过表chufan和yao之间的联接我们得到,某一个处方所用到的药品的名字,进而我们可以得到处方中用到包含有"感冒"两个字的处方的处方号。我们也可以通过表chufang和 yisheng之间的联接来得到,某一个处方是那一个医生开出的。这样我便可以得到满足条件的查询。如下所示:SELECT 处方号,药名,生产厂,姓名,年龄 FROM yisheng,yao,chufang WHERE CHUFANG.药编号=YAO.药编号 AND CHUFANG.职工号=YISHENG.职工号 AND 药名 IN ("感冒").另外还要求要按照处方号的升序进行排序,这里要用到ORDER BY 处方号 DESC子句,另外还要求将结果存入JG9中,要用到INTO TABLE JG9.



通过以下的方式来得到生成的JG9中所包含的医生的人数,先生成一个临时表CurTable:SELECT * FROM JG9 GROUP BY 姓名 INTO CURSOR CurTable;然后我们得到临时表有多少条记录并写入变量j中,COUNT TO j



   最后我们利用INSERT将变量j的内容做为一条新的记录插入到JG9中:INSET INTO JG9 (处方名) VALUES (j)。

就业数据资源平台