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