计算机2级vfp30套练习题带答案 - 图文

更新时间:2024-01-10 10:17:01 阅读量: 教育文库 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

说明:本文中的 && 表示解释说明部分,在并非执行代码.

本文中的 ********* 与 ********* 之间的部分为程序代码.

11

一、基本操作题(共4小题,第1和2题是7分、第3和4题是8分)

(1)在考生文件夹下建立项目market。 (2)在项目market中建立数据库prod_m。

(3)把考生文件夹中自由表category和products加入到prod_m数据库中。

(4)为category表建立主索引,索引名为primarykey,索引表达式为\分类编码\;为products表建立普通索引,索引名为regularkey,索引表达式为\分类编码\。

【答案】

(1)在命令窗口直接输入命令:CREATE PROJECT market,建立一个新的项目管理器。

(2)在项目管理器中,单击\数据\选项卡,选中列表框中的\数据库\,单击选项卡右边的\新建\命令按钮,在系统弹出的对话框中单击\新建数据库\图标按钮,系统接着弹出\创建\对话框,在数据库名文本框内输入新的数据库名称prod_m,将数据库保存到考生文件夹下。

(3)右键单击数据库设计器,选择\添加表\快捷菜单命令,在弹出的\打开\对话框中,将考生文件夹下的category和products两个自由表分别添加到数据库prod_m中。

(4)在\数据\选项卡中,选中新加的数据表文件category,然后单击右边的\修改\命令按钮,系统弹出表设计器,在\字段\选项卡中为\分类编码\字段选择一个索引排序,然后单击\索引\选项卡,在此选项卡中,字段索引名默认的为\分类编码\,将索引名修改为primarykey,在\索引\下拉框中选择索引类型为\主索引\,如图11-1所示。以相同的方法为products表建立普通索引。

二、简单应用题(共2小题,每题20分,计40分)

(1)使用SQL命令查询2001年(不含)以前进货的商品,列出其\分类名称\、\商品名称\和\进货日期\,查询结果按\进货日期\升序排序并存入文本文件infor.txt中,所用命令存入文本文件sql.txt中。

(2)用SQL UPDATE命令为所有\商品编码\首字符是\的商品计算销售价格:销售价格为在进货价格基础上加22.68%,并把所用命令存入文本文件update.txt中。

【答案】

(1)在命令窗口中输入命令:MODIFY FILE sql,在文本编辑器窗口输入如下程序段: ******文件sql .txt中的程序段*****

SELECT 分类名称,商品名称,进货日期 FROM 商品,分类 WHERE 分类.分类编码=商品.分类编码;

AND YEAR(进货日期)<2001 TO FILE infor ORDER BY 进货日期 *******************************

在命令窗口输入命令:DO sql.txt,运行程序。程序运行结果如图11-2所示。

图11-2

(2)在命令窗口中输入命令:MODIFY FILE update,在文本编辑器窗口输入如下程序段。 ******文件update .txt中的程序段*****

UPDATE 商品 SET 销售价格=进货价格*1.2268 WHERE LEFT(商品编码,1)='3' *******************************

在命令窗口输入命令:DO Update.txt,运行程序。通过BROWSE命令可直接查看修改结果,结果如图11-3所示。

三、综合应用题(1小题,计30分)

对考生目录下的数据库rate建立文件名为myf的表单。表单含有一个表格控件,用于显示用户查询的信息;表单上有一个按钮选项组,含有\外币浏览\、\个人持有量\和\个人资产\三个选项按钮:表单上有一个命令按钮,标题为\浏览\。

当选择\外币浏览\选项按钮并单击\浏览\按钮时,在表格中显示\汇率\表的全部字段;选择\个人持有量\选项按钮并单击\浏览\按钮时,表格中显示\数量\表中的\姓名\,\汇率\表中的\外币名称\和\数量\表中的\持有数量\;选择\个人资产\选项按钮并单击\浏览\按钮时,表格中显示\数量\表中每个人的\总资产\(每个人拥有的所有外币中的每种基准价*持有数量的总和)。

单击\关闭\按钮退出表单。 【答案】

在命令窗口中输入命令:CREATE FORM myf,打开表单设计器,通过\表单控件\工具栏向表单添加1个表格、1个选项按钮组和2个命令按钮。

选中表单,在属性面板顶端的下拉框中选择Command1,修改该命令按钮控件的Caption属性值为\浏览\,以同样的方法将第二个命令按钮设置Caption属性值改为\关闭\,在属性面板顶端的下拉框中选择(Optiongroup1),将其ButtonCount属性值改为3,右击选项按钮组,选择\编辑\快捷菜单命令,在此状态下(编辑状态下,控件四周出现蓝色框线),分别修改三个单选项的Caption属性值为\外币浏览\、\个人持有量\和\个人资产\。

双击命令按钮\浏览\,编写该控件的Click事件,程序代码如下: ******命令按钮Command1(浏览)的Click事件代码***** DO CASE

CASE Thisform.Optiongroup1.Value=1 SELECT * FROM 汇率 INTO CURSOR temp Thisform.Grid1.RecordSourceType=1 Thisform.Grid1.RecordSource=\ CASE Thisform.Optiongroup1.Value=2

SELECT 数量.姓名,外币名称,持有数量 FROM 数量,汇率 WHERE 汇率.外币代码=数量.外币代码;

INTO CURSOR temp

Thisform.Grid1.RecordSourceType=1 Thisform.Grid1.RecordSource=\ CASE Thisform.Optiongroup1.Value=3

SELECT 姓名,SUM(持有数量*基准价) AS 总资产 FROM 汇率,数量;

WHERE 汇率.外币代码=数量.外币代码 GROUP BY 姓名 INTO CURSOR temp

Thisform.Grid1.RecordSourceType=1 Thisform.Grid1.RecordSource=\ENDCASE

*********************************************************

以同样的方法为\关闭\命令按钮编写Click事件代码:Thisform.Release。保存表单完成设计,运行结果如图11-4所示。

19

一、基本操作题(共4小题,第1和2题是7分、第3和4题是8分)

(1)将数据库stu添加到项目my中。

(2)修改表单for,将其中标签的字体大小修改为20。 (3)把表单for添加到项目my中。

(4)为数据库stu中的表\学生\建立惟一索引,索引名称为tel,索引表达式为\电话\。 【答案】

(1)从菜单栏里单击\文件\并选择\打开\,或直接单击工具栏上的\打开\图标,在弹出的对话框中选择要打开的项目文件my.pjx。在项目管理器my中,首先在\数据\选项卡中选择\数据库\,然后单击选项卡右边的\添加\命令按钮,在系统弹出的\打开\对话框中,将考生文件夹中的数据库stu添加到项目管理器中,单击\确定\按钮。

(2)从菜单栏里单击\文件\并选择\打开\,或直接单击工具栏上的\打开\图标,在弹出的对话框中选择要打开的表单文件for.scx。单击表单上的标签控件,在其属性窗口中,把FontSize的属性值改为\。单击工具栏上的\保存\图标,将更改保存。

(3)在项目管理器my中,首先在\文档\选项卡中选择\表单\,然后单击选项卡右边的\添加\命令按钮,在系统弹出的\打开\对话框中,将考生文件夹中的表单for.scx添加到项目管理器中,单击\确定\按钮。

(4)在命令窗口输入命令:MODIFY STRUCTURE,在弹出的对话框中选择\学生\表,进入\学生\的数据表设计器界面,然后单击\索引\选项卡,此选项卡中的\索引名\和\索引表达式\分别改为tel和\电话\,在\索引类型\的下拉框中,选择\惟一索引\。单击\确定\按钮,保存数据表修改。

二、简单应用题(共2小题,每题20分,计40分)

在考生文件夹下完成如下简单应用:

(1)将customer1表中的全部记录追加到customer表中,然后用SQL SELECT语句完成查询:列出目前有订购单的客户信息(即有对应的order_list记录的customer表中的记录),同时要求按客户号升序排序,并将结果存储到results表中(表结构与customer表结构相同)。

(2)打开并按如下要求修改form1表单文件(最后保存所做的修改):

① 在\确定\命令按钮的Click事件(过程)下的程序有两处错误,请改正之; ② 设置Text2控件的有关属性,使用户在输入口令时显示\(星号)。 【答案】

(1)在命令窗口输入命令:MODIFY COMMAND query1,在程序文件编辑器窗口中输入如下程序段:

*******文件query1.prg的中程序段*******

USE customer

Append from customer1

SELECT DISTINCT customer.* FROM customer,order_list where customer.客户号=order_list.客户号;

ORDER BY customer.客户号 INTO TABLE results.dbf

*************************************

在命令窗口输入命令:DO query1,程序将查询结果自动保存到新表results中。 (2)在命令窗口输入命令:MODIFY FORM form1,打开表单form1.scx。

双击表单中的\确定\命令按钮,进入命令按钮的事件编辑窗口,在Click事件中的程序段如下: *******\确定\命令按钮Click事件的源程序*******

&&功能:如果用户输入的用户名和口令一致,则在提示信息后关闭该表单; &&否则重新输入用户名和口令。

If ThisForm.Text1 = ThisForm.Text2 &&**********Error********************** WAIT \欢迎使用……\

ThisForm.Close &&**********Error********************** Else

WAIT \用户名或口令不对,请重新输入……\Endif

********************************************* 修改程序中的错误,正确的程序如下:

****\确定\命令按钮Click事件修改后的程序****

If ThisForm.Text1.Text = ThisForm.Text2.Text && 缺少属性Text WAIT \欢迎使用……\

ThisForm.Release && 语法错误,关闭表单应该为Release Else

WAIT \用户名或口令不对,请重新输入……\Endif

********************************************* 选中表单中的第二个文本框控件(Text2),在属性面板中修改该控件的PasswordChar属性值为\,如图19-1所示,保存修改结果。

三、综合应用题(1小题,计30分)

使用报表设计器建立一个报表,具体要求如下:

① 报表的内容(细节带区)是order_list表的订单号、订购日期和总金额。

② 增加数据分组,分组表达式是 \客户号\,组标头带区的内容是\客户号\,组注脚带区的内容是该组订单的\总金额\合计。

③ 增加标题带区,标题是\订单分组汇总表(按客户)\,要求是3号字、黑体,括号是全角符号。

④ 增加总结带区,该带区的内容是所有订单的总金额合计。最后将建立的报表文件保存为report1.frx文件。 提示:在考试的过程中可以使用\显示→预览\菜单查看报表的效果。

【答案】

首先打开表设计器,为order_list表按\客户号\字段建立一个普通索引。

在命令窗口输入命令:CREATE REPORT report1,打开报表设计器。右击报表空白区,选择快捷菜单命令\数据环境\,在数据环境设计器中,将数据表order_list添加到数据环境中,如图19-2所示。然后将数据环境中order_list表中的订单号、订购日期和总金额3个字段依次拖放到报表的细节带区,如图19-3所示。

图19-2

图19-3

选择菜单命令\报表\数据分组\,系统弹出\数据分组\对话框,在对话框中输入分组表达式\客户号\,关闭对话框回到报表设计器,可以看到报表设计器中多了两个带区:组标头和组注脚带区,在数据环境中,将order_list表中的\客户号\字段拖放到组标头带区,并在报表控件栏中单击\标签\按钮,添加一个标签\客户号\,以同样的方法为组注脚带区增加一个\总金额\标签,并将\总金额\字段拖放到该带区,如图19-4所示。双击域控件\总金额\,系统弹出\报表表达式\对话框,在对话框中单击命令按钮\计算\,在弹出的对话框中选择\总和\单选项,关闭对话框,回到报表设计器。

图19-4

选择菜单命令\报表\标题/总结\,弹出\标题/总结\对话框,在对话框中勾选\标题带区\和\总结带区\复选框,为报表增加一个标题带区和一个总结带区;然后设置标签字体,选择菜单命令\报表\默认字体\,在弹出的\字体\对话框中,根据题意设置3号黑体字,接着通过\报表控件\工具栏,为总结带区添加一个标签\订单分组汇总表(按客户)\;最后在总结带区添加一个标签\总金额\,再添加一个域控件,在弹出的\报表表达式\中为域控件设置表达式为\总金额\,在\格式\对话框中选择\数值型\单选项,如图19-5所示。单击命令按钮\计算\,在弹出的对话框中选择\总和\单选项,关闭对话框,回到报表设计器。保存报表,利用常用工具栏中的\预览\图标按钮,可预览报表效果。

图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

一、基本操作题(共4小题,第1和2题是7分、第3和4题是8分)

(1)将\销售表\中的日期在2000年12月31日前(含2000年12月31日)的记录复制到一个新表\中。 (2)将\销售表\中的日期(日期型字段)在2000年12月31日前(含2000年12月31日)的记录物理删除。 (3)打开\商品表\,使用BROWSE命令浏览时, 使用\文件\菜单中的选项将\商品表\中的记录生成文件名为\商品表.htm\的HTML格式文件。

(4)为\商品表\创建一个主索引,索引名和索引表达式均是\商品号\;为\销售表\创建一个普通索引(升序),索引名和索引表达式均是\商品号\。

【答案】

(1)在命令窗口输入命令:

SELECT * FROM 销售表 WHERE 日期<=CTOD(\系统将自动查找日期在2000年12月31日前的记录,并复制到一个新表2001.dbf中。 (2)在命令窗口输入两条命令:

DELETE FROM 销售表 WHERE 日期=

通过以上两条命令物理删除\销售表\中日期(日期型字段)在2000年12月31日前的记录。 (3)在命令窗口输入两条命令:

USE 商品表 && 打开商品表 BROWSE && 打开表记录浏览窗口

打开表记录浏览窗口后,在\文件\菜单中选择\另存为HTML( H )…\菜单命令,如图25-1所示,弹出\另存为HTML\的对话框中,系统默认的以\商品表.htm\名保存该文件,单击\确定\按钮保存文件。

图25-1

(4)在命令窗口输入两条命令:

USE 商品表 && 打开商品表 MODIFY STRUCTURE && 打开表设计器

在\商品表\的表设计器中,选中\商品号\字段,在\索引\下拉框中为该字段选择一个排序方式,然后在\索引\选项卡中,修改字段的\索引类型\为主索引,其中索引名已由系统默认为\商品号\;以同样的方法为销售表建立普通索引。

二、简单应用题(共2小题,每题20分,计40分)

(1)在\员工信息管理\数据库中建立视图\,显示字段包括\职工编号\,\姓名\和\职称编号\和\职称名称\等字段内容是职称名称为\副教授\的记录。

(2)建立表单\,标题为\视图查看\。在表单上显示上题中建立的视图\的内容。表单上有一个标题为\关闭\的命令按钮,单击该按钮,退出表单。

【答案】

(1)从菜单栏里单击\文件\并选择\打开\,或直接单击工具栏上的\打开\图标,在弹出的对话框中选择要打开的数据库文件\员工信息管理.dbc\。

在\数据库设计器\工具栏中,单击\新建本地视图\图标按钮,在弹出的\新建本地视图\对话框中,单击\新建视图\图标按钮,打开视图设计器,将\员工\数据表和\职称\数据表添加到视图设计器中,系统自动建立联接条件。根据题意,在视图设计器的\字段\选项卡中,将\可用字段\列表框中的字段\员工.职工编号\、\员工.姓

名\、\员工.职称编号\和\职称.职称名称\添加到右边的\选定字段\列表框里中;在\筛选\选项卡中,字段名选择\职称.职称名称\,条件选择\,实例选项中输入\副教授\。完成视图设计,将视图以myview文件名保存在考生文件夹下。

(2)从菜单栏里单击\文件\并选择\新建\,或直接单击工具栏上的\新建\图标,在弹出的对话框中文件类型选择\表单\,单击对话框右边的\新建文件\图标,弹出了Form1的表单设计器,单击工具栏上的\保存\图标,以myfm命名保存在考生文件夹下。

在表单设计器中,鼠标右键单击空白表单,选择\数据环境\快捷菜单命令,打开表单的数据环境,在\选定\单选框中选择\视图\,将视图文件myview添加到数据环境中,将数据环境中的视图文件myview拖放到表单中,可看到在表单中出现一个表格控件,此时实现了视图文件myview的窗口式输入界面,如图25-2所示。

图25-2

将表单的Caption属性值改为\视图查看\。最后在\表单控件工具栏\中,选中命令按钮控件添加到表单中,在属性对话框修改该命令按钮的Caption属性值为\关闭\,双击该命令按钮,在Click事件中输入程序:Thisform.Release。

在命令窗口输入命令:DO FORM myfm,查看表单运行结果。

三、综合应用题(1小题,计30分)

① 请编写名称为change_c 的命令程序并执行,该程序实现下面的功能:将\商品表\进行备份,备份文件名为spbak.dbf;将\商品表\中\商品号\前两位编号为\的商品的\单价\修改为出厂单价提高10%;使用\单价调整表\对商品表的部分商品出厂单价进行修改(按\商品号\相同为条件)。

② 设计一个名称为form2的表单,上面有\调整\(名称Command1)和\退出\(名称Command2)两个命令按钮。单击\调整\命令按钮时,调用change_c命令程序实现商品单价调整;单击\退出\命令按钮时,关闭表单。

注意:以上两个命令按钮均只含一条语句,不可以有多余的语句。 【答案】

(1)在命令窗口输入命令:MODIFY COMMAND change_c,打开程序文件编辑器,为新建文件编写如下程序段: ****文件change_c.prg中的程序段**** && 备份商品表

SELECT * FROM 商品表 INTO TABLE spbak.dbf && 修改商品的单价

UPDATE 商品表 SET 单价=出厂单价*1.1 WHERE LEFT(商品号,2)=\USE 单价调整表 DO WHILE NOT EOF()

UPDATE 商品表 SET 出厂单价=单价调整表.出厂单价 WHERE 商品号=单价调整表.商品号 SKIP ENDDO

**************************************

(2)在命令窗口输入命令:CREATE FORM form2,打开表单设计器,根据题意,通过\表单控件\工具栏,在表单中添加两个命令按钮,在属性面板中,分别修改两个命令按钮的Caption属性值为\调整\和\退出\,如图25-3所示。

图25-3

双击\调整\(Command1)命令按钮,进入事件编辑窗口,在Click事件中编写如下代码: ****命令按钮Command1(调整)的Click事件代码**** DO change_c

***************************************

以同样的方法为\退出\命令按钮编写Click事件代码: ****命令按钮Command2(退出)的Click事件代码**** ThisForm.Release

*************************************** 保存表单完成设计。

26

一、基本操作题(共4小题,第1和2题是7分、第3和4题是8分)

(1)建立项目文件,名为myp。

(2)将数据库\学生\添加到新建立的项目当中。 (3)建立自由表myt(不要求输入数据),表结构为:

考号 字符型(7) 姓名 字符型(8) 成绩 整型

(4)修改表单my,将其标题改为\信息查询\。 【答案】

(1)启动Visual FoxPro后,在命令窗口输入命令:CREATE PROJECT myp,新建一个项目管理器。

(2)在项目管理器myp中,首先在\数据\选项卡中选择\数据库\,然后单击选项卡右边的\添加\命令按钮,在系统弹出的\打开\对话框中,将考生文件夹中的数据库\学生\添加到项目管理器中,单击\确定\按钮。

(3)在项目管理器my中,首先在\数据\选项卡中选择\自由表\,然后单击选项卡右边的\新建\命令按钮,在系统弹出的\新建表\对话框中,单击\新建表\图标,将其命名为myt保存在考生文件夹中。 在弹出的myt表设计器的\字段\选项卡中,根据题意依次输入每个字段的字段名、类型和宽度。单击表设计器右边的\确定\按钮。

(4)从菜单栏里单击\文件\并选择\打开\,或直接单击工具栏上的\打开\图标,在弹出的对话框中选择要打开的表单文件my.scx。单击表单空白处,在属性面板中,将其Caption属性值改为\信息查询\。单击工具栏上的\保存\图标,保存更改。

二、简单应用题(共2小题,每题20分,计40分)

(1)建立一个名为my的菜单,菜单中有两个菜单项\日期\和\退出\。\日期\下还有一个子菜单,子菜单有\月份\和\年份\两个菜单项。单击\退出\菜单返回到系统菜单。

(2)在\学生管理\数据库中有\学生信息\表和\宿舍信息\表。用SQL语句完成查询,结果为学生姓名及所住的宿舍电话号码,并将结果存放于表my中。

【答案】

(1)在命令窗口中输入命令:CREATE MENU my,系统弹出一个\新建\对话框,在对话框中单击\菜单\图形按钮,进入菜单设计器环境。根据题目要求,首先输入两个主菜单名称\日期\和\退出\。在\日期\的\结果\下拉框中选择子菜单,在\退出\的\结果\下拉框中选择命令。在\退出\菜单项的命令文本框中编写程序代码:SET SYSMENU TO DEFAULT。接着单击\日期\菜单项同一行中的\创建\按钮进入下级菜单的设计界面,此设计窗口与主

窗口大致相同,然后编写每个子菜单项的名称\月份\和\年份\,如图26-1所示。

图26-1

根据题意,系统不再要求设计下级菜单,因此在两个子菜单的\结果\下拉框中选择\过程\或\命令\。选择菜单命令\菜单\生成\,生成一个菜单文件my.mpr。

(2)在命令窗口中输入命令:MODIFY COMMAND query1,在程序文件编辑器窗口输入如下程序段: ****文件query1.prg中的程序段*****************

SELECT 姓名,电话号码 FROM 宿舍信息,学生信息 WHERE 宿舍信息.宿舍=学生信息.宿舍 INTO TABLE my ***********************************************

保存文件,在命令窗口输入命令:DO query1,运行程序,通过BROWSE命令可查看结果。其结果如图26-2所示。

图26-2

三、综合应用题(2小题,计30分)

对考生文件夹中的\工资管理\数据库完成如下综合应用。设计一个文件名和表单名均为myf的表单。表单的标题设为\工资发放额统计\。表单中有1个组合框、2个文本框和1个命令按钮\关闭\。

运行表单时,组合框中有\部门信息\表中的\部门号\可供选择,选择某个\部门号\以后,第一个文本框显示出该部门的\名称\,第二个文本框显示应该发给该部门的\工资总额\。

单击\关闭\按钮关闭表单。 【答案】

单击\文件\菜单中的\新建\,在类型选择框中选择\表单\,单击\新建文件\按钮,打开表单设计器。在属性窗口中设置表单的Caption属性为\工资发放额统计\,Name的属性值改为myf。从\表单控件\工具栏中选择1个组合框,2个文本框,1个命令按钮放置在表单上。在属性面板中设置命令按钮的Caption属性为\关闭\,组合框的RowSourceType属性为\值\,RowSource属性为\,Style属性为\下拉列表框\。结果如图26-3所示。

图26-3

双击组合框,在其Valid事件中输入以下代码:

******组合框Combo1的Valid事件代码***************

select 部门名 from 部门信息 where 部门号=Thisform.combo1.value into array temp Thisform.Text1.Value=temp(1)

select sum(工资) from 工资 where 部门号=Thisform.combo1.value into array temp2 Thisform.Text2.Value=temp2(1)

**************************************************

以同样的方法为\关闭\命令按钮编写Click事件代码:Thisform.Release。 保存表单文件为myf.scx到考生文件夹下。表单运行结果如图26-4所示。

图26-4

27

一、基本操作题(共4小题,第1和2题是7分、第3和4题是8分)

在考生文件夹下完成下列基本操作: (1)新建一个名为\供应\的项目文件。

(2)将数据库\供应零件\加入到新建的\供应\项目中。

(3)通过\零件号\字段为\零件\表和\供应\表建立永久性联系(\零件\是父表,\供应\是子表)。

(4)为\供应\表的数量字段设置有效性规则: 数量必须大于0并且小于9999;错误提示信息是\数量超范围\(注意:公式必须为\数量>0.and.数量<9999\)。

【答案】

(1)在命令窗口输入命令:CREATE PROJECT 供应,建立一个新的项目管理器。

(2)在建立好的项目管理器中,单击\数据\选项卡,然后选中列表中的\数据库\,单击选项卡右边的\添加\命令按钮,将考生文件下的\供应零件\数据库文件添加到项目管理器中。

(3)在数据库设计器中,右击\零件\表,选择\修改\快捷菜单命令,打开表设计器,为\零件\表的\零件号\字段建立主索引,同样为\供应\表建立普通索引。返回数据库设计器,将零件表中\索引\下面的\零件号\主索引字段拖到供应表中\索引\下面的\零件号\索引字段上,建立了零件和供应两个表之间的永久性联系。

(4)选中数据表文件\供应\,单击右边的\修改\命令按钮,打开表设计器,在表设计器中选中\数量\字段,输入\规则\文本框中的内容为\数量>0.and.数量<9999\,在\信息\文本框内输入\数量超范围\。

二、简单应用题(共2小题,每题20分,计40分)

①为每本书的\价格\加上1元。

②统计books表中每个作者所著的书的价格总和。

③查询\出版单位\为\经济科学出版社\的书的所有信息。 现在该语句中有3处错误,请更正之。

(2)打开myf表单,表单上有一个命令按钮和一个表格,数据环境中已经添加了表books。按如下要求进行修改(注意要保存所做的修改):单击表单中标题为\查询\的命令按钮控件查询books表中\出版单位\为\经济科学出版社\的书籍的\书名\、\作者编号\和\出版单位\;有一个表格控件,修改相关属性,使在表格中显示命令按钮\查询\的结果。

【答案】

(1)在命令窗口中输入命令:MODIFY COMMAND prog1.prg,打开程序文件编辑窗口,文件中程序段如下: ******文件prog1.prg修改前的源程序******* update books set 价格 with 价格+1

select sum(价格) from books order by 作者编号 select * from books for 出版单位=\高等教育出版社\******************************************* 根据源程序提供的错误,修改后的程序段如下所示: ******文件prog1.prg修改后的程序段******* update books set 价格 = 价格+1

select sum(价格) from books group by 作者编号

select * from books where 出版单位=\经济科学出版社\******************************************* 在命令窗口输入命令:DO prog1,运行程序。 (2)在命令窗口输入命令:MODIFY FORM myf,打开表单设计器,双击表单中的\查询\命令按钮,在其Click事件中编写代码如下。

******命令按钮Command1(查询)的Click事件代码*******

SELECT 书名,作者编号,出版单位 FROM books WHERE 出版单位=\经济科学出版社\Thisform.Grid1.RecordSource=\

**********************************************

在命令窗口输入命令:DO FORM myf,运行表单,结果如图27-1所示。

图27-1

三、综合应用题(1小题,计30分)

设计名为mysupply的表单(表单的控件名和文件名均为mysupply)。表单的标题为\零件供应情况\。表单中有一个表格控件和两个命令按钮\查询\(名称为Command1)和\退出\(名称为Command2)。

运行表单时,单击\查询\命令按钮后,表格控件(名称grid1)中显示了工程号\所使用的零件的零件名、颜色和重量。

单击\退出\按钮关闭表单 【答案】

在命令窗口输入命令:CREATE FORM mysupply,打开表单设计器,通过\常用工具栏\向表单添加一个表格和两个命令按钮。

选中表单(Form1),在属性面板中修改Name的属性值为mysupply,将Caption的属性值改为\零件供应情况\,

然后在属性面板顶端的下拉框中选择Command1,修改该命令按钮控件的Caption属性值为\查询\,以同样的方法将第二个命令按钮设置Caption属性值改为\退出\,如图27-2所示。

图27-2

双击命令按钮Command1(查询),编写该控件的Click事件,程序代码如下: ******命令按钮Command1(查询)的Click事件代码*****

SELECT 零件.零件名, 零件.颜色, 零件.重量 FROM 零件,供应 where 零件.零件号 = 供应.零件号; and 供应.工程号 = \ThisForm.Grid1.RecordSourceType=1 ThisForm.Grid1.RecordSource=\

*************************************************** 以同样的方法为\退出\命令按钮编写Click事件代码: ****命令按钮Command2(退出)的Click事件代码**** ThisForm.Release

**************************************************** 保存表单完成设计。表单运行结果如图27-3所示。

图27-3

28

一、基本操作题(共4小题,第1和2题是7分、第3和4题是8分)

在考生文件夹下完成下列基本操作: (1)新建一个名为\图书管理\的项目。

(2)在项目中建立一个名为\图书\的数据库。

(3)将考生文件夹下的所有自由表添加到\图书\数据库中。

(4)在项目中建立查询book_qu,查询价格大于等于10的图书(book表)的所有信息,查询结果按\价格\降序排序。

【答案】

(1)在命令窗口直接输入命令:CREATE PROJECT 图书管理,新建一个项目管理器,保存到考生文件夹下。 (2)在项目管理器中,单击\数据\选项卡,然后选中列表框中的\数据库\,单击选项卡右边的\新建\命令按钮,在弹出的\创建\对话框中输入新的数据库名称\图书\,保存到考生文件夹下。

(3)在项目中新建数据库后,系统弹出数据库设计器,右击数据库设计器,在弹出的快捷菜单中选择\添加表\菜单命令,在\打开\对话框中,依次将考生文件夹下所有的自由表添加到数据库中。

(4)在\数据\选项卡中选中\查询\,然后单击\新建\命令按钮,单击\新建查询\对话框中的\新建查询\图标按钮,打开查询设计器,将数据表book添加到查询设计器中。根据题意,在查询设计器的\字段\选项卡中,将\可用字段\列表框中的字段全部添加到右边的\选定字段\列表框中,再单击\筛选\选项卡,在\字段名\下拉框中选择\价格\字段,在\条件\下拉框中选择\,在\实例\文本框中输入\,然后在\排序依据\选项卡中将\选定字段\列表框中的\价格\字段添加到右边的\排序条件\中,在\排序选项\中选择\降序\,利用菜单命令\查询\运行查询\,浏览查询结果。查询文件以book_qu名保存在考生文件夹下。

二、简单应用题(共2小题,每题20分,计40分)

(1)在考生文件夹中有一个数据库mydb,其中有数据库表stu、kech和chj。利用SQL语句查询选修了\日语\课程的学生的全部信息,并将结果按\学号\升序排序放在new.dbf中(库的结构同stu,并在其后加入课程号和课程名字段)。

(2)在考生文件夹中有一个数据库mydb,使用\一对多报表向导\制作一个名为myre的报表,存放在考生文件夹中。

要求:选择父表stu表中的\学号\和\姓名\字段,从子表kech中选择\课程号\和\成绩\字段,排序字段选择\学号\升序),报表样式为\简报式\,方向为\纵向\,报表标题为\学生成绩信息\

【答案】

(1)在命令窗口中输入命令:MODIFY COMMAND query1,在程序文件编辑器窗口输入如下程序段: *****文件query1.prg中的程序段********

SELECT stu.学号,姓名,年龄,性别,院系号,kech.课程号,chj.课程名 FROM stu,chj,kech; WHERE stu.学号=kech.学号 AND kech.课程号=chj.课程号 AND chj.课程名=\日语\ ORDER BY stu.学号 INTO TABLE new *************************************

在命令窗口输入命令:DO query1,运行程序,通过BROWSE命令可查看结果,如图28-1所示。

图28-1

(2)在\工具\菜单选择\向导\报表\菜单命令,出现\向导选取\对话框,根据题意数据源是多个表,因此选定\一对多报表向导\。单击\确定\。

步骤一:在弹出的对话框中\数据库和表\选项选择父表STU,并把\可用字段\的\学号\和\姓名\选为\选定字段\。

步骤二:选择子表kech,并把\可用字段\的\课程号\和\成绩\选为\选定字段\。 步骤三:系统自动以\学号\建立两表之间的关系。

步骤四:在\排序记录\中选择\学号\,并选择\升序\排序。 步骤五:报表样式选择为\简报式\,方向为\纵向\。

步骤六:把表单标题改为\学生成绩信息\,可以在单击\完成\之前单击\预览\按钮来预览生成的报表,最后单击\完成\按钮。

将报表以文件名myre保存在考生文件夹里。

三、综合应用题(1小题,计30分)

设计名为formbook的表单(控件名为form1,文件名为formbook)。表单的标题设为\图书情况统计\。表单中有1个组合框(名称为Combo1)、1个文本框(名称为Text1)和2个命令按钮\统计\(名称为Command1)和\退出\(名称为Command2)。

运行表单时,组合框中有3个条目\清华\、\北航\、\科学\(只有3个出版社名称,不能输入新的)可供选择,在组合框中选择出版社名称后,如果单击\统计\命令按钮,则文本框显示出\图书\表中该出版社图书的总数。

单击\退出\按钮关闭表单。 【答案】

单击\文件\菜单中的\新建\在类型选择框中选择\表单\单击\新建文件\按钮,打开表单设计器。

在属性窗口中设置表单form1的Caption属性为\图书情况统计\,Name属性为form1。从表单控件工具栏中选

择一个组合框,两个按钮,一个文本框放置在表单上。在属性面板中设置组合框的RowsourceType属性为\值\,RowSource属性为\清华,北航,科学\,Style属性为\下拉列表框\。设置按钮Command1的Caption属性为\统计\,Command2的Caption属性为\退出\,结果如图28-2所示。

图28-2

双击命令按钮Command1,在Click事件中编写如下代码。 ******命令按钮Command1(统计)的Click事件*****

SELECT count(*) FROM book WHERE 出版社=ThisForm.combo1.value INTO array Temp ThisForm.Text1.Value=temp(1)

***********************************************

同样在Command2的Click事件中输入代码:ThisForm.Telease。

保存表单文件为\到考生文件下。运行表单,结果如图28-3所示。

图28-3

34

一、基本操作题(共4小题,第1和2题是7分、第3和4题是8分)

(1)建立表\送货\和表\客商\联系之间的关联。(在\销售\数据库中完成)

(2)为1题中建立的的关联设置完整性约束,要求:更新规则为\级联\,删除规则为\忽略\,插入规则为\限制\。

(3)将表\客商\的结构拷贝到新表cu中。 (4)把表cu添加到项目my中。 【答案】

(1)从菜单栏里单击\文件\并选择\打开\,或直接单击工具栏上的\打开\图标,在弹出的对话框中选择要打开的数据库文件\销售\。

在数据库设计器中,将\送货\表中\索引\下面的\客户号\主索引字段拖到\客商\表中\索引\下面的\客户\索引字段上,建立了两个表之间的永久性联系。

(2)在数据库设计器中,选择菜单命令\数据库\-\清理数据库\,右键单击\送货\表和\客商\表之间的关系线,选择\编辑参照完整性\快捷菜单命令,在参照完整性生成器中,根据题意,分别在3个选项卡中设置参照规则。

(3)在命令窗口中输入命令:MODIFY COMMAND query1,新建一个程序。在弹出的程序编辑窗口中输入以下代码:

USE 客商

COPY STRUCTURE TO cu

保存文件,在命令窗口输入命令:DO query1.PRG执行文件。

(4)从菜单栏里单击\文件\并选择\打开\,或直接单击工具栏上的\打开\图标,在弹出的对话框中选择要打开的项目文件my.pjx。

在项目管理器my中,首先在\数据\选项卡中选择\自由表\,然后单击选项卡右边的\添加\命令按钮,在系统弹出的\打开\对话框中,将考生文件夹中的自由表cu添加到项目管理器中,单击\确定\按钮。

二、简单应用题(共2小题,每题20分,计40分)

(1)编写程序he.prg,计算s=l+2+...+50。要求使用DO WHILE循环结构。

(2)my.prg中的SQL语句用于查询出位于\北京\的仓库的\城市\字段以及管理这些仓库的职工的所有信息,现在该语句中有3处错误,分别出现在第l行、第2行和第3行,请更正之。

【答案】

(1)在命令窗口中输入命令:MODIFY COMMAND he,在程序文件编辑器窗口输入如下程序段。 ****文件he.prg中的程序段***** s=0 i=1

DO WHILE i<=50

s=s+i i=i+1 ENDDO

?\到50的和为:\

***********************************

在命令窗口输入命令:DO he,运行程序查看结果。

(2)在命令窗口中输入命令:MODIFY COMMAND my.prg,打开程序文件编辑窗口,文件中程序段如下: ******文件my.prg修改前的源程序*******

select 仓库.城市,职工.all from 仓库 inner join 职工 when 仓库.仓库号=职工.仓库号; for 仓库.城市=\北京\

******************************************** 根据源程序提供的错误,修改后的程序段如下所示: ******文件my.prg修改前的源程序*******

select 仓库.城市,职工.* from 仓库 inner join 职工 on 仓库.仓库号=职工.仓库号; and 仓库.城市=\北京\

******************************************** 在命令窗口输入命令:DO my,运行程序查看结果。

三、综合应用题(1小题,计30分)

设计一个文件名和表单名均为form_item的表单,所有控件的属性必须在表单设计器的属性窗口中设置。表单的标题设为\使用零件情况统计\。表单中有1个组合框(Combo1)、1个文本框(Text1)和2个命令按钮\统计\(Command1)和\退出\(Command2)。

运行表单时,组合框中有3个条目\、\、\(只有3个,不能输入新的,RowSourceType的属性为\数组\,Style的属性为\下拉列表框\)可供选择,单击\统计\命令按钮以后,则文本框显示出该项目所用零件的金额(某种零件的金额=单价*数量)。

单击\退出\按钮关闭表单。 【答案】

单击\文件\菜单中的\新建\命令,在类型选择框中选择\表单\单击\新建文件\按钮,打开表单设计器。 在属性窗口中设置表单form1的Name属性为form_item,Caption属性为\使用零件情况统计\。从表单控件工具栏中选择一个组合框、两个按钮和一个文本框放置在表单上。在属性面板中设置组合框的RowSourceType属性为\值\,RowSource属性为\,Style属性为\下拉列表框\。设置按钮Command1的Caption属性为\统计\,Command2的Caption属性为\退出\,结果如图34-1所示。

图34-1

双击命令按钮Command1,在Click事件中编写如下代码。 ******命令按钮Command1(统计)的Click事件******

SELECT SUM(零件信息.单价*使用零件.数量) FROM 零件信息,使用零件,项目信息 ;

Where 使用零件.项目号 = 项目信息.项目号 and 零件信息.零件号 = 使用零件.零件号; and 使用零件.项目号 =ALLTRIM(ThisForm.COMBO1.VALUE) INTO ARRAY TEMP ThisForm.TEXT1.VALUE=TEMP

************************************************

同样在Command2的Click事件中编写代码:ThisForm.Release。

保存表单文件为form_item到考生文件下。运行表单,结果如图34-2所示。

图34-2

37

一、基本操作题(共4小题,第1和2题是7分、第3和4题是8分)

(1)为数据库mydb中的表\积分\增加字段\电话\,类型和宽度为\字符型(50)\。

(2)为表\积分\的字段\积分\设置完整性约束,要求积分值大于\(含400)\,否则提示信息\输入的积分值太少\。

(3)设置表\积分\的字段\地址\的默认值为\。

(4)为表\积分\插入一条记录(张良,1800,服装公司,北京中关村),并用Select语句查询表积分中的\积分\在\以上(含1500)\的记录,将SQL语句存入my.txt中。

【答案】

(1)从菜单栏里单击\文件\并选择\打开\,或直接单击工具栏上的\打开\图标,在弹出的对话框中选择要打开的数据库文件mydb。

在数据库设计器中,右键单击数据库表\积分\,在弹出的快捷菜单中选择\修改\菜单命令,进入\积分\的数据表设计器界面,在\字段\选项卡中,单击表设计器右边的\插入\按钮,输入新的字段名\地址\,根据题意,依次输入类型、宽度。

(2)在数据库设计器中,右键单击数据库表\积分\,在弹出的快捷菜单中选择\修改\菜单命令,进入\积分\的数据表设计器界面,在\字段\选项卡中,首先选中\积分\字段,然后在规则文本框中输入\积分>=1000\,在信息文本框中输入\输入的积分值太少\,单击\确定\按钮保存表设计结果。

(3)在数据库设计器中,右键单击\积分\数据表选择\修改\快捷菜单命令,打开表设计器,在\字段\选项卡中选中\地址\字段,然后在\字段有效性\的\默认值\文本框中输入\北京市中关村\。

(4)在命令窗口输入:MODIFY FILE mytxt,在弹出的文本编辑器中输入命令: INSERT INTO 积分 VALUES(\张良\服装公司\北京市中关村\SELECT * FROM 积分 WHERE 积分>=1500

保存文件。在命令窗口输入:DO mytxt.txt命令可查看运行结果。

二、简单应用题(共2小题,每题20分,计40分)

(1)使用表单向导制作一个表单,要求选择sc表中的全部字段。表单样式为\阴影式\,按钮类型为\图片按钮\,排序字段选择\学号\(升序),表单标题为\成绩查看\,最后将表单保存为form1。

(2)在考生文件夹的下对数据库rate中的表hl的结构做如下修改:指定\外币代码\为主索引,索引名和索引表达式均为\外币代码\。指定\外币名称\为普通索引,索引名和索引表达式均为\外币名称\。

【答案】

(1)启动Visual FoxPro,在\工具\菜单选择\向导\表单\菜单命令,出现\向导选取\对话框,根据题意数据源是一个表,因此选定\表单向导\,单击\确定\。

步骤一:在弹出的对话框中\数据库和表\选项选择sc数据表,并把全部的\可用字段\选为\选定字段\。 步骤二:表单样式选择为\阴影式\,按钮类型选择\图片按钮\。 步骤三:在\排序次序\中选择\学号\,并选择升序排序。

步骤四:把表单标题改为\成绩查看\,可以在单击\完成\之前单击\预览\按钮来预览生成的表单,最后单击\完成\按钮。

将表单以文件名为form1保存在考生文件夹里。表单结果如图37-1所示。

图37-1

(2)从菜单栏里单击\文件\并选择\打开\,或直接单击工具栏上的\打开\图标,在弹出的对话框中选择要打开的数据库文件rate。

在数据库设计器中,右键单击数据库表hl,在弹出的快捷菜单中选择\修改\菜单命令,进入hl的数据表设计器界面,单击\索引\选项卡,把此选项卡中的\索引名\和\索引表达式\都改为\外币代码\,在\索引类型\的下拉框中,选择\主索引\。继续插入一个普通索引,在索引名中输入字段\外币名称\,类型为普通索引,表达式为\外币名称\。单击\确定\完成索引设置。

三、综合应用题(1小题,计30分)

建立满足如下要求的应用并运行,所有控件的属性必须在表单设计器的属性窗口中设置: 建立一个表单myform(文件名和表单名均为myform),其中包含两个表格控件,第一个表格控件名称是grd1,用于显示表customer中的记录,第二个表格控件名称是grd2,用于显示与表customer中当前记录对应的order表中的记录。要求两个表格尺寸相同、水平对齐。

建立一个菜单mymenu,该菜单只有一个菜单项\退出\,该菜单项对应于一个过程,并且含有两条语句,第一条语句是关闭表单myform,第二条语句是将菜单恢复为默认的系统菜单。

在myform的Load事件中执行生成的菜单程序mymenu.mpr。 【答案】

在命令窗口输入命令:CREATE FORM myform,打开表单设计器窗口。

从常用工具栏中单击表格控件,添加两个表格到新建的表单中,右击表单,选择\数据环境\快捷菜单命令,在数据环境中添加customer和order,系统自动建立好两表的关联。返回表单设计器中,右键单击表格grd1,在弹出的快捷菜单中选择\生成器\,弹出表格生成器对话框,在\表格项\中选择customer,将表中所有字段添加到选定字段中,如图37-2所示。以同样的方法设置第二个表格的生成器,选择\关系\选项卡,把\父表中的关键字段\设置为customer.客户编号,把\子表中的相关索引\设置为\客户编号\,如图37-3所示。双击表单,编写表单的Load事件代码:DO mymenu.mpr,保存表单,关闭表单设计器窗口。

图37-2

图37-3

在命令窗口输入命令:CREATE MENU mymenu,在弹出的\菜单设计器\中的\菜单名称\列处输入\退出\,结果为\过程\,相关代码如下所示:

myform.Release

SET SYSMENU TO DEFAULT

选择菜单命令\菜单\-\生成\,生成可执行菜单文件,保存菜单,关闭菜单设计器。 在命令窗口执行命令:DO mymenu.mpr,程序运行结果如图37-4所示。

图37-4

38

一、基本操作题(共4小题,第1和2题是7分、第3和4题是8分)

(1)建立项目my。

(2)将数据库\客商\添加到项目中。

(3)将数据库\客商\中的数据库表\价格\从数据库中移去(注意:不是删除)。 (4)将考生文件夹中的表单my的背景色改为蓝色。 【答案】

(1)启动Visual FoxPro后,在命令窗口输入命令:CREATE PROJECT my,新建一个项目管理器。

(2)在项目管理器my中,首先在\数据\选项卡中选择\数据库\,然后单击选项卡右边的\添加\命令按钮,在系统弹出的\打开\对话框中,将考生文件夹中的数据库\客商\添加到项目管理器中,单击\确定\按钮。

(3)选择\客商\数据库,单击项目管理器中的\修改\命令按钮,打开数据库设计器。在数据库设计器中,右击\价格\数据表文件,选择\删除\快捷菜单命令,系统弹出一个对话框,在对话框中单击\移去\命令按钮,将\价格\表从数据库中移出。

(4)从菜单栏里单击\文件\并选择\打开\,或直接单击工具栏上的\打开\图标,在弹出的对话框中选择要打开的表单文件\。

在表单的属性栏里找到BackColor属性,将其属性值设置为\,0,255\,系统自动将表单的背景颜色设置为蓝色。

二、简单应用题(共2小题,每题20分,计40分)

(1)my.prg中的SQL语句用于查询\成绩\数据库中参加了课程编号为\的学生的\学号\、\姓名\、\课程编号\和\成绩\,现在该语句中有3处错误,分别出现在第l行、第2行和第3行,请更正之。要求保持原有语句的结构,不增加行不删除行。

(2)在成绩数据库中统计每门课程考试的平均成绩,并将结果放在表myt中。 【答案】

(1)在命令窗口中输入命令:MODIFY COMMAND mypro.prg,打开程序文件编辑窗口,文件中程序段如下: ******mypro.prg中的源程序段*********** select sc.all,student.姓名;

from sc inner join student in sc.学号=student.学号; for sc.课程号=\

*******************************************

根据题意提供的3处错误,修改后的程序段如下所示: ********修改后的程序段******************** select sc.*,student.姓名;

from sc inner join student on sc.学号=student.学号; where sc.课程编号=\

*******************************************

保存文件修改,在命令窗口中输入命令:DO mypro,查看运行结果。 (2)在命令窗口中输入命令:MODIFY COMMAND 平均成绩.prg,打开程序文件编辑窗口,文件中程序段如下: ********\平均成绩.prg\中的程序代码*********

select 课程编号,avg(成绩) as 平均成绩 from sc group by 课程编号 into table myt *******************************************

保存文件,在命令窗口输入命令:DO 平均成绩,运行程序,查询结果如图38-1所示。

图38-1

三、综合应用题(1小题,计30分)

对考生文件夹中的\学生信息\表,\课程信息\表和\选课信息\表新建一个表单myf。

在表单上有1页框,页框内有3个选项卡,标题分别为\学生\,\课程\和\选课\。表单运行时对应的3个页面上分别显示\学生信息\表,\课程信息\表和\选课信息\表。

表单上还有1选项按钮组,共有3个待选项,标题分别为\学生\,\课程\,\选课\。当单击该选项按钮组选择某一选项时,页框将在对应页面上显示对应表,如单击\课程\选项时,页框将在课程页面上显示课程表。表单上有1个命令按钮,标题为\关闭\,单击此按钮,表单将退出。

【答案】

在命令窗口中输入命令:CREATE FORM myf,打开表单设计器,通过\常用工具栏\向表单添加1个页框控件、1个选项按钮组和1个命令按钮。

在常用工具栏中打开表单数据环境,将数据表文件\课程信息\,\选课信息\和\学生信息\添加到数据环境中。选定页框,修改PageCount属性值为3,增加1个页面,右击页框控件,选择\编辑\菜单命令,可以看到页框四周出现蓝色边框,表示处于编辑状态下,选定页面(Page1),修改页面标题Caption属性值为\学生\,添加一个表格控件,设置表格控件Grid1的RecordSourceType属性值为\表\(用来指定显示表中的数据),RecordSource属性值为\学生信息\,然后在页框编辑状态下,以同样的方法设置第二个页面,RecordSource属性值为\课程信息\,设置第三个页面,RecordSource属性值为\选课信息\。

在属性面板顶端的下拉框中选择Optiongroup1,将其ButtonCount属性值改为3,右击选项按钮组,选择\编辑\快捷菜单命令,在此状态下(编辑状态下,控件四周出现蓝色框线),分别修改3个单选项的Caption属性值为\学生\、\课程\和\选课\。在属性面板顶端的下拉框中选择Command1,将其Caption属性值改为\关闭\。

右击选项按钮组,选择\编辑\快捷菜单命令,在此状态下(编辑状态下,控件四周出现蓝色框线),双击\学生\选项,如图83-2所示。

图38-2

编写该控件的Valid事件,程序代码如下。 Thisform.Pageframe1.ActivePage=1

然后在选项按钮级编辑状态下,以同样的方法编写第二个程序如下: Thisform.Pageframe1.ActivePage=2 以同样的方法编写第三个程序如下: Thisform.Pageframe1.ActivePage=3

最后双击\关闭\按钮,在Click事件中编写程序命令:Thisform.Release,保存并运行表单。

40

一、基本操作题(共4小题,第1和2题是7分、第3和4题是8分)

(1)建立项目文件,名为my。

(2)将数据库nba添加到新建立的项目当中。 (3)修改表单my,将其中的命令按钮删除。 (4)把表单my添加到项目my中。 【答案】

(1)启动Visual FoxPro后,在命令窗口输入命令:CREATE PROJECT my,新建一个项目管理器。

(2)在项目管理器my中,首先在\数据\选项卡中选择\数据库\,然后单击选项卡右边的\添加\命令按钮,在系统弹出的\打开\对话框中,将考生文件夹中的数据库nba添加到项目管理器中,单击\确定\按钮。

(3)从菜单栏里单击\文件\并选择\打开\,或直接单击工具栏上的\打开\图标,在弹出的对话框中选择要打开的表单文件my.scx。选中表单上的命令按钮,按下键盘上的DELETE键,把命令按钮删除。单击工具栏上的\

保存\图标,保存更改。

(4)在项目管理器my中,首先在\文档\选项卡中选择\表单\,然后单击选项卡右边的\添加\命令按钮,在系统弹出的\打开\对话框中,将考生文件夹中的表单my.scx添加到项目管理器中,单击\确定\按钮。

二、简单应用题(共2小题,每题20分,计40分)

在考生文件夹下,打开Ecommerce数据库,完成如下简单应用:

(1)使用报表向导建立一个简单报表。要求选择客户表Customer中的所有字段;记录不分组;报表样式为随意式;列数为\,字段布局为\列\,方向为\纵向\;排序字段为\会员号\,升序;报表标题为\客户信息一览表\;报表文件名为myreport。

(2)使用命令建立一个名称为sb_view的视图,并将定义视图的命令代码存放到命令文件pview.prg中。视图中包括客户的会员号(来自Customer表)、姓名(来自Customer表)、客户所购买的商品名(来自Article表)、单价(来自OrderItem表)、数量(来自OrderItem表)和金额(OrderItem.单价 * OrderItem.数量),结果按会员号升序排序。

【答案】

(1)在\新建\对话框中选择\报表\单选项,再单击\向导\图标按钮,系统弹出\向导选取\对话框,在列表框中选择\报表向导\,单击\确定\按钮。

选择\报表向导\后,进入报表向导设计界面,首先进行字段选取,选择Ecommerce数据库作为报表的数据源。选中数据表Customer,通过\全部添加\图标按钮,将\可用字段\列表框中的所有字段添加到\选定字段\列表框中,如图40-1所示。

图40-1

单击\下一步\按钮进入\分组记录\设计界面,跳过此步骤,单击\下一步\命令按钮,进入\选择报表样式\设计界面,在\样式\列表框中选择\随意式\。

单击\下一步\命令按钮,进入\定义报表布局\设计界面,设置\列数\为1,\方向\为纵向,\字段布局\为列。 单击\下一步\进入\排序记录\的设计界面,将\可用字段或索引标识\列表框中的\会员号\字段添加到右边的\选定字段\列表框中,并选择\升序\单选项。

单击\下一步\,进入最后的\完成\设计界面,在\标题\文本框中输入\客户信息一览表\为报表添加标题,单击\完成\命令按钮,在系统弹出的\另存为\对话框中,将报表以myreport文件名保存在考生文件夹下,退出报表设计向导。

(2)在命令窗口输入命令:MODIFY COMMAND pview,打开文件编辑器,编写如下程序段: *****文件pview.prg中的程序段*****

CREATE VIEW sb_view AS SELECT Customer.会员号, Customer.姓名, Article.商品名, Orderitem.单价,;

Orderitem.数量, OrderItem.单价 * OrderItem.数量 as 金额 FROM customer,Orderitem,Article ; where Article.商品号 = Orderitem.商品号 and Customer.会员号 = Orderitem.会员号; ORDER BY Customer.会员号

***********************************

在命令窗口执行命令:DO pview,系统将自动生成一个视图文件。

三、综合应用题(1小题,计30分)

在考生文件夹下,打开Ecommerce数据库,完成如下综合应用(所有控件的属性必须在表单设计器的属性窗口

中设置):

设计一个文件名和表单名均为myform的表单,表单标题为\客户基本信息\。要求该表单上有\女客户信息\(Command1)、\客户购买商品情况\(Command2)、\输出客户信息\(Command3)和\退出\(Command4)4个命令按钮。

各命令按钮功能如下:

①单击\女客户信息\按钮,使用SQL的SELECT命令查询客户表Customer中女客户的全部信息。

②单击\客户购买商品情况\按钮,使用SQL的SELECT命令查询简单应用中创建的sb_view视图中的全部信息。 ③单击\输出客户信息\按钮,调用简单应用中设计的报表文件myreport在屏幕上预览(PREVIEW)客户信息。 ④单击\退出\按钮,关闭表单。 【答案】

在命令窗口中输入命令:CREAT FORM myform,打开表单设计器,新建表单。

通过表单控件工具栏,向表单添加4个命令按钮,在属性面板中修改表单(Form1)的Name属性值为myform,Caption属性值为\客户基本信息\,适当调整命令按钮的大小和位置,并分别修改4个命令按钮Command1、Command2、Command3和Command4的Caption属性值为\女客户信息\、\客户购买商品情况\、\输出客户信息\和\退出\,如图40-2所示。

图40-2

双击每个命令按钮,在Click事件中分别输入如下代码:

***命令按钮Command1(女客户信息)的Click事件代码如下**** SELECT * FROM Customer WHERE 性别=\女\

******************************************************** ***命令按钮Command2(客户购买商品情况)的Click事件代码如下*** OPEN DATABASE Ecommerce SELECT * FROM sb_view

******************************************************** ***命令按钮Command3(输出客户信息)的Click事件代码如下*** REPORT FORM myreport PREVIEW

******************************************************** ***命令按钮Command4(退出)的Click事件代码如下*** ThisForm.Release

******************************************************** 运行表单,保存表单设计到考生文件夹下。

47

一、基本操作题(共4小题,第1和2题是7分、第3和4题是8分)

(1)将考生文件夹下的自由表\职称\添加到数据库\职工管理\中。 (2)将数据库中的表\信息\移出,使之变为自由表。

(3)从数据库中永久性地删除数据库表\职工\,并将其从磁盘上删除。

(4)为数据库中的表\职称\建立候选索引,索引名称和索引表达式均为\职称编号\。 【答案】

(1)从菜单栏里点击\文件\并选择\打开\,或直接单击工具栏上的\打开\图标,在弹出的对话框中选择要

打开的数据库文件\职工管理.dbc\。右键单击数据库设计器,选择\添加表\快捷菜单命令,系统弹出\打开\对话框,将考生文件夹下的\职称\自由表分别添加到数据库\职工管理\中。

(2)在\职工管理\数据库设计器中,右击\信息\数据表文件,选择\删除\快捷菜单命令,系统弹出一个对话框。在对话框中单击\移去\命令按钮,将\职工信息\表从数据库中移去。

(3)在\职工管理\数据库设计器中,右击\职工\数据表文件,选择\删除\快捷菜单命令,系统弹出一个对话框。在对话框中单击\删除\命令按钮,将\职工\表从数据库中移出,同时从磁盘中删除。

(4)在数据库设计器中,右键单击数据库表\职称\,在弹出的快捷菜单中选择\修改\菜单命令,进入\职称\的数据表设计器界面,在\索引\选项卡中的\索引名\和\索引表达式\输入\职称编号\,在\类型\的下拉框中,选择\候选索引\。

二、简单应用题(共2小题,每题20分,计40分)

(1)建立视图shitu,并将定义视图的代码放到考生文件夹下的my.txt中。具体要求是:视图中的数据取自表\值班信息\和\员工信息\。按\总加班费\排序(升序)。其中字段\总加班费\是每个人的昼值班天数*昼值班加班费加上夜值班天数*夜值班加班费得来的。

(2)设计界面如下的\登录\表单:

要求:当用户输入用户名和口令并单击\确认\按钮后,检验其输入的用户名和口令是否匹配,(假定用户名为\,密码为\。如正确,则显示\热烈欢迎\字样并关闭表单;若不正确,则显示\用户名或口令错误,请重新输入\字样,如果连续三次输入不正确,则显示\用户名与口令不正确,登录失败\字样并关闭表单。

【答案】

(1)在命令窗口输入命令:MODIFY FILE my,打开文本编辑器,在编辑器窗口中输入如下程序段。 ******文件\中的程序段***** OPEN DATABASE zbdb

CREATE VIEW shitu AS SELECT 职工编码,姓名,夜值班天数,昼值班天数,;

昼值班天数*150+夜值班天数*200 AS 总加班费 FROM 员工信息 ORDER BY 总加班费 ************************************

保存文件,在命令窗口输入命令:DO my.txt,运行程序。

(2)从菜单栏里点击\文件\并选择\新建\,或直接单击工具栏上的\新建\图标,在弹出的对话框中文件类型选择\表单\,单击对话框右边的\新建文件\图标,弹出了Form1的表单设计器,单击工具栏上的\保存\图标,以\登录\命名保存在考生文件夹下。

单击\表单控件\工具栏中的\命令按钮\控件。在表单上放置一个命令按钮控件,将它们的Caption属性值改为\确认\,单击\标签\控件,同样的方法在表单上放置两个标签控件和两个文本框控件,将标签的Caption属性值分别改为\用户名\和\口令\。

单击主菜单上的\表单\新建属性\,在弹出的\新建属性\对话框中输入新建的属性num,如图47-1所示。

图47-1

在\属性窗口\中设置属性\的初始值为0,双击\确认\命令按钮,在其Click事件中输入如下代码: *****\登录\命令按钮的Click事件代码*****

IF Thisform.Text1.Value=\WAIT\热烈欢迎使用!\Thisform.Release ELSE

Thisform.num=Thisform.num+1

IF Thisform.num=3

WAIT\用户名与口令不正确,登录失败!\ Thisform.Release ELSE

WAIT\用户名或口令错误,请重新输入!\ ENDIF ENDIF

**************************************

在命令窗口输入命令:DO FORM 登录,运行表单,查看表单运行结果。

三、综合应用题(1小题,计30分)

建立表单,表单文件名和表单名均为myform_a,表单标题为\商品浏览\,表单样例如图所示。 其他功能要求如下:

(1)用选项按钮组(OptionGroup1)控件选择商品分类(饮料(Option1)、调味品(Option2)、酒类(Option3)、小家电(Option4));

(2)单击\确定\命令按钮,显示选中分类的商品,要求使用DO CASE语句判断选择的商品分类;按Esc键返回表单界面;

(3)单击\退出\命令按钮,关闭并释放表单。 注:选项按钮组控件的Value属性必须为数值型。 【答案】

在命令窗口中输入命令:CREATE FORM myf,打开表单设计器,通过\表单控件\工具栏向表单添加一个选项按钮组和两个命令按钮。

选中表单,将表单的Caption属性改为\商品浏览\,Name属性设置为myf,在属性面板顶端的下拉框中选择Command1,修改该命令按钮控件的Caption属性值为\关闭\,以同样的方法将第二个命令按钮Command2设置Caption属性值改为\确定\,在属性面板顶端的下拉框中选择(Optiongroup1),将其ButtonCount属性值改为4,右击选项按钮组,选择\编辑\快捷菜单命令,在此状态下(编辑状态下,控件四周出现蓝色框线),分别修改四个单选项的Caption属性值为\饮料\、\调味品\、\酒类\和\小家电\。

双击命令按钮\确定\,编写该控件的Click事件,程序代码如下: *****命令按钮Command2(确定)的Click事件代码***** DO CASE

CASE Thisform.Optiongroup1.Value=1

SELECT * FROM 商品 WHERE 分类编码=\ CASE Thisform.Optiongroup1.Value=2

SELECT * FROM 商品 WHERE 分类编码=\ CASE Thisform.Optiongroup1.Value=3

SELECT * FROM 商品 WHERE 分类编码=\ CASE Thisform.Optiongroup1.Value=4

SELECT * FROM 商品 WHERE 分类编码=\ ENDCASE

******************************************************

以同样的方法为\关闭\命令按钮编写Click事件代码:Thisform.Release。 保存表单完成设计。运行结果如图47-2所示。

图47-2

48

一、基本操作题(共4小题,第1和2题是7分、第3和4题是8分)

(1)建立数据库xia.dbc,将自由表com.dbf和bbs.dbf添加到该数据库中。 (2)为com.dbf表建立主索引,索引名为\,索引表达式为\作者编号\。

(3)为bbs.dbf表分别建立两个普通索引,其一索引名为\,索引表达式为\图书编号\;其二索引名和索引表达式均为\作者编号\。

(4)建立com.dbf表和bbs.dbf之间的联系。 【答案】

(1)在命令窗口中输入命令:\DATABASE xia\,新建一个数据库。接着输入命令:MODIFY DATABASE xia,打开数据库设计器。右键单击数据库设计器,选择\添加表\快捷菜单命令,系统弹出\打开\对话框,将考生文件夹下的com和bbs两个自由表分别添加到数据库\中。

(2)在数据库设计器中,右键单击数据库表com,在弹出的快捷菜单中选择\修改\菜单命令,进入com的数据表设计器界面,在\索引\选项卡中的\索引名\输入bc,\索引表达式\输入\作者编号\,在\类型\的下拉框中,选择\主索引\。

(3)在数据库设计器中,右键单击数据库表bbs,在弹出的快捷菜单中选择\修改\菜单命令,进入bbs的数据表设计器界面,在\索引\选项卡中的\索引名\输入ma,\索引表达式\输入\图书编号\,在\类型\的下拉框中,选择\普通索引\。用相同的方法建立索引名和索引表达式均为\作者编号\的普通索引。

(4)在数据库设计器中,将com表中\索引\下面的bc主索引字段拖到bbs表中\索引\下面的\作者编号\索引字段上,建立了两个表之间的永久性联系。

二、简单应用题(共2小题,每题20分,计40分)

(1)考生目录下有表\图书\,使用菜单设计器制作一个名为mymenu的菜单,菜单只有一个信息\统计\子菜单。\统计\菜单中有\按出版单位\、\按作者编号\和\关闭\个子菜单:\按出版单位\子菜单负责按\出版单位\排序查看书籍信息;\按作者编号\子菜单负责按\作者编号\排序查看书的信息。\关闭\菜单负责返回到系统菜单。

(2)在考生文件夹下有一个数据库\书籍管理\,其中有数据库表\作者\和\图书\。使用报表向导制作一个名为rep的一对多的报表。要求:选择父表中的\作者编号\、\作者姓名\和\所在城市\,在子表中选择全部字段。报表样式为\帐务式\,报表布局,方向为\横向\;排序字段为\作者姓名\升序)。报表标为\书籍信息\。

【答案】

(1)在命令窗口中输入命令:CREATE MENU mymenu,系统弹出一个\新建\对话框,在对话框中单击\菜单\图形按钮,进入菜单设计器环境。输入主菜单名称\信息统计\,在\结果\下拉框中选择子菜单,接着单击\信息统计\菜单项同一行中的\创建\按钮进入下级菜单的设计界面,此设计窗口与主窗口大致相同,然后编写每个子菜单项的名称\按出版单位\、\按作者编号\和\关闭\,在前两个子菜单的\结果\下拉框中选择\过程\选项,\关闭\的\结果\下拉框中选择\命令\选项。如图48-1所示。

图48-1

分别单击前两个菜单命令行中的\创建\按钮,进入程序设计的编辑窗口,在命令窗口中输入如下程序段: ******\按出版单位\菜单命令的程序段***** SELECT * FROM 图书 ORDER BY 出版单位

***************************************** ******\按作者编号\菜单命令的程序段***** SELECT * FROM 图书 ORDER BY 作者编号

******************************************

在\关闭\菜单项的命令文本框中编写程序代码:SET SYSMENU TO DEFAULT。选择菜单命令\菜单\生成\,生成一个菜单文件mymenu.mpr。

(2)在\工具\菜单选择\向导\子菜单,单击\报表\选项,出现\向导选取\对话框,依据题意数据源是多个表,因此选定\一对多报表向导\。点击\确定\。

步骤一:在弹出的对话框中\数据库和表\选项选择父表\作者\,并把\可用字段\的\作者编号\、\作者姓名\和\所在城市\选为\选定字段\。

步骤二:选择子表\图书\,并把全部\可用字段\选为\选定字段\。 步骤三:系统自动以\作者编号\建立两表之间的关系。

步骤四:在\排序记录\中选择\作者姓名\,并选择\升序\排序。 步骤五:报表样式选择为\帐务式\,方向为\纵向\。

步骤六:把表单标题改为\书籍信息\,可以在点击\完成\之前点击\预览\按钮来预览生成的报表,最后点击\完成\按钮。

将报表以文件名为rep保存在考生的文件夹里。

三、综合应用题(1小题,计30分)

设计一个文件名和表单名均为myaccount的表单。表单的标题为\外汇持有情况\。

表单中有一个选项按钮组控件(myOption)、一个表格控件(Gridl)以及两个命令按钮\查询\和\退出\。其中,选项按钮组控件有两个按钮\现汇\、\现钞\。运行表单时,在选项组控件中选择\现钞\或\现汇\,单击\查询\命令按钮后,根据选项组控件的选择将\外汇账户\表的\现钞\或\现汇\根据钞汇标志字段确定)的情况显示在表格控件中。

单击\退出\按钮,关闭并释放表单。

注:在表单设计器中将表格控件Grid1的数据源类型设置为\说明\。 【答案】

在命令窗口中输入命令:CREATE FORM account,打开表单设计器,通过\表单控件\工具栏向表单添加1个表格、1个选项按钮组和2个命令按钮。

选中表单,在属性面板中修改将Caption的属性值改为\外汇持有情况\,然后在属性面板顶端的下拉框中选择Command1,修改该命令按钮控件的Caption属性值为\查询\,以同样的方法将第二个命令按钮设置Caption属性值改为\关闭\,右击选项按钮组(Optiongroup1),选择\编辑\快捷菜单命令,在此状态下(编辑状态下,控件四周出现蓝色框线),分别修改两个单选项的Caption属性值为\现汇\和\现钞\。最后,在属性面板中,将表格(Grid1)的RecordSourceType设置为\说明\。

双击命令按钮\查询\,编写该控件的Click事件,程序代码如下: *****命令按钮Command1(查询)的Click事件代码***** DO CASE

CASE Thisform.myOption.option1.value=1

Thisform.Grid1.RecordSource=\外币代码,金额 FROM 外汇账户 WHERE 钞汇标志='现汇'; INTO CURSOR temp\

CASE Thisform.myOption.option2.value=1

Thisform.Grid1.RecordSource=\外币代码,金额 FROM 外汇账户 WHERE 钞汇标志='现钞'; INTO CURSOR temp\ENDCASE

*****************************************************

以同样的方法为\关闭\命令按钮编写Click事件代码:Thisform.Release。 保存表单完成设计。运行结果如图48-2所示。

图48-2

49

一、基本操作题(共4小题,第1和2题是7分、第3和4题是8分)

(1)建立项目\城乡超市\;并把\货物管理\数据库加入到该项目中。

(2)为\货物表\增加字段:价格N(6,2),该字段允许出现\空\值,默认值为.NULL.。 (3)为\价格\字段设置有效性规则:\价格>0\;出错提示信息是:\价格必须大于0\。

(4)使用报表向导为货物表创建报表:报表中包括\货物表\中全部字段,报表样式用\经营式\,报表中数据按\货物编号\升序排列,报表文件名rep.frx。其余按缺省设置。

【答案】

(1)启动Visual FoxPro后,在命令窗口输入命令:\城乡超市\,新建一个项目管理器。在项目管理器\城乡超市\中,首先在\数据\选项卡中选择\数据库\,然后单击选项卡右边的\添加\命令按钮,在系统弹出的\打开\对话框中,将考生文件夹中的数据库\货物管理\添加到项目管理器中,单击\确定\按钮。

(2)单击\数据库\前面的\号,依次展开至\货物表\,然后单击选项卡中的\修改\命令按钮,打开表设计器。在\字段\选项卡的最后一个空字段名中,输入新的字段名\价格\,根据题意,依次输入类型、宽度和小数位数,并将\选上,允许空值,在\字段有效性\默认值文本框中输入\为该字段设置默认值。

(3)选中\价格\字段,在规则文本框中输入\价格>0\,在信息文本框中输入\价格必须大于0\,设置字段的有效性规则。

(4)在\工具\菜单中选择 \向导\→\报表\菜单命令,出现\向导选取\对话框。依据题意,数据源是一个表,因此选定\报表向导\,点击\确定\。

步骤一:在弹出的对话框中\数据库和表\选项选择\货物管理\数据库中的\货物表\,并把全部的\可用字段\选为\选定字段\。

步骤二选取默认值。

步骤三:选择\经营式\样式。 步骤四选取默认值。

步骤五:在\排序记录\中选择\货物编号\升序排序。

步骤六:可以在点击\完成\之前点击\预览\按钮来预览生成的报表,最后点击\完成\按钮。 并以文件名为\保存在考生的文件夹里。

二、简单应用题(共2小题,每题20分,计40分)

(1)建立视图my,并将定义视图的代码放到mycha.txt中。具体要求是:视图中的数据取自表\宿舍信息\的全部字段和新字段\楼层\。按\楼层\排序(升序)。其中\楼层\是\宿舍\字段的第一位代码。

(2)根据表\宿舍信息\和表\学生信息\建立一个查询,该查询包含住在2楼的所有学生的全部信息和宿舍信息。

要求按学号排序,并将查询保存为chaxun。

【答案】

(1)在命令窗口输入命令:MODIFY FILE mycha,打开文本编辑器,在编辑器窗口中输入如下程序段。 ******文件mycha.txt中的程序段***** OPEN DATABASE student

CREATE VIEW my AS SELECT *, left(宿舍信息.宿舍,1) as 层数 FROM 宿舍信息 ORDER BY 3 ************************************

保存文件,在命令窗口输入命令:DO mycha.txt,运行程序。

(2)在命令窗口输入:CREATE QUERY chaxun,打开查询设计器,新建一个查询。在查询设计器中,分别将\宿舍情况\和\学生信息\两个数据表文件添加到查询设计器中,系统自动查找两个数据表中匹配的字段进行内部联接,单击\确定\按钮。

在查询设计器的\字段\选项卡中,将\可用字段\列表框中的全部字段添加到右边的\选定字段\列表框中,在\筛选\选项卡中,在\字段名\下选择\表达式\,在弹出的\表达式生成器\的表达式中输入\宿舍信息.宿舍,1)\,如图49-1所示。

图49-1

单击右边的\确定\按钮,回到\筛选\选项卡,\条件\选择\,在实例文本框中输入2,在\排序依据\选项卡中,选择\学生信息.学号\升序排序。

保存查询设计,执行菜单命令\查询\运行查询\,查看结果。

三、综合应用题(1小题,计30分)

在考生文件夹下完成如下综合应用:

设计一个表单名为Form_one、表单文件名为YEAR_SELECT、表单标题名为\部门年度数据查询\的表单,其表单界面如下图所示。其他要求如下:

(1)为表单建立数据环境,向数据环境添加S_T表(Cursorl)。

(2)当在\年度\标签微调控件(Spimlerl)中选择年度并单击\查询\按钮(Commandl)时,则会在下边的表格(Gridl)控件内显示该年度各部门的四个季度的\销售额\和\利润\。指定微调控件上箭头按钮(SpinnerHighValue属性)与下箭头按钮(spinnerLowvalue属性)值范围为2010-1999,缺省值(Value属性)为2003,增量(Imcrement属性)为l。

(3)单击\退出\按钮(Command2)时,关闭表单。

要求:表格控件的RecordSourceType属性设置为\说明\。 【答案】

单击\文件\菜单中的\新建\,在类型选择框中选择\表单\,单击\新建文件\按钮,打开表单设计器。

在属性窗口中设置表单的Caption属性为\部门年度数据查询\,Name属性值改为myf,从\表单控件\工具栏中选择1个标签控件,1个微调控件,1个表格控件和2个命令按钮放置在表单上。在属性面板中分别设置两个命令按钮的Caption属性分别为\查询\和\关闭\,标签控件的Caption属性值设置为\年度\,表格的RecordSourceType属性值设置为\说明\

在属性面板中将微调控件的Value属性值设置为\,Increment属性值为\,SpinnerLowValue属性值为\,SpinnerHighValue属性值为\。结果如图49-2所示。

图49-2

双击命令按钮\查询\,编写该控件的Click事件,程序代码如下: *****命令按钮Command1(查询)的Click事件代码*****

Thisform.Grid1.RecordSource=\* FROM PT WHERE 年度=ALLTRIM(STR(Thisform.Spinner1.Value)); INTO CURSOR temp\

********************************************

以同样的方法为\关闭\命令按钮编写Click事件代码:Thisform.Release。 保存表单文件为year.scx到考生文件夹下。运行表单,查看结果。

50

一、基本操作题(共4小题,第1和2题是7分、第3和4题是8分)

(1)新建一个名为\中国外汇\的数据库。

(2)将自由表\汇率\、\账户\、\代码\加入到新建的\外汇\数据库中。

(3)用SQL语句新建一个表\,其中包含4个字段\币种1代码\、\币种2代码\、\买入价\,\卖出价\,请将SQL语句存储于hl.txt中。

(4)表单文件test中有一个名为forml的表单,请将文本框控件Text1设置为只读。 【答案】

(1)在命令窗口中输入命令:\中国外汇\,新建一个数据库。

(2)在命令窗口中输入命令:\DATABASE 中国外汇\,打开数据库设计器。右键单击数据库设计器,选择\添加表\快捷菜单命令,系统弹出\打开\对话框,将考生文件夹下的\汇率\、\帐户\和\代码\三个自由表分别添加到数据库\中国外汇\中。

(3)在命令窗口中输入:MODIFY FILE hl,打开文本编辑器,在编辑器中输入程序语句: CREATE TABLE HL(币种1代码 C(2), 币种2代码 C(2),买入价 N(8,4),卖出价 N(8,4)) 保存文件,在命令窗口输入命令:DO hl.txt执行文件。

(4)从菜单栏里点击\文件\并选择\打开\,或直接单击工具栏上的\打开\图标,在弹出的对话框中选择要打开的表单文件\。单击表单上Text1控件,在其属性窗口中把\的属性值改为\真\。

二、简单应用题(共2小题,每题20分,计40分)

(1)在\销售\数据库中,根据\销售\和\商品\表查询每种商品的\商品编号\、商品名称\、\价格\、\销售数量\和\销售金额\商品编号\和\商品名称\取自\商品\表,\价格\和\销售数量\取自\销售\表,销售金额=价格*销售数量),按\销售金额\降序排序,并将查询结果保存到xiao表中。

(2)在考生文件夹下有一个名称为my的表单文件,该表单中两个命令按钮的Click事件中语句有误。请按如下要求进行修改,修改后保存所做的修改:

①单击\更新标题\按钮时,把表单的标题改为\商品销售数据输入\②单击\商品销售输入\命令按钮时,调用当前文件夹下的名称为销售数据输入的表单文件打开数据输入表单。 【答案】

(1)在命令窗口中输入命令:MODIFY COMMAND query1,在程序文件编辑器窗口输入如下程序段: ************************************

SELECT 商品.商品编号,商品.商品名称,销售.价格,销售数量,销售.价格*销售数量 AS 销售金额;

FROM 商品,销售 WHERE 商品.商品编号=销售.商品编号 ORDER BY 销售金额 DESC INTO TABLE xiao *****************************

在命令窗口输入命令:DO query1,运行程序,通过BROWSE命令可查看结果。 (2)在命令窗口中输入命令:MODIFY FORM my,打开表单my.scx。

1)双击表单中的\更新标题\按钮,进入命令按钮的事件编辑窗口,在Click事件中程序段如下: *****************************

ThisForm.标题 = \商品销售数据输入\*****************************

修改程序中的错误,正确的程序如下: *****************************

ThisForm.Caption= \商品销售数据输入\*****************************

2)以同样的方法打开\商品销售输入\按钮的Click事件程序如下: ***************************** DO sellcomm

*****************************

修改程序中的错误,正确的程序如下: ***************************** DO Form 销售数据输入

*****************************

三、综合应用题(1小题,计30分)

在考生文件夹下,打开学生数据库SDB,完成如下综合应用:

设计一个表单名为sform的表单,表单文件名为SDISPLAY,表单的标题为\学生课程教师基本信息浏览\。表单上有一个包含三个选项卡的\页框\控件和一个\退出\按钮(Commandl)。其他功能要求如下:

(1)为表单建立数据环境,向数据环境依次添加STUDENT表、CLASS表和TEACHER表。 (2)要求表单的高度为280,宽度为450;表单显示时自动在主窗口内居中。

(3)三个选项卡的标签的名称分别为\学生表\、\班级表\和\教师表\,每个选项卡分别以表格形式浏览\学生\表、\班级\表和\教师\表的信息。选项卡位于表单的左边距为18,顶边距为10,选项卡的高度为230,宽度为420。

(4)单击\退出\按钮时关闭表单。 【答案】

在命令窗口中输入命令:CREATE FORM play,打开表单设计器,通过\表单控件\工具栏向表单添加1个页框控件和1个命令按钮。

选中表单,在属性面板中修改Caption的属性值为\学生课程教师基本信息浏览\,Heitht属性值改为300,Width属性值改为450,将AutoCenter的属性值设置为.T.,然后在属性面板顶端的下拉框中选择Command1,修改该命令按钮控件的Caption属性值为\关闭\。在属性面板顶端的下拉框中选择Pageframe1,修改其Heitht属性值为230,Width属性值为420,Left属性值为18,Top属性值为10。

在\表单设计器\工具栏中打开表单数据环境,将数据表文件cla、stu和tea添加到数据环境中。选定页框,修改PageCount属性值为3,增加一个页面,右击页框控件,选择\编辑\菜单命令,可以看到页框四周出现蓝色边框,表示处于编辑状态下,选定页面(Page1),修改页面标题Caption属性值为\学生表\,添加一个表格控件,设置表格控件Grid1的RecordSourceType属性值为\表\(用来指定显示表中的数据),RecordSource属性值为stu,然后在页框编辑状态下,以同样的方法设置第二个页面,RecordSource属性值为cla,设置第三个页面,RecordSource属性值为tea。

最后双击\关闭\按钮,在Click事件中编写程序命令:Thisform.Release,保存并运行表单。运行结果如下

图所示。

59

一、基本操作题(共4小题,第1和2题是7分、第3和4题是8分)

在考生文件夹下完成下列基本操作: (1)用SQL INSERT语句插入元组(\)到\零件信息\表(注意不要重复执行插入操作),并将相应的SQL语句存放在文件one.prg中。

(2)用SQL DELETE语句从\零件信息\表中删除单价小于1000的所有记录,并将相应的SQL语句存放在文件two.prg中。

(3)用SQL UPDATE语句将\零件信息\表中零件号为\的零件的单价更改为1090,并将相应的SQL语句存放在文件three.prg中。

(4)打开菜单文件mymenu.mnx,然后生成可执行的菜单程序mymenu.mpr。 【答案】 (1)在命令窗口输入命令:MODIFY COMMAND one,打开文件编辑器,输入如下语句:

INSERT INTO 零件信息 VALUES (\在命令窗口输入命令:DO one,执行文件。

(2)在命令窗口输入命令:MODIFY COMMAND two,打开文件编辑器,输入如下语句:

DELETE FROM 零件信息 WHERE 单价<1000 在命令窗口输入命令:DO two,执行文件。

(3)在命令窗口输入命令:MODIFY COMMAND three,打开文件编辑器,输入如下语句:

UPDATE 零件信息 SET 单价=1090 WHERE 零件号=\在命令窗口输入命令:DO three,执行文件。

(4)在命令窗口输入命令:MODIFY MENU mymenu,打开菜单设计器,选择菜单命令\菜单\-\生成\命令,生成一个可执行菜单文件,保存到考生文件夹下。

二、简单应用题(共2小题,每题20分,计40分)

(1)考生文件夹下有一个名为form1的表单,表单中有两个命令按钮的Click的事件下的语句都有错误,其中一个按钮的名称有错误。请按如下要求进行修改,并保存所做的修改。

①将按钮\察看\改为\查看\。

②单击\查看\按钮时,使用select查询员工表中的所有信息。 ③单击\退出\按钮,关闭表单。

(2)在考生文件夹下有一个数据库\生产管理\,其中有数据库表\职工\。使用报表向导制作一个名为reportl的报表。要求:选择表中的全部字段。报表样式为\随意式\,报表布局:列数\,字段布局\行\,方向为\横向\,排序字段为\工资\升序)。报表标题为\职工信息浏览\。 【答案】

(1)在命令窗口中输入代码:MODIFY FORM form1,打开表单设计起器。

在表单上单击右键,选择\数据环境\,将表\职工\加入。选中\察看\按钮,在属性面板中修改其Caption属性为\查看\。

双击该按钮,修改其Click事件为:SELECT * FROM 职工,双击按钮\退出\,修改其Click事件为:Thisform.Release。

保存表单后完成。

(2)单击\文件\菜单,选择\新建\,选中\报表\,点击右面的\向导\图标按钮,在弹出的对话框里选择\报表向导\,单击\确定\进入报表向导。

步骤1,单击\数据库和表\右下面的按钮,双击考生文件夹下的表\职工\,将表\职工\的全部字段添加到\选定字段\,单击\下一步\。

步骤2,没有操作,单击\下一步\。

步骤3,选择报表样式为\随意式\,单击\下一步\。

步骤4,列数为\,字段布局为\行\,方向为\横向\,单击\下一步\。 步骤5,选择\工资\为排序字段,排序方式为\升序\,单击\下一步\。 步骤6,修改报表标题为\职工信息浏览\,单击\完成\。 输入报表名report1,保存在考生文件夹下完成。

三、综合应用题(1小题,计30分)

按如下要求完成综合应用(所有控件的属性必须在表单设计器的属性窗口中设置):

根据\项目信息\、\零件信息\和\使用零件\个表建立一个查询(注意表之间的连接字段),该查询包含项目号、项目名、零件名称和(使用)数量4个字段,并要求先按项目号升序排序、再按零件名称降序排序,保存的查询文件名为chaxun。

建立一个表单,表单名和文件名均为myform,表单中含有一个表格控件Grid1,该表格控件的数据源是前面建立的查询chaxun;然后在表格控件下面添加一个\退出\命令按钮Command1,要求命令按钮与表格控件左对齐、并且宽度相同,单击该按钮时关闭表单。

【答案】

在命令窗口输入命令:CREATE QUERY chaxun,打开查询设计器。

打开查询设计器,系统首先要求选择需要查询的表或视图,将自由表\项目信息\、\零件信息\和\使用零件\添加到查询设计器中,添加3个数据表文件后,系统自动查找每两个数据表中匹配的字段进行内部联接。

在查询设计器中可以看到\字段\选项卡的\可用字段\列表框中包含了3个数据表中的字段,将项目信息.项目号、 项目信息.项目名、零件信息.零件名称和使用零件.数量4个字段通过\添加\命令按钮,添加到右边的\选定字段\列表框中,如图38-3所示。

图38-3

接着在\排序依据\选项卡中,将\项目信息.项目号\字段添加到\排序条件\列表框中,选择排序方式为\升序\,再将\零件信息.零件名称\字段添加到\排序条件\列表框中,选择排序方式为\降序\,如图38-4所示。保存查询设计,关闭查询设计器。

图38-4

在命令窗口中输入 CREATE FORM myform,打开表单设计器,新建表单。从\表单控件工具栏\中,选中表格控件,在表单设计器中拖动鼠标,这样在表单上得到一个表格控件Grid1,用类似的方法为表单再加入一个命令按钮控件command1。

在属性面板中修改各个控件的相关属性值,修改表单Form1的Name属性值为\,命令按钮Command1的Caption属性值为\退出\,表格Grid1的RecordSourceType属性值为\查询\,RecordSource属性值为\。

双击命令按钮command1(退出),编写Click事件代码为ThisForm.Release。

最后,同时选中命令按钮与表格控件(按住Shift键不放),单击主菜单栏中的\格式\大小\调整到最宽\;\格式\对齐\左边对齐\,如图38-5所示。运行表单,保存表单设计。

图38-5

60

一、基本操作题(共4小题,第1和2题是7分、第3和4题是8分)

在考生文件夹下完成下列基本操作:

(1)新建一个名为\学生管理\的项目文件。 (2)将\学生\数据库加入到新建的项目文件中。

(3)将\教师\表从\学生\数据库中移出,使其成为自由表。

(4)通过\学号\字段为\学生\和\选课\表建立永久联系(如果有必要请先建立有关索引)。 【答案】

(1)在命令窗口输入命令:CREATE PROJECT学生管理,建立一个新的项目文件。

(2)在新建的项目管理器中,单击\数据\选项卡,然后选中列表框中的\数据库\,单击选项卡右边的\添加\按钮,将考生文件下的\学生\数据库文件添加到项目管理器中。

(3)在\数据库\分支下,选中\教师\数据表文件,单击项目管理器上的\移去\命令按钮,在弹出的对话框中选择\移去\,将\教师\表从数据库中移出。

(4)在\数据库\分支下,选中\学生\数据表文件,单击项目管理器上的\修改\命令按钮,打开表设计器,在\字段\选项卡中为\学号\字段选择一个索引排序,然后单击\索引\选项卡,在\索引\下拉框中选择索引类型为\主索引\。以同样的方法为\选课\表的\学号\字段建立一个普通索引。

选中\学生\数据库,单击项目管理器上的\修改\命令按钮,打开数据库设计器,将\学生\表中\索引\下面的\学号\主索引字段拖到\选课\表中\索引\下面的\学号\索引字段上,建立\学生\和\选课\两个表之间的永久性联系。

二、简单应用题(共2小题,每题20分,计40分)

在考生文件夹下完成如下简单应用:

(1)用SQL语句对自由表\教师\完成下列操作:将职称为\教授\的教师新工资一项设置为原工资的120%,其他教师的新工资与原工资相等;插入一条新记录,该教师的信息:姓名\林红\,职称\讲师\,原工资\,新工资\,同时将SQL语句存放于新建的文本文件teacher.txt中(两条更新语句,一条插入语句,按顺序每条语句占一行)。

(2)使用查询设计器建立一个查询文件stud.qpr,查询要求:选修了\英语\并且成绩大于等于70的学生姓名和年龄,查询结果按年龄升序存放于stud_temp.dbf表中。

【答案】

(1)根据题意,在命令窗口依次输入如下语句,完成数据表记录的更新和插入。

UPDATE 教师 SET 新工资=原工资*1.2 WHERE 职称=\教授\UPDATE 教师 SET 新工资=原工资 WHERE 职称!=\教授\INSERT INTO 教师 VALUES(\林红\讲师\

在考生文件夹下新建一个teacher.txt文件,将上列语句复制到该文件中。 (2)在命令窗口输入命令:CREATE QUERY stud,打开查询设计器。

系统首先要求选择需要查询的表或视图,将\学生\、\选课\和\课程\表依次添加到查询设计器中。添加3个数据表文件后,系统自动查找两个数据表中匹配的字段进行内部联接,如图33-1所示。

图33-1

在查询设计器中可以看到\字段\选项的\可用字段\列表框中包含了3个数据表中的字段,将\学生.姓名\和\学生.年龄\两个字段通过\添加\命令按钮,添加到右边的\选定字段\列表框中。

在筛选选项卡中设置查询条件:首先选择字段名称\课程.课程名称\,条件为\,在实例文本框中输入\英语\,选择\逻辑\下拉框中的\;接着设置第二个查询条件,字段名称\选课.成绩\,条件为\,在实例文本框中输入\,如图33-2所示。

图33-2

然后在\排序依据\选项卡中,选择字段\学生.年龄\添加到\排序条件\列表框中,选择排序方式为\升序\。最后设置查询去向,选择菜单命令\查询\查询去向\,在弹出的\查询去向\对话框中,单击\表\图标按钮,输入表名stud_temp,关闭对话框,运行查询,系统将查询结果自动保存到表stud_temp中。

三、综合应用题(1小题,计30分)

设计名为mystu的表单(文件名为mystu,表单名为form1),所有控件的属性必须在表单设计器的属性窗口中设置。表单的标题为\计算机系学生选课情况\。表单中有一个表格控件(Grid1),该控件的RecordSourceType属性设置为4(SQL说明)和两个命令按钮\查询\(command1)和\退出\(command2)。

运行表单时,单击\查询\命令按钮后,表格控件中显示4系(系字段值等于字符4)的所有学生的姓名、选修的课程名和成绩。

单击\退出\按钮关闭表单。 【答案】

在命令窗口输入命令:CREATE FORM mystu,打开表单设计器,通过\常用工具栏\向表单添加一个表格和两个命令按钮。

选中表单(Form1),在属性面板中修改Caption的属性值为\计算机系学生选课情况\,然后在属性面板顶端的下拉框中选择Command1,修改该命令按钮控件的Caption属性值为\查询\,以同样的方法将第二个命令按钮Command2设置Caption属性值设置为\退出\,设置表格grid1的RecordSourceType属性值为4,如图33-3所示。

图33-3

双击命令按钮Command1(查询),编写该控件的Click事件,程序代码如下: ****\查询\命令按钮的Click事件代码**** ThisForm.Grid1.RecordSource=;

\学生.姓名, 课程.课程名称, 选课.成绩 FROM 课程,选课,学生 where 学生.学号 = 选课.学号;

Ane 课程.课程号 = 选课.课程号 WHERE 学生.系 = '4' INTO CURSOR temp\***************************************

以同样的方法为\退出\命令按钮编写Click事件代码: ****\退出\命令按钮的Click事件代码**** ThisForm.Release

***************************************

保存表单完成设计,在命令窗口输入命令:DO FORM mystu,运行表单。

66

一、基本操作题(共4小题,第1和2题是7分、第3和4题是8分)

(1)建立项目文件,文件名为\我的项目\。

(2)在项目\我的项目\中建立数据库,文件名为\数据库1\。 (3)建立自由表\成绩表\不要求输入数据),表结构为:

学号 字符型 (5) 课程号 字符型(5)

成绩 数值型(5,2) 任课教师 字符型(10)

(4)将考生文件夹下的自由表\成绩表\添加到数据库\数据库1\中。 【答案】

(1)在\纺织品管理\数据库设计器中使用右键单击,选择\添加表\项,双击考生文件夹下的自由表\纺织品\,将自由表添加到数据库中。

(2)打开数据库设计器,使用右键单击\纺织品类型\表,选择\删除\项。在弹出的对话框上单击\移去\按钮。 (3)打开数据库设计器,使用右键单击\毛纺品表\表,选择\删除\项。在弹出的对话框上单击\删除\按钮,完成该表删除。

(4)在数据库设计器中,右键单击数据库表\纺织品\,选择\修改\命令;单击\索引\选项卡,将字段索引名修改为fzp,在\索引\下拉框中选择索引类型为\候选索引\,将字段表达式修改为\纺织品编码\,单击\确定\按钮保存表结构修改。

二、简单应用题(共2小题,每题20分,计40分)

(1)在数据库订货管理中建立视图\视图l\,包括表\订货信息\中的所有字段,并按\公司编号\排序,\公司编号\相同的,按\订单号\排序。

(2)建立表单myform,在表单的数据环境里添加刚建立的视图。在表单上添加\表格\控件,设置表格的相关属性,使表格中显示的是刚建立的视图的内容。 【答案】

(1)输入命令:CREATE MENU 菜单1,创建菜单并打开菜单编辑器。

输入主菜单名\查看\,类型为\子菜单\,单击\创建\进入子菜单设计界面,分别输入子菜单名\供应商\,\单价\,

\退出\,在\供应商\和\单价\的\结果\下拉框中选择\过程\,\退出\个子菜单的\结果\下拉框中选择\命令\。单击\供应商\行中的\创建\命令按钮,在程序代码编辑窗口中输入如下程序段: *****\供应商\子菜单中的程序代码*****

SELECT 商品.名称,供货商.供应商名 FROM 商品,供货商 where 商品.供应商编码=供货商.供应商编码; And 商品.供应商编码=\

****************************************

同样,在\单价\的程序编辑窗口中输入:SELECT * FROM 商品 WHERE 单价>=100。 在\退出\行的文本框中输入程序代码:SET SYSMENU TO DEFAULT。 保存后,单击菜单\菜单\,选择\生成\。

(2) 单击\文件\菜单,选择\新建\命令,接着选中\报表\,单击右面的\向导\按钮,在弹出的对话框里选择\报表向导\。

步骤1,单击\数据库和表\右下面的按钮,双击考生文件夹下的表\商品\;将字段\编码\、\名称\、\单价\添加到选定字段,单击\下一步\。

步骤2,不需要操作,单击\下一步\。

步骤3,选择报表样式为\经营式\,单击\下一步\。

步骤4,将列数修改为1,方向为\横向\,单击\下一步\。

步骤5,将\单价\添加到选定字段,排序方式选择\降序\,单击\下一步\。 步骤6,报表标题修改为\商品单价浏览\,单击\完成\。

修改报表名为:myreport,保存在考生文件夹下。预览报表,结果如图68-2所示。

图68-2

三、综合应用题(1小题,计30分)

score_manager数据库中含有3个数据库表student、score1和course。为了对score_manager数据库数据进行查询,设计一个如图所示的表单Myform1(控件名为form1,表单文件名Myform1.scx)。表单的标题为\成绩查询\。表单左侧有文本\输入学号(名称为Label1的标签)\和用于输入学号的文本框(名称为Text1)、\查询\(名称为Command1)和\退出\(名称为Command2)两个命令按钮以及1个表格控件。

表单运行时,用户首先在文本框中输入学号,然后单击\查询\按钮,如果输入学号正确,在表单右侧以表格

(名称为Grid1)形式显示该生所选课程名和成绩,否则提示\学号不存在,请重新输入学号\。

单击\退出\按钮,关闭表单。 【答案】

单击菜单\文件\,选择\新建\,在\新建\对话框中选中\表单\,单击右面的\新建文件\图标按钮,进入表单设计器。在表单上右击,选择\属性\,在弹出的对话框里找到\属性,并修改为\部门人数统计\。 在表单上单击右键,选择\数据环境\项,这时系统会弹出\选择表或视图\对话框,选中表\部门信息\,单击\添加\按钮,将该表加入数据环境;同样方法,将表\员工\加入数据环境。

单击表单控件工具条上的\组合框\控件,然后在表单上单击,添加一个组合框控件,在该按钮上右击,选择\属性\,在弹出的对话框里找到\属性,并选择\字段\;选择\属性为字段\部门信息.部门号\。

单击表单控件工具条上的\文本框\控件,然后在表单上单击,创建一个文本框控件;同样方法,再创建一个文本框控件。

单击表单控件工具条上的\命令按钮\控件,然后在表单上单击,创建按钮。在该按钮上右击,选择\属性\,在弹出的对话框里找到\属性,并修改为\退出\。

同样方法,再创建一个按钮控件,并修改其\属性为\统计\。 双击\统计\按钮,在其Click事件中输入: ******\统计\按钮的Click事件代码*********

SELECT 部门名称 FROM 部门信息 WHERE 部门号=ALLT(THISFORM.combo1.VALUE)INTO ARRAY temp THISFORM.text1.VALUE=temp(1,1) &&取得结果显示到文本框text1中

SELECT COUNT(工号) FROM 员工 WHERE 部门号=ALLT(THISFORM.combo1.VALUE) INTO ARRAY temp2 THISFORM.text2.VALUE=temp2(1,1)

******************************************

双击\退出\按钮,在其Click事件中输入:Thisform.Release。

单击菜单\文件\,选择\保存\,输入表单名myform,运行表单,结果如图68-3所示。

图68-3

70

一、基本操作题(共4小题,第1和2题是7分、第3和4题是8分)

在考生文件夹下的\雇员管理\数据库中完成下列基本操作:

(1)为\雇员\表增加一个字段,字段名为EMAIL、类型为字符型、宽度为20。

(2)设置\雇员\表中\性别\字段的有效性规则,性别取\男\或\女\,默认值为\女\。

(3)在\雇员\表中,将所有记录的EMAIL字段值用\部门号\的字段值加上\雇员号\的字段值再加上\进行替换。

(4)通过\部门号\字段建立\雇员\表和\部门\表间的永久联系。 【答案】

(1)启动Visual FoxPro后,在命令窗口输入两条命令:

USE 雇员 && 打开\雇员\数据表 MODIFY STRUCTURE && 打开表设计器修改表结构

在弹出的表设计器中,根据题意,在\日期\字段后增加一个新的字段,字段名为\、类型为\字符型\、宽度为\。

(2)继续1小题操作,在表设计的\字段\选项卡中,选中\性别\字段,然后在下面的\字段有效性\区域的\规则\文本框内输入\性别=\男\性别=\女\,\默认值\文本框内输入的内容为\女\,如图70-1所示。

图70-1

(3)在命令窗口执行如下命令:

UPDATE 雇员 SET EMAIL=部门号+雇员号+\系统自动更新数据表\雇员\中\字段的内容。

(4)在命令窗口输入命令:MODIFY DATABASE 雇员管理,打开数据库设计器,将\部门\表中\索引\下面的\部门号\主索引字段拖到\雇员\表中\索引\下面的\部门号\索引字段上,这样便建立了部门表和雇员表之间的永久性联系。

二、简单应用题(共2小题,每题20分,计40分)

(1)请修改并执行名称为form1的表单,要求如下:

① 为表单建立数据环境,并将\雇员\表添加到数据环境中。 ② 将表单标题修改为\公司雇员信息维护\。

③ 修改命令按钮\刷新日期\的Click事件下的语句,使用SQL的更新命令,将\雇员\表中\日期\字段值更换成当前计算机的日期值。注意:只能在原语句上进行修改,不可以增加语句行。

(2)建立一个名称为menu1的菜单,菜单栏有\文件\和\编辑浏览\两个菜单。\文件\菜单下有\打开\、\关闭退出\两个子菜单;\编辑浏览\菜单下有\雇员编辑\、\部门编辑\和\雇员浏览\个子菜单。

【答案】

(1)在命令窗口输入命令:MODIFY FORM form1,打开表单文件form1。

右击表单空白处,选择 \数据环境\快捷菜单命令,打开表单的数据环境,然后在\打开\对话框中选择数据表文件\雇员\表,单击\添加\命令按钮,将\雇员\表加入到数据环境中。

选中表单,然后在属性面板中修改表单(Form1)的Caption属性值为\公司雇员信息维护\。 双击表单中的\刷新日期\命令按钮,修改该控件的Click事件代码: ****\刷新日期\命令按钮的Click事件的源代码**** UPDATE ALL 日期 WITH DATE()

************************************************ **修改后的\刷新日期\命令按钮的Click事件代码**

UPDATE 雇员 SET 日期=DATE() && 语法错误 ************************************************ 保存表单修改,关闭表单。

(2)在命令窗口输入命令:CREATE MENU menu1,系统弹出一个\新建\对话框,在对话框中单击\菜单\图形按钮,进入菜单设计器环境。根据题目要求,首先输入两个主菜单名称\文件\和\编辑浏览\,在\结果\下拉列表中全部选择\子菜单\。

在主菜单设计界面中,单击\文件\行中的\创建\按钮进入下级菜单的设计界面,此设计窗口与主窗口大致相同,然后输入子菜单项的名称\打开\和\关闭退出\,在\结果\对话框中选择\命令\或\过程\(本题没有要求程序设计),然后选择菜单设计器右边的\菜单级\下拉框中的\菜单栏\项,返回主菜单设计窗口,如图70-2所示。按照同样的方法完成\编辑浏览\的子菜单设计。

图70-2

选择菜单命令\菜单\-\生成\,生成一个菜单文件menu1.mpr,关闭设计窗口。

三、综合应用题(1小题,计30分)

①在考生文件夹下,对\雇员管理\数据库完成如下综合应用:

建立一个名称为view1的视图,查询每个雇员的部门号、部门名、雇员号、姓名、性别、年龄和EMAIL。 ②设计一个名称为form2的表单,表单上设计一个页框,页框有\部门\和\雇员\两个选项卡,在表单的右下角有一个\退出\命令按钮。要求如下: 表单的标题名称为\商品销售数据输入\。

单击选项卡\雇员\时,在选项卡\雇员\中使用\表格\方式显示view1视图中的记录(表格名称为grdview1)。 单击选项卡\部门\时,在选项卡\部门\中使用\表格\方式显示\部门\表中的记录(表格名称为\部门\)。 单击\退出\命令按钮时,关闭表单。 【答案】

(1)打开\新建\对话框,在对话框中选择\视图\单选按钮(注意,首先应该打开相应数据库文件,否则该对话框中的\视图\单选项将不可选),然后单击\新建文件\图标按钮,系统首先弹出\添加表或视图\的对话框,在\数据库中的表\列表框中选择数据表文件\部门\,然后单击\添加\命令按钮,将\部门\表添加到视图设计器中,接着将\雇员\表也添加到视图中,如图70-3所示,关闭对话框进入视图设计器中。根据题意,在\字段\选项卡的\可用字段\列表框中,逐个添加部门.部门号、部门.部门名、雇员.雇员号、雇员.姓名、雇员.性别、雇员.年龄和雇员.Email五个字段到右边的\选定字段\列表框中,并将视图以view1名保存在考生文件夹下。

图70-3

(2)在命令窗口输入命令:CREATE FORM form2,新建表单,打开表单设计器。 利用表单控件工具栏在表单中添加一个页框控件和一个命令按钮,选中表单(form1),在属性面板中修改表单的Caption(标题)属性值为\商品销售数据输入\,然后在属性面板顶部的下拉框选择命令按钮(Command1),修改其Caption属性值为\退出\。以同样的方法修改页框中两个页面(Page1和Page2)的Caption属性值为\雇员\和\部门\。

右击表单空白处,选择\数据环境\快捷菜单命令,在\添加表或视图\对话框中将视图文件view1和数据表文件\部门\分别添加到表单的数据环境中。

在表单设计器中,右击页框控件(Pageframe1),选择\编辑\菜单命令,可以看到页框四周出现蓝色边框,表示处于编辑状态下,然后在\雇员\页面中(Page1)添加一个表格控件,设置表格控件的RecordSource属性值为视图文件\,RecordSourceType属性值为\别名\(用来指定显示视图中的数据),Name属性值为\,如图70-4所示。然后在页框编辑状态下选择\部门\页面(Page2),以同样的方法在该页面中添加一个表格控件,并设置RecordSource属性值为\部门\表,RecordSourceType属性值为\表\,Name属性值为\部门\。

图70-4

最后双击\退出\命令按钮,在Click事件中编写程序命令ThisForm.Release,用来关闭表单。保存表单设计,退出表单设计器。

77

一、基本操作题(共4小题,第1和2题是7分、第3和4题是8分)

(1)建立数据库bookauth.dbc,把表books.dbf和authors.dbf添加到该数据库。 (2)为authors表建立主索引,索引名\,索引表达式\作者编号\。

(3)为books表分别建立两个普通索引,其一索引名为rk,索引表达式为\图书编号\;其二索引名和索引表达式均为\作者编号\。

(4)建立authors表和books表之间的联系。 【答案】

(1)在命令窗口输入命令:MODIFY DATABASE BOOKAUTH,新建数据库。右击数据库设计器,选择\添加表\快捷菜单命令,将考生文件夹下的BOOKS.DBF和AUTHORS.DBF自由表分别添加到数据库中。

(2)在数据库设计器中,右键单击数据库表AUTHORS,选择\修改\快捷菜单命令,进入表设计器,在\字段\选项卡中为\作者编号\字段选择一个索引排序,然后单击\索引\选项卡,此选项卡中,将索引名改为\,索引类型改为\主索引\。

(3)在数据库设计器中,右键单击数据库表BOOKS,选择\修改\快捷菜单命令,进入表设计器,在\字段\选项卡中为\图书编号\字段选择一个索引排序,然后单击\索引\选项卡,将索引名该为\。以同样的方法为\作者编号\建立普通索引。

(4)在数据库设计器中,将AUTHORS表中\索引\下面的\主索引字段拖到BOOKS表中\索引\下面的\作者编号\索引字段上,建立AUTHORS和BOOKS两个表之间的永久性联系。

二、简单应用题(共2小题,每题20分,计40分)

(1)在考生文件夹下有一个数据库\供应信息\,其中有数据库表\产品\。使用报表向导制作一个名为report的报表。要求:选择显示表中的所有字段。报表样式为\帐务式\,报表布局:列数\,方向为\横向\,排序字段为\产品编号\,标题\产品浏览\。

(2)请修改并执行名为myForm的表单,要求如下:为表单建立数据环境,并向其中添加表\产品\和\外观\。将表单标题改为\产品使用\;修改命令按钮下的Click事件的语句,使得单击该按钮时使用SQL语句查询出\供应商供应的产品的\编号\、\名称\和\重量\。 【答案】

(1)单击\文件\菜单,选择\新建\命令,接着选中\报表\,单击右面的\向导\按钮,在弹出的对话框里选择\报表向导\。

步骤1,单击\数据库和表\右下面的按钮,双击考生文件夹下的表\产品\;将全部字段添加到选定字段,单击\下一步\。

步骤2,不需要操作,单击\下一步\。

步骤3,选择报表样式为\帐务式\,单击\下一步\。

步骤4,将列数修改为2,方向改为\横向\,单击\下一步\。 步骤5,将\产品编号\添加到选定字段,单击\下一步\。 步骤6,报表标题修改为\产品浏览\,单击\完成\。 修改报表名为:\,保存在考生文件夹下。

(2)输入命令:MODIFY FORM myform,打开表单设计器,在表单设计器上右键单击,选择\数据环境\,然后双击考生文件夹下的表\产品\;然后选中表\外观\,单击右面的\添加\按钮,单击\关闭\关闭添加表对话框。如图77-1

图77-1

右键单击表单,选择\属性\项,找到Caption属性,并将其修改为\产品使用\。 双击\查看\按钮,在其Click事件代码窗口内输入:

SELECT 外观.* FROM 外观 INNER JOIN 产品 ON 外观.产品编号=产品.产品编号 WHERE 产品.供应商编号=\

保存后完成。

三、综合应用题(1小题,计30分)

在考生文件夹下完成如下综合应用:

新建一个名为junjia的程序,完成以下功能。

① 首先将BOOKS.DBF中所有书名中含有\计算机\个字的图书复制到表BOOKSBAK中,以下操作均在BOOKSBAK表中完成。

② 复制后的图书价格在原价格基础上降价5%。

③ 从图书均价高于25元(含25)的出版社中,查询并显示图书均价最低的出版社名称以及均价,查询结果保存在表newtable中(字段名为出版单位和均价)。

【答案】

在命令窗口输入命令:MODIFY COMMAND junjia,打开程序编辑窗口,编写如下程序: ***********文件junjia.prg的程序段********** OPEN DATABASE BOOKAUTH

SELECT * FROM BOOKS WHERE 书名 like \计算机%\&& 价格在原价格基础上降价5%

UPDATE BOOKSBAK SET 价格=价格*0.95

SELECT TOP 1 出版单位,AVG(价格) AS 均价 FROM BOOKSBAK GROUP BY 出版单位 HAVING 均价>=25 ; ORDER BY 均价INTO TABLE newtable

******************************************

保存文件,在命令窗口输入命令:DO junjia,运行程序。结果如图77-2所示。

图77-2

79

一、基本操作题(共4小题,第1和2题是7分、第3和4题是8分)

(1)从数据库team中移去表score((不是删除)。 (2)将自由表team添加到数据库中。

(3)为表team建立一个主索引,索引名和索引表达式均为\拼音缩写\。

(4)为team表的股票代码字段设置有效性规则,规则是:球队名称!=\,错误提示信息是\球队名称不能为空\。

【答案】

(1)在命令窗口中输入命令:MODIFY DATABASE team,打开数据库设计器。在数据库设计器中右键单击表score,选择\删除\命令,接着单击\移去\按钮。

(2) 在数据库设计器上右键单击,选择\添加表\命令,双击考生文件夹下的自由表team,将自由表添加到数据中。

(3)右键单击表team,选择\修改\项,在表设计器中,单击\索引\选项卡,在第一行输入索引名\拼音缩写\,选择类型为\主索引\,输入索引表达式\拼音缩写\,单击\确定\按钮,保存表结构修改。

(4) 右键单击表team,选择\修改\项,在表设计器中,选中\球队名称\字段,在\字段有效性\设置区域内,在\规则\文本框内输入:球队名称!= \,在\信息\文本框内输入:\球队名称不能为空\。

二、简单应用题(共2小题,每题20分,计40分)

(1)在\公司管理\数据库中统计\部门\表中每个部门的人数,统计结果中包含字段\部门号\、\部门名称\和\人数\,按\部门号\排序。并将结果放在表\部门人数\中。

(2)打开myform表单,并按如下要求进行修改(注意要保存所做的修改):在表单的数据环境中添加\员工\表。表单中有\表格\控件,修改其相关属性,在表格中显示\员工\表的记录。 【答案】

(1)在命令窗口中输入命令:MODIFY COMMAND query1,在命令编辑窗口中输入如下程序。 ******文件query1.prg中的程序段***********

SELECT 部门.部门号,部门.部门名称,COUNT(员工.部门号) AS 人数 FROM 部门,员工;

Where 部门.部门号=员工.部门号 GROUP BY 员工.部门号 ORDER BY 部门.部门号 INTO TABLE 部门人数 ******************************************

在命令窗口输入命令:DO query1,执行程序,结果如图79-1所示。

图79-1

(2)输入命令:MODIFY FORM myform,打开表单设计器。在表单设计器上右键单击,选择\数据环境\,在弹出的对话框里,选中表\员工\,单击\添加\按钮,然后单击\关闭\。

在表格控件上右键单击,选择\属性\,在属性框里找到RecordSourceType属性并修改为\别名\,将RecordSource属性修改为\员工\。如图79-2所示

图79-2

保存表单并运行,查看结果。

三、综合应用题(1小题,计30分)

设计名为mystock的表单(控件名和文件名均为mystock)。表单的标题为:\股票持有情况\。表单中有两个文本框(Text1和Text2)和两个命令按钮\查询\(名称为Command1)和\退出\(名称为Command2)。

运行表单时,在文本框Text1中输入某一股票的汉语拼音,然后单击\查询\,则Text2中会显示出相应股票的

持有数量。

单击\退出\按钮关闭表单。 【答案】

在命令窗口中输入命令:CREATE FORM mystock,打开表单设计器,新建表单。

通过表单控件工具栏,为表单添加两个文本框(Text1和Text2)和两个命令按钮(Command1和Command2),在属性面板中,首先修改表单(Form1)的Caption属性值为\股票持有情况\,修改Name属性值为\,然后选中命令按钮(Command1),修改Caption属性值为\查询\,最后修改第二个命令按钮(Command2)的Caption属性值为\退出\,如图79-3所示。

图79-3

双击表单中的第一个命令按钮(查询),在Click事件中编写如下程序段: *****命令按钮Command1(查询)的Click事件代码如下*****

SELECT 持有数量 FROM stock_name,stock_sl where stock_name.股票代码 = stock_sl.股票代码; Anmd 汉语拼音 = ALLTRIM(ThisForm.Text1.Value) INTO ARRAY TEMP THISFORM.TEXT2.VALUE=TEMP

******************************************************

同样在第二个命令按钮command2(退出)的Click事件中,输入代码:ThisForm.Release。运行表单,结果如图79-4所示,保存表单设计到考生文件夹下。

图79-4

80

一、基本操作题(共4小题,第1和2题是7分、第3和4题是8分)

在考生文件夹下完成如下基本操作: (1)新建一个名为\学生\的数据库。

(2)将\学生\、\选课\、\课程\个自由表添加到新建的数据库\学生\中。 (3)通过\学号\字段为\学生\表和\选课\表建立永久联系。

(4)为上面建立的联系设置参照完整性约束:更新和删除规则为\级联\,插入规则为\限制\。 【答案】

(1)在命令窗口输入命令:MODIFY DATABASE 学生,新建数据库并打开数据库设计器。

(2)右击数据库设计器的空白处,选择\添加表\快捷菜单命令,在弹出的\打开\对话框中,将考生文件夹下\学生\、\选课\、\课程\个自由表分别添加到新建的数据库中。

(3)在数据库设计器中,右击表\学生\,选择快捷菜单命令\修改\,弹出表设计器,选择表设计器\索引\

标签,在索引名列中填入\学号\,在索引类型列中选择\主索引\,在索引表达式列中填入\学号\,点击\确定\按钮以保存表结构。用同样的方法,为\选课\表建立必要的索引,索引项为\学号\。在数据库设计器中,选中\学生\表中的索引\学号\主索引字段,将其拖动到表\选课\的\学号\的索引上,建立起两表的永久联系。

(4)建立好永久联系之后,在\学生\表和\选课\表的\学号\索引之间有一条线,单击两个表之间的连线,选择菜单命令\数据库\-\编辑参照完整性(I)\(系统首先要求清理数据库),系统弹出\参照完整性生成器\对话框,在\更新规则\标签中,选择\级联\规则,在\删除\规则中选择\级联\,在\插入规则\中选择\限制\,单击\确定\保存所编辑的参照完整性。

二、简单应用题(共2小题,每题20分,计40分)

在考生文件夹下完成如下简单应用:

(1)用SQL语句完成下列操作。将选课在3门课程以上(包括3门)的学生的学号、姓名、平均分和选课门数按平均分降序排序,并将结果存放于数据库表stu_temp(字段名为学号、姓名、平均分和选课门数)中。

(2)建立一个名为menu_lin的下拉式菜单,菜单中有两个菜单项\查询\和\退出\。\查询\项下还有一个子菜单,子菜单有\按姓名\和\按学号\两个选项。在\退出\菜单项下创建过程,该过程负责使程序返回到系统菜单。

【答案】

(1)在命令窗口输入命令:MODIFY Command query1,打开文件编辑器,输入如下程序: *****文件query1.prg文件中的程序段*****

SELECT 学生.学号, 学生.姓名, AVG(选课.成绩) as 平均分,COUNT(选课.课程号) AS 选课门数; FROM 学生,选课,课程 where 课程.课程号 = 选课.课程号 and 学生.学号 = 选课.学号;

GROUP BY 学生.姓名 HAVING COUNT(选课.课程号)>=3 ORDER BY 3 DESC INTO TABLE stu_temp **************************************

在命令窗口输入命令:DO query1,执行程序,查询结果自动保存到新表中。

(2)在命令窗口输入命令:CREATE MENU menu_lin,在弹出的\新建菜单\对话框中,单击\菜单\图标按钮,打开菜单设计器。

在主菜单设计界面中,分别输入菜单名称\查询\、\退出\,在\查询\的\结果\下拉框中选择\子菜单\,在\退出\的\结果\下拉框中选择\命令\,如图80-1所示。单击\查询\菜单行中的\编辑\命令按钮,在子菜单的菜单名称中输入\按姓名\、\按学号\,选择两个子菜单项的\结果\为\命令\或\过程\,然后选择\菜单级\下拉框中的\菜单栏\,如图80-2所示。返回主菜单设计界面,在\退出\菜单行的\命令\文本框中输入命令:SET SYSMENU TO DEFAULT,保存菜单设计。

图80-1 图80-2

三、综合应用题(1小题,计30分)

设计名为mystu的表单(控件名为form1,文件名为mystu)。表单的标题为\学生学习情况统计\。 表单中有一个选项组控件(名为myOption)两个命令按钮\计算\(名称为Command1)和\退出\(名称为Command2)。其中,选项组控件有两个按钮\升序\(名称为Option1)和\降序\(名称为Option2)。

运行表单时,首先在选项组控件中选择\升序\或\降序\,单击\计算\命令按钮后,按照成绩\升序\或\降序\(根据选项组控件)将选修了\语言\的学生学号和成绩分别存入stu_sort1.dbf和stu_sort2.dbf文件中。

单击\退出\按钮关闭表单。 【答案】

在命令窗口中输入命令:CREATE FORM mystu,打开表单设计器,新建表单。

从表单控件工具栏中,向表单添加2个命令按钮(Command1和Command2)和1个选项按钮组(Optiongroup1)。根据题意,在属性面板中,修改表单(Form1)的Caption属性值为\学生学习情况统计\,修改命令按钮Command1的Caption属性值为\计算\,修改命令按钮Command2的Caption属性值为\退出\,修改选项按钮组(Optiongroup1)的Name属性值为\,然后右击选项按钮组,选择\编辑\快捷菜单命令,在此状态下(编辑状态下,控件

四周出现蓝色框线),分别修改两个单选项的Caption属性值为\升序\和\降序\,如图80-3所示。

图80-3

双击\计算\命令按钮(Command1),编写Click事件代码,内容如下: ***命令按钮command1(计算)的Click事件代码如下**** DO CASE

CASE THISFORM.myOption.VALUE=1

SELECT 选课.学号, 选课.成绩 FROM 课程,选课 where 课程.课程号 = 选课.课程号; And 课程.课程名称=\语言\选课.成绩 INTO TABLE stu_sort1 CASE THISFORM.myOption.VALUE=2

SELECT 选课.学号, 选课.成绩 FROM 课程,选课 where 课程.课程号 = 选课.课程号; And 课程.课程名称=\语言\选课.成绩 DESC INTO TABLE stu_sort2

ENDCASE

***********************************************

同样在\退出\命令按钮(Command2)的Click事件中输入:ThisForm.Release。 运行表单,保存表单设计到考生文件夹下。

89

一、基本操作题(共4小题,第1和2题是7分、第3和4题是8分)

在考生文件夹下,打开Ecommerce数据库,完成下列基本操作:

(1)打开Ecommerce数据库,并将考生文件夹下的自由表OrderItem添加到该数据库。

(2)为OrderItem表创建一个主索引,索引名为PK,索引表达式为\会员号+商品号\。再为OrderItem表创建两个普通索引(升序),其中一个索引名和索引表达式均是\会员号\;另一个索引名和索引表达式均是\商品号\。

(3)通过\会员号\字段建立客户表Customer和订单表OrderItem之间的永久联系(注意不要建立多余的联系)。 (4)为以上建立的联系设置参照完整性约束:更新规则为\级联\;删除规则为\限制\;插入规则为\限制\。 【答案】

(1)在命令窗口输入命令:MODIFY DATABASE Ecommerce,打开数据库设计器,右击数据库设计器,选择\添加表\快捷菜单命令,将考生文件夹下的OrderItem表添加到数据库中。

(2)右击数据库设计器中的表OrderItem,选择\修改\快捷菜单命令,弹出表设计器,选择表设计器\索引\标签,在索引名列中填入\在索引类型列中选择\主索引\,在索引表达式列中填入\会员号+商品号\,用同样的方法再为OrderItem创建两个普通索引(升序),一个索引名和索引表达式均是\会员号\;另一个索引名和索引表达式均是\商品号\,点击\确定\按钮,保存表结构。

(3)在数据库设计器中,选中Customer表中的索引\会员号\并拖动到表OrderItem的\会员号\索引上,这样两个表之间就建立起了永久性联系。

(4)建立好永久性联系之后,单击表示两个表之间连线,线会加粗,此时在主菜单中选择\数据库\中的\编辑参照完整性(I)\(系统首先要求清理数据库),系统弹出\参照完整性生成器\对话框,在\更新规则\标签中,选择\级联\规则,在\删除\规则中选择\限制\,在\插入规则\中选择\限制\,单击\确定\保存所编辑的参照完整性。

二、简单应用题(共2小题,每题20分,计40分)

(1)在考生文件夹下,有一个数据库cadb,其中有数据库表zxkc和zx。 表结构如下:

本文来源:https://www.bwwdw.com/article/jz0o.html

Top