1、二级 VISUAL+FOXPRO 机试 31 及答案解析(总分:100.00,做题时间:90 分钟)一、B一 基本操作题/B(总题数:1,分数:30.00)1.在考生文件夹下建立项目 stsc_m。 (2)把数据库 stsc 加入到 stsc_m 项目中。 (3)从 student 表中查询“金融”系学生信息(student 表全部字段),按“学号”升序存入新表 new。 (4)使用视图设计器在数据库中建立视图 new_view:视图包括 student 表全部字段(字段顺序和 student 表一样)和全部记录(元组),记录按“学号”降序排序。(分数:30.00)_二、B二 简单应用题/B(
2、总题数:1,分数:40.00)2.首先打开考生文件夹下的数据库 stsc,然后使用表单向导制作一个表单,要求选择 student 表中所有字段,表单样式为阴影式,按钮类型为图片按钮,排序字段选择学号(升序),表单标题为“学生信息数据输入维护”,最后将表单存放在考生文件夹中,表单文件名为 st_form。 (2)在考生文件夹下有一个数据库 stsc,其中数据库表 student 存放学生信息,使用菜单设计器制作一个名为 smenu1 的菜单,菜单包括“数据维护”和“文件”两个菜单栏。每个菜单栏都包括一个子菜单。菜单结构如下; 数据维护 数据表格式输入 文件 退出 其中,数据表格式输入菜单项对应的
3、过程包括下列 4 条命令:打开数据库 stsc 的命令,打开表 student 的命令,BROWSE 命令,关闭数据库的命令。 退出菜单项对应的命令为 SET SYSMENU TO DEFAULT,用于返回到系统菜单。(分数:40.00)_三、B三 综合应用题/B(总题数:1,分数:30.00)3.在考生文件夹下有学生管理数据库 stu_7,该库中有 chengji 表和 xuesheng 表,结构如下: chengji表(学号 C(9)、课程号 C(3)、成绩 N(7,2),该表用于记录学生的考试成绩,一个学生可以有多项记录(登记一个学生的多门成绩)。 xuesheng 表(学号 C(9)、
4、姓名 C(10)、平均分 N(7,2),该表用于记录学生信息,一个学生只有一个记录(表中有固定的已知数据)。 请编写并运行符合下列要求的程序: 设计一个名为 form_stu 的表单,表单中有两个命令按钮,按钮的名称分别为 cmdyes 和 cmdno,标题分别为“统计”和“关闭”。 程序运行时,单击“统计”按钮应完成下列操作: 根据 chengji 表计算每个学生的平均分,并将结果存入 xuesheng 表的“平均分”字段。 根据上面的计算结果,生成一个新的自由表pingjun,该表的字段按顺序取自 xuesheng 表的学号、姓名和平均分 3 项,并且按平均分升序排序,如果平均分相等,则按
5、学号升序排序。 单击“关闭”按钮,程序终止运行。(分数:30.00)_二级 VISUAL+FOXPRO 机试 31 答案解析(总分:100.00,做题时间:90 分钟)一、B一 基本操作题/B(总题数:1,分数:30.00)1.在考生文件夹下建立项目 stsc_m。 (2)把数据库 stsc 加入到 stsc_m 项目中。 (3)从 student 表中查询“金融”系学生信息(student 表全部字段),按“学号”升序存入新表 new。 (4)使用视图设计器在数据库中建立视图 new_view:视图包括 student 表全部字段(字段顺序和 student 表一样)和全部记录(元组),记录
6、按“学号”降序排序。(分数:30.00)_正确答案:()解析:在命令窗口输入命令:CREATE PROJECT stsc_m,建立一个新的项目管理器。 (2)在新建的项目管理器中,单击“数据”选项卡,然后选中列表框中的“数据库”,单击选项卡右边的“添加”命令按钮,将考生文件下的 stsc 数据库文件添加到项目管理器中。 (3)在命令窗口输入命令: SELECT*FROM student WHERE student院系=“金融”; ORDER BY Student.学号 INTO TABLE new 查询结果自动保存到新表 new 中。 (4)在“数据”选项卡中,单击“数据库”前面的“+”,依次
7、展开“数据库”“stsc”,选中 stsc 分支下的“本地视图”,单击项目管理器右边的“新建”命令按钮,打开视图设计器。首先将 student 数据表添加到视图设计器中,在视图设计器中的“字段”选项卡中,将“可用字段”列表框中的字段全部添加到右边的“选定字段”列表框中,然后在“排序依据”选项卡中将“选定字段”列表框中的“student.学号”字段添加到右边的“排序条件”中,在“排序选项”中选择“降序”,完成视图设计,将视图以 new_view 文件名保存在考生文件夹下。 解析 本大题考查的主要是项目管理器中“数据”选项卡里面所包含的 3 个重要内容的设计,包括数据库、视图和查询。需要注意的是新
8、建视图文件时,首先应该打开相应的数据库,且视图文件在磁盘中是找不到的,直接保存在数据库中。二、B二 简单应用题/B(总题数:1,分数:40.00)2.首先打开考生文件夹下的数据库 stsc,然后使用表单向导制作一个表单,要求选择 student 表中所有字段,表单样式为阴影式,按钮类型为图片按钮,排序字段选择学号(升序),表单标题为“学生信息数据输入维护”,最后将表单存放在考生文件夹中,表单文件名为 st_form。 (2)在考生文件夹下有一个数据库 stsc,其中数据库表 student 存放学生信息,使用菜单设计器制作一个名为 smenu1 的菜单,菜单包括“数据维护”和“文件”两个菜单栏
9、。每个菜单栏都包括一个子菜单。菜单结构如下; 数据维护 数据表格式输入 文件 退出 其中,数据表格式输入菜单项对应的过程包括下列 4 条命令:打开数据库 stsc 的命令,打开表 student 的命令,BROWSE 命令,关闭数据库的命令。 退出菜单项对应的命令为 SET SYSMENU TO DEFAULT,用于返回到系统菜单。(分数:40.00)_正确答案:()解析:(1)在命令窗口输入命令:OPEN DATABASE stsc,打开数据库。在“新建”对话框中选择“表单”单选项,再单击“向导”按钮,系统弹出“向导选取”对话框,在列表框中选择“表单向导”,单击“确定”按钮。 选择“表单向导
10、”后,系统首先弹出“字段选取”界面,选择数据表 student,通过选项卡中的“全部添加”按钮,将“可用字段”列表框中的所有字段全部添加到“选定字段”列表框中,如图3-37 所示。 单击“下一步”进入“选择表单样式”的界面,在“样式”列表框中选择 “阴影式”,在“按钮类型”选项组中选择“图片按钮”选项。 单击“下一步”进入“排序次序”的设计界面,将“可用字段或索引标识”列表框中的“学号”字段添加到右边的“选定字段”列表框中,并选择“升序”单选项。 单击“下一步”,进入最后的“完成”设计界面,在“标题”文本框中输入“学生信息数据输入维护”为表单添加标题,单击“完成”命令按钮,在系统弹出的“另存为
11、”对话框中,将表单以 st _ form名保存在考生目录下,退出表单设计向导。 (2)在命令窗口输入命令:CREATE MENU smenu1,系统弹出一个“新建菜单”对话框,在对话框中单击“菜单”按钮,进入菜单设计器环境。根据题目要求,首先输入两个主菜单名称“数据操作”和“文件”,在“结果”下拉列表中全部选择“子菜单”。 在主菜单设计窗口中,单击“数据操作”行中的“创建”按钮进入下级菜单的设计界面,然后输入子菜单项的名称“数据表格式输入”。根据题意,系统要求编写多条命令,因此在“结果”对话框中选择“过程”,此时出现“编辑”命令按钮,单击该命令按钮进入程序编辑窗口,在窗口输入如下程序段同,如图
12、 3-38 所示。 *“数据表格式输入”菜单命令的程序设计* OPEN DATABASE stsc USE student BROWSE CLOSE DATABASE * 以同样的方法,为“文件”主菜单设计子菜单“退出”,最后在“退出”菜单项的“命令”文本框中编写程序代码:SET SYSMENU TO DEFAULT。(要返回上级菜单,只要从菜单设计器窗口的“菜单级”下拉列表中选择“菜单栏”即可回到上级菜单) 选择菜单命令“菜单”“生成”,生成一个菜单文件 smenu1.mpr,关闭设计窗口。 解析 本大题 1 小题考查的主要是利用表单向导建立一个表单,注意每个向导界面,完成相应的设置即可;2
13、 小题是基本的菜单设计,注意每个菜单项的菜单级,以及“结果”下拉框中的各个选项的选择,例如用于编写多行命令一般选择“过程”。三、B三 综合应用题/B(总题数:1,分数:30.00)3.在考生文件夹下有学生管理数据库 stu_7,该库中有 chengji 表和 xuesheng 表,结构如下: chengji表(学号 C(9)、课程号 C(3)、成绩 N(7,2),该表用于记录学生的考试成绩,一个学生可以有多项记录(登记一个学生的多门成绩)。 xuesheng 表(学号 C(9)、姓名 C(10)、平均分 N(7,2),该表用于记录学生信息,一个学生只有一个记录(表中有固定的已知数据)。 请编写
14、并运行符合下列要求的程序: 设计一个名为 form_stu 的表单,表单中有两个命令按钮,按钮的名称分别为 cmdyes 和 cmdno,标题分别为“统计”和“关闭”。 程序运行时,单击“统计”按钮应完成下列操作: 根据 chengji 表计算每个学生的平均分,并将结果存入 xuesheng 表的“平均分”字段。 根据上面的计算结果,生成一个新的自由表pingjun,该表的字段按顺序取自 xuesheng 表的学号、姓名和平均分 3 项,并且按平均分升序排序,如果平均分相等,则按学号升序排序。 单击“关闭”按钮,程序终止运行。(分数:30.00)_正确答案:()解析:在命令窗口输入命令:CRE
15、ATE FORM form_stu,打开表单设计器;单击表单控件工具栏上的“命令按钮”控件图标,向表单添加两个命令按钮。选中第一个命令按钮(Command1),在属性对话框中将命令按钮的 Name 属性值修改为 cmdyes,将 Caption 属性值修改为“统计”,如图 3-39 所示。以同样的方法,将第二个命令按钮(Command2)的 Name 属性值修改为 cmdno,将 Caption 属性值修改为“关闭”。 双击命令按钮 cmdyes(统计),在 Click 事件代码中编写如下程序段: *“统计”命令按钮的 Click 事件代码* SET TALK OFF OPEN DATABAS
16、E stu_7 USE xuesheng DO WHILE NOT EOF() SELECT AVG(成绩)FROM chengji; WHERE 学号=xuesheng.学号 INTO ARRAY atemp REPLACE 平均分 WITH atemp(1,1) SKIP ENDDO SELECT 学号,姓名,平均分 FROM xuesheng; ORDER BY 平均分,学号; INTO TABLE pingjun CLOSE ALL SET TALK ON SET SAFETY ON * 双击命令按钮cmdno(关闭),在 Click 事件代码中编写如下程序段: *“关闭”命令按钮的 Click 事件代码* Thisform.Release * 保存表单,在命令窗口输入命令:DO FORM form_stu。在运行的表单界面中单击“统计”命令按钮,系统将计算统计结果并保存到新表中。 解析 本题考查的是表单设计,在设计控件属性中,不要将控件的标题(Caption)和名称(Name)属性弄混淆了,名称属性是该控件的一个内部名称,而标题属性是用来显示的一个标签名称;程序部分可以利用一个 DO 循环来依次浏览表中的记录,然后利用 SQL 语句查询符合条件的记录存放到数组中,最后利用数组保存的记录存入到新的数据表中。