VF上机题库110(8)

2019-08-03 10:50

步骤3:以同样的方法,将第二个命令按钮(command2)的Name属性值修改为cmdno,将Caption属性值修改为\关闭\。

步骤4:双击命令按钮cmdyes(计算),在Click事件代码中编写如下程序段: *******命令按钮Command1(计算)的Click事件代码******* SET TALK OFF USE score

REPLACE ALL 学分 WITH 0 GO TOP

DO WHILE .NOT.EOF() IF 物理>=60 THEN

REPLACE 学分 WITH 学分+2 ENDIF

IF 高数>=60 THEN

REPLACE 学分 WITH 学分+3 ENDIF

IF 英语>=60 THEN

REPLACE 学分 WITH 学分+4 ENDIF 步骤2:单击\文件\菜单,选择\新建\命令,选中\视图\,单击右面的\新建文件\图标按钮,然后将\养殖信息\表加入。

步骤3:在\字段\页,将\养殖信息\的全部字段添加到选定字段,然后在下部的\函数及表达式\文本框里输入\市场价-养殖成本)*数量 AS 收入\,并单击\添加\按钮将\收入\字段加入到\选定字段\。

步骤4:单击\排序依据\选项卡,将选定字段列表框中的\收入\字段添加到\排序条件\,接受默认的升序。 步骤5:单击\文件\菜单,选择\保存\,将视图保存为\视图1\。

步骤6:在命令窗口输入命令:MODIFY FILE myview,打开文本编辑器,单击视图工具栏上的SQL按钮打开视图代码窗口,将其代码复制到新建的文本文件myview后完成。

对公司管理数据库中的表\员工\和\部门\,建立文件名为\表单\的表单,选项卡右边的\添加\命令按钮,在系统弹出的\打开\对话框中,将考生文件夹中的数据库\学生管理\添加到项目管理器中,单击\确定\按钮。 (3)从菜单栏里点击\文件\并选择\打开\,或直接单击工具栏上的\打开\图标,在弹出的对话框中选择要打开的数据库文件\学生管理.dbc\。 右键单击数据库设计器,选择\添加表\快捷菜单命令,系统弹出\打开\对话框,将考生文件夹下的\自由表分别添加到数据库\学生管理\中。 (4)在数据库设计器中,将\表中\索引\下面的\学生编号\主索引字段拖到\表中\索引\下面的\学生编号\索引字段上,建立了两个表之间的永久性联系。

1.建立视图view55,并将定义视图的代码放到view.txt中。具体要求是:视图中的数据取自数据库\个人支出\下的\个人日常支出\表中\姓名\、\电话\、\水电费\和\煤气费\字段,以及编号 SKIP ENDDO

**************************** 步骤3:在命令窗口输入命令:DO myp,执行程序。

◆◆◆◆◆◆宏图教育◆◆◆◆◆ 1.在考生文件夹下建立数据库\学生\。

2.把自由表stu、chenji加入到\学生\数据库中。

3.在\学生\数据库中建立视图my,要求显示表chenji中的全部字段(按表chenji中的顺序)和所有记录。

4.为stu表建立主索引,索引名和索引表达式均为\学号\。 【操作步骤】

(1)在命令窗口中输入命令:CREATE DATABASE 学生,新建一个数据库。 (2)在命令窗口中输入命令:MODIFY DATABASE 学生,打开新建的数据库。右键单击数据库设计器,选择\添加表 SKIP ENDDO

SORT ON 学分,学号/d TO xf SET TALK ON

*************************** 步骤5:双击命令按钮cmdno(关闭),在Click事件代码中编写如下程序段: ********命令按钮Command2(关闭)的Click事件代码***** Thisform.Release

*************************** 步骤6:保存表单,在命令窗口输入命令:DO FORM myform,在运行的表单界面中单击\计算\命令按钮,系统将计算结果自动保存到新表xf中。 ◆◆◆◆◆◆宏图教育◆◆◆◆◆ 1.将考生文件夹下的自由表\课程\添加到数据库\学生管理\中。

2.设置表\课程\的字段\学分\的默认值为\。

3.更新表\成绩\的记录,为每个人的成绩加上十分,将使用的SQL语句保存到mysql.txt中。

4.修改表单\表单1\,将其Caption修改为\我的表单\。 【操作步骤】

(1)在命令窗口中输入命令:MODIFY DATABASE 学生管理,在数据库设计器中使用右键单击,选择\添加表\项,双击考生文件夹下的自由表\课程\,将自由表添加到数据库中。

(2)在数据库设计器中,右键单击表\课程\,选择\修改\项。选中\学分\字段,在\字段有效性\区域内,\默认值\文本框里输入\。 (3) 在命令窗口中输入命令:MODIFY FILE mysql,打开文本编辑器,输入以下程序:

UPDATE 成绩 SET 成绩=成绩+10 保存文件,并在命令窗口中输入命令:DO mysql.txt,执行文件。 (4) 在命令窗口中输入命令:MODIFY FORM 表单1,右键单击\表单设计器\,选\属性\项,找到Caption属性,修改为\我的表单\,单击\文件\保存\菜单命令。

1.建立一个名为myMenu的菜单,菜单中有两个菜单项\信息\和\退出\。\信息\下还有\排序结果\、\分组结果\两个菜单项。单击\退出\菜单返回到系统菜单。

2.在数据库mydb中建立视图\视图1\,并将定义视图的代码放到\中。具体要求是:视图中的数据取自表\养殖信息\的全部字段和新字段\收入\并按\收入\排序(升序)。其中字段\收入\等于\市场价一养殖成本)*数量\。 (1)【操作步骤】

步骤1:在命令窗口中输入命令:CREATE MENU mymenu,创建菜单并打开菜单编辑器。

步骤2:分别输入主菜单名\信息\、\退出\,其中\信息\的类型为\子菜单\,\退出\的类型为\命令\。

步骤3:在\命令\菜单项的选项框里输入:SET SYSMENU TO DEFAULT 。 步骤4:单击\信息\菜单项的\创建\按钮,进入子菜单编辑界面,依次输入子菜单名\排序结果\、\分组结果\。 步骤5:保存后,单击菜单\菜单\生成\命令,生成一个可执行的菜单文件。

(2)【操作步骤】

步骤1:输入命令:OPEN DATABASE 养殖场管理,打开数据库环境。

标题为\公司管理\,表单上有1个表格控件和3个命令按钮,标题分别为\按部门查看\、\人数统计\和\退出\。 当表单运行时:

(1)单击\按部门查看\按钮,以\部门号\排序查询员工表中的记录,结果在表格控件中显示。

(2)单击\人数统计\按钮,查询职工表中今年的各部门的人数,结果中含\部门号码\和\今年人数\等字段,结果在表格控件中显示。

(3)单击\退出\按钮关闭表单。 【操作步骤】 步骤1:单击菜单\文件\,选择\新建\,在\新建\对话框中选中\表单\,单击右面的\新建文件\图标按钮,进入表单设计器。在表单上右击,选择\属性\,在弹出的对话框里找到\属性,并修改为\公司管理\。

步骤2:在表单上单击右键,选择\数据环境\项,这时系统会弹出\选择表或视图\对话框,选中表\员工\,单击\添加\按钮,将该表加入数据环境;同样方法,将表\部门\加入数据环境。 步骤3:单击表单控件工具条上的\表格\控件,然后在表单上单击,创建一个表格控件,并适当调整大小及位置。在该控件上右击,选择\属性\,修改其\属性为4-SQL说明。

步骤4:单击表单控件工具条上的\命令按钮\控件,然后在表单上单击,创建按钮。在该按钮上右击,选择\属性\,在属性对话框里找到\属性,并修改为\按部门查看\。

步骤5:同样方法,再创建两个按钮,分别修改其\属性为\人数统计\、\退出\。

步骤6:双击\按部门查看\按钮,在它的\事件中输入:

******\按部门查看\按钮的Click事件代码******

THISFORM.grid1.RecordSource=\ SELECT * FROM 员工; ORDER BY 部门号; INTO CURSOR temp\

*************************** 步骤7:双击\人数统计\按钮,在它的\事件中输入:

*****\人数统计\按钮的Click事件代码********

THISFORM.grid1.RecordSource=\ SELECT 员工.部门号,COUNT(部门号) AS 今年人数; FROM 员工;

GROUP BY 部门号; INTO CURSOR temp\

