1、上机操作题-试卷 105 及答案解析(总分:6.00,做题时间:90 分钟)一、基本操作题(总题数:1,分数:2.00)1.在考生文件夹下的“订货管理”数据库中完成如下操作: (1)将 order detail、order list 和customer 表添加到数据库。 (2)为 order list 表创建一个主索引,索引名和索引表达式均是“订单号”。(3)建立表 order list 和表 order detail 间的永久联系(通过“订单号”字段)。 (4)为以上建立的联系设置参照完整性约束:更新规则为“限制”,删除规则为“级联”,插入规则为“限制”。(分数:2.00)_二、简单应用题(
2、总题数:1,分数:2.00)2.(1)列出客户名为“三益贸易公司”的订购单明细(order detail)记录(将结果先按“订单号”升序排列,同一订单的再按“单价”降序排列),并将结果存储到 results 表中(表结构与 order detail 表结构相同)。(2)考生文件夹下有一个 forml 表单文件,其中三个命令按钮 Click 事件下的语句都是错误的,请按如下要求进行修改(最后保存所做的修改): 单击“刷新标题”命令按钮时,使表单的标题为“简单应用”。 单击“订单记录”命令按钮时,使表格控件中显示 order list 表中的记录。 单击“关闭表单”命令按钮时,关闭表单。注意:每处
3、错误只能在原语句上进行修改,不可以增加语句。(分数:2.00)_三、综合应用题(总题数:1,分数:2.00)3.首先为 order detail 表增加一个新字段:新单价(类型与原来的单价字段相同),然后编写满足如下要求的程序:根据 order-list 表中的“订购日期”字段的值确定 order detail 表的“新单价”字段的值,原则是:“订购日期”为 2001 年的“新单价”字段的值为原单价的 90,订购日期为 2002 年的“新单价”字段的值为原单价的 110(注意:在修改操作过程中不要改变 orderdetail 表记录的顺序),最后将程序保存为 proglprg,并执行该程序。接
4、着再利用 Visual FoxPro 的“快速报表”功能建立一个的简单报表,该报表内容按顺序含有 orderl-detail 表的“订单号”、“器件号”、“器件名”、“新单价”和“数量”字段的值,将报表文件保存为 reportlfrx。(分数:2.00)_上机操作题-试卷 105 答案解析(总分:6.00,做题时间:90 分钟)一、基本操作题(总题数:1,分数:2.00)1.在考生文件夹下的“订货管理”数据库中完成如下操作: (1)将 order detail、order list 和customer 表添加到数据库。 (2)为 order list 表创建一个主索引,索引名和索引表达式均是“
5、订单号”。(3)建立表 order list 和表 order detail 间的永久联系(通过“订单号”字段)。 (4)为以上建立的联系设置参照完整性约束:更新规则为“限制”,删除规则为“级联”,插入规则为“限制”。(分数:2.00)_正确答案:(正确答案:本大题考查了数据库设计器的使用;索引的建立及永久联系的建立;参照完整性的设置。 为数据库表建立索引可以在表设计器中进行,在表设计器的“字段”选项卡中,可以通过选择“排序”下拉框中的“升序”或“降序”为指定的字段建立一个索引名与索引表达式相同的普通索引,如果要改变索引名或索引类型,则需要在“索引”选项卡中进行修改。 在建立参照完整性前要先建
6、立两个表的关联,且有一个表中必须建立关联字段的主索引(或候选索引),另一个表要建立普通索引,建立两个表联系后要先清理数据库,然后再设置参照完整性。 【操作步骤】 (1)在命令窗口执行命令:MODIFY DATABASE 订管理,打开数据库设计器。 在数据库设计器中右击鼠标,选择【添加表】快捷菜单命令,在弹出的“打开”对话框中双击 order detail 表,将表添加到数据库中,以同样的方法将 orderlist表和 customer 表添加到数据库中。 (2)在数据库设计器中,右击 order list 表,选择【修改】快捷菜单命令,打开 order list 表设计器,在“字段”选项卡中选
7、中“订单号”,在“索引”列中选择“升序”,然后在“索引”选项卡中修改“索引类型”为主索引,建立“订单号”字段的主索引,单击“确定”按钮保存表结构修改。 (3)在数据库设计器中,右击 orderdetail 表,选择【修改】快捷菜单命令,打开order detail 表设计器,在“字段”选项卡中选中“订单号”,在“索引”列中选择“升序”,建立“订单号”字段的普通索引,单击“确定”按钮保存表结构修改。 在数据库设计器中,拖动 orderlist 表“索引”下方的主索引“订单号”到 order detail 表“索引”下方的普通索引“订单号”上,为两个表建立联系。 (4)选中 order list
8、和 order detail 两个表之间的关联线(被选中的线会变粗),执行【数据库】一【清理数据库】菜单命令,清空数据库表中带有删除标记的记录,然后执行【数据库】-【编辑参照完整性】菜单命令。 在打开的“参照完整性”对话框的表格中,选择“更新”下的单元格内容为“限制”:“删除”下的单元格内容为“级联”;“插入”下的单元格内容为“限制”。单击“确定”按钮保存参照完整性的修改。)解析:二、简单应用题(总题数:1,分数:2.00)2.(1)列出客户名为“三益贸易公司”的订购单明细(order detail)记录(将结果先按“订单号”升序排列,同一订单的再按“单价”降序排列),并将结果存储到 resu
9、lts 表中(表结构与 order detail 表结构相同)。(2)考生文件夹下有一个 forml 表单文件,其中三个命令按钮 Click 事件下的语句都是错误的,请按如下要求进行修改(最后保存所做的修改): 单击“刷新标题”命令按钮时,使表单的标题为“简单应用”。 单击“订单记录”命令按钮时,使表格控件中显示 order list 表中的记录。 单击“关闭表单”命令按钮时,关闭表单。注意:每处错误只能在原语句上进行修改,不可以增加语句。(分数:2.00)_正确答案:(正确答案:(1)本题主要考查了 SQL的联接查询。本题的关键是判断查询用到了哪些表以及如何设置查询条件。根据题意,该查询用到
10、了 order detail、order list 和 customer 三张表,查询条件可以根据表中的关联字段得出。 另外,注意排序依据的设置,本题为双重排序,要将第一排序次序放前面。 【操作步骤】 在命令窗口执行如下 SQL 命令语句完成查询: (注意:以上 SQL 语句是根据查询文件完成的,大家也可以通过查询设计器完成本题操作。) (2)本题主要考查了表单及控件常用属性和方法的设置。表单的标题属性为 Caption。释放和关闭表单的方法是 Release。 【操作步骤】 步骤 1:在命令窗口执行命令:MODIFY FORM forml,打开表单设计器修改表单。 步骤 2:双击表单中的“刷
11、新标题”按钮,看到该按钮的 Click 事件中代码如下: THIsFORM=”简单应用” 修改后的代码如下: TH 工sFORMCAPTION=”简单应用” 步骤 3:双击表单中的“订单记录”按钮,看到该按钮的 Click 事件中代码; 步骤 4:双击表单中的“关闭表单”按钮,看到该按钮的 Click 事件中代码如下: THISFORMCLOSE 修改后的代码如下: THISFORMRELEASE 步骤 5:单击“常用”工具栏中的“运行”按钮查看结果,将表单文件保存到考生文件夹下。)解析:三、综合应用题(总题数:1,分数:2.00)3.首先为 order detail 表增加一个新字段:新单价
12、(类型与原来的单价字段相同),然后编写满足如下要求的程序:根据 order-list 表中的“订购日期”字段的值确定 order detail 表的“新单价”字段的值,原则是:“订购日期”为 2001 年的“新单价”字段的值为原单价的 90,订购日期为 2002 年的“新单价”字段的值为原单价的 110(注意:在修改操作过程中不要改变 orderdetail 表记录的顺序),最后将程序保存为 proglprg,并执行该程序。接着再利用 Visual FoxPro 的“快速报表”功能建立一个的简单报表,该报表内容按顺序含有 orderl-detail 表的“订单号”、“器件号”、“器件名”、“新
13、单价”和“数量”字段的值,将报表文件保存为 reportlfrx。(分数:2.00)_正确答案:(正确答案:本题主要考查的是程序文件的建立、SQL 查询、SQL 定义、SQL 更新和快速报表的建立。 本题的基本解题思路是: 首先通过 SQL 定义语句为表建立一个新字段,然后通过两个 SQL 更新语句分别针对订单是 2001 年和 2002 年的记录更新“新单价”的值,其中,更新判断条件可以通过 SQL。查询语句得到满足条件的记录。 注意,浮动型字段用字母 F 表示,对于 sQL 定义语句不太熟悉的考生,也可以在数据表设计器中增加新字段。 快速报表的建立需要在报表设计器中进行,在报表设计器中可以
14、通过菜单命令启动建立快速报表的功能,建立快速报表应先指定报表的数据源。 【操作步骤】 步骤 1:在命令窗口执行命令:MODIFY COMMANDPROG 1,新建程序并打开程序编辑器。 步骤 2:在程序编辑器中输入如下程序代码: 1 ALTER TABLE order-detail ADD 新单价 F(10,2) 2 uPDATE 0rderdetail sET 新单价=单价 *09; 3 WHERE 订单号=; 4 (SELECT 订单号 FROM 0rderlist; s WHERE 订单号=0rderdetail订单号 AND YEAR(订购日期):2001) 6 uPDATE orde
15、Ldetail SEI新单价=单价 *11; 7 WHERE 订单号=; 8 (sEIJECT 订单号 FROM 0rderlistj 9 WHERE 订单号=0rderdetail订单号 AND YEAR(订购日期):2002) 步骤 3:单击“常用”工具栏中的“运行”按钮运行程序。 步骤 4:在命令窗口执行命令:uSE orderdetail,打开 order detail 表。 步骤 5:在命令窗口执行命令:CREATE REPORTreportl,打开报表设计器,然后执行【报表】【快速报表】菜单命令,在弹出的“快速报表”对话框中单击“字段”按钮,依次双击“所有字段”列表框中的“订单号”、“器件号”、“器件名”、“新单价”和“数量”字段,将其添加到“选定字段”列表框中,单击“确定”按钮新建快速报表,预览和保存报表。如图 330 和图 33l 所示。 )解析: