1、二级 VISUAL+FOXPRO 机试 1 及答案解析(总分:100.00,做题时间:90 分钟)一、B一 基本操作题/B(总题数:1,分数:30.00)1.请在考生文件夹下建立一个数据库 ks4。 (2)将考生文件夹下的自由表 stud、cour、scor 加入到数据库 ks4 中。 (3)为 stud 表建立主索引,索引名和索引表达式均为“学号”; 为 cour 表建立主索引,索引名和索引表达式均为“课程编号”; 为 scor 表建立两个普通索引,其中一个索引名和索引表达式均为“学号”,另一个索引名和索引表达式均为“课程编号”。 (4)在以上建立的各个索引的基础上为 3 个表建立联系。(分
2、数:30.00)_二、B二 简单应用题/B(总题数:1,分数:40.00)2.(1)在考生文件夹下有一个数据库 stsc,其中有数据库表 student、score 和 course,利用 SQL 语句查询选修了“网络工程”课程的学生的全部信息,并将结果按学号降序存放在 netp.dbf 文件中(表的结构同 student,并在其后加入课程号和课程名字段)。 (2)在考生文件夹下有一个数据库 stsc,其中有数据库表 student,使用一对多报表向导制作一个名为 cjb 的报表,存放在考生文件夹下。要求:从父表student 中选择学号和姓名字段,从子表 score 中选择课程号和成绩,排序
3、字段选择学号(升序),报表式样为简报式,方向为纵向。报表标题为“学生成绩表”。(分数:40.00)_三、B三 综合应用题/B(总题数:1,分数:30.00)3.在考生文件夹下有工资数据库 wage3,包括数据表文件:zg(仓库号 C(4),职工号 C(4),工资 N(4)。设计一个名为 tj 的菜单,菜单中有两个菜单项“统计”和“退出”。 程序运行时,单击“统计”菜单项应完成下列操作:检索出工资小于或等于本仓库职工平均工资的职工信息,并将这些职工信息按照仓库号升序,在仓库号相同的情况下再按职工号升序存放到 empl(empl 为自由表)文件中,该数据表文件和 zg 数据表文件具有相同的结构。
4、单击“退出”菜单项,程序终止运行。 (注意:相关数据表文件存在于考生文件夹下)(分数:30.00)_二级 VISUAL+FOXPRO 机试 1 答案解析(总分:100.00,做题时间:90 分钟)一、B一 基本操作题/B(总题数:1,分数:30.00)1.请在考生文件夹下建立一个数据库 ks4。 (2)将考生文件夹下的自由表 stud、cour、scor 加入到数据库 ks4 中。 (3)为 stud 表建立主索引,索引名和索引表达式均为“学号”; 为 cour 表建立主索引,索引名和索引表达式均为“课程编号”; 为 scor 表建立两个普通索引,其中一个索引名和索引表达式均为“学号”,另一个
5、索引名和索引表达式均为“课程编号”。 (4)在以上建立的各个索引的基础上为 3 个表建立联系。(分数:30.00)_正确答案:()解析:(1)在命令窗口输入命令:MODIFY DATABASE ks4,新建一个数据库。 (2)右键单击数据库设计器,选择“添加表”快捷菜单命令,系统弹出“打开”对话框,将考生文件夹下的 stud、coar 和 scor 三个自由表分别添加到数据库 ks4 中。 (3)在数据库设计器中,右键单击数据库表 stud.dbf,选择“修改”快捷菜单命令,进入 stud.dbf 的数据表设计器界面,在“字段”选项卡中为“学号”字段选择一个索引排序,然后单击“索引”选项卡,此
6、处字段索引名默认的为“学号”,在“索引”下拉框中选择索引类型为“主索引”。根据题意,以同样的方法为数据表 cour 和 scor 建立相应的索引。 (4)在数据库设计器中,将 stud 表中“索引”下面的“学号”主索引字段拖到 scor 表中“索引”下面的“学号”索引字段上,建立 stud 和 scor 两表之间的联系,以同样的方法建立 cour 和 scor 两表间的联系,关联字段为“课程编号”,这样就建立了 3 个表之间的联系。 解析 本大题主要考查的是数据库和数据表之间的联系,以及字段索引的建立。新建数据库可以通过菜单命令、工具栏按钮或直接输入命令来建立,添加或修改数据库表以及建立表之间
7、的联系,可以通过数据库设计器来完成,建立表索引可以在数据表设计器中完成。二、B二 简单应用题/B(总题数:1,分数:40.00)2.(1)在考生文件夹下有一个数据库 stsc,其中有数据库表 student、score 和 course,利用 SQL 语句查询选修了“网络工程”课程的学生的全部信息,并将结果按学号降序存放在 netp.dbf 文件中(表的结构同 student,并在其后加入课程号和课程名字段)。 (2)在考生文件夹下有一个数据库 stsc,其中有数据库表 student,使用一对多报表向导制作一个名为 cjb 的报表,存放在考生文件夹下。要求:从父表student 中选择学号和
8、姓名字段,从子表 score 中选择课程号和成绩,排序字段选择学号(升序),报表式样为简报式,方向为纵向。报表标题为“学生成绩表”。(分数:40.00)_正确答案:()解析:在命令窗口输入命令:MODIFY COMMAND query,打开程序文件编辑器。 在程序文件编辑窗口中输入如下程序段: *程序文件 query.prg 程序内容* SELECT student.*,score.课程号,course.课程名; FROM stsc!student INNER JOIN stsc!score; INNER JOIN stsc!course; ON score.课程号=course.课程号; O
9、N student.学号=score.学号; WHERE AT(“网络工程“,course.课程名)0; ORDER BY student.学号 DESC; INTO TABLE netp.dbf * 保存程序文件,在命令窗口输入命令:DO query,完成查询。 (2)请按以下步骤完成: 利用菜单命令“文件”“新建”,或从常用工具栏中单击新建按钮,在弹出的“新建”对话框中选择“报表”单选项,再单击“向导”按钮,系统弹出“向导选取”对话框,在列表框中选择“一对多报表向导”,单击“确定”按钮。 选择“一对多报表向导”后,系统首先要求选择一对多报表中作为父表的数据表文件。根据题意,选择 stude
10、nt 表作为父表,如图 3-12 所示,从“可用字段”列表框中将“姓名”和“学号”字段添加到右边的“选定字段”列表框中,用做父表的可用字段。 单击“下一步”设计子表的可用字段,操作方法与父表选取字段的方法一样,将 score 表中的“课程号”和“成绩”字段添加到“选定字段”列表框中。 单击“下一步”进入“建立表关联”的设计界面,在此处系统已经默认设置好进行关联的字段:父表的“学号”和子表的“学号”字段。 单击“下一步”进入“选择排序方式”的设计界面,将“可用字段或索引标识”列表框中的“学号”字段添加到右边的“选定字段”列表框中,并选择“升序”单选项。 单击“下一步”进入“选择报表样式”的界面,
11、在“样式”列表框中选择 “简报式”,在“方向”选项组中选择“纵向”。 单击“下一步”,进入最后的“完成”设计界面,在“标题”文本框中输入“学生成绩表”为报表添加标题,单击“完成”命令按钮,在系统弹出的“另存为”对话框中,将报表以 cjb 文件名保存在考生文件夹下,退出报表设计向导。 解析 本大题 1 小题考查的是利用 SQL 语句进行多表查询以及查询输出,程序设计中应注意数据表之间的关联以及查询结果的分组排序;2 小题主要考查报表向导的使用,只要根据每个向导界面的提示来完成相应的步骤即可。三、B三 综合应用题/B(总题数:1,分数:30.00)3.在考生文件夹下有工资数据库 wage3,包括数
12、据表文件:zg(仓库号 C(4),职工号 C(4),工资 N(4)。设计一个名为 tj 的菜单,菜单中有两个菜单项“统计”和“退出”。 程序运行时,单击“统计”菜单项应完成下列操作:检索出工资小于或等于本仓库职工平均工资的职工信息,并将这些职工信息按照仓库号升序,在仓库号相同的情况下再按职工号升序存放到 empl(empl 为自由表)文件中,该数据表文件和 zg 数据表文件具有相同的结构。 单击“退出”菜单项,程序终止运行。 (注意:相关数据表文件存在于考生文件夹下)(分数:30.00)_正确答案:()解析:在命令窗口输入命令:CREATE MENU tj,系统弹出一个“新建菜单”对话框,在对
13、话框中单击“菜单”按钮,进入菜单设计器环境。根据题目要求,首先输入两个主菜单名称“统计”和“退出”,接着在“统计”菜单行的“结果”下拉框中选择“过程”选项(用于编写程序),在“退出”菜单行的“结果”下拉框中选择“命令”选项。 单击“统计”菜单行中的“编辑”按钮,进入程序设计的编辑窗口,在程序编辑窗口中输入如下程序段: *“统计”菜单命令的程序设计* SET TALK OFF SET SAFETY OFF OPEN DATABASE wage3 SELECT 仓库号,AVG(工资)AS avggz; FROM zg; GROUP BY 仓库号; INTO CURSOR curtable SELE
14、CT zg.仓库号,zg.职工号,zg.工资; FROM zg,curtable; WHERE zg.工资=curtable.avggz; AND zg.仓库号=curtable.仓库号; ORDER BY zg.仓库号,职工号; INTO TABLE empl CLOSE ALL SET SAFETY ON SET TALK ON * 在“退出”菜单项的“命令”文本框中编写程序代码:SET SYSMENU TO DEFAULT。 选择菜单命令“菜单”“生成”,生成一个菜单文件 tj.mpr。关闭设计窗口,在命令窗口输入命令: DO tj.mpr,看到Visual FoxPro 的菜单栏被新建的菜单所代替,单击“退出”菜单命令将恢复系统菜单。 执行“统计”菜单命令后,系统自动生成新数据表文件 empl.dbf 用来保存查询结果。 解析 本大题考查的主要是利用 SQL 语句的进行分组计算查询,在本题应了解 SQL 中用于求平均值的函数 AVG 的使用;在菜单的设计过程中主要是注意两个菜单命令在“结果”下拉框中应选择的类型。