*************************** 步骤8:双击\退出\按钮,在其Click事件中输入:Thisform.Release。 步骤9:单击菜单\文件\保存\命令,输入表单名\表单\,运行表单。 ◆◆◆◆◆◆宏图教育◆◆◆◆◆ 1.在考生文件夹下建立项目文件,文件名为my。

2.将数据库\学生管理\添加到的项目中。

3.将考生文件夹下的自由表bit添加到数据库中。

4.建立表bit和表bei之间的关联。 【操作步骤】

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

(2)在项目管理器my中,首先在\数据\选项卡中选择\数据库\,然后单击

\个人基本情况\表中的\编码\和\工资\字段。两表以\编码\联接。按\金额剩余\排序(升序),其中\剩余金额\等于工资减去电话、水电费和煤气费。 2.考生文件夹下有一个\表单文件,其中有2个命令按钮\查看\和\关闭\。表单上还有一个表格控件。表单的数据环境里已经添加了表\个人日常支出\,要求编写两个命令按钮的Click事件,使得单击\查看\按钮在表格中显示表\个人日常支出\的记录,单击\关闭\按钮退出表单。 (1)【操作步骤】

步骤1:在命令窗口中输入命令:MODIFY FILE view,打开文本编辑器,输入如下程序段:

******文件view.txt中的程序段******

OPEN DATABASE 个人支出 CREATE VIEW view55 AS;

SELECT 个人日常支出.姓名, 个人日常支出.电话, 个人日常支出.水电费,;

个人日常支出.煤气费, 个人基本情况.工资, 个人基本情况.编码,; 个人基本情况.工资-个人日常支出.电话-个人日常支出.水电费-个人日常支出.煤气费; AS 金额剩余;

FROM 个人支出!个人日常支出, 个人支出!个人基本情况;

WHERE 个人基本情况.编码 = 个人日常支出.编码; ORDER BY 7

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

步骤2:在命令窗口输入命令:DO view.txt,运行程序,生成视图。 (2)【操作步骤】

步骤1:在命令窗口输入命令:MODIFY FORM form55,打开表单设计器,设置\表格\控件的Visible属性值为\假\,表格的recordsourcetype属性为0-表,recordsource属性为\个人日常支出\。

步骤2:双击\查看\按钮,在其Click事件中输入代码\步骤3:双击\关闭\按钮,在其Click事件中输入代码:Thisform.Release。 步骤4:保存表单设计,运行查看结果。 对考生文件夹下表\客户\和\定货\完成如下操作:

(1)为表客户增加一个字段,字段名为\应付款\,字段类型为数值型,宽度为10,小数位数为2。

(2)编写程序myp统计表\定货\中每个客户的费用总和,并将该值写入表\客户\的对应客户的\应付款\字段。 (3)运行该程序。 【操作步骤】

步骤1:在命令窗口中输入命令:MODIFY COMMAND myp。

步骤2:打开程序文件编辑器,在弹出的程序编辑窗口中输入如下程序段: ******程序文件myp.prg中的程序段************************

ALTER TABLE 客户 ADD 应付款 N(10,2)

SELECT 客户编号,SUM(金额) AS 应付款 FROM 定货 ;

GROUP BY 客户编号 INTO CURSOR atemp

DO WHILE NOT EOF()

UPDATE 客户 SET 应付款=atemp.应付款;

WHERE 客户.客户编号=atemp.客户

\快捷菜单命令,系统弹出\打开\对话框,将考生文件夹下的stu和chenji两个自由表分别添加到数据库\学生\中。

(3)右键单击数据库设计器,选择\新建本地视图\快捷菜单命令,在弹出的\新建本地视图\对话框中,单击\新建视图\按钮,打开视图设计器,将chenji数据表添加到视图设计器中。根据题意,在视图设计器的\字段\选项卡中,将\可用字段\列表框中的字段全部添加到右边的\选定字段\列表框里中,完成视图设计,将视图以my文件名保存在考生文件夹下。

(4)在数据库设计器中,右键单击数据库表stu,在弹出的快捷菜单中选择\修改\菜单命令,进入stu的数据表设计器界面,在\索引\选项卡中的\索引名\和\索引表达式\输入\学号\,在\类型\的下拉框中,选择\主索引\。 1.设计表单my,其中有3个按钮,标题分别为\汇报\、\查看\和\关闭\。单击\汇报\按钮,弹出对话框\您单击的是汇报按钮!\。单击\查看\按钮,弹出对话框\您单击的是查看按钮!\。单击\关闭\按钮则退出表单。

2.根据\定货\表和\客户\表建立一个查询cha,查询出所有所在地是\上海\的公司的\公司名称\、\订单日期\、\送货方式\,要求查询去向是表,表名是que.dbf,并执行该查询 (1)【操作步骤】

步骤1:在命令窗口输入命令:MODIFY FORM my,打开表单设计器新建表单。 步骤2:单击\表单控件\窗口中的\命令按钮\控件,在表单上放置3个命令按钮控件,将它们的Caption属性值分别改为\汇报\,\查看\和\关闭\。 步骤3:分别编写3个命令按钮的Click事件代码。

*****命令按钮Command1(汇报)的Click事件代码*****

MESSAGEBOX(\您单击的是汇报按钮!\

**************************** *****命令按钮Command2(查看)的Click事件代码*****

MESSAGEBOX(\您单击的是查看按钮!\

**************************** *****命令按钮Command3(关闭)的Click事件代码***** Thisform.Release

**************************** 步骤4:保存表单设计,在命令窗口输入命令:DO FORM my,运行表单,查看表单运行结果。 (2)【操作步骤】 步骤1:在命令窗口输入:CREATE QUERY cha,打开查询设计器,新建一个查询。 步骤2:在查询设计器中,分别将\客户\和\定货\两个数据表文件添加到查询设计器中,系统自动查找两个数据表中匹配的字段进行内部联接,单击\确定\按钮。

步骤3:在查询设计器中的\字段\选项卡中,将\可用字段\列表框中的\客户.公司名称\、\定货.定单日期\和\定货.送货方式\三个字段添加到右边的\选定字段\列表框中。

步骤4:在\筛选\选项卡的\字段名\下拉框中选择\客户.所在地\,在\条件\下拉框中选择\,在实例文本框中输入\上海\。

步骤5:选择菜单【查询】|【查询去向】命令,系统弹出\查询去向\对话

框,单击\表\按钮,在\表名\文件框中输入表名que,单击\确定\退出。 步骤6:选择菜单【查询】|【运行查询】命令,查询结果将自动保存到que数据表中。

(1)请编写名称为change_c的命令程序并执行,该程序实现下面的功能:将\商品表\进行备份,备份文件名为spbak.dbf;将\商品表\中\商品号\前教师浏览\。单击\完成\结束,表单以文件名\教师\保存。

(4) 在命令窗口输入命令:MODIFY PROJECT myproj,然后在项目管理器中单击\文档\选项卡,选择列表框中的\表单\,单击右面的\添加\按钮,双击考生文件夹下的\教师\表单完成添加。

在考生文件夹下完成如下简单应用: Caption属性为\图书信息浏览\,Name属性值为\。

步骤3:从表单控件工具栏中选择1个组合框,4个文本框、4个标签和1个命令按钮放置在表单上。

步骤4:在属性面板中分别设置四个标签的Caption属性分别为\作者\、\索书号\、\出版社\和\价格\。设置命令按钮的Caption属性值为\关闭\。 步骤1:输入命令:MODIFY FORM

sellform 打开表单设计器。

步骤2:在表单设计器上右键单击,选择\数据环境\项,在弹出的对话框里,选中右下方的单选按钮\视图\接着选中\视图1\单击\添加\按钮,然后单击\关闭\。

步骤3:在表格控件上右键单击,选择\属性\在属性框里找到两位编号为\的商品的\单价\修改为出厂单价提高10%;使用\单价调整表\对商品表的部分商品出厂单价进行修改(按\商品号\相同为条件)。 (2)设计一个名称为form2的表单,上面有\调整\名称为Command1)和\退出\名称为Command2)两个命令按钮。单击\调整\命令按钮时,调用change_c命令程序实现商品单价调整;单击\退出\命令按钮时,关闭表单。

注意:以上两个命令按钮均只含一条语句,不可以有多余的语句。 (1)【操作步骤】

步骤1:在命令窗口输入命令:MODIFY COMMAND change_c,打开程序文件编辑器,为新建文件编写如下程序段: ****文件change_c.prg中的程序段****

