1、计算机二级(VF)上机考试 27 及答案解析(总分:-3.00,做题时间:90 分钟)1.基本操作题(共 4 小题,第 1 和 2 题是 7 分、第 3 和 4 题是 8 分) (1)创建一个名为 student 的项目文件。 (2)将考生文件夹下的数据库 std 添加到新建的项目文件中。 (3)打开学生数据库 std,将考生文件夹下的自由表 tea 添加到“学生“数据库 std 中;为教师表 tea 创建一个索引名和索引表达式均为“教师编号“的主索引(升序)。 (4)通过“班级编号“字段建立表 ASS 和表 DENT 表间的永久联系。(分数:-1.00)_2.简单应用题(共 2 小题,每题
2、20 分,计 40 分) (1)使用“一对多表单向导“生成一个名为 sell 的表单。要求从父表 DE 中选择所有字段,从子表 PT 表中选择所有字段,使用“部门号“建立两表之间的关系,样式为“阴影式“;按钮类型为“图片按钮“;排序字段为部门编号(升序);表单标题为“数据维护“。 (2)在考生文件夹下打开命令文件 ASP.PRG,该命令文件用来查询各部门的分年度的“部门编号“、“部门名称“、“年度“、“全年销售额“、“全年利润“和“利润率“(全年利润全年销售额),查询结果先按“年度“升序、再按“利润率“降序排序,并存储到 Li 表中。 注意,程序在第 5 行、第 6 行、第 8 行和第 9 行
3、有错误,请直接在错误处修改。修改时,不可改变 SQL 语句的结构和短语的顺序,不允许增加或合并行。(分数:-1.00)_3.综合应用题(1 小题,计 30 分) 在考生文件夹下有职员管理数据库 staff_8,数据库中有 yuangong 表和 zhicheng 表。 yuangong 的表结构:职工编码 C(4)、姓名 C(10)、职称代码 C(1)、工资 N(10,2) zhigong 的表结构:职称代码 C(1)、职称名称 C(8)、增加百分比 N(10) 然后编写并运行符合下列要求的程序: 设计一个名为 staff_m 的菜单,菜单中有两个菜单项“计算“和“退出“。程序运行时,单击“计
4、算“菜单项应完成下列操作: 在表 yuangong 中增加一新的字段:新工资 N(10,2)。 现在要给每个人增加工资,请计算 yuangong 表的新工资字段,方法是根据 zhicheng 表中相应支撑的增加百分比来计算: 新工资=工资*(1+增加百分比/100) 单击“退出“菜单项对应命令 SET SYSMENU TO DEFAULT,用于返回到系统菜单,程序终止运行。(分数:-1.00)_计算机二级(VF)上机考试 27 答案解析(总分:-3.00,做题时间:90 分钟)1.基本操作题(共 4 小题,第 1 和 2 题是 7 分、第 3 和 4 题是 8 分) (1)创建一个名为 stu
5、dent 的项目文件。 (2)将考生文件夹下的数据库 std 添加到新建的项目文件中。 (3)打开学生数据库 std,将考生文件夹下的自由表 tea 添加到“学生“数据库 std 中;为教师表 tea 创建一个索引名和索引表达式均为“教师编号“的主索引(升序)。 (4)通过“班级编号“字段建立表 ASS 和表 DENT 表间的永久联系。(分数:-1.00)_正确答案:((1)启动 Visual FoxPro 后,在命令窗口输入命令:CREATE PROJECT Student,新建一个项目管理器。 (2)在项目管理器 student 中,首先在“数据“选项卡中选择“数据库“,然后单击选项卡右边
6、的“添加“命令按钮,在系统弹出的“打开“对话框中,将考生文件夹中的数据库 std 添加到项目管理器中,单击“确定“按钮。 (3)展开“数据库“分支,选中 std 数据库,然后单击选项卡中的“修改“命令按钮,打开数据库设计器,右键单击数据库设计器,选择“添加表“快捷菜单命令,系统弹出“打开“对话框,将考生文件夹下 tea 自由表添加到数据库 std 中。 在数据库设计器中,右键单击数据库表 tea,在弹出的快捷菜单中选择“修改“菜单命令,进入 tea 的数据表设计器界面,在“字段“选项卡中为“教师编号“选择“升序“排序,然后单击“索引“选项卡,此选项卡中的“索引名“和“索引表达式“默认“教师编号
7、“,在“索引类型“的下拉框中,选择“主索引“,单击“确定“按钮关闭表设计器。 (4)在数据库设计器中,将 ass 表中“索引“下面的“班级编号“主索引字段拖到 dent 表中“索引“下面的“班级编号“索引字段上,建立了两个表之间的永久性联系。)解析:本大题主要考查的是通过项目管理器来完成一些数据库及数据库表的操作,项目的建立可以直接在命令窗口输入命令来实现,数据库添加可以通过项目管理器中的命令按钮,打开相应的设计器直接管理。对数据表进行连接是在数据库设计器中完成。 2.简单应用题(共 2 小题,每题 20 分,计 40 分) (1)使用“一对多表单向导“生成一个名为 sell 的表单。要求从父
8、表 DE 中选择所有字段,从子表 PT 表中选择所有字段,使用“部门号“建立两表之间的关系,样式为“阴影式“;按钮类型为“图片按钮“;排序字段为部门编号(升序);表单标题为“数据维护“。 (2)在考生文件夹下打开命令文件 ASP.PRG,该命令文件用来查询各部门的分年度的“部门编号“、“部门名称“、“年度“、“全年销售额“、“全年利润“和“利润率“(全年利润全年销售额),查询结果先按“年度“升序、再按“利润率“降序排序,并存储到 Li 表中。 注意,程序在第 5 行、第 6 行、第 8 行和第 9 行有错误,请直接在错误处修改。修改时,不可改变 SQL 语句的结构和短语的顺序,不允许增加或合并
9、行。(分数:-1.00)_正确答案:((1)启动 Visual FoxPro,在“工具“菜单选择“向导“-“表单“菜单命令,出现“向导选取“对话框,根据题意数据源是多个表,因此选定“一对多表单向导“。单击“确定“。 步骤一:在弹出的对话框中“数据库和表“选项选择父表 DE,并把全部的“可用字段“选为“选定字段“。 步骤二:选择子表 PT,并把全部的“可用字段“选为“选定字段“。 步骤三:系统自动以“部门编号“建立两表之间的关系。 步骤四:表单样式选择为“阴影式“,按钮类型选择“图片按钮“。 步骤五:在“排序次序“中选择“部门编号“,并选择升序排序。 步骤六:把表单标题改为“数据维护“,可以在单
10、击“完成“之前单击“预览“按钮来预览生成的表单,最后单击“完成“按钮。 将表单以文件名为 sell 保存在考生文件夹里。表单运行结果如图所示, )解析:本大题 1 小题考查的是依据表单向导生成联系多表的表单内容,利用向导时应注意父表和子表的选择;2 小题中考查的是 SQL 语句的应用,注意 ORDER BY 和 GROUP BY 之间的差别。 3.综合应用题(1 小题,计 30 分) 在考生文件夹下有职员管理数据库 staff_8,数据库中有 yuangong 表和 zhicheng 表。 yuangong 的表结构:职工编码 C(4)、姓名 C(10)、职称代码 C(1)、工资 N(10,2
11、) zhigong 的表结构:职称代码 C(1)、职称名称 C(8)、增加百分比 N(10) 然后编写并运行符合下列要求的程序: 设计一个名为 staff_m 的菜单,菜单中有两个菜单项“计算“和“退出“。程序运行时,单击“计算“菜单项应完成下列操作: 在表 yuangong 中增加一新的字段:新工资 N(10,2)。 现在要给每个人增加工资,请计算 yuangong 表的新工资字段,方法是根据 zhicheng 表中相应支撑的增加百分比来计算: 新工资=工资*(1+增加百分比/100) 单击“退出“菜单项对应命令 SET SYSMENU TO DEFAULT,用于返回到系统菜单,程序终止运行
12、。(分数:-1.00)_正确答案:(在命令窗口输入命令:CREATE MENU staff_m,系统弹出一个“新建菜单“对话框,在对话框中单击“菜单“图形按钮,进入菜单设计器环境。根据题目要求,首先输入两个主菜单名称“计算“和“退出“,接着在“计算“菜单行的“结果“下拉框中选择“过程“选项(用于编写程序),在“退出“菜单行的“结果“下拉框中选择“命令“选项。 单击“计算“菜单行中的“编辑“按钮,进入程序设计的编辑窗口,在命令窗口中输入如下程序段: *“计算“菜单命令的程序设计* SET TALK OFF USE zhicheng IN 2 USE yuangong IN 1 ALTER TAB
13、LE yuangong ADD 新工资 N(10,2) SELECT 2 DO WHILE NOT EOF() WHERE yuangong.职称代码=zhicheng.职称代码 SELECT 2 SKIP ENDDO SET TALK ON * 在“退出“菜单项的“命令“文本框中编写程序代码:SET SYSMENU TO DEFAULT。 选择菜单命令“菜单“生成“,生成一个可执行菜单文件 staff_m.mpr。关闭设计窗口,在命令窗口输入命令:DO staff_m.mpr,看到 Visual FoxPro 的菜单栏被新建的菜单所代替,单击“退出“菜单命令将恢复系统菜单。 执行“计算“菜单命令后,系统生成一个新的字段,并将计算结果自动保存到新字段中。)解析:本大题考查了菜单的设计,主要注意“结果“下拉框中的选项选择即可,用于编写程序段的菜单命令应该选择“过程“,在菜单命令的过程设计中,注意正确使用 SQL 数据定义(新增字段)和数据更新(插入记录)语句,利用 DO 循环来执行每条记录的新工资字段内容的插入。