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