SET TALK OFF SET SAFETY OFF && 备份商品表

SELECT * FROM 商品表 INTO TABLE spbak.dbf

&& 修改商品的单价

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

UPDATE 商品表 SET 出厂单价=单价调整表.出厂单价;

WHERE 商品号=单价调整表.商品号 SKIP ENDDO CLOSE ALL SET TALK ON SET SAFETY ON

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

步骤4:双击\调整\命令按钮,进入事件编辑窗口,在Click事件中编写如下代码:

****命令按钮Command1(调整)的Click事件代码**** DO change_c

***************************** 步骤5:以同样的方法为\退出\命令按钮编写Click事件代码:

****命令按钮Command2(退出)的Click事件代码**** Thisform.Release

***************************** 步骤6:保存表单完成设计。

◆◆◆◆◆◆宏图教育◆◆◆◆◆ 1.将数据库学校管理的表\课程\的结构拷贝到新表mytable中。

2.将表\课程\中的记录拷贝到表mytable中。

3.对数据库\学校管理\中的表\教师\使用表单向导建立一个简单的表单,文件名为\教师\,要求显示表中的字段\职工号\、\姓名\和\职称\,表单样式为\凹陷式\,按钮类型为\文本按钮\,按\职工号\升序排序,表单标题为\教师浏览\。

4.把表单\教师\添加到项目\中。

【操作步骤】 (1)在命令窗口输入命令:USE 课程,接着输入:COPY STRUCTURE TO mytable。

(2)在命令窗口输入命令:USE mytable,接着输入:APPEND FROM 课程。

(3)单击\文件\菜单,然后\新建\,选\表单\项,点击右面的\向导\图标按钮,接着选择\表单向导\,单击\数据库和表\右下边的按钮,选择考生目录下的\教师\表,选择字段\职工号\、\姓名\、\职称\单击\下一步\,表单样式设置为\凹陷式\,按钮类型为\文本按钮\单击\下一步\,排序字段选择\职工号\升序);修改表单标题为\

1.用SQL语句完成下列操作:列出所有赢利(现价大于买入价)的股票简称、现价、买入价和持有数量,并将检索结果按持有数量降序排序存放于表stock_temp中,将SQL语句保存在query1.prg文件中。

2.使用一对多报表向导建立报表。要求:父表为stock_name,子表为stock_sl,从父表中选择字段\股票简称\;从子表中选择全部字段;两个表通过\股票代码\建立联系;按股票代码升序排序;报表标题为\股票持有情况\;生成的报表文件名为stock_report。 (1)【操作步骤】

步骤1:在命令窗口输入命令:MODIFY Command query1,打开文件编辑器。 步骤2:在程序文件编辑器中,输入如下程序:

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

SELECT stock_name.股票简称, stock_sl.现价, stock_sl.买入价,; Stock_sl.持有数量;

FROM stock!stock_name INNER JOIN stock!stock_sl ;

ON stock_name.股票代码 = stock_sl.股票代码;

WHERE stock_sl.现价 > stock_sl.买入价;

ORDER BY stock_sl.持有数量 DESC; INTO TABLE stock_temp.dbf **************************** 步骤3:在命令窗口输入命令:DO query1,执行程序,查询结果自动保存到新表中。

(2)【操作步骤】

步骤1:选择菜单【文件】|【新建】命令,或从常用工具栏中单击新建按钮,在弹出的\新建\对话框中选择\报表\单选项,再单击\向导\按钮,系统弹出\向导选取\对话框,在列表框中选择\一对多报表向导\,单击\确定\按钮。

步骤2:选择\一对多报表向导\后,系统首先要求选择一对多报表中作为父表的数据表文件,根据题意,选择stock_name表作为父表。

步骤3:从\可用字段\列表框中将\股票简称\字段添加到右边的\选定字段\列表框中,用作父表的可用字段。 步骤4:单击\下一步\设计子表的可用字段,操作方法与父表选取字段的方法一样,将stock中所有字段添加到选定字段。

步骤5:单击\下一步\进入\建立表关联\的设计界面,在此处系统已经默认设置好进行关联的字段:父表的\股票代码\和子表的\股票代码\字段。 步骤6:单击\下一步\进入\选择排序方式\方式的设计界面,将\股票代码\字段添加到右边的\选定字段\列表框中,并选择\升序\单选项。

步骤7:单击\下一步\进入\选择报表样式\的界面,此处保持默认的设置。 步骤8:单击\下一步\进入最后的\完成\设计界面,在\标题\文本框中输入\股票持有情况\为报表添加标题,单击\完成\命令按钮,在系统弹出的\另存为\对话框中,将报表以stock_report文件名保存在考生文件夹下,退出报表设计向导。

对考生文件夹下的\书籍\表新建一个表单,完成以下要求:表单标题为\图书信息浏览\,文件名保存为myf,Name属性为form1。表单内有1个组合框,1个命令按钮和4对标签与文本框的组合。表单运行时组合框内是\书籍\表中所有书名(表内书名不重复)供选择。当选择书名后,4对标签和文本框将分别显示表中除\书名\字段外的其他4个字段的字段名和字段值。 单击\关闭\按钮退出表单。 【操作步骤】

步骤1:选择菜单【文件】|【新建】命令,在类型选择框中选择\表单\,单击\新建文件\按钮,打开表单设计器。

步骤2:在属性窗口中设置表单的

步骤5:设置组合框的RowSourceType属性为\语句\,RowSource属性为\书名 from 书籍\,Style属性为\下拉列表框\。

步骤6:双击组合框,编写该控件的Valid事件,程序代码如下:

*************组合框Combo1的Valid事件代码************* SELECT 作者,索书号,出版社,价格; FROM 书籍; WHERE 书名=Thisform.Combo1.Value; INTO ARRAY temp

Thisform.Text1.Value=temp(1) Thisform.Text2.Value=temp(2) Thisform.Text3.Value=temp(3) Thisform.Text4.Value=temp(4) **************************** 步骤7:双击\关闭\命令按钮编写Click事件代码:Thisform.Release。 步骤8:保存表单文件为myf.scx到考生文件夹下,运行表单。

◆◆◆◆◆◆宏图教育◆◆◆◆◆ 1.对项目myproj中的数据库mydb下的表\员工\使用表单向导建立一个简单的表单myform2,要求显示表中的全部字段,样式为\阴影式\,按钮类型为\文本按钮\,按\工号\升序排序,表单标题为\员工信息浏览\。

2.修改表单myform,为其添加一个命令按钮,标题为\调用表单\。

3.编写表单myform中\调用\按钮的相关事件,使得单击\调用表单\按钮调用表单myform2。

4.把表单myform添加到项目myproj中。

【操作步骤】

(1) 单击\文件\菜单,选\新建\项,接着选择\表单\点击\向导\图标按钮,然后选择\表单向导\在表单向导步骤1中,单击\数据库和表\右下面的按钮,然后选择考生文件夹下的\员工\表。选择全部可用字段添加到右边的\选定字段\单击\下一步\步骤2中,表单样式选择\阴影式\文本按钮\单击\下一步\步骤3中,排序字段选择\工号\排序方式为\升序\单击\下一步\步骤4中,修改表单标题为\员工信息浏览\单击\完成\。保存表单为myform2。

(2) 输入命令:MODIFY FORM myform,在控件工具条上单击按钮控件,鼠标变成十字型,在表单上单击,则在该处加上一个按钮,在该按钮上右键单击,选\属性\项,弹出属性对话框,将Caption属性值改为\调用表单\。保存修改。

(3) 在\调用表单\按钮上双击,进入命令编辑界面,在Click事件中输入命令:DO FORM myform2,后关闭该页。 (4) 输入命令:MODIFY PROJECT myproj。选中\文档\选项卡下的\表单\项,单击右面的\添加\按钮,在弹出的对话框中,将考生文件夹下的myform表单添加到项目中。

1.在考生文件夹下的数据库\销售\中,对表\业绩\建立视图\视图1\,包括表中的全部字段,按\地区\排序,同一部门内按\销量\排序。

2.打开sellform表单,并按如下要求进行修改(注意要保存所做的修改):表单中有\表格\控件修改相关属性,使在表格中显示(1)中建立的视图的记录。运行结果如下图所示。 (1)【操作步骤】

步骤1:输入命令:MODIFY DATABASE 销售。 步骤2:单击\文件\菜单,选择\新建\项,接着选中\视图\单击右面的\向导\进入本地视图向导。

