括\国家名称\和\金牌数\两个字段,并且先按\金牌数\降序、再按\国家名称\降序排列存储到表temp中。请将该SQL语句存储在文件three.prg中,否则不得分。
答案:(1)【操作步骤】
新建程序three,然后输入以下命令语句:
SELECT 国家.国家名称, COUNT(获奖牌情况.名次) AS 金牌数; FROM 国家,获奖牌情况 ;
WHERE 国家.国家代码 = 获奖牌情况.国家代码; AND 获奖牌情况.名次=1; GROUP BY 国家.国家名称;
ORDER BY 2 DESC, 国家.国家名称 DESC; INTO TABLE temp.dbf 保存并运行程序。
2. 建立一个文件名和控件名均为myform的表单,表单构造见下图。表单中包括一个列表框(List1)、一个选项组(Optiongroup1)和一个“退出”命令按钮(Command1),这三个控件名使用系统默认的名字。相关控件属性设置要求:表单的标题为\奖牌查询\,列表框的数据源使用SQL语句根据\国家\表显示国家名称,选项组中有三个按钮,标题分别为金牌(Option1)、银牌(Option2)和铜牌(Option3)。
(2)【操作步骤】
步骤1:新建一个表单,按题目要求添加控件,并修改其属性如下: 表单的Name属性为\,caption属性为\奖牌查询\。
列表框的RowSourceType属性为\,RowSource属性为\国家名称 From 国家 Into Cursor LSB\。 选项组的ButtonCount属性为\。
在选项按钮组上右击—“编辑”,选项按钮1的Caption属性为:金牌,选项按钮2的Caption属性为:银牌,选项按钮3的Caption属性为:铜牌。
命令按钮的Caption属性为:退出。
步骤2:保存表单名为\,运行以查看表单的设计结果。
综合应用:
打开考生文件夹下的sport_project项目,项目中有一个表单sport_form,表单中包括三个命令按钮。 请完成如下操作:
1. 编写并运行程序Four.prg。程序功能是:根据\国家\和\获奖牌情况\两个表统计并建立一个新表\假奖牌榜\,新表包括\国家名称\和\奖牌总数\两个字段,要求先按奖牌总数降序排列(注意\获奖牌情况\的每条记录表示一枚奖牌)、再按\国家名称\升序排列。 2. 为表单sport_form 中的\生成表\命令按钮编写一条命令,执行Four.prg程序。
3. 将在基本操作中建立的快速报表sport_report加入项目文件,并为表单sport_form中的命令按钮\浏览报表\编写一条命令,预览快速报表sport_report。
4. 将自由表\国家\和\获奖牌情况\加入项目文件sport_project,然后将项目文件连编成应用程序文件sport_app.app。
答案:【操作步骤】
步骤1:打开项目用\文件\菜单下的\打开\命令来完成 步骤2:新建一个程序,在程序文件中输入下列命令。
SELECT 国家.国家名称,COUNT(获奖牌情况.名次) AS 奖牌总数; FROM 国家,获奖牌情况 WHERE 国家.国家代码=获奖牌情况.国家代码; GROUP BY 国家.国家名称; ORDER BY 2 DESC,国家.国家名称; INTO TABLE 假奖牌榜
以Four.prg为文件名保存程序并运行。
步骤3:单击项目管理器中的\文档\选项卡,展开\表单\前面的\+\,选中表单\并单击右侧的\修改\按钮,在表单sport_form \生成表\命令按钮的Click事件代码中输入下列命令。
DO Four.prg
步骤4:选中项目sport_project中\文档\选项卡下的\报表\,单击添加命令可将快速报表sport_report添加到项目中。然后在表单sport_form \浏览报表\命令按钮的Click事件代码中输入命令。
REPORT FORM SPORT_REPORT PREVIEW
步骤5:在项目管理器中选中文档选项卡,按要求添加自由表,然后单击连编按钮,生成连编应用程序,在\连编选项\中选择\连编应用程序\,应用程序文件名保存为sport_app.app。 第22套——基本操作
1.在考生文件夹下已有表单文件formone.scx,如下图所示,其中包含一个文本框、一个表格和两个命令按钮。 请按下面要求完成相应的操作:
1) 通过\属性\窗口,将文本框Text1的Value属性值设置为当前系统日期(日期型,不含时间)。 2) 通过\属性\窗口,将表格Grid1的RecordResourceType属性值设置为\说明\。
3) 修改\确定\按钮的Click事件代码。当单击该按钮时,表格Grid1内将显示指定日期以后(含)签订的订单信息(包括\订单号\、\签订日期\和\金额\等信息)。
4) 设置\关闭\按钮的Click事件代码。当单击该按钮时,将释放并关闭表单。 答案: (1)【操作步骤】
步骤1:打开表单formone.scx,在属性窗口中修改,修改Text1的Value属性为:=date()。 步骤2:修改表格的RecordSourcetype属性为\4-SQL说明\。
步骤3:打开考生文件夹下的表单文件\formone.scx\,双击其中的\确定\按钮,修改其Click事件代码如下。 错误1:set century to 4 正确:set century on 错误2:va=text1.value 正确:va=thisform.text1.value 错误3:this.grid1.RowdSource=st 正确:thisform.grid1.RecordSource=st
步骤4:编写\关闭\按钮的Click事件代码为:ThisForm.Release。
2.利用查询设计器创建查询,根据employee和orders表对各组在2001年所签订单的金额进行统计。统计结果仅包含那些总金额大于等于500的组,各记录包括\组别\、\总金额\、\最高金额\和\平均金额\个字段;各记录按\总金额\降序排序;查询去向为表tableone。最后将查询保存在queryone.qpr文件中,并运行该查询。
答案: (2)【操作步骤】
步骤1:通过\新建\对话框新建查询,将考生文件夹下的\employee\和\orders\两个表添加到查询设计器中。
步骤2:在查询设计器中的\字段\选项卡中,添加字段\employee.组别\、表达式\sum(orders.金额) as 总金额\、表达式\max(orders.金额) as 最高金额\和表达式\avg(orders.金额) as 平均金额\到\选定字段\列表框中。
步骤3:在查询设计器中的\筛选\选项卡中,通过\字段名\下拉列表中的\表达式\打开\表达式生成器\对话框,在其中设置表达式:year(orders.签订日期),\条件\下拉列表框中选择\,\实例\文本框中输入\2001\。
步骤4:在\排序依据\选项卡中,设置按\总金额\降序排序。
步骤5:在\分组依据\选项卡中,将\employee.组别\字段添加到\分组字段\列表框中。单击\满足条件\按钮,在\满足条件\对话框中选择字段名为\总金额\,条件为\>=\,实例中输入:500.
步骤6:选择\查询\菜单下的\查询去向\命令,在弹出的\查询去向\对话框中选择表,输入表名为:tableone,并关闭该对话框。 步骤7:保存查询文件名为\queryone.qpr\,并运行查询。
综合应用
1) 创建一个下拉式菜单mymenu.mnx,运行该菜单程序时会在当前vfp系统菜单的末尾追加一个\考试\子菜单,如下图所示。 菜单命令\统计\和\返回\的功能都通过执行过程完成。
菜单命令\统计\的功能是以某年某月为单位求订单金额的和。统计结果包含\年份\、\月份\和\合计\三项内容(若某年某月没有订单,则不应包含记录)。统计结果应按年份降序、月份升序排序,并存放在tabletwo表中。 菜单命令\返回\的功能是返回标准的系统菜单。
2) 创建一个项目myproject.pjx,并将已经创建的菜单mymenu.mnx设置成主文件。然后连编产生应用程序myproject.app。最后运行myproject.app,并依次执行\统计\和\返回\菜单命令。
答案: 步骤1:通过\新建\对话框新建一个菜单,然后选择\显示\菜单下的\常规选项\命令,在弹出的\常规选项\对话框中单击\位置\中的\追加\单选按钮,单击\确定\按钮。
步骤2:按照题目的要求新建两个菜单项\统计\和\返回\,结果均设置为\过程\。编写\统计\菜单项的过程代码如下: SELECT YEAR(Orders.签订日期) as 年份, MONTH(Orders.签订日期) as 月份,; SUM(Orders.金额) as 合计; FROM 订单管理!orders; GROUP BY 1, 2; ORDER BY 1 DESC, 2; INTO TABLE tabletwo.dbf
编写\返回\菜单项的过程代码为: set sysmenu to default。
步骤3:保存菜单文件名为\mymenu\,选择\菜单\菜单中的\生成\命令,生成该菜单的可执行文件,运行菜单查看设计结果。
步骤4:通过\新建\菜单新建一个项目,文件名为myproject。在项目管理器中单击\其他\选项卡,选中\菜单\项并单击右侧的\添加\按钮,将新建的菜单文件\mymenu\添加到项目中。
步骤5:展开项目管理器\其他\选项卡中的\菜单\项,右键单击\mymenu\,查看其中的\设置为主文件\是否被选中(前面有对号标记),如果没有就需要单击此项。
步骤6:在项目管理中单击\连编\按钮,选中\连编选项\对话框中的\连编应用程序\单选按钮,并单击\确定\按钮,保存程序名为\myproject.app\。
步骤7:单击\程序\菜单中的\运行\命令,打开其中的\myproject.app\,依次执行\统计\和\返回\命令。 第二十三套——基本操作
简单应用:
1. 利用查询设计器创建查询,从考生目录下的xuesheng表和chengji表中查询数学、英语和信息技术三门课中至少有一门课在90分以上(含)的学生记录。查询结果包含学号、姓名、数学、英语和信息技术5个字段;各记录按学号降序排序;查询去向为表table1。最后将查询保存在query1.qpr文件中,并运行该查询。
答案:(1)【操作步骤】
步骤1:通过\新建\对话框新建一个查询文件,将考生文件夹下的表\和\添加到查询设计器中。
步骤2:在\字段\选项卡中,将xuesheng.学号、xuesheng.姓名、chengji.数学、chengji.英语和chengji.信息技术5个字段依次添加到\选定字段\列表框中。
步骤3:在\筛选\选项卡中进行设置,”字段”选:数学,条件为:>=,实例为:90,逻辑选:or,接着下一个”字段”选:英语,条件为:>=,实例为:90,逻辑选:or,下一个”字段”选:信息技术,条件为:>=,实例为:90.
步骤4:在\排序依据\选项卡中,将xuesheng.学号添加到\排序条件\列表框中,并选择\降序\单选按钮。 步骤5:选择\查询\菜单下的\查询去向\命令,在打开的\查询去向\对话框中选择\表\,输入表名为:table1。 步骤6:保存查询文件为\并运行。
2. 首先创建数据库cj_m,并向其中添加xuesheng表和chengji表。然后在数据库中创建视图view1:利用该视图只能查询少数民族学生的英语成绩;查询结果包含学号、姓名、英语3个字段;各记录按英语成绩降序排序,若英语成绩相同按学号升序排序。最后利用刚创建的视图view1查询视图中的全部信息, 并将查询结果存放在表table2中
(2)【操作步骤】
步骤1:通过\新建\对话框新建一个数据库,文件名为\,在数据库设计器中右键单击数据库的空白处,选择\添加表\命令,将表\和\添加到数据库中。
步骤2:新建一个视图,将表\和\添加到视图设计器中,并为两个表建立默认的联接。
步骤3:在字段选项卡中,将xuesheng.学号、xuesheng.姓名和chengji.英语3个字段依次添加到\选定字段\列表框中。
步骤4:在筛选选项卡中,字段名列选择xuesheng.民族,单击\否\下面的按钮,使其处于选中的状态,条件列选择\,实例框中输入\汉\。
步骤5:在排序依据选项卡中,选择按\英语\降序排序,按\学号\升序排序。 步骤6:将视图保存为\。
步骤7:新建一个查询,将新建的\视图添加到新建的查询中,选择全部字段,设置查询去向为表:table2,并运行查询,不用保存。
综合应用
利用表设计器在考生目录下建立表table3,表结构如下: 学号 字符型(10) 姓名 字符型(6) 课程名 字符型(8) 分数 数值型(5,1)
然后编写程序prog1.prg,从xuesheng表和chengji表中找出所有成绩不及格(分数小于60)的学生信息(学号、姓名、课程名和分数),并把这些数据保存到表table3中(若一个学生有多门课程不及格,在表table3中就会有多条记录)。表table3中的各记录应该按分数升序排序,分数相同则按学号降序排序。
要求在程序中用SET RELATION命令建立chengji表和xuesheng表之间的关联(同时用INDEX命令建立相关的索引),并通过DO WHILE循环语句实现规定的功能。最后运行程序。
答案:利用表设计器新建一个table3表,再新建一个程序,程序中代码如下: select * from table3 into table aa close all select 1 use xuesheng
index on 学号 tag 学号 select 2 use chengji
index on 学号 tag 学号
set relation to 学号 into xuesheng do while not eof() if 数学<60
insert into aa values(xuesheng.学号,xuesheng.姓名,\数学\数学) endif if 英语<60
insert into aa values(xuesheng.学号,xuesheng.姓名,\英语\英语) endif
if 信息技术<60
insert into aa values(xuesheng.学号,xuesheng.姓名,\信息技术\信息技术) endif skip enddo
select * from aa order by 分数,学号 desc into array bb insert into table3 from array bb 保存并运行程序,程序文件的名称为prog1。 第二十五套--————基本操作
1. 用SQL语句完成下列操作: 列出所有赢利(现价大于买入价)的股票简称、现价、买入价和持有数量,并将检索结果按持有数量降序排序存储于表stock_temp中。
答案:1)【操作步骤】
在命令窗口输入以下程序语句。
SELECT stock_name.股票简称,stock_sl.现价,stock_sl.买入价,stock_sl.持有数量; FROM stock_name,stock_sl;
WHERE stock_sl.股票代码=stock_name.股票代码 And stock_sl.现价>stock_sl.买入价; ORDER BY stock_sl.持有数量 DESC; INTO TABLE stock_temp 综合应用:
设计名为mystock的表单(控件名,文件名均为mystock)。表单的标题为:\股票持有情况\。表单中有两个文本框(text1和text2)和两个命令按钮\查询\名称为Command1)和\退出\名称为Command2)。
运行表单时,在文本框text1中输入某一股票的汉语拼音,然后单击\查询\则text2中会显示出相应股票的持有数量。 单击\退出\按钮关闭表单。
答案:【操作步骤】
步骤1:单击常用工具栏中的\新建\按钮,文件类型选择\表单\,打开表单设计器。单击常用工具栏中的\保存\按钮,在弹出\保存\对话框中输入:mystock即可。
步骤2:在\表单设计器-mystock.scx\中,在\属性\的Caption处输入:股票持有情况,在Name处输入:mystock。
步骤3:在\表单设计器-mystock.scx\中,添加两个文本框(\和\。在\表单设计器-mystock.scx\中,添加两个命令按钮,单击第1个命令按钮在\属性\的Caption处输入\查询\, 单击第2个命令按钮在\属性\的Caption处输入\退出\。
步骤4:双击\查询\命令按钮,在\编辑窗口中输入命令组,接着关闭编辑窗口。 在查询按钮的单击事件里写如下代码: SELECT Stock_sl.持有数量;
FROM stock!stock_name INNER JOIN stock!stock_sl ; ON Stock_name.股票代码 = Stock_sl.股票代码; WHERE Stock_name.汉语拼音 = thisform.text1.value; into array aa
thisform.text2.value=aa
步骤6:双击\退出\命令按钮,在\编辑窗口中输入:Thisform. Release,接着关闭编辑窗口。 最后保存并运行表单
第26套:————基本操作
1. 在属性窗口中将表单设置为不可移动的,并将其标题设置为\表单操作\。
答案:(1)打开表单,在属性窗口将表单的Movable属性修改为.F.并将其Caption属性设置为\表单操作\。 2. 为表单新建一个名为mymethod的方法,方法代码为:wait \
答案:(2)在系统菜单中的\表单\菜单中选择\新建方法程序\打开\新建方法程序\对话框,然后在名称框中输入\并单击\添加\按钮,关闭对话框后在属性窗口的最下面双击mymethod方法,编写表单的mymethod事件代码如下:
wait \
3. 设置Ok按钮的Click事件代码,其功能是调用表单的mymethod方法。
答案:(3)双击打开OK按钮的Click事件,输入: ThisForm.mymethod
4. 设置Cancel按钮的Click事件代码,其功能是关闭当前表单。
答案:(4)双击打开Cancel按钮的Click事件,输入: ThisForm.Release 简单应用:
1. 利用查询设计器创建查询,从xuesheng和chengji表中找出所有1982年出生的汉族学生记录。查询结果包含学号、姓名、数学、英语和信息技术5个字段;各记录按学号降序排序;查询去向为表table1。最后将查询保存在query1.qpr文件中,并运行该查询。
答案:(1)【操作步骤】
步骤1:新建一个查询,并将xuesheng和chengji两个表添加到查询设计器中。按要求添加字段\学号\、\姓名\、\数学\、\英语\和\信息技术\到\选定字段\框中。
步骤2:在筛选选项卡中添加表达式:YEAR(xuesheng.出生日期),条件设置为\,实例中输入:1982,并在逻辑处选:and 步骤3:在筛选选项卡中选择字段\民族\,条件设置为\,实例中输入\汉\。 步骤4:在排序选项卡中选择\降序\,添加字段\学号\。
步骤5:选择系统菜单中的\查询\→\查询去向\,单击\表\按钮,输入表名\。 步骤6:保存查询为\并运行查询。
2. 首先创建数据库cj_m,并向其中添加xuesheng表和chengji表。然后在数据库中创建视图view1:利用该视图只能查询数学、英语和信息技术三门课中至少有一门不及格(小于60分)的学生记录;查询结果包含学号、姓名、数学、英语和信息技术5个字段;各记录按学号降序排序。最后利用刚创建的视图view1查询视图中的全部信息,并将查询结果存放在表table2中。
答案:(2)【操作步骤】
步骤1:“文件”—“新建”,创建数据库。
步骤2:打开cj_m数据库并向其中添加表\和\。
步骤3:在数据库设计器中新建一个视图,并将xuesheng和chengji两个表添加到新建的视图中,按要求添加字段\学号\、\姓名\、\数学\、\英语\和\信息技术\。
步骤4:在筛选选项卡中分别选择字段\数学\、\英语\和\信息技术\,条件均为\,实例为\,逻辑为\。 步骤5:在排序选项卡中选择\降序\, 添加字段\学号\。
步骤6:保存视图为view1.新建一个查询,将视图添加到查询设计器中。 步骤7:添加全部字段,选择查询去向为表,输入表名\并运行查询。 综合应用
首先利用表设计器在考生目录下建立表table3,表结构如下: 民族 字符型(4) 数学平均分 数值型(6,2) 英语平均分 数值型(6,2)
然后在考生文件夹下创建一个下拉式菜单mymenu.mnx,并生成菜单程序mymenu.mpr。运行该菜单程序时会在当前vfp系统菜单的末尾追加一个\考试\子菜单,如下图所示。
菜单命令\计算\和\返回\的功能都通过执行过程完成。
菜单命令\计算\的功能是根据xuesheng表和chengji表分别统计汉族学生和少数民族学生在数学和英语两门课程上的平均分,并把统计数据保存在表table3中。表table3的结果有两条记录:第1条记录是汉族学生的统计数据,\民族\字段填\汉\;第2条记录是少数民族学生的统计数据,\民族\字段填\其他\。
菜单命令\返回\的功能是恢复标准的系统菜单。
菜单程序生成后,运行菜单程序并依次执行\计算\和\返回\菜单命令。
答案:首先根据题目要求利用表设计器创建表table3,然后新建菜单,注意是在系统菜单的末尾追加考试子菜单,因此要用到“常规选项”对话框,还有一点,“计算”和“返回”的命令都是通过执行“过程”完成,在\计算\菜单项的过程中输入下列代码: