a我考网

 找回密码
 立即注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

查看: 103|回复: 0

[考试试题] 2010年计算机等级考试二级VFP上机试题及解题思路(3)

[复制链接]
发表于 2012-7-31 22:22:49 | 显示全部楼层 |阅读模式
  一、基本操作(共四小题,第1和2题是7分、第3和4题是8分
4 L3 J/ f' l/ M/ T7 F* o& r  1、请在考生文件夹下建立一个数据库KS4。+ j) H+ j/ H: ^8 }! r! a
  2、将考生文件夹下的自由表STUD、COUR、SCOR加入到数据库KS4中。
5 @; T) g5 g* _( O  3、为STUD表建立主索引,索引名和索引表达式均为学号
# p9 z, F  j! h) ^  [# E  为COUR表建立主索引,索引名和索引表达式均为课程编号& _; b1 g' K, l8 E9 }
  为SCOR表建立两个普通索引,其中一个索引名和索引表达式均为学号;另一个索引名和索引表达式均为课程编号
4 Z- R! v" d& |% g4 f# w  4、在以上建立的各个索引的基础上为三个表建立联系。& n* u8 d( F( r  I4 d- ?+ {
  本题的主要考核点:
/ A% o6 X+ f( X: U  数据库的建立、将自由表添加到数据库中、主索引和普通索引的建立,为已建立索引的表建立联系。; B- a* w  R. N) D3 w9 T
  解题思路:: `8 h, i- }9 M' G- ]6 b
  1.建立数据库的常用方法有三种:
% `2 c+ e* q+ w5 D  在项目管理器中建立数据库;' }+ g0 G, n  w
  通过"新建"对话框建立数据库;/ X1 X  q" n+ \2 P
  使用命令交互建立数据库,命令为: CREATE DATABASE [DatabaseName|?]
, @* m. p+ b, @  2.将自由表添加到数据库中,可以在项目管理器或数据库设计器中完成。打开数据库设计器,在"数据库"菜单中或在数据库设计器上单击右键弹出的菜单中选择"添加表",然后在"打开"对话框中选择要添加到当前数据库的自由表。还可用ADD TABLE命令添加一个自由表到当前数据库中。1 \. e6 v- z" Q& {
  3.在STUD表设计器中的索引选项卡建立索引名和索引表达式为学号的主索引。分别为COUR和SCOR建立主索引和普通索引。
1 _2 m( t7 D2 h% s2 X- M0 z4 {) D  4.在数据库设计器中建立三个表的联系。在数据库设计器中,将选中STUD表中的主索引"学号",按住鼠标拖动到SCOR表的普通索引"学号"上。
2 l+ y0 S) y, H' k1 I( ?/ K: T  用同样的方法可以建立COUR表和SCOR表的"课程编号"之间的联系。% R, {+ \2 G& g, o5 Z
  二、简单应用(2小题,每题20分,计40分)6 Q' S/ e: l; w- k, N- C
  1、在考生文件夹中有一个数据库STSC,其中有数据库表STUDENT、SCORE和
4 p! E  R2 u$ g- b1 G  COURSE& F- e7 _0 E9 L9 L; {' r1 h
  利用SQL语句查询选修了"网络工程"课程的学生的全部信息,并将结果按学号降序存放在 NETP.DBF文件中(库的结构同STUDENT,并在其后加入课程号和课程名字段)。
9 q' N( U  N0 @( m  2、在考生文件夹中有一个数据库STSC,其中有数据库表STUDENT,使用一对多报表向导制作一个名为CJ2的报表,存放在考生文件夹中要求:选择父表STUDENT 表中学号和姓名字段,从子表SCORE中选择课程号和成绩,排序字段选择学号(升序),报表式样为简报式,方向为纵向。报表标题为"学生成绩表"。
" S0 v& p  X# B! A( M; U1 J9 ]3 H5 p  第1题,本题的主要考核点是SQL语句的查询。# A2 W( `2 N3 v( d, U5 ~/ f' o( y
  SELECT Student.*, Score.课程号, Course.课程名;
5 K- i: i$ a  G* ~1 N9 c  FROM stsc!student INNER JOIN stsc!score;
4 E6 u! k  f  y  k0 \5 f! u  INNER JOIN stsc!course ;
5 i; N' J# o$ |0 u9 v  ON Score.课程号 = Course.课程号 ;
6 c, X5 r# P3 q+ I7 s- Q$ g& l  ON Student.学号 = Score.学号;* J) a9 K8 n  j& V# y, m
  WHERE AT("网络工程",Course.课程名) > 0;
, X- K# {& K) |/ V- |" O: p/ O  ORDER BY Student.学号 desc;& J. \( N$ x: @! a2 g
  INTO TABLE netp.dbf
& h& X1 Q8 V) t; ^9 n; O9 w  第2题,本题的主要考核点是使用报表向导制作报表。
, `: P( Y9 O5 J8 [. Y- F; D  启动报表向导可在"文件"菜单中选择"新建"或者单击工具栏上的"新建"按钮,打开"新建"对话框,文件类型选择报表,单击向导按钮。或者在"工具"菜单中选择"向导"子菜单,选择
0 L7 y9 k' w9 M5 `  L5 k2 u  "报表",或直接单击工具栏上的"报表向导"图标按钮。然后按照向导提示操作即可。( d/ w! U( D  ~
  三、综合应用(1小题,计30分)/ l7 ], |( v; I% Y
  在考生文件夹下有工资数据库WAGE3,包括数据表文件:ZG(仓库号C(4),
, a1 Q. i  f: `6 a  职工号C(4),工资N(4))
3 @" r9 t/ C% w8 B7 {, V  设计一个名为TJ3的菜单,菜单中有两个菜单项"统计"和"退出"。3 Y: p& }  B9 u: j8 s1 b
  程序运行时,单击"统计"菜单项应完成下列操作:检索出工资小于或等于本仓库职工平均工资的职工信息,并将这些职工信息按照仓库号升序,在仓库号相同的情况下再按职工号升序存放到EMP1(EMP1为自由表)文件中,该数据表文件和ZG数据表文件具有相同的结构。单击"退出"菜单项,程序终止运行。
, v) i1 a6 S6 q5 y+ l5 i  (注:相关数据表文件存在于考生文件夹下)
$ o' {/ r/ }. [( f) a# d* H: K  本题主要考核点:
8 F' |1 T; @& s% T6 ^" Q! V# a; x  菜单的建立、结构化查询语言(SQL)中的联接查询、查询的排序、临时表的概念、查询结果的去向等知识。" F" s% \0 {: i  q
  解题思路:
! e4 L2 N& c6 f  利用菜单设计器定义两个菜单项,在菜单名称为"统计"的菜单项的结果列中选择"过程",并通过单击"编辑"按钮打开一个窗中来添加"统计"菜单项要执行的命令。在菜单名称为"退出"的菜单项的结果列中选择"命令",并在后面的"选项"列中输入以下退出菜单的命令:SET SYSMENU TO DEFAULT
% `1 g; r6 ^+ U& v0 i  "统计"菜单项要执行的程序:# k3 y+ \2 ~6 k$ W
  首先是打开数据库文件OPNE DATABASE WAGE3.DBC我们应该得到每一个仓库的职工平均工资,并将结果放在一个临时的表CurTable中.利用以下语句可以实现:SELECT 仓库号,AVG(工资) AS AvgGZ FROM ZG GROUP BY 仓库号 INTO CURSOR CurTable.这样就生成了一个表名为CurTable的临时表。表中有两个字段:仓库号,AvgGZ,内容为每一个仓库的仓库号和所对应的职工的平均工资。% [4 p7 K9 q3 E
  有了临时表CurTable后我们可以将其与ZG进行联接查询,我们这里联接查询的目的不是为了得到临时表中的内容做为结果的一部分,而是要用其中的字段AvgGZ做为查询的条件.我们便可以得到"工资小于或低于本仓库职工平均工资的职工信息"的查询:SELECT ZG.* FROM ZG,CurTable WHERE ZG.仓库号=CurTable.仓库号 AND ZG.工资。
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

Archiver|手机版|小黑屋|Woexam.Com ( 湘ICP备18023104号 )

GMT+8, 2024-9-28 03:59 , Processed in 0.291602 second(s), 22 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表