1、上机操作题模拟试卷 21及答案与解析 一、基本操作题 1 首先将 order_detail表全部内容复制到 od_bak表,然后完成如下操作: 将 od_bak表中的订单号字段值只保留最后一个字母 (用 REPLACE命令或SQLUPDATE命令完成修改 )。 用 SQL语句对 od bak表编写完成如下功能的程序: 把 “订单号 ”相同并且 “器件号 ”相同的订单合并为一条记录, “单价 ”取最低价,“数量 ”取合计。 结果先按新的 “订单号 ”升序排序,再按 “器件号 ”升序排序。 最终记录的处理结果保存在 od new表中,表中的字段由 “订单号 ”、 “器件号 ”、 “器件名 ”、 “
2、单价 ”和 “数量 ”构成。 最后将程序保存为 prog1 prg,并执行该程序。 二、简单应用题 2 在考生文件夹下完成如下简单应用: (1)用 SQL语句完成下列操作:列出所有与 “红 ”颜色零件相关的信息 (供应商号、工程号和数量 ),并将查询结果按数量降序存放于表 “supply_temp”中。 (2)新建一个名为 “menu_quick”的快捷菜单,菜单中有两个菜单项: “查询 ”和 “修改 ”,并在表单 myform的 RightClick事件中调用快捷 菜单 menu_quick。 三、综合应用题 3 (1)请编写名称为 change_ c的程序并执行。该程序实现下面的功能:将雇
3、员工资表 salarys进行备份,备份文件名为 baksals.dbf。利用 “人事部 ”向 “财务部 ”提供的雇员工资调整表 c_salary1的 “工资 ”,对 salarys表的 “工资 ”进行调整 (请注意:按 “雇员号 ”相同进行调整,并且只是部分雇员的工资进行了调整,其他雇员的工资不动 )。最后将 salarys表中的记录存储到 od _ new表中 (表结构与 salarys表完全相同 )。 (2)设计一 个文件名为 form2的表单,其中包含 “调整 ”(名称 Command1)和 “退出 ”(名称 Command2)两个命令按钮。 单击 “调整 ”命令按钮时,调用 chang
4、e_ c命令程序实现工资调整。 单击 “退出 ”命令按钮时,关闭表单。 注意:在两个命令按钮中均只有一条命令,不可以有多余命令。 上机操作题模拟试卷 21答案与解析 一、基本操作题 1 【正确答案】 步骤 1:在命令窗口执行命令: SELECT * FROMorder_detail INTO TABLE od_bak,将 order_detail表的全部内容复制到 od_bak表中。 步骤 2:在命令窗口执行命令: UPDATE od_bak SET订单号 =RIGHT(ALLTRIM(订单号 ), 1),将 od_bak表中的 “订单号 ”字段值只保留最后一个字母。 步骤 3:在命令窗口执行
5、命令: MODIFY COMMAND PROG1,新建程序并打开程序编辑器。 步骤 4:在程序编辑器中输入如下程序代码: SELECT 订单号,器件号,器件名; MIN(单价 ) AS 单价, SUM(数量 ) AS 数量; FROM OD_BAK; GROUP BY 订单 号,器件号; ORDER BY 订单号,器件号; INTO TABLE OD_NEW 步骤 5:单击 “保存 ”按钮,并运行程序。 本题主要考查的是程序的建立方法、 SQL分组与计算查询语句、记录的修改方法。本题的 SQL分组与计算查询语句比较复杂,本题大概可以分为以下几步:首先利用 select语句将 order_det
6、ail表的记录复制到新表中,该语句比较简单。 接着,利用 UPDATE语句更新表中的记录值,不熟悉 UPDATE语句的考生也可以通过 replace.with.命令更新。 最后,通过 SQL分组与计算查询语句对记录进行合并,其中用到了 min()和 sum()函数计算,分组语句则要求同时对两个字段进行分组,首先是按订单号字段分组,接着再按配件号分组,分组计算完毕之后,再通过 order by短语对查询结果进行排序,最后保存查询结果到新表中。 【知识模块】 上机操作题 二、简单应用题 2 【正确答案】 (1)在命令窗口中输入命令: SELECT供应供应商号,供应工程号,供应数量 FROM零件,供
7、应 WHERE供应零件号 =零件零件号 AND零 件颜色 =“红 “ ORDER BY供应数量 desc INTO DBF supply_temp (回车执行 ) (2) 选择【文件】 【新建】命令,选择 “菜单 ”,单击 “新建文件 ”按钮,再单击“快捷菜单 ”按钮,打开菜单设计器,在 “菜单名称 ”中输入 “查询 ”“修改 ”,在 “结果 ”下拉列表框中选择 “子菜单 ”,选择【菜单】 【生成】命令,将菜单保存为“menu_quick”,生成一个菜单文件。 选择【文件】 【打开】命令,在 “打开 ”对话框中的 “文件类型 ”下拉列表框中选择 “表单 ”,选择 “myform”,单击 “确定
8、 ”按钮打开表单设计器。 双击表单设计器空白处,在打开的对话框中的 “过程 ”下拉列表框中选择“rightclick”,并输入代码: do menu mpr。 【知识模块】 上机操作题 三、综合应用题 3 【正确答案】 本大题 1小题主要是考查 SQL的查询、定义和更新语句,在更新数据表中的记录时,可利用 DO循环对表中的记录进行逐条更新; 2小题为表单的基本设计,在命令按钮中调用程序的命令,直接通过 DO命令来实现。 在命令窗口输入命令: MODIFY COMMAND change_ c,打开程序编辑器,编写如下程序段: *change_ c.prg文件中的程序段 * SET TALK OF
9、F SET SAFETY OFF SELECT * FROM salarys INTO TABLE baksals USE c_salary1 DO WHILE NOT EOF() UPDATE salarys SET工资 =c salary1.工资; WHERE 雇员号 =c_salary1.雇员号 SKIP ENDDO SELECT*FROM SALARYS INTO TABLE od_ new CLOSE ALL SET TALK ON SET SAFETY ON * 保存文件,在命令窗口输入命令: DO change _c,运行该文件。 (2)在命令窗口输入命令: CREATE FOR
10、M form2,打开表单设计器,根据题意,通过 “表单控件 ”工具栏,在表单中添加两个命令按钮,在属性面板中,分别修改两个命令按钮的 Caption属性值为 “调整 ”,和 “退出 ”,如图所示。双击 “调整 ”(Command1)命令按钮,进入事件编辑窗 口,在 Click事件中编写如下代码: *命令按钮Command1(调整 )的 Click事件代码 * DO change_ c * 以同样的方法为 “退出 ”命令按钮编写Click事件代码: *命令按钮 Command2(退出 )的 Click事件代码 * Thisform.Release * 保存表单完成设计。 【知识模块】 上机操作题