1、二级 VISUAL+FOXPRO 机试 4 及答案解析(总分:100.00,做题时间:90 分钟)一、B一 基本操作题/B(总题数:1,分数:30.00)1.(1)创建一个名为 student 的项目文件。 (2)将考生文件夹下的数据库 std 添加到新建的项目文件中。 (3)打开学生数据库 std,将考生文件夹下的自由表 tea 添加到“学生”数据库 std 中:为教师表 tea 创建一个索引名和索引表达式均为“教师编号”的主索引(升序)。 (4)通过“班级编号”字段建立表 ass 和表 dent 表间的永久联系。(分数:30.00)_二、B二 简单应用题/B(总题数:1,分数:40.00)
2、2.(1)在“医院”数据库中有“医生信息”表、 “处方信息”表和“药信息”表。用 SQL 语句查询开了药物“银翘片”的医生的所有信息,将使用的 SQL 语句保存在 my.txt 中。 (2)在考生文件夹下有一个数据库“医院”,其中有数据库表“医生信息”,在考生文件夹下设计一个表单 ys,该表单为“医生信息”表的窗口输入界面,表单上还有一个标题为“关闭”的按钮。单击该按钮,则退出表单。(分数:40.00)_三、B三 综合应用题/B(总题数:1,分数:30.00)3.在考生文件夹下有学生管理数据库 books,数据库中有 score 表(学号、物理、高数、英语和学分查询表结构),其中前 4 项已有
3、数据。 请编写符合下列要求的程序并运行程序: 设计一个名为 myform 的表单,表单中有两个命令按钮,按钮的名称分别为 cmdyes 和 cmdno,标题分别为“计算”和“关闭”。程序运行时,单击“计算”按钮应完成下列操作: 计算每一个学生的总学分并存入对应的学分字段。学分的计算方法是:物理 60 分以上(包括 60 分) 2 学分,否则 0 分;高数 60 分以上(包括 60 分)3 学分,否则 0分;英语 60 分以上(包括 60 分)4 学分,否则 0 分。 根据上面的计算结果,生成一个新的表 xf(要求表结构的字段类型与 score 表对应字段的类型一致),并且按“学分”升序排序,如
4、果“学分”相等,则按“学号”降序排序。单击“退出”按钮,程序终止运行。(分数:30.00)_二级 VISUAL+FOXPRO 机试 4 答案解析(总分:100.00,做题时间:90 分钟)一、B一 基本操作题/B(总题数:1,分数:30.00)1.(1)创建一个名为 student 的项目文件。 (2)将考生文件夹下的数据库 std 添加到新建的项目文件中。 (3)打开学生数据库 std,将考生文件夹下的自由表 tea 添加到“学生”数据库 std 中:为教师表 tea 创建一个索引名和索引表达式均为“教师编号”的主索引(升序)。 (4)通过“班级编号”字段建立表 ass 和表 dent 表间
5、的永久联系。(分数:30.00)_正确答案:()解析:(1)启动 Visual FoxPro 后,在命令窗口输入命令:CREATE PROJECT Student,新建一个项目管理器。 (2)在项目管理器 student 中,首先在“数据”选项卡中选择“数据库”,然后单击选项卡右边的“添加”命令按钮,在系统弹出的“打开”对话框中,将考生文件夹中的数据库 std 添加到项目管理器中,单击“确定”按钮。 (3)展开“数据库”分支,选中 std 数据库,然后单击选项卡中的“修改”命令按钮,打开数据库设计器,右键单击数据库设计器,选择“添加表”快捷菜单命令,系统弹出“打开”对话框,将考生文件夹下 te
6、a 自由表添加到数据库 std 中。 在数据库设计器中,右键单击数据库表 tea,在弹出的快捷菜单中选择“修改”菜单命令,进入 tea 的数据表设计器界面,在“字段”选项卡中为“教师编号”选择“升序”排序,然后单击“索引”选项卡,此选项卡中的“索引名”和“索引表达式”默认“教师编号”,在“索引类型”的下拉框中,选择“主索引”,单击“确定”按钮关闭表设计器。 (4)在数据库设计器中,将 ass 表中“索引”下面的“班级编号”主索引字段拖到 dent 表中“索引”下面的“班级编号”索引字段上,建立了两个表之间的永久性联系。 解析 本大题主要考查的是通过项目管理器来完成一些数据库及数据库表的操作,项
7、目的建立可以直接在命令窗口输入命令来实现,数据库添加可以通过项目管理器中的命令按钮,打开相应的设计器直接管理。对数据表进行连接是在数据库设计器中完成。二、B二 简单应用题/B(总题数:1,分数:40.00)2.(1)在“医院”数据库中有“医生信息”表、 “处方信息”表和“药信息”表。用 SQL 语句查询开了药物“银翘片”的医生的所有信息,将使用的 SQL 语句保存在 my.txt 中。 (2)在考生文件夹下有一个数据库“医院”,其中有数据库表“医生信息”,在考生文件夹下设计一个表单 ys,该表单为“医生信息”表的窗口输入界面,表单上还有一个标题为“关闭”的按钮。单击该按钮,则退出表单。(分数:
8、40.00)_正确答案:()解析:(1)在命令窗口中输入命令:MODIFY FILE my.txt,在文本编辑器窗口输入如下程序段: *文件 my.txt 中的程序段* SELECT 医生信息.职工号,医生信息.姓名,医生信息.职称,医生信息.部门,医生信息.年龄; FROM 医生信息,处方信息,药信息; WHERE 医生信息职工号:处方信息职工号; AND 处方信息.药编号=药信息.药编号; 药信息药名=“银翘片” * 在命令窗口输入命令:DO my.txt,程序运行结果如图 3-19 所示。 (2)从菜单栏里单击“文件”并选择“新建”,或直接单击工具栏上的“新建”图标,在弹出的对话框中文件
9、类型选择“表单”,单击对话框右边的“新建文件”图标,弹出了 Forml 的表单设计器,单击工具栏上的“保存”图标,以 ys 名保存在考生文件夹下; 在表单设计器中,鼠标右键单击空白表单,选择“数据环境”快捷菜单命令,打开表单的数据环境,将数据表文件“医生信息”添加到数据环境中,将数据环境中的“医生信息”表拖放到表单中,可看到在表单中出现一个表格控件,此时实现了“医生信息”表的窗口式输入界面,最后在“表单控件”工具栏中,选中命令按钮控件添加到表单中,在“属性”对话框修改该命令按钮的 Caption 属性值为“关闭”,双击该命令按钮,在 Click 事件中输入程序。 *命令按钮 Commandl(
10、关闭)的 Click 事件代码* Thisform.Release * 在命令窗口输入命令:DO FORM ys,运行表单,结果如图 3-20 所示。 三、B三 综合应用题/B(总题数:1,分数:30.00)3.在考生文件夹下有学生管理数据库 books,数据库中有 score 表(学号、物理、高数、英语和学分查询表结构),其中前 4 项已有数据。 请编写符合下列要求的程序并运行程序: 设计一个名为 myform 的表单,表单中有两个命令按钮,按钮的名称分别为 cmdyes 和 cmdno,标题分别为“计算”和“关闭”。程序运行时,单击“计算”按钮应完成下列操作: 计算每一个学生的总学分并存入
11、对应的学分字段。学分的计算方法是:物理 60 分以上(包括 60 分) 2 学分,否则 0 分;高数 60 分以上(包括 60 分)3 学分,否则 0分;英语 60 分以上(包括 60 分)4 学分,否则 0 分。 根据上面的计算结果,生成一个新的表 xf(要求表结构的字段类型与 score 表对应字段的类型一致),并且按“学分”升序排序,如果“学分”相等,则按“学号”降序排序。单击“退出”按钮,程序终止运行。(分数:30.00)_正确答案:()解析:在命令窗口输入命令:CREATE FORM myform,打开表单设计器:单击表单控件工具栏上的“命令按钮”控件图标,向表单添加两个命令按钮,选
12、中第一个命令按钮(commarldl),在属性对话框中将命令按钮的 Name 属性值修改为 cmdyes,将 Capdon 属性值修改为“计算”,如图 3-21 所示。以同样的方法,将第二个命令按钮(command2)的 Name 属性值修改为 cmdno,将 Caption 属性值修改为“关闭”。 双击命令按钮 cmdyes(计算),在 Click 事件代码中编写如下程序段: *命令按钮 Commandl(计算)的Click 事件代码* SET TALK OFF USE score REPLACE ALL 学分 WITH 0 GO TOP DO WHILE.NOT.EOF() IF 物理=6
13、0 THEN REPIACE 学分 WITH 学分+2 ENDIF IF 高数=60 THEN MPLACE 学分 WITH 学分+3 ENDIF IF 英语=60 THEN REPLACE 学分 WITH 学分+4 ENDIF SKIP ENDDO SORT ON 学分,学号/d TO xf SET tALK ON * 双击命令按钮 cmdno(关闭),在 Chck 事件代码中编写如下程序段: *命令按钮 Command2(关闭)的 Click 事件代码* Thisform.Release * 保存表单,在命令窗口输入命令:DO FORM myform。在运行的表单界面中单击“计算”命令按钮,系统将计算结果自动保存到新表 xf 中。 解析 本大题考查的主要是通过对表单控件编写事件代码,来完成数据的查询操作,一般来说命令按钮的单击事件代码是存放在 Click 事件中,控件属性修改可以在属性对话框中完成,对于程序设计部分,可以通过 Do While.Enddo 循环来依次判断数据表中的每条记录,然后通过条件语句进行分类统计。