1、国家二级 VF 机试-试卷 238 及答案解析(总分:12.00,做题时间:90 分钟)一、基本操作题(总题数:2,分数:4.00)1.基本操作题()(分数:2.00)_2.(1)打开“订货管理”数据库,并将表 order_list 添加到该数据库中。 (2)在“订货管理”数据库中建立表 order_detail,表结构描述如下: 订单号 字符型(6) 器件号 字符型(6) 器件名 字符型(16) 单价 浮动型(10,2) 数量 整型 (3)为新建立的 order detail 表建立一个普通索引,索引名和索引表达式均是“订单号”。 (4)建立表 order list 和表 order det
2、ail 间的永久联系(通过“订单号”字段)。(分数:2.00)_二、简单应用题(总题数:2,分数:4.00)3.简单应用题()(分数:2.00)_4.(1)在 SCORE MANAGER 数据库中查询学生的姓名和 2003 年的年龄(计算年龄的公式是:2003-Year(出生日期),年龄作为字段名)。结果保存在一个新表 NEW_TABLE1 中。使用报表向导建立报表 NEW_REPORT1,用报表显示 NEW_TABLE1 的内容。报表中数据按年龄升序排列,报表标题是“姓名-年龄”,其余参数使用缺省参数。 (2)建立菜单 query_menu。该菜单只有一个“查询”和“退出”两个主菜单项(条形
3、菜单),其中单击菜单项“退出”时,返回到 VFP 系统菜单(相应命令写在命令框中,不要写过程)。(分数:2.00)_三、综合应用题(总题数:2,分数:4.00)5.综合应用题()(分数:2.00)_6.编写程序并执行,计算“01”组(歌手编号的前 2 位)歌手的得分并将结果存入自由表 fina1dbf 中。fina1dbf 包含“歌手姓名”和“得分”两个字段,“得分”取各评委所打分数的平均值。fina1dbf中的结果按“得分”降序、“歌手姓名”降序排列。请将程序存储在 twoprg 中,否则不得分。 新建一个文件名和表单名均为 score form 的表单,向表单添加一个命令按钮 Comman
4、d1,标题为“计算”,为该命令按钮的 Click 事件增加命令,调用 twoprg 程序执行。最后运行该表单,并单击“计算”按钮执行 two 程序。 新建一个项目文件 score_project,将自由表“歌手表”、“评委表”和“评分表”以及表单文件 score form 加入该项目,然后将项目文件连编成应用程序文件 score app。(分数:2.00)_国家二级 VF 机试-试卷 238 答案解析(总分:12.00,做题时间:90 分钟)一、基本操作题(总题数:2,分数:4.00)1.基本操作题()(分数:2.00)_解析:2.(1)打开“订货管理”数据库,并将表 order_list 添
5、加到该数据库中。 (2)在“订货管理”数据库中建立表 order_detail,表结构描述如下: 订单号 字符型(6) 器件号 字符型(6) 器件名 字符型(16) 单价 浮动型(10,2) 数量 整型 (3)为新建立的 order detail 表建立一个普通索引,索引名和索引表达式均是“订单号”。 (4)建立表 order list 和表 order detail 间的永久联系(通过“订单号”字段)。(分数:2.00)_正确答案:(正确答案:(1)在命令窗口执行命令: MODIFY DATABASE 订货管理 ,新建数据库并打开数据库设计器。 在数据库设计器中右击鼠标,选择【添加表】快捷菜
6、单命令,在弹出的“打开”对话框中双击“order_list”表。 (2)在数据库设计器中右击鼠标,选择【新建表】快捷菜单命令,在弹出的“新建表”对话框中单击“新建表”图标按钮,然后在弹出的“创建”对话框的“输入表名”框中输入“order_derail”,单击“保存”按钮打开表设计器。 根据题意,在表设计器中逐行输入每个字段的字段名,并设置字段类型和宽度,然后单击“确定”按钮,此时系统会弹出一个对话框询问“现在输入数据记录吗?”,由于本题没有要求输入数据,单击“否”按钮。 (3)右击数据库设计器中的 order_deail表,选择【修改】快捷菜单命令,打开 order_detail 表设计器,在
7、“字段”选项卡中选中“订单号”,在“索引”列中选择“升序”,然后单击“确定”按钮保存表结构修改。 (4)拖动 order list 表“索引”下方的候选索引“订单号“到 order_detail 表中“索引”下方的普通索引“订单号”上,为两个表建立联系。)解析:解析:本大题考查了数据库的基本操作;数据库表的建立:索引的建立以及表之间联系的建立。 通过 MODIFY DATABASE数据库名命令可在新建数据库的同时打开数据库设计器,然后在数据库设计器中完成添加数据表的操作。在表设计器的“字段”选项卡中,可以通过选择“排序”下拉框中的“升序”或“降序”为指定的字段建立一个索引名与索引表达式相同的普
8、通索引。二、简单应用题(总题数:2,分数:4.00)3.简单应用题()(分数:2.00)_解析:4.(1)在 SCORE MANAGER 数据库中查询学生的姓名和 2003 年的年龄(计算年龄的公式是:2003-Year(出生日期),年龄作为字段名)。结果保存在一个新表 NEW_TABLE1 中。使用报表向导建立报表 NEW_REPORT1,用报表显示 NEW_TABLE1 的内容。报表中数据按年龄升序排列,报表标题是“姓名-年龄”,其余参数使用缺省参数。 (2)建立菜单 query_menu。该菜单只有一个“查询”和“退出”两个主菜单项(条形菜单),其中单击菜单项“退出”时,返回到 VFP
9、系统菜单(相应命令写在命令框中,不要写过程)。(分数:2.00)_正确答案:(正确答案:(1)步骤 1:在命令窗口执行命令: OPEN DATABASEscore_manager ,打开数据库环境。 步骤 2:在命令窗口执行命令: SELECT 姓名,2003-year(出生日期) AS 年龄 ; FROM student INTO TABLE new_table1 步骤 3:执行【文件】【新建】菜单命令,或单击“常用”工具栏的“新建”按钮,在弹出的“新建”对话框中选中“报表”选项,然后单击“向导”图标按钮,系统弹出“向导选取”对话框,选中“报表向导”项,单击“确定”按钮。 启动报表向导。 步
10、骤 4:在报表向导的“步骤 1-字段选取”界面的“数据库和表”下单击命令按钮(有 3 个点的按钮),在弹出的“打开”对话框中双击“new table1”表,接着将“可用字段”中的所有字段添加到“选定字段”中,单击“下一步”按钮。 步骤 5:跳过“步骤 2-分组记录”界面继续单击“下一步”按钮。 步骤 6:跳过“步骤 3-选择报表样式”界面继续单击“下一步”按钮。 步骤 7:跳过“步骤 4-定义报表布局”继续单击“下一步”按钮。 步骤8:在报表向导的“步骤 5-排序记录”界面中双击“可用的字段或索引标识”中的“年龄”字段到“选定字段”列表中,然后单击“升序”单选项,单击“下一步”按钮。 步骤 9
11、:在报表向导的“步骤 6-完成”界面中修改报表标题为“姓名年龄”,单击“完成”按钮,在“另存为”对话框的“保存报表为:”框中输入报表文件名:new_report1,单击“保存”按钮。 (2)步骤 1:在命令窗口执行命令: CREATE MENU query_menu ,在弹出的“新建菜单”对话框中单击“菜单”图标按钮,打 开菜单设计器。 步骤2:在菜单设计器“菜单名称”列的文本框中依次输入“查询”和“退出”两个主菜单名。 步骤 3:选择“退出”菜单命令的“结果”项为“命令”,并输入命令语句: SET SYSMENU TO DEFAULT 。 步骤 4:执行【菜单】【生成】菜单命令,在弹出的 V
12、isual FoxPro 对话框中单击“是”按钮,接着系统会弹出“生成菜单”对话框,单击“生成”按钮生成一个可执行的菜单文件。 、步骤 5:在命令窗口执行命令: DO query_menumpr ,运行菜单查看结果。)解析:解析:(1)本题考查了 SQL 语句和使用报表向导建立报表的方法。在 SQL 中,将查询结果保存到永久表中应使用 INTO TABLE 或 INTO DBF 短语。 (2)本题考查菜单的建立及使用,操作比较简单,注意选择“结果”方式设计菜单命令功能。三、综合应用题(总题数:2,分数:4.00)5.综合应用题()(分数:2.00)_解析:6.编写程序并执行,计算“01”组(歌
13、手编号的前 2 位)歌手的得分并将结果存入自由表 fina1dbf 中。fina1dbf 包含“歌手姓名”和“得分”两个字段,“得分”取各评委所打分数的平均值。fina1dbf中的结果按“得分”降序、“歌手姓名”降序排列。请将程序存储在 twoprg 中,否则不得分。 新建一个文件名和表单名均为 score form 的表单,向表单添加一个命令按钮 Command1,标题为“计算”,为该命令按钮的 Click 事件增加命令,调用 twoprg 程序执行。最后运行该表单,并单击“计算”按钮执行 two 程序。 新建一个项目文件 score_project,将自由表“歌手表”、“评委表”和“评分表
14、”以及表单文件 score form 加入该项目,然后将项目文件连编成应用程序文件 score app。(分数:2.00)_正确答案:(正确答案:步骤 1:在命令窗口执行命令: MODIFY COMMAND two ,打开程序文件编辑器。 步骤 2:在编辑器中输入如下程序代码并保存(以下 SQL 查询语句是通过查询设计器生成): SELECT 歌手姓名,AVG(分数) AS 得分 FROM 歌手表,评分表; WHERE 歌手表歌手编号=评分表歌手编号 AND LEFT(歌手表歌手编号,2)=”01”, GROUP BY 歌手表歌手编号,ORDER BY 得分 DESC,歌手姓名DESCINTO
15、 TABLE final 步骤 3:在命令窗口执行命令: CREATE FORM score_form ,打开表单设计器新建立表单。 步骤 4:从“表单控件”工具栏中向表单添加一个命令按钮。在“属性”面板中修改表单(Form1)的 Name 属值为:score_form,修改命令按钮(Command1)的 Caption 属性值为:计算。 步骤 5:双击命令按钮(Conunand1)编写 Click 事件代码; DO two 。单击“常用”工具栏中的“运行”按钮查看结果,将表单文件保存到考生文件夹下。 步骤 6:在命令窗口执行命令: CREATE PROJECT score_project ,
16、新建一个项目管理器。在项目管理器的“数据”选项卡中选中“自由表”,然后单击项目管理器右边的“添加”按钮,将考生文件夹下的“歌手表”、“评委表”和“评分表”依次加入到项目中;以同样的方法,在“文档”选项卡中。将 score_form 表单添加到项目中。 步骤 7:单击项目管理器右侧的“连编”命令打开“连编选项”对话框,在对话框中选中“连编应用程序”,单击“确定”按钮,在弹出的“另存为”对话框的“应用程序名”中输入:score_app,单击“保存”按钮保存连编项目文件。)解析:解析:本大题主要考查了程序文件的建立与运行:SQL 分组计算查询;连编应用程序等。 本题关键是 SQL 分组计算查询的设计
17、,设置过程可参照以下步骤进行缡写: 在 SELECT 短语中指定要输出的字段,包括通过 AVG()函数计算生成的新字段。 通过 FROM.JOIN.ON.等短语指定查询数据 源,并建立表间联系,查询源表为“歌手”表和“评分”表,两个表的联接字段为“歌手编号”。 利用 GROUP BY 短语对表记录分组,分组字段为“歌手编号”。 利用 ORDER BY 短语设置两个字段的排序方式。ASC 短语表示升序排序,为系统默认的排序方式,可省略谊短语; DESC 短语袁示降序排序,不可缺省。 最后将查询结果通过 INTO TABLE 命令输出到指定的数据表中。 另外,调用程序文件的命令是 DO文件名;连编应用程序可通过单击项目管理器右侧的“连编”命令打开“连编选项”对话框完成。