图19-5
20
一、基本操作题(共4小题,第1和2题是7分、第3和4题是8分)
在考生文件夹下的\订货管理\数据库中完成下列基本操作:
(1)将order_detail、order_list和customer表添加到数据库。
(2)为order_list表创建一个主索引,索引名和索引表达式均是\订单号\。 (3)建立表order_list和表order_detail间的永久联系(通过\订单号\字段)。
(4)为以上建立的联系设置参照完整性约束:更新规则为\限制\,删除规则为\级联\,插入规则为\限制\。 【答案】
(1)在命令窗口输入命令:MODIFY DATABASE 订货管理,打开数据库设计器,右击数据库设计器,选择\添加表\快捷菜单命令,系统弹出\打开\对话框,将考生文件夹下的order_list、order_detail和customer三个数据表依次添加到数据库中。
(2)在数据库设计器中,右击数据表order_list,选择\修改\快捷菜单命令,系统弹出表设计器,在表设计器中选定\订单号\字段,然后在后面的\索引\下拉框中为该字段选择一个排序,最后在\索引\选项卡中,将索引类型选择为\主索引\。
(3)在数据库设计器中,将order_list表中\索引\下面的\订单号\主索引字段拖到order_detail表中\索引\下面的\订单号\索引字段上,建立两个表之间的永久性联系。
(4)在数据库设计器中,选择菜单命令\数据库\清理数据库\,如图20-1所示。然后右击表order_list和表order_detail之间的关系线,在弹出的快捷菜单中选择\编辑参照性关系\,弹出如图20-2所示的参照完整性生成器,根据题意,在3个选项卡中分别设置参照规则。
二、简单应用题(共2小题,每题20分,计40分)
(1)建立一个名为my的菜单,菜单中有两个菜单项\文件\和\返回\。\文件\菜单项下还有两个子菜单\打开\和\新建\。在\返回\菜单项下创建一个命令,负责返回系统菜单,其他菜单项不做要求。
(2)根据数据库stu中的表\宿舍情况\和\学生信息\建立一个查询,该查询包含学生信息表中的字段\学号\和\姓名\及宿舍情况表中的字段\宿舍\和\电话\。要求按\学号\升序排序,并将查询保存为myq。
【答案】
(1)在命令窗口中输入命令:CREATE MENU my,系统弹出一个\新建\对话框,在对话框中单击\菜单\图形按钮,进入菜单设计器环境。根据题目要求,首先输入两个主菜单名称\文件\和\返回\。在\文件\的\结果\下拉
框中选择\子菜单\,在\返回\的\结果\下拉框中选择\命令\。在\返回\菜单项的命令文本框中编写程序代码:SET SYSMENU TO DEFAULT。接着单击\文件\菜单项同一行中的\创建\按钮进入下级菜单的设计界面,此设计窗口与主窗口大致相同,然后编写每个子菜单项的名称\打开\和\新建\。
根据题意,系统不再要求设计下级菜单,因此在两个子菜单的\结果\下拉框中选择\过程\或\命令\。选择菜单命令\菜单\生成\,生成一个菜单文件my.mpr。
(2)可以直接在命令窗口输入:CREATE QUERY myq,打开查询设计器,新建一个查询。在查询设计器中,分别将\宿舍情况\和\学生信息\两个数据表文件添加到查询设计器中,系统自动查找两个数据表中匹配的字段进行内部联接,单击\确定\按钮,如图20-3所示。
图20-3
在查询设计器中的\字段\选项卡中,将\可用字段\列表框中的\学生信息.学号\、\学生信息.姓名\和\宿舍情况.宿舍\和\宿舍情况.电话\四个字段添加到右边的\选定字段\列表框中,在\排序依据\选项卡中,选择\学生信息.学号\升序排序。执行菜单命令\查询\运行查询\,查看查询结果。
三、综合应用题(1小题,计30分)
首先为order_detail表增加一个新字段:新单价(类型与原来的单价字段相同),然后编写满足如下要求的程序:根据order_list表中的\订购日期\字段的值确定order_detail表的\新单价\字段的值,原则是:订购日期为2001年的\新单价\字段的值为原单价的90%,订购日期为2002年的\新单价\字段的值为原单价的110%(注意:在修改操作过程中不要改变order_detail表记录的顺序),将order_detail表中的记录存储到od_new表中(表结构与order_detail表完全相同)。最后将程序保存为prog1.prg,并执行该程序。
接着再利用Visual FoxPro的\快速报表\功能建立一个的简单报表,该报表内容按顺序含有order_detail表的订单号、器件号、器件名、新单价和数量字段的值,将报表文件保存为report1。
【答案】
在命令窗口输入命令:USE order_detail && 打开数据表
MODIFY STRUCTURE && 打开表设计器
打开表设计器后,在\字段\选项卡的\数量\字段后增加一个新的字段,根据题意输入字段名:新单价,字段宽度和类型与\单价\字段一样。
在命令窗口输入命令:MODIFY COMMAND prog1,在程序编辑窗口中输入如下程序段: *********文件prog1.prg中程序段*********
&& 将订购日期是2001年的所有的订单号放入临时表curtable中
SELECT 订单号 FROM order_list WHERE YEAR(订购日期)=2001 INTO CURSOR aa && 对所有订购日期是2001年的计算新的单价 DO WHILE NOT EOF()
UPDATE order_detail SET 新单价=单价*0.9 WHERE 订单号=aa.订单号 SKIP ENDDO
&& 将订购日期是2002年的所有的订单号放入临时表CurTable中
SELECT 订单号 FROM order_list WHERE YEAR(订购日期)=2002 INTO CURSOR aa
&& 对所有订购日期是2002年的计算新的单价 DO WHILE NOT EOF()
UPDATE order_detail SET 新单价=单价*1.1 WHERE 订单号=aa.订单号 SKIP ENDDO
Select * from order_detail into table od_new ******************************************
保存设计结果,在命令窗口输入命令:DO prog1,执行程序文件。
在命令窗口输入命令:CREATE REPORT report1,打开报表设计器。选择菜单命令\报表\-\快速报表\,系统首先要求选择报表数据源。根据题意,选择考生文件夹下的order_detail表作为报表数据源。系统接着弹出\快速报表对话框\,单击对话框中的\字段\命令按钮,在弹出的\字段选择器\对话框中,依次选择订单号、器件号、器件名、新单价和数量5个字段添加到\选定字段\列表框中,如图20-4所示。单击\确定\按钮,返回报表设计器,保存报表设计。单击工具栏中的预览图标按钮,可查看设计效果。
23
一、基本操作题(共4小题,第1和2题是7分、第3和4题是8分)
(1)建立项目文件,文件名为my。 (2)将数据库\职工\添加到的项目中。
(3)为数据库中的表\员工\建立\候选索引\,索引名称和索引表达式均为\员工编码\。
(4)为\员工\表和\职称\表之间的关联设置完整性约束,要求:更新规则为\级联\,删除规则为\限制\,插入规则为\忽略\。
【答案】
(1)启动Visual FoxPro后,在命令窗口输入命令:CREATE PROJECT my,新建一个项目管理器。
(2)在项目管理器my中,首先在\数据\选项卡中选择\数据库\,然后单击选项卡右边的\添加\命令按钮,在系统弹出的\打开\对话框中,将考生文件夹中的数据库\职工\添加到项目管理器中,单击\确定\按钮。
(3)在项目管理器中,依次展开\数据库\分支,选择\员工\数据表,然后单击右边的\修改\命令按钮,进入\员工\的数据表设计器界面,在 \索引\选项卡中,把\索引名\和\索引表达式\均改为\员工编码\,在\索引类型\下拉框中,选择\候选索引\。单击\确定\按钮,保存表结构设计。
(4)根据3小题操作,为\职称\表建立一个\员工编码\的主索引。打开\职工\数据库设计环境,将\职称\表中\索引\下面的\员工编码\主索引字段拖到\员工\表中\索引\下面的\员工编码\索引字段上,建立了两个表之间的永久性联系。
二、简单应用题(共2小题,每题20分,计40分)
在考生文件夹下完成如下简单应用: (1)使用报表向导建立一个简单报表。要求选择 salarys表中所有字段;记录不分组;报表样式为\随意式\;列数为\,字段布局为\列\,方向为\纵向\;排序字段为\雇员号\(升序);报表标题为\雇员工资一览表\;报表文件名为print1。
(2)在考生文件夹下有一个名称为form1的表单文件,表单中的两个命令按钮的Click事件下的语句都有错误,其中一个按钮的名称有错误。请按如下要求进行修改,修改完成后保存所做的修改:
① 将按钮\刘缆雇员工资\名称修改为\浏览雇员工资\。
② 单击\浏览雇员工资\命令按钮时,使用SELECT命令查询salarys表中所有字段信息供用户浏览。 ③ 单击\退出表单\命令按钮时,关闭表单。
注意:每处错误只能在原语句上进行修改,不能增加语句行。 【答案】
(1)在工具栏中单击\新建\图标按钮,在对话框中选择\报表\选项,单击\向导\图标按钮,在\向导选取\对话框中选择\报表向导\,单击\确定\按钮进入报表向导设计界面。
在\字段选取\报表向导界面中,为报表添加数据源,选择数据表文件salarys,通过选项卡中的\全部添加\图标按钮,将\可用字段\列表框中的所有字段全部添加到\选定字段\列表框中,如图23-1所示。
图23-1
单击\下一步\命令按钮,依次在\选择报表样式\向导界面的\样式\列表框中,选择\随意式\,在\定义报表布局\向导界面中,设置列数为\,字段布局为\列\,方向为\纵向\,在\排序记录\向导界面中添加\雇员号\字段到\选定字段\列表框中,并选择\升序\单选项,最后在\完成\界面中输入报表标题\雇员工资一览表\,单击\完成\命令按钮,将报表以print1名保存在考生文件夹下。
(2)在命令窗口输入命令:MODIFY FORM form1,打开表单form1.scx。
选中表单中的\刘缆雇员工资\命令按钮,在属性对话框中修改Caption的属性值为\浏览雇员工资\,如图23-2所示。
图23-2
双击表单中的\浏览雇员工资\命令按钮,进入命令按钮的事件编辑窗口,在Click事件中的程序段如下: ******命令按钮Command1(浏览雇员工资)的Click事件的源程序****** SELECT FORM dept
***************************************************** 修改命令按钮中的程序错误,正确的命令如下:
****命令按钮Command1(浏览雇员工资)的Click事件修改后的程序**** SELECT * FROM dept && 缺少字段选取 ***************************************************** 以同样的方法修改\退出表单\命令按钮中的程序错误:
********命令按钮Command2(退出表单)的Click事件的源程序******** Delete ThisForm
***************************************************** 修改命令按钮中的程序错误,正确的命令如下:
******命令按钮Command2(退出表单)的Click事件修正后的程序****** ThisForm.Release && 方法错误 ***************************************************** 保存程序修改,退出表单设计器。
三、综合应用题(2小题,计30分)
(1)请编写名称为change_c的程序并执行。该程序实现下面的功能:将雇员工资表salarys进行备份,备份文件名为baksals.dbf。利用\人事部\向\财务部\提供的雇员工资调整表c_salary1的\工资\,对salarys表的\工资\进行调整(请注意:按\雇员号\相同进行调整,并且只是部分雇员的工资进行了调整,其他雇员的工资不动)。最后将salarys表中的记录存储到od_new表中(表结构与salarys表完全相同)。
(2)设计一个文件名为form2的表单,其中包含\调整\(名称Command1)和\退出\(名称Command2)两个命令按钮。
单击\调整\命令按钮时,调用change_c命令程序实现工资调整。 单击\退出\命令按钮时,关闭表单。
注意:在两个命令按钮中均只有一条命令,不可以有多余命令。 【答案】
(1)在命令窗口输入命令:MODIFY COMMAND change_c,打开程序编辑器,编写如下程序段: ****change_c.prg文件中的程序段****
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 ********************************
保存文件,在命令窗口输入命令:DO change_c,运行该文件。
(2)在命令窗口输入命令:CREATE FORM form2,打开表单设计器,根据题意,通过\表单控件\工具栏,在表单中添加两个命令按钮,在属性面板中,分别修改两个命令按钮的Caption属性值为\调整\和\退出\,如图23-3所示。
图23-3
双击\调整\(Command1)命令按钮,进入事件编辑窗口,在Click事件中编写如下代码: ****命令按钮Command1(调整)的Click事件代码**** DO change_c
****************************************
以同样的方法为\退出\命令按钮编写Click事件代码: ****命令按钮Command2(退出)的Click事件代码**** ThisForm.Release
**************************************** 保存表单完成设计。
25