步骤3:选择表\业绩\并将全部所用字段添加到选定字段,单击\下一步\。 步骤4:没有操作,单击\下一步\。 步骤5:将\业绩.地区号\添加到选定字段,然后将\业绩.销量\也添加到选定字段,选择\升序\单击\下一步\。 步骤6:单击\完成\。输入视图名\视图1\单击\确定\结束。 (2)【操作步骤】

RecordSourceType属性并修改为1-别名,将RecordSource属性修改为\视图1\。保存表单。

在考生文件夹下,对\文具\数据库完成如下综合应用:

(1)请编写名称为change的命令程序并执行,该程序实现下面的功能:将\商品表\中\商品号\前两位编号为\的商品的\单价\修改为在\厂价\的基础上提高15%;使用\单价调整表\对商品表的部分商品出厂单价进行修改。

(2)设计一个名称为form1的表单,上面有\执行\和\退出\两个命令按钮。单击\执行\命令按钮时,调用change命令程序实现\商品单价\调整;单击\退出\命令按钮时,关闭表单。 【操作步骤】

步骤1:在命令窗口输入:MODIFY COMMAND change。

步骤2:打开代码编辑窗口,输入以下程序段: *******文件change中的程序段******

SET TALK OFF SET SAFETY OFF

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

UPDATE 价格 SET 厂价=单价调整表.厂价;

WHERE 商品号=单价调整表.商品号 SKIP ENDDO

SET TALK ON SET SAFETY ON

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

步骤3:单击菜单\文件\选择\新建\在\新建\对话框中选中\表单\单击右面的\新建文件\图标按钮,进入表单设计器。

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

步骤5:同样方法,再创建一个按钮控件,并修改其\属性为\执行\。

步骤6:双击\执行\按钮,在其Click事件中输入:DO change.prg。

步骤7:双击\退出\按钮,在其Click事件中输入:Thisform.Release。 步骤8:单击菜单\文件\选择\保存\输入表单名form1,运行表单,查看结果。

◆◆◆◆◆◆宏图教育◆◆◆◆◆ 1.在考生文件夹下建立一个名为student的项目文件。

2.将考生文件夹下的数据库std添加到新建的项目文件中。

3.打开学生数据库std,将考生文件夹下的自由表tea添加到\学生\数据库std中;为教师表tea创建一个索引名和索引表达式均为\教师编号\的主索引(升序)。

4.通过\班级编号\字段建立表ass和表dent表间的永久联系。 【操作步骤】

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

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

(3)展开\数据库\分支,选中std数据库,然后单击选项卡中的\修改\命令按钮,打开数据库设计器,右键单击数据库设计器,选择\添加表\快捷菜单命令,系统弹出\打开\对话框,将考生文件夹下tea自由表添加到数据库std中。

在数据库设计器中,右键单击数据库表tea,在弹出的快捷菜单中选择\修

改\菜单命令,进入tea的数据表设计器界面,在\字段\选项卡中为\教师编号\选择\升序\排序,然后单击\索引\选项卡,此选项卡中的\索引名\和\索引表达式\默认\教师编号\在\索引类型\的下拉框中,选择\主索引\单击\确定\按钮关闭表设计器。

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

1.在销售记录数据库中有\商品信息\表和\购买信息\表。用SQL语句查询会员号为\的会员购买的商品的信息(包括购买表的全部字段和商品名)。并将结果存放于表new中,将SQL语句保存在query1.prg文件中。

2.在考生文件夹下有一个数据库\图书借阅\,其中有数据库表借阅。使用报表向导制作一个名为rep的报表。要求:选择表中的全部字段。报表样式为\带区式\,报表布局:列数2,方向为\纵向\。排序字段为\借书日期\升序)。报表标题为\图书借阅\。 (1)【操作步骤】

步骤1:在命令窗口中输入命令:MODIFY COMMAND QUERY1,打开程序文件编辑器。

步骤2:在程序文件编辑器窗口输入如下程序段:

******文件query1.prg中的程序代码*******

SELECT 会员号,购买信息.商品号,商品信息.商品名,购买信息.数量,购买信息.单价,日期;

FROM 商品信息,购买信息;

WHERE 商品信息.商品号=购买信息.商品号 and 会员号=\ INTO TABLE new

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

步骤3:在命令窗口输入命令:DO query1,运行程序,通过BROWSE命令可查看结果。 (2)【操作步骤】

步骤1:在\工具\菜单选择菜单【向导】|【报表】命令,出现\向导选取\对话框,根据题意数据源是一个表,因此选定\报表向导\单击\确定\。

步骤2:在弹出的对话框中\数据库和表\选项选择\图书借阅\数据库下的\借阅\数据表,并把全部\可用字段\选为\选定字段\。

步骤3:单击\下一步\按钮,选择系统默认设置。

步骤4:单击\下一步\按钮,报表样式选择为\带区式\。

步骤5:单击\下一步\按钮,在定义报表布局中,调整列数为2,方向为纵向。 步骤6:单击\下一步\按钮,在\排序记录\中选择\借书日期\并选择升序排序。

步骤7:单击\下一步\按钮,把表单标题改为\图书借阅\可以在单击\完成\之前单击\预览\按钮来预览生成的报表,最后单击\完成\按钮。

步骤8:将报表以文件名为rep保存在考生文件夹里。

对\出勤\数据库中的表\出勤情况\,建立名为myf的表单文件,标题为\出勤情况查询\,表单上有1个表格控件和3个命令按钮\未迟到查询\、\迟到查询\和\关闭\。

单击\未迟到查询\按钮,查询出勤情况表中每个人的\姓名\、\出勤天数\和\未迟到天数\,其中\未迟到天数\为\出勤天数\减去\迟到次数\。结果在表格控件中显示,同时保存在表tablel中。

单击\迟到查询\按钮,查询迟到天数在l天以上的人的所有信息,结果在表格控件中显示,同时保存在表table2中。

单击\关闭\按钮关闭表单。 【操作步骤】

步骤1:在命令窗口中输入命令:CREATE FORM myf,打开表单设计器。

步骤2:通过\表单控件\工具栏向表单添加1个表格和3个命令按钮。

步骤3:选中表单,在属性面板中将Caption的属性值改为\出勤情况查询\然后在属性面板顶端的下拉框中选择Command1,修改该命令按钮控件的Caption属性值为\未迟到查询\。 步骤4:以同样的方法将第二个、第三个命令按钮设置Caption属性值分别改为\迟到查询\和\关闭\。

步骤5:双击命令按钮,编写各命令按钮的Click事件,程序代码如下。 **命令按钮Command1(迟到查询)的Click事件代码**

SELECT 姓名,出勤天数,(出勤天数-迟到次数) AS 未迟到天数; FROM 出勤情况; INTO TABLE table1

Thisform.Grid1.RecordSourceType=1

Thisform.Grid1.RecordSource=\le1\

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

**命令按钮Command2(迟到查询)的Click事件代码**

SELECT 工号,员工档案.姓名,职位,出勤天数,迟到次数,性别,工资; WHERE 迟到次数>1 AND 员工档案.姓名=出勤情况.姓名;

FROM 出勤情况,员工档案; INTO TABLE table2

Thisform.Grid1.RecordSourceType=1

Thisform.Grid1.RecordSource=\le2\

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

步骤6:以同样的方法为\关闭\命令按钮编写Click事件代码:Thisform.Release,保存并运行表单。

◆◆◆◆◆◆宏图教育◆◆◆◆◆ 1.在考生文件夹下建立项目文件,文件名为myproj。

2.将数据库\学生管理\添加到项目myproj中。

3.建立简单的菜单mymenu,要求有2个菜单项:\查询\和\退出\。其中\退出\菜单项负责返回,对\查询\菜单项不做要求。

4.书写简单的命令程序prog,显示对话框,对话框内容为\你好!\,对话框上只有一个\确定\按钮。将该程序保存在prog.txt中。 【操作步骤】

(1)在命令窗口中输入命令:CREATE PROJECT myproj,新建一个项目。 (2)在项目管理器中,单击\数据\选项卡,选择列表框中的\数据库\,单击右面的\添加\按钮,在弹出的对话框中,双击考生文件夹下的\学生管理\数据库。 (3) 在命令窗口中输入命令:CREATE MENU mymenu,单击\菜单\图标按钮。依次输入主菜单名\查询\和\退出\,在\退出\菜单项的\结果\下拉列表框中选择\命令\,在命令编辑框中输入:SET SYSMENU TO DEFAULT。单击\菜单\生成\菜单命令,生成一个可执行的菜单文件。

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

