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