MODIFY FILE prog,在弹出的文本编辑窗口中输入:MESSAGEBOX(\你好!\。保存文件。在命令窗口输入命令:DO prog.txt,查看运行结果。 1.\学生管理\数据库下有3个表,使用菜单设计器制作一个名为student的菜单,菜单只有一个\统计\菜单项。该菜单项中有\按学号\,\按课程号\和\退出\个子菜单:\按学号\和\按课程号\子菜单分别使用SQL语句的avg函数统计各学生和课程的平均成绩。统计结果中分别包括\学号\、\平均成绩\和\课程号\、\平均成绩\。\退出\子菜单负责返回到系统菜单。 2.在数据库学生管理中建立视图myview,显示表学生中的所有记录,并按\生日\升序排序。建立表单\表单l\,在表单上添加\表格\控件显示新建立的视图的记录。 (1)【操作步骤】

步骤1:在命令窗口输入命令:CREATE MENU student,创建菜单并单击\菜单\图标按钮。

步骤2:输入主菜单名\统计\,类型为\子菜单\,单击\创建\进入子菜单设计界面,分别输入子菜单名\按学号\,\按课程号\,\退出\,类型都是\命令\,分别编写三个子菜单命令行的文本框中输入命令代码。

*****\按学号\子菜单命令代码******

SELECT 学号,AVG(成绩) FROM 成绩 GROUP BY 学号

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

*****\按课程号\子菜单命令代码*****

SELECT 课程号,AVG(成绩) FROM 成绩 GROUP BY 课程号

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

*****\退出\子菜单命令代码*********

SET SYSMENU TO DEFAULT **************************

步骤3:保存后,单击菜单\菜单\生成\命令,生成一个可执行的菜单文件。

(2)【操作步骤】

步骤1:在命令窗口中输入如下命令:OPEN DATABASE 学生管理 。单击\文件\菜单,选择\新建\选中\视图\,单击右面的\新建文件\图标按钮。 步骤2:选中表\学生\,单击\添加\按钮,将表\学生\加入视图,单击\关闭\。

步骤3:单击视图设计器的\字段\选项卡,将\可用字段\列表框的字段全部添加到\选定字段\列表框中。

步骤4:单击视图设计器的\排序依据\选项卡,将\选定字段\列表框的\生日\字段添加到\排序条件\列表框中,默认的排序方式为\升序\。

步骤5:单击菜单\文件\保存\命令,输入名称myview,保存视图。

步骤6:在命令窗口输入命令:MODIFY FORM 表单1建立新表单并打开表单设计器。

步骤7:在表单设计器上右键单击,选择\数据环境\项,在弹出的对话框里,选中右下方的单选按钮\视图\,接着选中myview,单击\添加\按钮,然后单击\关闭\。

步骤8:在数据环境设计器中,将myview拖到表单上,单击菜单\文件\保存\命令,并运行表单。 (1)设计文件名为myform的表单。表单的标题为\采购金额统计\。表单中有一个选项组控件和两个命令按钮\排序\和\退出\。其中,选项组控件有两个按钮\升序\和\降序\。

(2)运行表单时,在选项组控件中选择\升序\或\降序\,单击\排序\命令按钮,查询\采购详单\表中每次采购的总金额(用数量乘以商品表中的价格),查询结果中包括\编号\,\总金额\和\采购员\,并按\总金额\升序或降序(根据选项组控件)将查询结果分别存入表tablel或表table2中。 单击\退出\按钮关闭表单。 【操作步骤】 步骤1:单击菜单\文件\,选择\新建\,在\新建\对话框中选中\表单\,单击右面的\新建文件\图标按钮,进入表单设计器。在表单上右击,选择\属性\,在弹出的对话框里找到\属性,并修改为\采购金额统计\。 步骤2:在表单上单击右键,选择\数据环境\项,这时系统会弹出\选择表或视图\对话框,选中表\采购详单\,单击\添加\按钮,将该表加入数据环境;同样方法,将表\商品\加入数据环境。

步骤3:单击表单控件工具条上的\选项按钮组\控件,然后在表单上单击,添加一个选项按钮组控件;在该控件上右击,选择\编辑\在\上右击,选择\属性\,在弹出的对话框里找到\属性,并修改为\升序\同样方法,修改\的\属性为\降序\。

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

步骤5:同样方法,再创建一个按钮控件,并修改其\属性为\排序\。

步骤6:双击\排序\按钮,在其Click事件中输入:

*****\排序\按钮的Click事件代码********

IF THISFORM.optiongroup1.VALUE=1 &&选择了第一项

SELECT 采购详单.编号,;

(采购详单.数量*商品.价格) AS 总金额,采购详单.采购员;

FROM 采购详单 INNER JOIN 商品; ON 采购详单.商品号=商品.商品号;

ORDER BY 总金额;

INTO TABLE table1 &&将数据按照\总金额\升序取到新表table1 ELSE &&选择了第二项 SELECT 采购详单.编号,;

(采购详单.数量*商品.价格) AS 总金额,采购详单.采购员;

FROM 采购详单 INNER JOIN 商品; ON 采购详单.商品号=商品.商品号;

ORDER BY 总金额 DESC;

INTO TABLE table2 &&将数据按照\总金额\降序取到新表table2 ENDIF

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

步骤7:双击\退出\按钮,在其Click事件中输入:Thisform.Release 步骤8:单击菜单\文件\,选择\保存\,输入表单名myform,运行表单。 ◆◆◆◆◆◆宏图教育◆◆◆◆◆ 1.在考生文件夹下建立数据库stsc。 2.把自由表student、course、score加入到数据库中。

3.为score表的\成绩\字段建立有效性规则:成绩大于等于零。否则提示信息:成绩必须大于等于零。

4.为student表建立主索引,索引名为primarykey,索引表达式为学号。 【操作步骤】

(1)在命令窗口输入命令:MODIFY DATABASE stsc,新建数据库。

(2)右键单击数据库的空白处,选择\添加表\快捷菜单命令,在弹出的\打开\对话框中,将考生文件夹下的student、course和score三个自由表分别添加到数据库stsc中。

(3)在数据库设计器中,右击score数据表,选择\修改\快捷菜单命令,系统弹出表设计器,选中\成绩\字段,在\字段有效性\区域内,输入\规则\文本框中的内容为\成绩>=0\,在\信息\文本框内输入\成绩必须大于零\。 (4)在数据库设计器中,右击student数据表,选择\修改\快捷菜单命令,打开表设计器,在\字段\选项卡中为\学号\字段选择一个索引排序,然后单击\索引\选项卡,将字段索引名修改为primarykey,在\索引\下拉框中选择索引类型为\主索引\。

1.在考生文件夹下有一个商品数据库commdb,其中有数据库表sp存放商品信息,使用菜单设计器制作一个名为smenu的菜单,菜单包括\数据操作\和\文件\两个菜单栏。每个菜单栏都包括一个子菜单。菜单结构如下: 数据操作 数据输出 文件 退出 其中:

\数据输出\子菜单对应的过程完成下列操作:打开数据库commdb,使用SQL的SELECT语句查询数据库表sp中的所有信息,然后关闭数据库。

退出菜单项对应的命令是SET SYSMENU TO DEFAULT,用于返回到系统菜单。 2.在考生文件夹下有一个数据库sdb,其中有数据库表student2、sc和course2。3个表如下所示:

student2(学号,姓名,年龄,性别,院系编号)

sc(学号,课程号,成绩,备注) course2(课程号,课程名,先修课号,学分)

用SQL语句查询\数据库\课程的考试成绩在85分以上(含85分)的学生的全部信息并将结果按学号升序存入自由表nine.dbf文件中(库的结构同student2,并在其后加入成绩字段)。 【操作步骤】

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

在主菜单设计窗口中,单击\数据操作\行中的\创建\按钮进入下级菜单的设计窗口,此设计窗口与主窗口大致相同,然后输入子菜单项的名称\数据输出\。根据题意,系统要求编写SQL查询语句,因此在\结果\对话框中选择\过程\,此时出现\编辑\命令按钮单击该命令按钮进入过程程序编辑窗口,在程序编辑窗口中输入如下程序段:

*****\数据表格式输入\菜单命令的程序设计*****

OPEN DATABASE commdb SELECT * FROM sp CLOS DATABASE

**************************** 以同样的方法,为\文件\主菜单设计子菜单\退出\,最后在\退出\菜单项

的\命令\文本框中编写程序代码:SET SYSMENU TO DEFAULT。要返回上级菜单,只要从菜单设计器窗口的\菜单级\下拉列表中选择\菜单栏\即可回到上级菜单。

选择菜单命令\菜单\-\生成\,生成一个菜单文件\,关闭设计窗口。在命令窗口输入命令:DO smenu.mpr,看到Visual FoxPro的菜单栏被新建的菜单所代替,执行\数据输出\菜单命令,系统自动查找并显示结果,单击\退出\菜单命令将恢复系统菜单。

(2)在命令窗口输入命令:MODIFY COMMAND 查询1,在程序编辑窗口中输入如下程序段。

****下面是\查询1.prg\文件的程序段****

SELECT student2.*, sc.成绩;

FROM sdb!course2 INNER JOIN sdb!sc;

INNER JOIN sdb!student2; ON sc.学号 = student2.学号; ORDER BY 总成绩,学号; INTO TABLE zcj CLOSE ALL SET TALK ON

******************************* 双击命令按钮cmdno(关闭),在Click事件代码中编写如下程序段:

****\关闭\命令按钮的Click事件代码****

ThisForm.Release

******************************* 保存表单,在命令窗口输入命令:DO FORM stu_form。在运行的表单界面中单击\计算\命令按钮,系统将每个学生的加分结果保存到新表中并排序。 ◆◆◆◆◆◆宏图教育◆◆◆◆◆ 1.在考生文件夹下建立项目stsc_m。 2.把数据库stsc加入到stsc_m项目中。

3.打开stsc数据库,3个表中必要的索引已经建立,为3个表建立永久性联系。 4.为course表增加字段:开课学期 I。 **************************** 以同样的方法,为\文件\主菜单设计子菜单\退出\,最后在\退出\菜单项的\命令\文本框中编写程序代码:SET SYSMENU TO DEFAULT。要返回上级菜单,只要从菜单设计器窗口的\菜单级\下拉列表中选择\菜单栏\即可回到上级菜单。

选择菜单命令\菜单\-\生成\,生成一个菜单文件\,关闭设计窗口。在命令窗口输入命令:DO smenu.mpr,看到Visual FoxPro的菜单栏被新建的菜单所代替,执行\数据输出\菜单命令,系统自动查找并显示结果,单击\退出\菜单命令将恢复系统菜单。

(2)在命令窗口输入命令:MODIFY COMMAND 查询1,在程序编辑窗口中输入如下程序段。

****下面是\查询1.prg\文件的程序段****

SELECT student2.*, sc.成绩;

FROM sdb!course2 INNER JOIN 工编码;

INTO TABLE STAFF_D

&&利用SELECT SQL语句中的ORDER BY 子句可以对结果集进行排序,有多个排序依据时

&&它们按优先级的高低依次排在ORDER BY的后面,默认是以升序进行排序的,如果要以

&&降序进行排序需要显示指明DESC;利用INTO TABLE 表名 可以将结果集放入一个永久表中 CLOSE ALL

&&关闭所有打开的文件 SET SAFETY ON

&&恢复文件重复的提示设置 SET TALK ON

&&恢复命令结果显示设置

◆◆◆◆◆◆宏图教育◆◆◆◆◆ 1.创建一个新的项目\客户管理\。 2.在新建立的项目\客户管理\中创建数据库\订货管理\。

3.在\订货管理\数据库中建立表order_list,表结构如下: ON course2.课程号 = sc.课程号; WHERE sc.成绩 >= 85;

AND course2.课程名 = \数据库\ORDER BY student2.学号; INTO TABLE nine.dbf

******************************* 保存设计结果,在命令窗口输入命令:DO 查询1,系统将查询结果自动保存到新表中。

提示:对于不太熟悉SQL语句的考生,在设计此题的过程,可首先通过建立查询文件完成查询要求,然后查看查询文件的SQL语句。

考生文件夹下有学生管理数据库stu_nine,数据库中有score1表,其结构是学号C(10)、少数民族L、优秀干部L、三好生L、考试成绩I、总成绩I。其中,前5项已有数据。

请编写并运行符合下列要求的程序: 设计一个名为stu_form的表单,表单中有两个命令按钮,按钮的名称分别为cmdyes和cmdno,标题分别为\计算\和\关闭\。

程序运行时,单击\计算\按钮应完成下列操作

(1)计算每一个学生的总成绩。总成绩的计算方法是:考试成绩+加分,加分的规则是:如果该生是少数民族(相应数据字段为 .T.)加分5分,优秀干部加分10分,三好生加分20分,加分不累计,取最高的 。例如,如果该生既是少数民族又是三好生,加分为20分。如果都不是,总成绩=考试成绩 (2)根据上面的计算结果,生成一个新的自由表 zcj,该表只包括学号和总成绩两项,并按总成绩的升序排序,如果总成绩相等,则按学号的升序排序。

单击\关闭\按钮,程序终止运行。 【操作步骤】

在命令窗口输入命令:CREATE FORM stu_form,打开表单设计器;单击表单控件工具栏上的\命令按钮\控件图标,向表单添加两个命令按钮。选中第一个命令按钮(command1),在属性对话框中将命令按钮的Name属性值修改为\,将Caption属性值修改为\计算\,将第二个命令按钮(command2)的Name属性值修改为\,将Caption属性值修改为\关闭\。

双击命令按钮cmdyes(统计),在Click事件代码中编写如下程序段:

****\计算\命令按钮的Click事件代码****

SET TALK OFF

OPEN DATABASE stu_nine USE score1

DO WHILE NOT EOF() STORE 0 TO JF DO CASE

CASE 三好生 JF=20 CASE 优秀干部 JF=10 CASE 少数民族 JF=5 OTHERWISE JF=0 ENDCASE

REPLACE 总成绩 WITH 考试成绩+jf SKIP ENDDO

SELECT 学号,总成绩 FROM score1

【操作步骤】

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

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

(3)在项目管理器的\数据\选项卡中,展开\数据库\分支,选中stsc数据库文件,单击\修改\命令按钮,打开数据库设计器,其中有3个数据表文件,将student表中\索引\下面的\学号\主索引字段拖到score表中\索引\下面的\学号\索引字段上,建立student和score两个表之间的联系,以同样的方法建立course和score两表间的联系,关联字段为\课程编号\,这样就建立了3个表之间的联系。 (4)在数据库设计器中,右击course数据表,选择\修改\快捷菜单命令,系统弹出数据表设计器,在\字段\选项卡列表框内的\开课院系\字段后,输入新的字段名\开课学期\,选择\类型\为\整型\,系统自动设置宽度为4。 1.在考生文件夹下有数据库stsc,其中有数据库表student、score和course,表结构如下:

STUDENT(学号、姓名、性别、院系、出生日期)

SCORE(学号、课程编号、成绩)

COURSE(课程编号、课程名称、开课院系、开课学期)

在考生文件夹下有一个程序dbtest4.prg,该程序的功能是检索选课门数是3门以上的(包括3门)每个学生的学号、姓名、平均成绩、最低分、选课门数和院系,并按平均成绩降序排序,同时将结果存放到表test1中,请修改程序中的错误,并调试该程序,使之正确运行。不得增加或删减程序行。

2.在考生文件夹下有数据库stsc,其中有数据库表student、score和course,3个表的结构同上。使用CREATE QUERY命令建立一个文件名为query_sc.qpr的查询,要求含有学号、姓名、成绩和课程名称,按课程名称升序排序,查询去向是表(表名是query_sc.dbf),然后执行该查询。 【操作步骤】

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

在主菜单设计窗口中,单击\数据操作\行中的\创建\按钮进入下级菜单的设计窗口,此设计窗口与主窗口大致相同,然后输入子菜单项的名称\数据输出\。根据题意,系统要求编写SQL查询语句,因此在\结果\对话框中选择\过程\,此时出现\编辑\命令按钮单击该命令按钮进入过程程序编辑窗口,在程序编辑窗口中输入如下程序段:

*****\数据表格式输入\菜单命令的程序设计*****

OPEN DATABASE commdb SELECT * FROM sp CLOS DATABASE

sdb!sc;

INNER JOIN sdb!student2; ON sc.学号 = student2.学号; ON course2.课程号 = sc.课程号; WHERE sc.成绩 >= 85;

AND course2.课程名 = \数据库\ORDER BY student2.学号; INTO TABLE nine.dbf

******************************* 保存设计结果,在命令窗口输入命令:DO 查询1,系统将查询结果自动保存到新表中。

提示:对于不太熟悉SQL语句的考生,在设计此题的过程,可首先通过建立查询文件完成查询要求,然后查看查询文件的SQL语句。

在考生文件夹下有职员管理数据库staff_10,数据库中有yuangong(职工编码C(4)、姓名C(10)、夜值班天数I、昼值班天数I、加班费N(10,2))。zhiban表值班时间C(2),每天加班费N(7,2),zhiban表中只有两条记录,分别记载了白天和夜里的每天加班费标准。

请编写并运行符合下列要求的程序: 设计一个名为staff_menu的菜单,菜单中有两个菜单项\计算\和\退出\。 程序运行时,单击\计算\菜单项应完成下列操作:

(1)计算yuangong表的加班费字段值,计算方法是:

加班费=夜值班天数*夜每天加班费+昼值班天数*昼每天加班费 (2)根据上面的结果,将员工的职工编码、姓名、加班费存储到自由表staff_d中,并按加班费降序排列,如果加班费相等,则按职工编码的升序排列。

单击\退出\菜单项,程序终止运行。 【操作步骤】

SET TALK OFF &&在程序运行时关闭命令结果的显示

SET SAFETY OFF &&关闭文件重名的提示

OPEN DATABASE STAFF_10 &&打开数据库文件STAFF_10

SELECT 每天加班费 FROM ZHIBAN WHERE 值班时间=\昼\INTO ARRAY zhou

&&由于要得到\昼\和\夜\的每天的加班费,所以要用到SELECT SQL查询 &&WHERE 条件表达式 可以用来限定结果集,将条件表达式:值班时间=\昼\

&&放在WHERE的后面;也可以将结果集的列数进行限制,这里我们只需要得到

&&每天加班费 ,将其放在SELECT的后面;可以将返回的结果集放入一个数组变量中

&&用到INTO ARRAY 数组变量名

SELECT 每天加班费 FROM ZHIBAN WHERE 值班时间=\夜\&&同上,这样可以在ye中得到:值班时间=\夜\的每天加班费

UPDATE YUANGONG SET 加班费=夜值班天数*ye+昼值班天数*zhou

&&UPDATE SQL语句用来修改某一个,某几个字段的值

&&UPDATE 表名 SET 字段名1=表达式1[,字段名2=表达式2 ...]

&&[WHERE 条件表达式1[AND|OR 条件表达式2…]]

SELECT 职工编码,姓名,加班费 FROM YUANGONG ORDER BY 加班费 DESC,职

客户号 字符型(6) 订单号 字符型(6) 订购日期 日期型

总金额 浮动型(15,2)

4.为order_list表创建一个主索引,索引名和索引表达式均是\订单号\。 【操作步骤】

(1)在命令窗口直接输入命令:CREATE PROJECT 客户管理,新建项目管理器。

(2)在项目管理器的\数据\选项卡中,选中列表框中的\数据库\,单击选项卡右边的\新建\命令按钮,系统弹出\新建数据库\对话框,在对话框中单击\新建数据库\图标按钮,新建数据库\订货管理\,保存到考生文件夹下。

(3)新建数据库文件后,系统弹出数据库设计器,右击数据库设计器,选择\新建表\快捷菜单命令,在弹出的\新建表\对话框中单击\新建表\图标按钮,系统弹出\创建\对话框,在对话框的\输入表名\文本框中输入order_list文件名,保存在考生文件夹下,进入表设计器。根据题意,在表设计器的\字段\选项卡中,依次输入每个字段的字段名、类型和宽度,结果。

(4)在order_list表设计器的 \字段\选项卡中,为\订单号\字段选择一个索引排序,然后单击\索引\选项卡,在此选项卡中,字段索引名默认的为\订单号\,在\索引\下拉框中选择索引类型为\主索引\,为order _list表建立主索引。

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

将order_list1表中的全部记录追加到order_list表中,然后用SQL SELECT语句完成查询:按总金额降序列出所有客户的客户号、客户名及其订单号和总金额,并将结果存储到results表中(其中客户号、客户名取自customer表,订单号、总金额取自order_list表)

2.打开form1表单,并按如下要求进行修改(注意:最后保存所做的修改): (1)表单中有5个随机排列的命令按钮,不要移动或改变\基准按钮\位置(否则影响成绩),然后使其他命令按钮与\基准按钮\左部对齐;

(2)在这组命令按钮的右边添加一个表格控件,并将它的RecordSourceType属性设置为\表\,然后设置另一个相关属性使在表格控件中显示customer表的记录。 【操作步骤】

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

****query1.prg文件的程序段**** SET TALK OFF USE order_list ZAP

USE order_list1 DO WHILE !EOF() SCATTER TO arr1

INSERT INTO order_list FROM ARRAY arr1 SKIP ENDDO

SELECT order_list.总金额, customer.客户号, customer.客户名,order_list.订单号;

FROM order_list INNER JOIN

customer ;

ON order_list.客户号 = customer.客户号;

ORDER BY order_list.总金额 DESC; INTO TABLE results.dbf CLOSE ALL SET TALK ON

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

(2)在命令窗口输入命令:MODIFY FORM form1,打开form1表单文件。 首先同时选定5个命令按钮控件,然后单击\表单设计器\工具栏中的\布局工具栏\图标按钮,弹出\布局\工具栏,在工具栏中的选择\左对齐\图标按钮。将其他4个命令按钮与\基准按钮\左对齐。设置按钮对齐后,在\表单控件\工具栏选择表格控件添加到表单中。根据题意,设置表格的两个属性来显示customer表的记录。选择表格后,在属性窗口中分别设置属性如下:将RecordSourceType属性值设置为\表\,将RecordSource属性值设置为customer,保存表单修改。 当order_detail表中的单价修改后,应该根据该表的\单价\和\数量\字段修改order_list表的总金额字段,现在编写程序实现此功能,具体要求和注意事项如下: (1)根据order_detail表中的记录重新计算order_list表的总金额字段的值。 (2)一条order_list记录可以对应几条order_detail记录。

(3)在编程前应保证在基本操作题中正确地建立了order_list表,在简单应用题中为该表追加了记录(注意只能追加一次)。 (4)最后将order_list表中的记录按总金额降序排序存储到od_new表中(表结构与order_list表完全相同)。 (5)将程序保存为prog1.prg文件。 【操作步骤】

在命令窗口输入命令:MODIFY COMMAND prog1,打开程序文件编辑器,在程序编辑窗口中输入如下程序段:

****\文件中程序段**** SET TALK OFF SET SAFETY OFF CLOSE ALL

SELECT 订单号,SUM(数量*单价) AS 总金额;

FROM ORDER_DETAIL; GROUP BY 订单号; INTO CURSOR curtable OPEN DATABASE 订货管理 SELECT 2

USE order_list

DO WHILE NOT EOF() SELECT curtable.总金额 FROM curtable;

WHERE curtable.订单号=order_list.订单号;

INTO ARRAY AFieldsValue

REPLACE 总金额 WITH AFieldsValue SKIP ENDDO CLOSE ALL

SELECT * FROM order_list; ORDER BY 总金额 DESC; INTO TABLE od_new SET SAFETY ON SET TALK ON

******************************** 保存设计结果,在命令窗口输入命令:DO prog1,执行程序文件。

◆◆◆◆◆◆宏图教育◆◆◆◆◆ 在考生文件夹下完成如下操作: 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_detail文件名,保存在考生文件夹下,打开表设计器。根据题意,在表设计器的\字段\选项卡中,依次输入每个字段的字段名、类型和宽度,结果。 (3)紧接2小题操作步骤,在表设计器中选定\订单号\字段,然后在后面的\索引\下拉框中为该字段选择一个排序,建立普通索引。 (4)在\订货管理\的数据库设计器中,将order_list表中\索引\下面的\订单号\候选索引字段拖到order_detail表中\索引\下面的\订单号\索引字段上,建立order_list和order_detail两个表之间的永久性联系。 在考生文件夹下完成如下简单应用: 1.将order_detail1表中的全部记录追加到order_detail表中,然后用SQL SELECT语句完成查询:列出所有订购单的订单号、订购日期、器件号、器件名和总金额(按订单号升序,订单号相同再按总金额降序),并将结果存储到results表中(其中订单号、订购日期、总金额取自order_list表,器件号、器件名取自order_detail表)。 2.打开modi1.prg命令文件,该命令文件包含3条SQL语句,每条SQL语句中都有一个错误,请改正之(注意:在出现错误的地方直接改正,不可以改变SQL语句的结构和SQL短语的顺序)。 【操作步骤】 (1)在命令窗口输入命令:MODIFY COMMAND query1,在程序文件编辑器窗口中输入如下程序段: ****query1.prg文件的程序段**** SET TALK OFF CLOSE ALL USE order_detail ZAP USE order_detail1 DO WHILE !EOF() SCATTER TO arr1 INSERT INTO order_detail FROM ARRAY arr1 SKIP ENDDO SELECT order_list.订单号, order_list.订购日期, order_list.总金额,; order_detail.器件号, order_detail.器件名; FROM 订货管理!order_list INNER JOIN 订货管理!order_detail ; ON order_list.订单号 = order_detail.订单号; ORDER BY order_list.订单号, order_list.总金额 DESC; INTO TABLE results.dbf SET TALK ON ***************************** 在命令窗口执行命令:DO query1,程序将查询结果自动保存到新表results中。 (2)在命令窗口输入命令:MODIFY COMMAND modi1.prg,打开命令程序编辑窗口,程序内容如下: *******modi1.prg文件的源程序段******* &&所有器件的单价增加5元 UPDATE order_detail1 SET 单价 WITH 单价 + 5 &&计算每种器件的平均单价 SELECT 器件号,AVG(单价) AS 平均价 FROM order_detail1; ORDER BY 器件号 INTO CURSOR lsb &&查询平均价小于500的记录 SELECT * FROM lsb FOR 平均价 < 500 **************************** 修改后的程序段如下: *******修正后的modi.prg文件内容******* UPDATE order_detail1 SET 单价=单价 + 5 && 语法错误 SELECT 器件号,AVG(单价) AS 平均价 FROM order_detail1; GROUP BY 器件号 INTO CURSOR lsb && ORDER短语错误 SELECT * FROM lsb WHERE 平均价 < 500 && 语法错误 在做本题前首先确认在基础操作中已经正确地建立了order_detail表,在简单应用中已经成功地将记录追加到order_detail表。 当order_detail表中的单价修改后,应该根据该表的\单价\和\数量\字段修改order_list表的总金额字段,现在有部分order_list记录的总金额字段值不正确,请编写程序挑出这些记录,并将这些记录存放到一个名为od_mod的表中(与order_list表结构相同,自己建立),然后根据order_detail表的\单价\和\数量\字段修改od_mod表的总金额字段(注意一个od_mod记录可能对应几条order_detail记录),最后od_mod表的结果要求按总金额升序排序,编写的程序最后保存为prog1.prg。 【操作步骤】 在命令窗口输入命令:MODIFY COMMAND prog1,打开程序文件编辑器,在程序编辑窗口中输入如下程序段: *******\文件中的程序段******* SET TALK OFF SET SAFETY OFF SELECT 订单号,SUM(单价*数量) AS 总金额; FROM order_detail; GROUP BY 订单号; INTO CURSOR curtable SELECT order_list.*; FROM order_list,curtable; WHERE order_list.订单号=curtable.订单号 AND order_list.总金额<>curtable.总金额; INTO TABLE od_mod USE od_mod DO WHILE NOT EOF() &&遍历od_mod中的每一条记录 SELECT curtable.总金额 FROM curtable; WHERE curtable.订单号=od_mod.订单号; INTO ARRAY AFieldsValue REPLACE 总金额 WITH AFieldsValue SKIP ENDDO CLOSE ALL SELECT * FROM od_mod ORDER BY 总金额; INTO CURSOR curtable SELECT * FROM curtable INTO TABLE od_mod SET TALK ON SET SAFETY ON ******************************* 保存设计结果,在命令窗口输入命令:DO prog1,执行程序文件。 ◆◆◆◆◆◆宏图教育◆◆◆◆◆ 1.打开\订货管理\数据库,并将表order_detail添加到该数据库中。 2.为表order_detail的\单价\字段定义默认值为NULL。 3.为表order_detail的\单价\字段定义约束规则:单价> 0 ,违背规则时的提示信息是\单价必须大于零\。 4.关闭\订货管理\数据库,然后建立自由表customer,表结构如下: 客户号 字符型(6) 客户名 字符型(16) 地址 字符型(20) 电话 字符型(14) 【操作步骤】 (1)在命令窗口输入命令:MODIFY DATABASE 订货管理,打开数据库设计器,在设计器中右击鼠标,选择\添加表\快捷菜单命令,系统弹出\打开\对话框,将order_detail表添加到数据库中。 (2)在数据库设计器中,右击order_detail数据表,选择\修改\快捷菜单命令,系统弹出order_detail的数据表设计器,选中\单价\字段,勾选该行NULL按钮。 (3)紧接2小题操作步骤,在\字段有效性\区域内,输入\规则\文本框中的内容为\单价>0\,在\信息\文本框内输入\单价必须大于零\。 (4)在命令窗口输入命令:CLOSE DATABASE && 关闭数据库 CREATE && 新建表 系统弹出\创建\对话框,在\输入表名\文本框中输入新表名称\,保存到考生文件夹下,系统弹出表设计器,根据题意输

入每个字段的字段名,类型和宽度。

在考生文件夹下完成如下简单应用: 1.列出总金额大于所有订购单总金额平均值的订购单(order_list)清单(按客户号升序排列),并将结果存储到results表中(表结构与order_list表结构相同)。

2.利用Visual FoxPro的\快速报表\功能建立一个满足如下要求的简单报表: (1)报表的内容是order_detail表的记录(全部记录,横向)。

(2)增加\标题带区\,然后在该带区中放置一个标签控件,该标签控件显示报表的标题\器件清单\。

(3)将页注脚区默认显示的当前日期改为显示当前的时间。

(4)最后将建立的报表保存为report1.frx。 【操作步骤】

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

*********query1.prg文件的程序段********* SELECT *;

FROM order_list;

WHERE order_list.总金额 >;

(SELECT AVG(总金额) FROM order_list);

ORDER BY order_list.客户号; INTO TABLE results

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

(2)在命令窗口输入命令:CLOSE DATABASE && 关闭当前数据库 CREATE REPORT && 新建报表

打开报表设计器后,在主菜单栏中出现\报表\菜单项,在该菜单中选择\快速报表\命令,系统弹出\打开\对话框,为快速报表设置数据源,在对话框中选择order_detail表。

选择数据源后,系统弹出\快速报表\对话框,根据题意,单击第一个图标按钮,设置字段横向显示,\标题\复选框表示是否为每个字段添加一个字段名标题,勾选该项,并选中\将表添加到数据库环境中\选项。

选择菜单命令\报表\标题/总结\,弹出\标题/总结\对话框中,在对话框中勾选\标题带区\,为报表增加一个标题带区,从\报表控件\工具栏中点取\标签\控件,为报表标题带区添加一个名为\器件清单\的标签。

最后双击\页注脚\带区用来显示日期的域控件,在弹出的\报表表达式\对话框中将\表达式\文本框中的\表达式修改为\,用来显示当前时间。保存设计结果,以\名保存在考生文件夹下。

首先将order_detail表全部内容复制到od_bak表,然后对od_bak表编写完成如下功能的程序:

(1)把\订单号\尾部字母相同并且订货相同(\器件号\相同)的订单合并为一张订单,新的\订单号\就取原来的尾部字母,\单价\取最低价,\数量\取合计。

(2)结果先按新的\订单号\升序排序,再按\器件号\升序排序。

(3)最终记录的处理结果保存在od_new表中。

(4)最后将程序保存为prog1.prg,并执行该程序。 【操作步骤】

根据题意,首先在命令窗口输入命令: USE order_detail && 打开表order_detail COPY TO od_bak && 复制order_detail表内容全部到od_bak表中

在命令窗口输入命令:MODIFY COMMAND prog1,在程序编辑窗口中输入如下程序段:

**********\文件中程序段********** SET TALK OFF SET SAFETY OFF

&& 复制一个表用来存放结果 USE od_bak

COPY STRUCTURE TO od_new

&& 首先得到所有的新定单号和器件号:

SELECT RIGHT(订单号,1) AS 新订单


VF上机题库110(8).doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:随州施工组织设计

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: